VerriogHDL學(xué)習(xí)總結(jié)筆記_第1頁
VerriogHDL學(xué)習(xí)總結(jié)筆記_第2頁
VerriogHDL學(xué)習(xí)總結(jié)筆記_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、下面是一個簡單的 Verliog HDL的例子。 module reg12(d, clk,q);defi ne size 11in put size:0 d;in put clk;output size:0 q;reg size:0 q;always(posedge clk)q=d;en dmoduleVerilog HDL的基本設(shè)計單元是 模塊(block) ”。一個模塊由兩部分組成:一部分描述接口,一部分描述邏輯功能,即定義輸入是如何影響輸出的。每個程序包括四個主要部分:端口定義、I/O說明、信號類型和功能描述。有3中方法可以在模塊中描述邏輯。1、用 assign 語句 assign A=

2、B&C;assign語句一般適合于對組合邏輯進(jìn)行賦值。稱為連續(xù)賦值方式。2、 用原件例化or myor3(a,b,c,d);這個語句定義了一個 3輸入的 或門3、用 always 塊語句 always(posedge clk) q=d上句表示每當(dāng)時鐘上升沿到來時執(zhí)行一遍塊內(nèi)的語句。4、 assign # 2B = A ;表示B信號在2個時間單位后得到 A信號的值。常用的賦值語句:連續(xù)賦值語句和過程賦值語句 連續(xù)賦值語句:assign,用于對wire型變量賦值。過程賦值語句:用于對寄存器型變量賦值,有以下2種賦值方式。1、 非阻塞賦值方式,=,該方式在塊結(jié)束時才完成賦值操作。2、阻塞賦值方式,=

3、,在該語句結(jié)束是就完成賦值操作。綜合是將電路的高級語言轉(zhuǎn)化為低級的,可與FPGACPLD或構(gòu)成ASIC的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件或程序。綜合包括編譯,轉(zhuǎn)換,調(diào)度,分配,控制器綜合和結(jié)果的生 成等幾個步驟。RTL代碼在下載到板子上這個過程之前,要做一個綜合、布局、布線,按照FPGA的要求,綜合成電路,然后講 bit流文件下到FPGA開發(fā)板上,一句話,下板子之前,肯定得綜 合,只是這部分你做的很快(可能電路比較小,綜合很快)。你要下載,肯定得生成可以下載到板子里的一種文件,比如bit流等,肯定就包含綜合這個步驟,只是很快,你看看你軟件界面上,有沒有 synthesize這個選項(肯定有),還

4、有布局步線(map 等)。基本的數(shù)據(jù)類型和常量、變量、信號1、常量:程序運(yùn)行過程中值不變的量。完整的數(shù)字表達(dá)式為:位寬 ?進(jìn)制數(shù)字位寬是對應(yīng)二進(jìn)制數(shù)字的寬度2、變量分為兩種:網(wǎng)絡(luò)型和寄存器型nets型變量:輸出始終根據(jù)輸入的變化而更新其值的變量。一般指的是硬件電路中的各種 物理連接。類型功能說明Wire tri連線類型Wor trior具有線或特性的連線Wandtria nd具有線或特性的連線Tri1 tri0分別為上拉電阻和上拉電阻Supplyl、supplyO分別為電源“ 和地“ 0”register型變量:對應(yīng)的是具有狀態(tài)保持作用的電路元件,如觸發(fā)器,寄存器等。它與nets型變量的根本區(qū)

5、別在于: 它需要明確賦值,并且在被重新賦值前一直保持原值。 設(shè)計中必須 將寄存器變量放在過程塊語句(如 initial、always )中,通過過程賦值語句賦值。數(shù)組:若干個寬度相同的向量,reg型數(shù)組變量即為 memory型變量,可定義存儲器型數(shù)據(jù)。 如:reg7:0 a255:0;定義了一個256個字節(jié),每個字節(jié)寬度為8位的存儲器。數(shù)據(jù)類型 整數(shù)(INTEGER )、實(shí)數(shù)(REAL )、位(BIT)、位矢量(BIT_VECTOR )、標(biāo)準(zhǔn) 邏輯(STD_LOGIC_VECTOR )、布爾量(BOOLEAN )、字符(CHARACTER )、字符串(STRING )及時間(TIME)類型。典

6、型電路的設(shè)計:1、簡單的組合邏輯設(shè)計例:可綜合的數(shù)據(jù)比較器,功能是比較數(shù)據(jù)a和數(shù)據(jù)b,相同給出結(jié)果1,否則給0。/compare.vmodule compare(equal,a,b);in put a,b;output equal;assig n equal=(a=b)?1:0;en dmodule2、簡單時序邏輯電路的設(shè)計例:1/2分頻器的可綜合模型.通常使用always塊和 (posedge clk )或(negedge clk )的結(jié)構(gòu)來表述時序邏輯。half_clk.v:module half_clk(reset,clk_i n, clk_out);in put clk_i n,res

7、et;output clk_out;reg clk_out;always(posedge clk_in)beg inif(!reset)clk_out=0;else clk_out=-clk_out;enden dmodule在always塊中,被賦值的信號都必須定義為reg型,這是由時序邏輯電路的特點(diǎn)所決定的。對于reg型數(shù)據(jù),如果未對它進(jìn)行賦值,仿真工具會認(rèn)為它是 不定態(tài)。為了能正確地觀察到仿真結(jié)果,在可綜合風(fēng)格的模塊中我們通常定義一 個復(fù)位信號reset,當(dāng)reset為低電平時,對電路中的寄存器進(jìn)行復(fù)位。3、利用條件語句實(shí)現(xiàn)較復(fù)雜的時序邏輯電路常用的條件語句有if.else(用于不復(fù)雜的

8、分支關(guān)系)和 caseendcase (編寫可綜合的模塊,特別是用狀態(tài)機(jī)構(gòu)成的模塊)兩種結(jié)構(gòu)。注意: if指令在 使用時應(yīng)注意else的內(nèi)容,如果沒有else狀態(tài),則輸出會保持先前的狀態(tài),可 能會生成意想不到的鎖存器。例:將10M的時鐘分頻成500KHZ的時鐘,它的基本原理和1/2分頻一樣,但 是需要定義一個計數(shù)器,以便準(zhǔn)確獲得1/20分頻。module fdivisio n(RESET,F10M,F500K);in put F10M,RESET;output F500K;reg F500K;reg 7:0 j;always(posedge F10M)if(!RESET)低電平復(fù)位Begi n

9、F500K=0;j=0;endelsebeg inif(j=19)對計數(shù)器進(jìn)行判斷,以確定F500K是否反轉(zhuǎn)j=0;F500K=F500K;endelsejy)beg in tmp=x; x=y; y=tmp;enden dtask en dmodule注意:task中的變量定義與模塊中的變量定義不盡相同,它們不受輸入 /輸 出類型的限制。如此例。x與y對于task2來說雖然是in out型,但實(shí)際上它們 對應(yīng)的是always塊中的變量,都是reg型變量。6、設(shè)計時序邏輯時采用阻塞賦值與非阻塞賦值的區(qū)別在always塊中,阻塞賦值可以理解為賦值語句是順序執(zhí)行的,而非阻塞賦 值可以理解為賦值語句

10、是并發(fā)執(zhí)行的。實(shí)際的時序邏輯設(shè)計中,一般的情況下非阻塞賦值語句被更多地使用,有時為了在同一周期實(shí)現(xiàn)相互關(guān)聯(lián)的操作,也使用了阻塞賦值語句。(注意:在實(shí)現(xiàn)組合邏輯的assign結(jié)構(gòu)中,無一例外地都必須 采用阻塞賦值語句。下例通過分別采用阻塞賦值語句和非阻塞賦值語句的兩個看上去非常相似的兩個模塊blocking.v和non_blocking.v來闡明兩者之間的區(qū)別。/ blocki ng.vmodule block in g(clk,a,b,c);output 3:0 b,c;in put 3:0 a;in put clk;reg 3:0 b,c;always (posedge clk)beg in

11、b = a;c = b;$display(Blocki ng: a = %d, b = %d, c = %d.,a,b,c);enden dmodule/ no n_blocki ng.v -module non _block in g(clk,a,b,c);output 3:0 b,c;in put 3:0 a;in put clk;reg 3:0 b,c;always (posedge clk)begi nb = a;c = b;$display(Non_Blocki ng: a = %d, b = %d, c = %d.,a,b,c); enden dmodule1、基本組合邏輯運(yùn)算 與或非,異或,與非門LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTIT simp_a nd ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC)END simp_a nd;ARCHITECTURE maxpld OF simp-a nd IS BEGINc=a AND b;creats an AND gatec=a OR b;-c=a XOR b;產(chǎn)生一個異或門c=b)THENc=a;ELSEc=b;END IF;END PRO

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論