版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第8章章 Verilog HDL存儲(chǔ)器設(shè)計(jì)存儲(chǔ)器設(shè)計(jì)4/16/20221Microelectronics School Xidian University 8.1存儲(chǔ)器簡(jiǎn)介和分類存儲(chǔ)器簡(jiǎn)介和分類4/16/20222Microelectronics School Xidian University 表表8.1-1 存儲(chǔ)器分類存儲(chǔ)器分類RWMNVRWMROM隨機(jī)存取隨機(jī)存取非隨機(jī)存取EPROME2PROMFLASHROMSRAMDRAMFIFOLIFO移位寄存器8.1.2 存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)(a)存儲(chǔ)器結(jié)構(gòu))存儲(chǔ)器結(jié)構(gòu)(b)利用譯碼器減少地址位數(shù))利用譯碼器減少地址位數(shù)8.1.3存儲(chǔ)器設(shè)計(jì)方法
2、存儲(chǔ)器設(shè)計(jì)方法4/16/20223Microelectronics School Xidian University 在基于FPGA的電路設(shè)計(jì)方法中,一些固定的模塊已經(jīng)作為IP核來調(diào)用,從而簡(jiǎn)化設(shè)計(jì)。在專用集成電路設(shè)計(jì)過程專用集成電路設(shè)計(jì)過程中,有專用的軟件memory compiler來實(shí)現(xiàn)存儲(chǔ)器的設(shè)計(jì)。memory compiler的使用也和IP核的調(diào)用類似,通過改變一些參數(shù)來實(shí)現(xiàn)設(shè)計(jì)中需要的存儲(chǔ)器,不同的是memory compiler設(shè)計(jì)的存儲(chǔ)器是基于具體的工藝的表表8.2 IP核設(shè)計(jì)和核設(shè)計(jì)和Memory Compiler設(shè)計(jì)的主要區(qū)別設(shè)計(jì)的主要區(qū)別設(shè)計(jì)方法設(shè)計(jì)方法IP核設(shè)計(jì)核設(shè)計(jì)M
3、emory Compiler需要的參數(shù)需要的參數(shù)存儲(chǔ)器大小,端口信息存儲(chǔ)器大小,端口信息,工作頻率,電源線寬輸出文件輸出文件網(wǎng)表文件,原理圖文件等網(wǎng)表文件,時(shí)序信息文件,布局布線文件,注釋文件可移植性可移植性可以用于不同工藝,可以設(shè)計(jì)其他IP模塊主要用于存儲(chǔ)器設(shè)計(jì),基于具體工藝,工藝不同則需要重新設(shè)計(jì)綜合綜合直接像其他設(shè)計(jì)一樣,用design compiler等工具綜合將輸出文件作為design compiler的鏈接庫(kù),設(shè)計(jì)將直接作為綜合后的宏單元8.2 基于基于FPGA的的IP核核RAM的設(shè)計(jì)及調(diào)用的設(shè)計(jì)及調(diào)用4/16/20224Microelectronics School Xidian
4、 University 8.2.1 IP核的簡(jiǎn)介核的簡(jiǎn)介IP(知識(shí)產(chǎn)權(quán))核將一些在數(shù)字電路中常用,但比較復(fù)雜的功能塊,如FIR濾波器、SDRAM控制器、PCI接口等設(shè)計(jì)做成一個(gè)“黑盒”或者是可修改參數(shù)的模塊,供設(shè)計(jì)者使用。IP核包括硬IP與軟IP。調(diào)用IP核能避免重復(fù)勞動(dòng),大大減輕設(shè)計(jì)人員的工作量。8.2.2 FPGA配置和調(diào)用配置和調(diào)用RAM例例8.2-1 FPGA設(shè)計(jì)的設(shè)計(jì)的RAM外圍電路對(duì)外圍電路對(duì)RAM進(jìn)行讀寫操作進(jìn)行讀寫操作4/16/20225Microelectronics School Xidian University 7位地址線計(jì)數(shù)器位地址線計(jì)數(shù)器timescale 1 ns
5、/1 psmodule count(clk,en,count,clr); input clk,en,clr; output 6:0 count; reg 6:0 count; always (posedge clk or negedge clr) begin if (!clr) count=7b0; else begin if (en) count=count+1; end endendmodule8位數(shù)據(jù)線計(jì)數(shù)器位數(shù)據(jù)線計(jì)數(shù)器timescale 1 ns/1 psmodule data_count(clk,count,clr); input clk,clr; output 7:0 count
6、; reg 7:0 count; always (posedge clk or negedge clr) begin if (!clr) count=8b0; else count=count+1; endendmodule4/16/20226Microelectronics School Xidian University timescale 1 ns/1 psmodule IP_RAM(clk_wr,clk_rd,wren,rden,data_rd,clr); input clk_wr,clk_rd,wren,rden,clr; output 7:0 data_rd; wire 6:0 a
7、ddr_wr,addr_rd; wire 7:0 data_wr; wire 7:0 data_rd; count addr_wr1 (.clk(clk_wr),.en(wren),.count(addr_wr),.clr(clr); data_count data_wr1 (.clk(clk_wr),.count(data_wr),.clr(clr); count addr_rd1 (.clk(clk_rd),.en(rden),.count(addr_rd),.clr(clr); RAM_2PORT RAM1 (.wrclock(clk_wr) , .rdclock(clk_rd) , .
8、wren(wren) , .data(data_wr) , .wraddress(addr_wr) , .rdaddress(addr_rd) , .q(data_rd);endmodule4/16/20227Microelectronics School Xidian University timescale 1 ns/1 ps module IP_RAM_tb; reg clk_wr,clk_rd,clr; reg wren,rden; wire 7:0 data_rd; IP_RAM RAM1 (.clk_wr(clk_wr) , .clk_rd(clk_rd) , .wren(wren
9、) , .data_rd(data_rd), .clr(clr),.rden(rden); initial begin #1 clk_wr=0;clk_rd=0;clr=1;rden=0; #3 wren=0;clr=0; #3 wren=1;clr=1; #3000 wren=0;rden=1; #3000 wren=0;rden=0; #500 $stop; end always #10 clk_wr=clk_wr; always #15 clk_rd=clk_rd;endmodule4/16/20228Microelectronics School Xidian University 圖
10、圖8.2-2 寫入寫入過程仿真結(jié)果過程仿真結(jié)果圖圖8.2-3 讀出讀出過程仿真結(jié)果過程仿真結(jié)果8.2.3IP核的核的RAM設(shè)計(jì)流程設(shè)計(jì)流程4/16/20229Microelectronics School Xidian University 例8.2-2: IP核生成RAM的過程以及例化的過程(1)打開Quartus II(本文使用的版本是Quartus II 8.1),新建工程N(yùn)ew Quartus II Project(2)選擇工程存儲(chǔ)路徑,并設(shè)置工程名,例如 IP_RAM(2)添加文件,暫時(shí)不添加。(4)選擇芯片型號(hào),例如Cyclone II EP2C5Q208C8(5)完成工程的建立(
11、6)點(diǎn)擊tools,選擇ToolsMegaWizard Plug-In Manager,創(chuàng)建新的MegaCore;(7)選擇新建一個(gè)MegaCore4/16/2022Microelectronics School Xidian University (8)選擇IP,在左側(cè)選中RAM:2-PORT,選擇Verilog HDL,并在對(duì)話框中設(shè)置輸出文件名,例如RAM_PORT24/16/202211Microelectronics School Xidian University (9)定義讀寫端口;4/16/202212Microelectronics School Xidian Univers
12、ity (10)定義輸入數(shù)據(jù)寬度(此處為8),RAM深度(此處為128);4/16/202213Microelectronics School Xidian University (11)選擇讀寫時(shí)鐘;4/16/202214Microelectronics School Xidian University (12)定義輸出鎖存;4/16/202215Microelectronics School Xidian University (13)選擇是否進(jìn)行初始化;4/16/202216Microelectronics School Xidian University (14)顯示創(chuàng)建的輸出文件類型
13、;4/16/202217Microelectronics School Xidian University (15)創(chuàng)建原理圖輸入文件;FileNewBlock Diagram/Schematic File(16)雙擊左鍵,彈出Symbol對(duì)話框,可以在上方的libraries中看到project,顯示已創(chuàng)建的RAM_PORT2 Symbol;(17)選擇input和output Symbol;(18)最終設(shè)置完成后,如圖8.2-124/16/202218Microelectronics School Xidian University (19)將該原理圖保存為頂層文件IP;(20)進(jìn)行全編譯
14、,如圖示,在頂層文件下會(huì)顯示實(shí)例化(21)一個(gè)RAM的IP核已經(jīng)成功調(diào)用。8.2.4對(duì)生成的對(duì)生成的RAM進(jìn)行仿真進(jìn)行仿真4/16/202219Microelectronics School Xidian University 1. 直接用直接用quartus手動(dòng)加激勵(lì)仿真手動(dòng)加激勵(lì)仿真2. 和其它軟件結(jié)合的和其它軟件結(jié)合的testbench仿真方法仿真方法4/16/202220Microelectronics School Xidian University (1)在)在quartus中選擇中選擇tools里面的里面的option設(shè)置仿真工具設(shè)置仿真工具modesim的路徑,如圖的路徑,如圖
15、8.2-14所示:所示:4/16/202221Microelectronics School Xidian University (2)在assignments中的settings中進(jìn)行仿真設(shè)置,首先是仿真工具,選擇modelsim,接著是網(wǎng)表文件格式,這里選擇verilog,并對(duì)時(shí)間精度進(jìn)行設(shè)置。4/16/202222Microelectronics School Xidian University (3)接著是連接的軟件的設(shè)置,在上一個(gè)界面中的最下面,選擇第二項(xiàng)test bench的選項(xiàng),然后點(diǎn)擊后面的test benches選項(xiàng)彈出如下對(duì)話框:4/16/202223Microelectr
16、onics School Xidian University (4)點(diǎn)擊new進(jìn)行設(shè)置,其中Test bench name可以隨便設(shè)置,Top level module in testbench是testbench中模塊的名字,design instance name in testbench是testbench中例化的待測(cè)試模塊的名字。4/16/202224Microelectronics School Xidian University (5)完成設(shè)置。在quartus界面編譯,仿真,quartus會(huì)自動(dòng)啟動(dòng)modelsim軟件進(jìn)行仿真。本例的testbench程序和仿真結(jié)果如下times
17、cale 1 ns/1 ps module IP_RAM_tb; reg clk_wr,clk_rd; reg wren; reg 7:0 data_wr; reg 6:0 addr_wr,addr_rd; wire 7:0 data_rd; RAM_2PORT RAM1 (.wrclock(clk_wr) , .rdclock(clk_rd) , .wren(wren) , .data(data_wr) , .wraddress(addr_wr) , .rdaddress(addr_rd) , .q(data_rd); initial begin #1 clk_wr=0;clk_rd=0;
18、#3 addr_wr=7b0;addr_rd=7bz; #3 wren=0;data_wr=8b0000_0100; #3 wren=1; #3000 wren=0;addr_rd=7b000_0000; #3000 wren=1; #50 $stop; endalways #10 clk_wr=clk_wr; always #15 clk_rd=clk_rd; always begin #20 addr_wr=addr_wr+1; end always begin #20 data_wr=data_wr+1; end always begin #30 addr_rd=addr_rd+1; e
19、nd endmodule4/16/202225Microelectronics School Xidian University 圖圖8.2-18 寫寫入過程的仿入過程的仿真圖真圖圖圖8.2-19 讀讀出過程的仿出過程的仿真圖真圖8.3用用Memory Compiler生成生成RAM并仿真并仿真4/16/202226Microelectronics School Xidian University 8.3.1 Memory Compiler的簡(jiǎn)介的簡(jiǎn)介Memory Compiler能夠根據(jù)用戶的要求自動(dòng)生成ROM或RAM。在生成ROM時(shí)需要直接將ROM寫入的數(shù)據(jù)在生成時(shí)存進(jìn)去,在生成RAM的過
20、程則不需要。Memory Compiler產(chǎn)生RAM的同時(shí)會(huì)生成用于行為級(jí)仿真的verilog代碼。其他重要的文件列舉如下:其他重要的文件列舉如下:(1).LIB該數(shù)據(jù)是RAM的時(shí)序信息文件(2).VCLEF布局布線工具需要使用的物理信息文件(3).SPEC RAM是注釋文件。這里我們使用Artisan 的Memory CompilerAdvantage Single-Port Register file Generator來生成。所使用的工藝是TSMC 65nm CL65G+ Process。8.3.2 ASIC設(shè)計(jì)過程中的設(shè)計(jì)過程中的RAM4/16/202227Microelectroni
21、cs School Xidian University 例例8.3-1:ASIC設(shè)計(jì)過程中的設(shè)計(jì)過程中的RAM的調(diào)用的調(diào)用:本例設(shè)計(jì)一個(gè)RAM,并可以對(duì)其進(jìn)行讀取。外圍的讀取電路是由一個(gè)計(jì)數(shù)器控制地址端,另一個(gè)計(jì)數(shù)器控制數(shù)據(jù)端,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)寫入和讀出。地址計(jì)數(shù)器包含使能端,使能端由RAM的使能控制端cen來控制。4/16/202228Microelectronics School Xidian University 頂層模塊:頂層模塊:timescale 1 ns/1 psmodule WR_RD_RAM(clk,wen,data_rd,cen,clr); input clk,wen,cen
22、,clr; output 7:0 data_rd; wire 7:0 data_rd; wire 6:0 addr; wire 7:0 data_wr; count addr_wr1 (.clk(clk),.clr(clr),.en(cen),.count(addr); data_count data_wr1(.clk(clk),.clr(clr),.count(data_wr); RF1SHD_128X8 RAM(.CLK(clk),.CEN(cen),.WEN(wen),.A(addr),.D(data_wr),.Q(data_rd),.EMA(0),.RETN(1);Endmodule
23、4/16/202229Microelectronics School Xidian University timescale 1 ns/1 ps module RAM_tb; reg clk; reg wen,cen,clr; wire 7:0 data_rd; WR_RD_RAM RAM1 (.clk(clk),.wen(wen),.cen(cen),.clr(clr),.data_rd(data_rd); initial begin #1 clk=0;cen=1;clr=1; #2 cen=0;clr=0; #3 clr=1; #3 wen=1; #3 wen=0; #3000 wen=1
24、; #3000 cen=1; #50 $stop; end always #10 clk=clk;endmodule4/16/202230Microelectronics School Xidian University 圖圖8.3-3 寫入寫入過程仿真結(jié)果過程仿真結(jié)果圖圖8.3-4 讀出讀出過程仿真結(jié)果過程仿真結(jié)果8.3.3 Memory Compiler的使用的使用4/16/202231Microelectronics School Xidian University 圖圖8.3-4 Memory Compiler的使用流程的使用流程4/16/202232Microelectronics
25、School Xidian University 例8.3-2 用Memory Compiler生成一個(gè)1288的雙端口的RAM。用verilog例化該RAM并對(duì)其進(jìn)讀寫測(cè)試。1RTL階段階段參數(shù)說明:(1)instance name:該設(shè)置是對(duì)RAM的命名,由于ram的特性有地址和位數(shù),所以在命名的時(shí)候盡量包含這些信息。在本例中我們可以命名為RA2SHD_1288.(2)number of words: 該設(shè)置用來確定RAM的深度,即尋址空間大小,本例中為128。(3)number of bits:該設(shè)置用來確定RAM的寬度,本例中為8。(4)frequency:該設(shè)置用來確定RAM的工作頻
26、率,該設(shè)置確定后就可以基本確定RAM的功耗,估計(jì)的結(jié)果位平均電流,通過該數(shù)據(jù)來設(shè)定電源環(huán)的寬度,本例設(shè)定為200MHz。(5)ring width:該設(shè)置為工具建議的電源環(huán)寬度,根據(jù)本例的情況,設(shè)計(jì)為12um。(6)relative footprint:該設(shè)置確定RAM的形狀,最好讓RAM的形狀接近正方形。(7)multiplexer width:該設(shè)置確定每行的單元數(shù),這里設(shè)置為4,能夠讓形狀更接近正方形。4/16/202233Microelectronics School Xidian University 左下角的view中選擇生成的文件名,然后點(diǎn)擊generate就可以生成所需要的文件
27、,如圖8.3-5中的紅色的框框所示。這樣的生成文件的方式需要依次生成想要的文件,如果想要一次生成所有需要的文件,可以選擇utilities-generate,會(huì)彈出如圖8.3-6對(duì)話框,然后勾選需要的文件,點(diǎn)擊generate就會(huì)生成所有我們需要的文件。4/16/202234Microelectronics School Xidian University 接著選擇接著選擇utilities-advanced options,修改電源和地的名字4/16/202235Microelectronics School Xidian University 在在MENU中點(diǎn)擊中點(diǎn)擊utilities-w
28、rite spec產(chǎn)生產(chǎn)生SRAM的注釋文檔的注釋文檔:生成的RAM的詳細(xì)信息可以讀取生成RAM的數(shù)據(jù)手冊(cè)來得出,里面包含詳細(xì)的面積信息,延時(shí)信息等。4/16/202236Microelectronics School Xidian University 2.綜合與布局布線階段綜合與布局布線階段在布局布線前,需要考慮RAM的長(zhǎng)與寬,估計(jì)它的位置與方向,盡量讓功能相關(guān)的模塊靠近一些。將產(chǎn)生的.LIB文件轉(zhuǎn)換成.DB文件,就可以把Memory Compiler生成的RAM加入到代碼中進(jìn)行綜合了。在綜合工具的腳本中的serch_path下加入RAM的DB文件地址即可。3.對(duì)生成的對(duì)生成的RAM的例化和仿真的例化和仿真timescale 1 ns/1 psmodule WR_RD_RAM(clk,wen,addr,data_wr,data_rd,cen); input clk,wen,cen; input 6:0 addr; input 7:0 data_wr; output 7:0 data_rd; wire 7:0 data_rd; RF1SHD_128X8 RAM(.CLK(clk),.CEN(cen),.WEN(wen),.A(addr), .D(data_wr),.Q(data_rd),.EMA(0)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版危廢處理設(shè)施環(huán)境影響評(píng)價(jià)與驗(yàn)收合同3篇
- 2024年鋼材市場(chǎng)購(gòu)銷合作合同
- 2025年度大學(xué)外籍教師團(tuán)隊(duì)聘用及發(fā)展合同4篇
- 個(gè)性化借款協(xié)議范本:含第三方擔(dān)保條款一
- 2025年度個(gè)人二手車交易合同(新車置換服務(wù)版)4篇
- 2025年度定制門窗產(chǎn)品生產(chǎn)與銷售合作協(xié)議2篇
- 二零二五版木材行業(yè)木方板材庫(kù)存管理合同范本4篇
- 二零二五版智慧城市建設(shè)與投資合作協(xié)議4篇
- 2023年-2024年新員工入職前安全教育培訓(xùn)試題及答案完美版
- 2025版知識(shí)產(chǎn)權(quán)質(zhì)押貸款民間借款合同樣本與法律依據(jù)4篇
- TB 10012-2019 鐵路工程地質(zhì)勘察規(guī)范
- 新蘇教版三年級(jí)下冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)(背誦用)
- 鄉(xiāng)鎮(zhèn)風(fēng)控維穩(wěn)應(yīng)急預(yù)案演練
- 腦梗死合并癲癇病人的護(hù)理查房
- 蘇教版四年級(jí)上冊(cè)脫式計(jì)算300題及答案
- 犯罪現(xiàn)場(chǎng)保護(hù)培訓(xùn)課件
- 扣款通知單 采購(gòu)部
- 電除顫操作流程圖
- 湖北教育出版社三年級(jí)下冊(cè)信息技術(shù)教案
- 設(shè)計(jì)基礎(chǔ)全套教學(xué)課件
- IATF16949包裝方案評(píng)審表
評(píng)論
0/150
提交評(píng)論