版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、現(xiàn)代的設(shè)計方法:現(xiàn)代的設(shè)計方法:u 選用合適的選用合適的EDAEDA仿真仿真工具;工具;u 選用合適選用合適電路圖輸入和電路圖輸入和HDLHDL編輯工具;編輯工具;u 逐個編寫可綜合逐個編寫可綜合HDLHDL模塊;模塊;u 逐個編寫逐個編寫HDLHDL測試模塊;測試模塊;u 逐個做逐個做Verilog HDLVerilog HDL電路邏輯訪真;電路邏輯訪真;u 編寫編寫Verilog HDLVerilog HDL總測試模塊;總測試模塊;u 做系統(tǒng)電路邏輯總仿真;做系統(tǒng)電路邏輯總仿真;u電路的邏輯功能容易理解;電路的邏輯功能容易理解;u便于計算機對邏輯進行分析處理;便于計算機對邏輯進行分析處理;
2、u把邏輯設(shè)計與具體電路的實現(xiàn)分成兩個獨把邏輯設(shè)計與具體電路的實現(xiàn)分成兩個獨立的階段來操作;立的階段來操作;u邏輯設(shè)計與實現(xiàn)的工藝無關(guān);邏輯設(shè)計與實現(xiàn)的工藝無關(guān);u邏輯設(shè)計的資源積累可以重復(fù)利用;邏輯設(shè)計的資源積累可以重復(fù)利用;u可以由多人共同更好更快地設(shè)計非常復(fù)雜可以由多人共同更好更快地設(shè)計非常復(fù)雜的邏輯電路(幾十萬門以上的邏輯系統(tǒng))的邏輯電路(幾十萬門以上的邏輯系統(tǒng)) VHDL VITAL 系統(tǒng)級 算法級 寄存器傳輸級 邏輯門級 開關(guān)電路級 行為級 的抽象 VerilogHDL 與 VHDL 建 模 能 力 的 比 較 Verilog系統(tǒng)說明系統(tǒng)說明-設(shè)計文檔設(shè)計文檔/算法描述算法描述RTL
3、/功能級功能級-Verilog門級門級/結(jié)構(gòu)級結(jié)構(gòu)級-Verilog版圖版圖/物理級物理級-幾何圖形幾何圖形行為綜合行為綜合綜合前仿真綜合前仿真邏輯綜合邏輯綜合綜合后仿真綜合后仿真版圖版圖系統(tǒng)說明系統(tǒng)說明-設(shè)計文檔設(shè)計文檔/算術(shù)描述算術(shù)描述RTL/功能級功能級-Verilog門級門級/結(jié)構(gòu)級結(jié)構(gòu)級-Verilog版圖版圖/物理級物理級-幾何圖形幾何圖形詳細(xì)程度詳細(xì)程度 低低 高高輸入輸入/仿真速度仿真速度 高高 低低n 行為級行為級n 用功能塊之間的數(shù)據(jù)流對系統(tǒng)進行描述用功能塊之間的數(shù)據(jù)流對系統(tǒng)進行描述n 在需要時在函數(shù)塊之間進行調(diào)度賦值。在需要時在函數(shù)塊之間進行調(diào)度賦值。n RTL級級/功能
4、級功能級n 用功能塊內(nèi)部或功能塊之間的數(shù)據(jù)流和控制信號描述用功能塊內(nèi)部或功能塊之間的數(shù)據(jù)流和控制信號描述系統(tǒng)系統(tǒng)n 基于一個已定義的時鐘的周期來定義系統(tǒng)模型基于一個已定義的時鐘的周期來定義系統(tǒng)模型n 結(jié)構(gòu)級結(jié)構(gòu)級/門級門級n 用基本單元用基本單元(primitive)或低層元件或低層元件(component)的連接的連接來描述系統(tǒng)以得到更高的精確性,特別是時序方面。來描述系統(tǒng)以得到更高的精確性,特別是時序方面。n 在綜合時用特定工藝和低層元件將在綜合時用特定工藝和低層元件將RTL描述映射到門描述映射到門級網(wǎng)表級網(wǎng)表VerilogVerilog HDL HDL頂層(測試)模塊頂層(測試)模塊:
5、同上。5)5)布局布線布局布線: 把用綜合器自動生成的門級網(wǎng)表(EDIF)通過運行一個自動操作的布局布線工具,使其與具體的某種FPGA或某種ASIC工藝庫器件對應(yīng)起來,并加以連接的過程。 6)6)VerilogVerilog HDL HDL后仿真測試模塊后仿真測試模塊: 同3)、4),但被測試的模塊至少是一個門級描述的或用具體FPGA(ASIC)庫器件(帶時間延遲信息)描述的結(jié)構(gòu)型Verilog HDL 模塊。 Verilog HDL行為仿真:行為仿真:行為的驗證和驗證模塊分割的合理性前仿真前仿真 :即 RTL級仿真,檢查有關(guān)模塊邏輯執(zhí)行步驟是否正確。邏輯綜合:邏輯綜合:把RTL級模塊轉(zhuǎn)換成門
6、級 。 后仿真:后仿真:用門級模型做驗證,檢查門的互連邏輯其功能是否正確。布局布線:布局布線: 在門級模型的基礎(chǔ)上加上了布線延時布局布線后仿真:布局布線后仿真:與真實的電路最接近的驗證。absloutabslout 這個行為的描述并沒有說明如果輸入 a 或 b是三態(tài)的(高阻時)輸出應(yīng)該是什么,但有具體結(jié)構(gòu)的真實電路是有一定的輸出的。uRTL模塊的數(shù)據(jù)流動必須基于時鐘。RTL模塊在每個時鐘的沿時刻,其變量的值必定是精確的。uRTL模塊是可綜合的,它是行為模塊的一個子集合。outabslselbselansln輸入端口:輸入端口: input 端口名;模塊從外界讀取數(shù)據(jù)的接口,是連線類型n輸出端口
7、:輸出端口:output 端口名;模塊向外界傳輸數(shù)據(jù)的接口,是連線或寄存器型n輸入輸出端口:輸入輸出端口:inout 端口名;可讀取數(shù)據(jù)也可接收數(shù)據(jù)的端口,數(shù)據(jù)是雙向的,是連線型Verilog 模塊由兩部分組成:端口信息和內(nèi)部功能。模塊由兩部分組成:端口信息和內(nèi)部功能。 module block1(a, b, c, d, e); input a, b, c; output d, e; assign d = a | ( b & c) ; assign e = ( b & c ); endmoduleabcdeabcdeabced標(biāo)識符空白符:在在verilog HDL內(nèi)部已經(jīng)使用
8、的詞稱為關(guān)鍵字或保留字。內(nèi)部已經(jīng)使用的詞稱為關(guān)鍵字或保留字。:用于定義模塊名、端口名、連線、信號名等用于定義模塊名、端口名、連線、信號名等 。標(biāo)識符可。標(biāo)識符可以是任意一組字母、數(shù)字、以是任意一組字母、數(shù)字、$符號下劃線的組合,但標(biāo)識符符號下劃線的組合,但標(biāo)識符第一個第一個字符字符必須是必須是字母字母或者或者下劃線下劃線,且字符不能多于,且字符不能多于1024個。此外還個。此外還區(qū)分區(qū)分大小寫大小寫??瞻追煽崭?、換行等組成,僅僅用于分隔標(biāo)識符,在編空白符由空格、換行等組成,僅僅用于分隔標(biāo)識符,在編譯中被忽略。譯中被忽略。n缺省位寬時,默認(rèn)為缺省位寬時,默認(rèn)為32位數(shù)據(jù)位數(shù)據(jù)01XZ0bufb
9、ufbufbufif10、低、偽、邏輯低、地、低、偽、邏輯低、地、VSS、負(fù)插入、負(fù)插入1 1、高、真、高、真、邏輯邏輯高、電源、高、電源、VDD、正插入、正插入X X、不確定:邏輯沖突無法確定其邏輯值、不確定:邏輯沖突無法確定其邏輯值HiZHiZ、高阻抗、三態(tài)、無驅(qū)動源、高阻抗、三態(tài)、無驅(qū)動源 n連接類型變量的種類:連接類型變量的種類: 在為不同工藝的基本元件建立庫模型的時候,常常需要用不同在為不同工藝的基本元件建立庫模型的時候,常常需要用不同的連接類型來與之對應(yīng),使其行為與實際器件一致。常見的有以下的連接類型來與之對應(yīng),使其行為與實際器件一致。常見的有以下幾種。幾種。n如果不明確地說明連接
10、是何種類型,應(yīng)該是指 wire 類型。 例:wire 7:0a,b; / 位寬為位寬為8的的wire型變量型變量a和和b綜合編譯綜合編譯器不支持器不支持的的net類型類型abslselbselansloutreg_areg_selreg_b修改前:修改前:module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; reg c, d; reg o2 and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0;endmodule修改后:修改后:module e
11、xample(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2;/ reg c, d;/ reg o2 reg o1; and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0;endmodule例:下表以優(yōu)先級順序列出了下表以優(yōu)先級順序列出了Verilog操作符。注意操作符。注意“與與”操作符的優(yōu)先級總是比相操作符的優(yōu)先級總是比相同類型的同類型的“或或”操作符高。本章將對每個操作符用一個例子作出解釋。操作符高。本章將對每個操作符用一個例子作出解釋。 最高最高最低最低優(yōu)先級優(yōu)
12、先級例如:例如:a=4b010;b=4b0010a+ba*ba/ba%b注意注意:在算術(shù)運算中,有一個操作數(shù):在算術(shù)運算中,有一個操作數(shù)為不確定狀態(tài),則運算結(jié)果都為不確為不確定狀態(tài),則運算結(jié)果都為不確定狀態(tài)定狀態(tài)。!not&and|orn 邏輯操作符的結(jié)果為一位邏輯操作符的結(jié)果為一位1,0或或x。n邏輯操作符只對邏輯值運算。邏輯操作符只對邏輯值運算。n如操作數(shù)為全如操作數(shù)為全0,則其邏輯,則其邏輯值為值為falsen如操作數(shù)有一位為如操作數(shù)有一位為1,則其,則其邏輯值為邏輯值為truen若操作數(shù)若操作數(shù)只只包含包含0、x、z,則邏輯值為則邏輯值為x邏輯反操作符將操作數(shù)邏輯反操作符將操作
13、數(shù)的邏輯值取反。例如,的邏輯值取反。例如,若操作數(shù)為全若操作數(shù)為全0,則其,則其邏輯值為邏輯值為0,邏輯反操,邏輯反操作值為作值為1。非非&與與|或或異或異或 同或同或 同或同或n 當(dāng)兩個操作數(shù)位數(shù)不同時,位數(shù)少的操作數(shù)零擴展到相同當(dāng)兩個操作數(shù)位數(shù)不同時,位數(shù)少的操作數(shù)零擴展到相同位數(shù)。非是單目操作數(shù)的,其他都是雙目操作數(shù)。位數(shù)。非是單目操作數(shù)的,其他都是雙目操作數(shù)。a = 4b1011;b = 8b01010011;c = a | b; / a零擴展為零擴展為 8b00001011說明:n一個模塊中可以包含多個initial語句,所有語句都是從0時刻開始執(zhí)行,而且只能執(zhí)行一次。nin
14、itial語句常用于測試文本中信號的初始化,生成輸入仿真波形,監(jiān)測信號變化等。ninitial語句也可以使用fork-join語句。建議建議:n3、語句塊、語句塊例:例: 數(shù)據(jù)采樣模塊數(shù)據(jù)采樣模塊 4h5 : out = 4b0001; 4h6 : out = 4b0010; 4h7 : out = 4b0011; 4h8 : out = 4b0000; 4h9 : out = 4b0010; 4ha : out = 4b0100; 4hb : out = 4b0110; 4hc : out = 4b0000; 4hd : out = 4b0011; 4he : out = 4b0110; 4
15、hf : out = 4b1001; default : out=bx; endcase endendmodule例:查找表方式實現(xiàn)22 乘法【例例】用用for 語句描述的七人投票表決器語句描述的七人投票表決器【例例】用用for 語句實現(xiàn)語句實現(xiàn)2 個個8 位數(shù)相乘位數(shù)相乘includeinclude文件文件設(shè)計文件設(shè)計文件廠家元件廠家元件庫文件庫文件輸入文件:輸入文件:激勵和期望激勵和期望的輸出信號的輸出信號輸出文件:激輸出文件:激勵和實際輸出勵和實際輸出的信號的信號編譯器編譯器仿真器仿真器仿真器仿真器n用用Verilog設(shè)計的步驟:設(shè)計的步驟:n測試平臺的組成測試平臺的組成激勵激勵信號信號
16、需要驗證的需要驗證的設(shè)計設(shè)計激勵信號激勵信號和用于驗和用于驗證的結(jié)果證的結(jié)果數(shù)據(jù)數(shù)據(jù)需要驗證的需要驗證的設(shè)計設(shè)計簡單的測試平臺簡單的測試平臺復(fù)雜的測試平臺復(fù)雜的測試平臺n施加激勵施加激勵產(chǎn)生激勵并加到設(shè)計有很多產(chǎn)生激勵并加到設(shè)計有很多 種方法。常用的方法:種方法。常用的方法:n從一個從一個initial塊中施加線激勵塊中施加線激勵n從一個循環(huán)或從一個循環(huán)或always塊施加激勵塊施加激勵n從一個向量或整數(shù)數(shù)組施加激勵從一個向量或整數(shù)數(shù)組施加激勵n記錄一個仿真過程,然后在另一個仿真中回放施加激勵記錄一個仿真過程,然后在另一個仿真中回放施加激勵n 線性激勵有以下特性:線性激勵有以下特性:n 只有變
17、量的值改變時才列出只有變量的值改變時才列出n 易于定義復(fù)雜的時序關(guān)系易于定義復(fù)雜的時序關(guān)系n 對一個復(fù)雜的測試,測試基準(zhǔn)對一個復(fù)雜的測試,測試基準(zhǔn)(test bench)可能非常大可能非常大module inline_ tb; reg 7: 0 data_ bus, addr; wire 7: 0 results; DUT u1 (results, data_ bus, addr); initial fork data_bus = 8h00; addr = 8h3f; #10 data_ bus = 8h45; #15 addr = 8hf0; #40 data_ bus = 8h0f; #6
18、0 $finish; joinendmodulen 保存在文件中的矢量反過來可以作為激勵保存在文件中的矢量反過來可以作為激勵module read_file_tb; parameter num_vecs = 256; reg 7:0 data_bus; reg 7:0 stim num_vecs-1:0; integer i; DUT u1 (results, data_bus) initial begin / Vectors are loaded $readmemb (vec. txt, stim); for (i =0; i num_vecs ; i = i + 1) #50 data_b
19、us = stimi; endendmodule/ 激勵文件激勵文件vec.txt001110000011100100111010001111000011000000101000000110000111100010111000.n 使用矢量文件輸入使用矢量文件輸入/輸出的優(yōu)點:輸出的優(yōu)點: 激勵修改簡單激勵修改簡單 設(shè)計反復(fù)驗證時直接使用工具比較矢量文件。設(shè)計反復(fù)驗證時直接使用工具比較矢量文件。例例1:有啟動延時的對稱時鐘的例子:有啟動延時的對稱時鐘的例子:reg ck;initial begin ck = 0; #( period) forever #( period/2) ck = !ck
20、;endreg go; wire ck;nand #( period/2) u1 (ck, ck, go);initialbegin go = 0; #(period) go = 1;end注意:注意:在行為描述中,在時間0將CK初始化為0;而在結(jié)構(gòu)描述中,直到period/2才影響CK值。當(dāng)go信號在時間0初始化時,CK值到period/2才變化??梢允褂锰厥饷頵orce和release立即影響CK值。產(chǎn)生的波形(假定產(chǎn)生的波形(假定period為為20)例例2:有不規(guī)則啟動延時的不對稱時鐘的例子:有不規(guī)則啟動延時的不對稱時鐘的例子:注意:注意:在行為描述中,CK值立刻被影響;而在結(jié)構(gòu)描述
21、中,在傳播延時后才輸出正確波形。產(chǎn)生的波形(假定產(chǎn)生的波形(假定period為為20)reg ck;initial begin #(period + 1) ck = 1; #(period/2 1) forever begin #(period/4) ck = 0; #(3*period/4) ck = 1; endendreg go; wire ck;nand #(3*period/4, period/4) u1(ck, ck, go);initial begin #(period/4 + 1) go = 0; #(5*period/4 1) go = 1;end例例3:在:在test bench中使用中使用task可以壓縮重復(fù)操作,提高代碼可以壓縮重復(fù)操作,提高代碼效率。效率。module bus_ctrl_tb; reg 7: 0 data; reg data_valid, data_rd; cpu u1 (data_valid, data,data_rd); initial begin cpu_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三體讀書筆記
- 簡歷的自我評價(合集15篇)
- 售后客服工作總結(jié)合集15篇
- xxx生態(tài)養(yǎng)豬場建設(shè)產(chǎn)業(yè)化項目商業(yè)計劃書
- 南京某煤氣站鋼結(jié)構(gòu)氣柜施工組織設(shè)計
- 房地產(chǎn)銷售個人季度工作總結(jié)(合集六篇)
- 七年級人教版復(fù)習(xí)提綱
- 《職場溝通》電子教案 項目十 商務(wù)宴請溝通(4課時)
- 2025年硅力敏傳感器項目發(fā)展計劃
- 門面房出租合同范文
- 雙塊式無砟軌道道床板裂紋成因分析應(yīng)對措施
- FZ∕T 62044-2021 抗菌清潔巾
- 國家電網(wǎng)有限公司十八項電網(wǎng)重大反事故措施(修訂版)
- 凈水廠課程設(shè)計
- 全級老年大學(xué)星級學(xué)校達標(biāo)評價細(xì)則
- 模具維護保養(yǎng)PPT課件
- 《新媒體文案寫作》試卷4
- 【模板】OTS認(rèn)可表格
- 2021國家開放大學(xué)電大本科《流行病學(xué)》期末試題及答案
- 中國銀行_境外匯款申請表模板(練手)
- 中班數(shù)學(xué)活動《圖圖家請客》教案
評論
0/150
提交評論