
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、verilog學(xué)習(xí)手記一設(shè)計(jì)輸入(verilog語言描述系統(tǒng)) 前仿真(驗(yàn)證設(shè)計(jì)系統(tǒng)的功能) 編譯和綜合(把設(shè)計(jì)的各個(gè)部分翻譯成一個(gè)中間格式,再把全部部分銜接起來,生成對(duì)應(yīng)的規(guī)律,然后再目標(biāo)硬件上布局布線,生成時(shí)序信息) 后仿真(考慮時(shí)序信息,修改設(shè)計(jì)) 生成硬件電路 所謂的寄存器傳輸級(jí)(rtl)描述指的就是:數(shù)據(jù)在總線以及寄存器與寄存器之間的傳遞,用高層次的語法來描述一個(gè)所要設(shè)計(jì)的系統(tǒng),將這個(gè)設(shè)計(jì)分成若干小模塊,用總線將其銜接搭建起來,然后再描述以及實(shí)現(xiàn)這些小模塊的設(shè)計(jì)辦法。 用rtl級(jí)描述verilog結(jié)構(gòu)包括三種形式: 過程解釋:過程化的描述系統(tǒng),例如用法if ee和case等過程結(jié)構(gòu);
2、 延續(xù)賦值:描述系的規(guī)律塊,總線賦值和總線輸入、輸出互聯(lián)線; 例化解釋:高層次的設(shè)計(jì)挺直引用低層次的模塊,用低層次的原件挺直搭建一個(gè)完整的系統(tǒng)。 所謂前仿真:即是不考慮系統(tǒng)的線延遲、門延遲等時(shí)序問題(競(jìng)爭(zhēng)冒險(xiǎn),毛刺,建立保持時(shí)光),而僅僅是想從行為上推斷系統(tǒng)是否能夠達(dá)到設(shè)計(jì)目的;后仿真則是針對(duì)建立的硬件模型,要考慮完整的時(shí)序信息(又編譯和綜合生成),如時(shí)光延遲、時(shí)鐘頻率、門級(jí)延遲、電路的建立保持時(shí)光等問題,重新仿真,以便修改設(shè)計(jì)。 rtl的設(shè)計(jì)首先將設(shè)計(jì)分成數(shù)據(jù)部分以及控制部分。數(shù)據(jù)部分又叫數(shù)據(jù)單元、數(shù)據(jù)通道:包括寄存器、組合規(guī)律單元、寄存器陣列、銜接它們的總線,它的輸入輸出來自外部,控制信號(hào)
3、來信控制單元,同時(shí)也可以反饋給控制單元控制信號(hào);控制部分又叫控制單元,通常由一個(gè)或多個(gè)狀態(tài)機(jī)構(gòu)成,接受并反饋給外部控制信號(hào)。如下圖(1)所示: 圖(1) verilog模塊的描述方式: 原語例化:所謂原語(基元)指的是最基本的規(guī)律門。該方式就是在設(shè)計(jì)中挺直調(diào)用這些原語。 延續(xù)賦值:用布爾表達(dá)式來描述規(guī)律關(guān)系,常用assign語句舉行賦值。 條件表達(dá)式:w = s ? a :b ,若s=1,則w=a;否則,w=b。 過程塊: 常用always,if else和case等過程結(jié)構(gòu)。 模塊例化: 將自己設(shè)計(jì)的模塊當(dāng)做原語調(diào)用。該方式要注重調(diào)用模塊的實(shí)際端口要與電路中的信號(hào)端口要對(duì)應(yīng)精確。例如:全加器
4、full_aer(input a,b,output m,count), 舉行模塊例化為 full_adder u1(.a(u1_a),.b(u1_b),.sum(u1_sum),.count(u1_count),書寫格式為: 以(.)開始,后面緊跟調(diào)用模塊的實(shí)際端口,括號(hào)內(nèi)書寫電路中的信號(hào)端口。 或者例化為; full_adder u1(u1_a,u1_b,u1_sum,u1_count), 格式為:根據(jù)對(duì)應(yīng)位置書寫。 wire與reg類型的區(qū)分: wire型數(shù)據(jù)常用來表示以assign關(guān)鍵字指定的組合規(guī)律信號(hào)。模塊的輸入輸出端口類型都默認(rèn)為wire型。默認(rèn)初始值是z。 reg型表示的寄存器類
5、型。always模塊內(nèi)被賦值的信號(hào),必需定義為reg型,代表觸發(fā)器。 默認(rèn)初始值是x。 reg相當(dāng)于存儲(chǔ)單元,wire相當(dāng)于物理連線。 verilog 中變量的物理數(shù)據(jù)分為線型和寄存器型。這兩種類型的變量在定義時(shí)要設(shè)置位寬,缺省為1位。變量的每一位可以是0,1,x,z。其中x代表一個(gè)未被預(yù)置初始狀態(tài)的變量或者是因?yàn)橛蓛蓚€(gè)或多個(gè)驅(qū)動(dòng)裝置試圖將之設(shè)定為不同的值而引起的矛盾型線型變量。z代表高阻狀態(tài)或浮空量。 線型數(shù)據(jù)包括wire,wand,wor等幾種類型在被一個(gè)以上激勵(lì)源驅(qū)動(dòng)時(shí),不同的線型數(shù)據(jù)有各自打算其終于值的辨別方法。 兩者的區(qū)分是:寄存器型數(shù)據(jù)保持最后一次的賦值,而線型數(shù)據(jù)需要持續(xù)的驅(qū)動(dòng)
6、輸入端口可以由net/reg驅(qū)動(dòng),但輸入端口只能是net,如a = b c,輸入端口a 只能是net型,但其驅(qū)動(dòng)b,c可以是net/reg型;輸出端口可以是net/reg類型,輸出端口只能驅(qū)動(dòng)net,如a = b c,模塊的輸出端口b,c可以是net/reg型,但它們驅(qū)動(dòng)的a必需是net型;若輸出端口在過程塊(always/initial)中賦值則為reg型,若在過程塊外賦值則為net型。用關(guān)鍵詞inout聲明一個(gè)雙向端口, inout端口不能聲明為寄存器類型,只能是net類型。 wire表示直通,即只要輸入有變幻,輸出馬上無條件地反映;reg表示一定要有觸發(fā),輸出才會(huì)反映輸入。 不指定就默認(rèn)
7、為1位wire類型。特地指定出wire類型,可能是多位或?yàn)槭钩绦蛞鬃x。wire只能被assign延續(xù)賦值,reg只能在initial和always中賦值。wire用法在延續(xù)賦值語句中,而reg用法在過程賦值語句中。 在延續(xù)賦值語句中,表達(dá)式右側(cè)的計(jì)算結(jié)果可以立刻更新表達(dá)式的左側(cè)。在理解上,相當(dāng)于一個(gè)規(guī)律之后挺直連了一條線,這個(gè)規(guī)律對(duì)應(yīng)于表達(dá)式的右側(cè),而這條線就對(duì)應(yīng)于wire。在過程賦值語句中,表達(dá)式右側(cè)的計(jì)算結(jié)果在某種條件的觸發(fā)下放到一個(gè)變量當(dāng)中,而這個(gè)變量可以聲明成reg類型的。按照觸發(fā)條件的不同,過程賦值語句可以建模不同的硬件結(jié)構(gòu):假如這個(gè)條件是時(shí)鐘的升高沿或下降沿,那么這個(gè)硬件模型就是一
8、個(gè)觸發(fā)器;假如這個(gè)條件是某一信號(hào)的高電平或低電平,那么這個(gè)硬件模型就是一個(gè)鎖存器;假如這個(gè)條件是賦值語句右側(cè)隨意操作數(shù)的變幻,那么這個(gè)硬件模型就是一個(gè)組合規(guī)律。 wire型的變量綜合出來普通是一根導(dǎo)線;reg變量在always塊中有兩種狀況: always后的敏感表中是(a or b or c)形式的,也就是不帶時(shí)鐘邊沿的,綜合出來還是組合規(guī)律 always后的敏感表中是(posge clk)形式的,也就是帶邊沿的,綜合出來普通是時(shí)序規(guī)律,會(huì)包含觸發(fā)器(flipflop) 在設(shè)計(jì)中,輸入信號(hào)普通來說你是不知道上一級(jí)是寄存器輸出還是組合規(guī)律輸出,那么對(duì)于本級(jí)來說就是一根導(dǎo)線,也就是wire型。而
9、輸出信號(hào)則由你自己來打算是寄存器輸出還是組合規(guī)律輸出,wire型、reg型都可以。但普通的,囫圇設(shè)計(jì)的外部輸出(即最頂層模塊的輸出),要求是寄存器輸出,較穩(wěn)定、扇出能力也較好。 verilog延遲語句的運(yùn)用 mole full_adder(a,b,sum); input a,b; output reg sum; always (a,b) 13 sum = (a b) ; 或者 always (a,b) sum = 13 (a b) ; endmodule 注重到兩個(gè)always語句的延遲語句的位置不同,后一個(gè)語句稱為內(nèi)部指定延遲。 第一個(gè)always語句解釋在a或b變幻后,先堵塞運(yùn)行,延遲13
10、ns,再按照當(dāng)前的a,b的值,計(jì)算sum的值。這就導(dǎo)致計(jì)算得到的sum值可能與13ns之前的不一樣。 其次個(gè)always語句表示的是a或b變幻后,立刻計(jì)算當(dāng)前的sum值,13ns后將該值賦給sum,得到的是13ns之前的值。 在相同的testbeh下仿真: module test_fulladder; / inputs reg a; reg b; / outputs wire sum; / instantiate the unit under test (uut) full_adder uut (.a(a), .b(b), .sum(sum) ); initial begin / initialize inputs a = 0; b = 0; / wait 100 ns for global .html' target='_blank'>reset to finish 10 a =1; 11 b =1; 11 a =0; 25 a = 1; / add stimulus here end endmodule 結(jié)果如下: 第一個(gè)always語句對(duì)應(yīng)的圖 其次個(gè)always語句對(duì)應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市綠化提升協(xié)議
- 不良反應(yīng)處理協(xié)議
- 個(gè)人品牌與服務(wù)商鋪出租協(xié)議
- 冷庫加入?yún)f(xié)議
- 外語培訓(xùn)師錄用合同
- 否認(rèn)條款協(xié)議
- 2024年福清城投集團(tuán)水投集團(tuán)人才引進(jìn)考試真題
- 四年級(jí)班主任志愿服務(wù)計(jì)劃
- 2025至2031年中國(guó)冷補(bǔ)膠水行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年安徽省宿州市單招職業(yè)傾向性考試題庫帶答案
- 基于STM32Cube的嵌入式系統(tǒng)應(yīng)用 教案
- 動(dòng)畫分鏡頭腳本設(shè)計(jì)課件
- DB37T 5245-2022 橋梁智慧健康監(jiān)測(cè)技術(shù)標(biāo)準(zhǔn)
- 學(xué)校餐廳除蟲滅害記錄表
- 落地式鋼管腳手架驗(yàn)收記錄表
- 供應(yīng)商變更申請(qǐng)表
- 冢本監(jiān)督的番號(hào)前綴及一些簡(jiǎn)介
- 放射診療機(jī)構(gòu)放射治療診療科目放射防護(hù)管理情況自查表
- 幼兒教師口語(學(xué)前教育專業(yè)高職)PPT完整全套教學(xué)課件
- 電壓互感器試驗(yàn)報(bào)告
- 中學(xué)體育教學(xué)設(shè)計(jì)PPT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論