王曉鵬
[摘 要]如今在FPGA系統(tǒng)設(shè)計當中,系統(tǒng)的復(fù)雜程度越來越高,對內(nèi)存的要求也越來越高,綜合體積、容量等都要考慮,DDR2已成為FPGA系統(tǒng)的首選。本文檔以AX515開發(fā)板為例,為大家介紹ALTEMPHY IP核的設(shè)置步驟,DDR讀寫和控制及仿真的方法。
[關(guān)鍵詞]FPGA;ALTMEMPHY;DDR2
[中圖分類號]TP333 [文獻標識碼]A
1 AX515 DDR2原理圖
在進行片內(nèi) DDR2讀寫控制和 設(shè)計時,F(xiàn)PGA 的管腳分配要加以注意,不能隨意分配。在 AX515 開發(fā)板上使用 FPGA 的 Bank3 和 Bank4 要跟 DDR2 連接,兩個 Bank 的 IO 電壓都為 1.8V,這里使用 Bank3 的 2 個區(qū)域 DQ3B 和 DQ5B 來連接 DDR2 的數(shù)據(jù),使用 DQ3B 連接 DDR2 數(shù)據(jù)的高 8 位DQS1 和 DM1; 使用 DQ5B 連接 DDR2 數(shù)據(jù)的低 8 位,DQS0 和 DM0。在每個區(qū)域內(nèi) DQS 和 DM 的引腳是固定的,數(shù)據(jù) DQ 是可以交換的,但 DQ3B 和 DQ5B 之間不允許交換。
AX515 開發(fā)板上使用了 Micron DDR2 的顆粒 MT47H64M16, 此 DDR 芯片的容量為 1Gb。DDR2和 FPGA 之間的連接的數(shù)據(jù)寬度都為 16bit,開發(fā)板板上對 DDR2 的地址線和控制線端接電阻,以保證信號的質(zhì)量。
2 ALTMEMPHY IP 核設(shè)置
ALTMEMPHY IP 控制器是 ALTERA 公司為用戶提供的一個 DDR 控制的 IP, 這樣用戶即使不了解 DDR的控制和讀寫時序也能通過 ALTMEMPHY IP 控制器方便地讀寫 DDR 存儲器。其步驟是首先在 Quartus 里新建一個項目并命名,選擇菜單 Tools->MegaWizard Plug-In Manager 打開 IP 生成向?qū)В?IP 向?qū)Ы缑娴牡谝豁撨x擇默認的 Create a new custom megafunction variaion, 在 IP 向?qū)Ы缑娴牡诙摰?IP 列表中選擇 External Memory/DDR2 SDRAM 目錄下的 DDR2 SDRAM Controller with ALTMEMPHY,然后在“What name do you want for the output file?”欄中輸入 IP 存放的目錄及名稱,然后在工程目錄下新建了一個目錄 ipcore 用于存放輸出的文件。
打開 Preset Editor 設(shè)置 DDR 的參數(shù),這里的 DDR2 的參數(shù)設(shè)置分為 3 種:DDR2 SDRAM 屬性設(shè)置,DDR2 SDRAM 初始化選項和 DDR2 SDRAM 時序參數(shù)設(shè)置,修改 Row address width 行的參數(shù),完成后保存;在 Board Settings 里輸入電路板設(shè)置參數(shù)來消除板級時序影響,保留默認的設(shè)置即可。在 Controller Setting 里設(shè)置 DDR 控制器點擊下一步,點擊 Finish 按鈕完成 DDR2 IP 的配置。
3 編譯文件并仿真
項目中添加 ddr2_example_top.v設(shè)置為 top 文件,打開菜單 Tool->Tpin_assignments.tcl 文件并運行配置 ddr Pin 腳的電平約束,打開 Pin Planner 來具體配置一下 FPGA 的管腳約束,管腳的約束必須和開發(fā)板的硬件設(shè)計一致,這里我們設(shè)置 test_complete 信號連接到 led0 上,如果 led0燈熄滅,說明 ddr 測試完成,編譯 ddr2_example_top 頂層文件并生成 sof 文件。
仿真 DDR2 程序要用 ModelSim AE 或者 ModelSim SE 軟件, 不要使用只支持單語言仿真的軟件,仿真步驟為:
選擇菜單 Assignments->Settings, 再在Category目錄下選擇 Simulation。在右邊 Tool Name 欄選擇 ModelSim, 在Settings里選擇Compile, 再點擊右邊的Benches按鈕。在Bench Settings 界面里輸入ddr2_example,再在simulation files 里添加軟件生成的測試文件 ddr2_example.v和ddr2 的模型文件 ddr2_model.v。
點擊確認按鈕返回 Quartus 開發(fā)環(huán)境,單擊菜單 Tools->Run Simulation Tool->RTL Simulation 調(diào)用 ModelSim,ModelSim就會首先編譯 Altera 的庫文件,編譯完成后ModelSim自動開始仿真DDR2, 對DDR2的每個Banks進行讀寫操作,仿真結(jié)束后顯示“SIMULATION PASSED”在波形圖上,我們可以看到具體的DDR2的仿真波形,仿真接收后其信號變大,說明 DDR2的仿真成功。
4 結(jié)論
到此為止,DDR2 的讀寫測試和仿真全部完成,AX515 開發(fā)板的 DDR2 部分能夠穩(wěn)定的工作在166.7Mhz 時鐘頻率上,因為 DDR2 采用上下沿讀寫數(shù)據(jù),所以數(shù)據(jù)讀寫傳輸數(shù)率可達到 330Mhz。本實驗的 mem_burst_v2 模塊很重要,它簡化了我們對 DDR2 IP 接口和時序讀寫控制的難度,從實驗仿真現(xiàn)象來看,與預(yù)期結(jié)果一致,有一定的實用參考價值。
[參考文獻]
[1] 夏于聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京航空航天大學出版社,2010.
[2] 薛小剛.FPGA/CPLD設(shè)計指南[M].人民郵電出版社,2008.