




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數字集成電路設計入門-從HDL到版圖 北大微電子學系1第16章 存儲器建模學習內容:如何描述存儲器如何描述雙向端口2存儲器件建模描述存儲器必須做兩件事:說明一個適當容量的存儲器。提供內容訪問的級別,例如:只讀讀和寫寫同時讀多個讀操作,同時進行單個寫操作同時有多個讀和多個寫操作,有保證一致性的方法3簡單ROM描述 下面的ROM描述中使用二維寄存器組定義了一個存儲器mem。ROM的數據單獨保存在文件my_rom_data中,如右邊所示。通常用這種方法使ROM數據獨立于ROM描述。timescale 1ns/10psmodule myrom (read_data, addr, read_en_);
2、input read_en_; input 3:0 addr; output 3:0 read_data; reg 3:0 read_data; reg 3:0 mem 0:15; initial $readmemb (my_rom_data, mem); always ( addr or read_en_) if (! read_en_) read_data = memaddr;endmodulemy_rom_data00000101110000111101001000111111100010011000000111011010000111014簡單的RAM描述 RAM描述比ROM略微復雜,
3、因為必須既有讀功能又有寫功能,而讀寫通常使用同一數據總線。這要求使用新的處理雙向數據線的建模技術。在下面的例子中,若讀端口未使能,則模型不驅動數據總線;此時若數據總線沒有寫數據驅動,則總線為高阻態(tài)Z。這避免了RAM寫入時的沖突。timescale 1ns /1nsmodule mymem (data, addr, read, write); inout 3:0 data; input 3:0 addr; input read, write; reg 3:0 memory 0:15; / 16*4/ 讀 assign data = read ? memoryaddr : 4bz;/ 寫 alwa
4、ys ( posedge write) memoryaddr = data;endmodule 這個描述可綜合,但許多工具僅僅產生一個寄存器堆,因此與一個真正的存儲器相比耗費更多的面積。5參數化存儲器描述 在下面的例子中,給出如何定義一個字長和地址均參數化的只讀存儲器件。module scalable_ROM (mem_word, address); parameter addr_bits = 8; / 地址總線寬度 parameter wordsize = 8; / 字寬 parameter words = (1 addr_bits); / mem容量 output wordsize:1 m
5、em_word; / 存儲器字 input addr_bits:1 address; / 地址總線 reg wordsize:1 mem 0 : words-1; / mem聲明/ 輸出存儲器的一個字 wire wordsize:1 mem_word = memaddress;endmodule 例中存儲器字范圍從0而不是1開始,因為存儲器直接用地址線確定地址。也可以用下面的方式聲明存儲器并尋址。 reg wordsize:1 mem 1:words; / 從地址1開始的存儲器/ 存儲器尋址時地址必須加1 wire wordsize:1 mem_word = mem address + 1;
6、6存儲器數據裝入可以使用循環(huán)或系統任務給存儲器裝入初始化數據用循環(huán)給存儲器的每個字賦值 for (i= 0; i memsize; i = i+ 1) / initialize memory mema i = wordsize 1b1; 調用系統任務$readmem $readmemb(mem_file. txt, mema); 可以用 系統任務$readmem給一個ROM或RAM加載數據。對于ROM,開始時寫入的數據就是其實際內容。對于RAM,可以通過初始化,而不是用不同的寫周期給每個字裝入數據以減少仿真時間。 7使用雙向端口用關鍵詞inout聲明一個雙向端口 inout 7:0 datab
7、us;雙向端口聲明遵循下列規(guī)則:inout端口不能聲明為寄存器類型,只能是net類型。這樣仿真器若有多個驅動時可以確定結果值。對inout端口可以從任意一個方向驅動數據。端口數據類型缺省為net類型。不能對net進行過程賦值,只能在過程塊外部持續(xù)賦值,或將它連接到基本單元。在同一時間應只從一個方向驅動inout端口。例如:在RAM模型中,如果使用雙向數據總線讀取RAM數據,同時在數據總線上驅動寫數據,則會產生邏輯沖突,使數據總線變?yōu)槲粗?。必須設計與inout端口相關的邏輯以確保正確操作。當把該端口作為輸入使用時,必須禁止輸出邏輯。8雙向端口建模 使用基本單元建模module bus_xcvr(
8、 bus_a, bus_b, en_a_b, en_b_a); inout bus_a, bus_b; input en_a_b, en_b_a; bufif1 b1 (bus_b, bus_a, en_a_b); bufif1 b2 (bus_a, bus_b, en_b_a);/ Structural module logicendmodule 若en_a_b=1,基本單元b1使能,bus_a數據傳送到bus_b若en_b_a=1,基本單元b2使能,bus_b數據傳送到bus_a信號en_a_b和en_b_a控制使能9雙向端口建模 使用持續(xù)賦值建模module bus_xcvr( bus_
9、a, bus_b, en_a_b, en_b_a); inout bus_a, bus_b; input en_a_b, en_b_a; assign bus_b = en_a_b ? bus_a : bz; assign bus_a = en_b_a ? bus_b : bz;/ Structural module logicendmodule 若en_a_b=1,賦值語句驅動bus_a數據到bus_b若en_b_a=1,賦值語句驅動bus_b值到bus_a信號en_a_b和en_b_a控制使能10雙向端口建模 存儲器端口建模module ram_cell( databus, rd, wr); inout databus; input rd, wr; reg datareg; assign databus = rd ? datareg : bz; always ( negedge wr) datareg = databus;endmodule當rd=1時,datareg的值賦值databus在wr下降沿,databus數據寫入datareg11復習問題:在Verilog中用什么結構定義一個存儲器組?如何向存儲器加載數據?如何通過一個雙向(ino
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長久計劃掙錢的項目
- 社區(qū)殘疾人工作計劃
- 現有一位外商計劃
- 2025年巴西科技創(chuàng)新大賽:項目與機遇
- 2025至2030年中國多功能乳液數據監(jiān)測研究報告
- 2025至2030年中國沖孔篩網數據監(jiān)測研究報告
- 2025至2030年中國絲織被面數據監(jiān)測研究報告
- 金屬礦石企業(yè)數字化轉型與智慧升級戰(zhàn)略研究報告
- 2025至2030年中國EVA內襯數據監(jiān)測研究報告
- 2025至2030年中國APP改性瀝青防水材料數據監(jiān)測研究報告
- 氬氣安全技術說明書MSDS
- 汽車運行材料ppt課件(完整版)
- 四年級數學下冊教案-練習一-北師大版
- GB∕T 1732-2020 漆膜耐沖擊測定法
- 2022《化工裝置安全試車工作規(guī)范》精選ppt課件
- Q∕GDW 12067-2020 高壓電纜及通道防火技術規(guī)范
- 汽車系統動力學-輪胎動力學
- 《經濟研究方法論》課程教學大綱
- 10T每天生活污水處理設計方案
- 中國民航國內航空匯編航路314系列航線
- 山西特色文化簡介(課堂PPT)
評論
0/150
提交評論