Verilog所有知識點_第1頁
Verilog所有知識點_第2頁
Verilog所有知識點_第3頁
Verilog所有知識點_第4頁
Verilog所有知識點_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Verilog基礎(chǔ):1.間隔符:空格(b),Tab(t),換行符(n),換頁符。2.注釋:/*/ /3.標識符,關(guān)鍵詞:標識符由英文字母、數(shù)字、$符、下劃線組成,以英文字母或下劃 線開頭。4.邏輯值:0:邏輯假1:邏輯真x或X:不確定狀態(tài)z或Z:高阻態(tài)5. 常量:<1>格式: <+/-><位寬><基數(shù)符號><數(shù)值>b/o/d/h:二、八、十、十六進制<2>數(shù)字可加下劃線:8b1001_1001表示8位二進制數(shù)10011001<3>科學計數(shù):5E-4: 5*104<4>利用參數(shù)定義語句來定義一個標識符

2、表示常量:parameter 參數(shù)名1=常量1,參數(shù)名2=常量2;例: parameter BIT=1,BYTE=8;6. 字符串:雙撇號內(nèi)的字符序列,不能分多行書寫,表達式或賦值語句中字符串要換成 無符號整數(shù),用8位ASCII碼表示,一個8位ASCII碼表示一個字符變量的數(shù)據(jù)類型:1. 線網(wǎng)(net type)類型:線網(wǎng)類被定義后若沒有被元件驅(qū)動,則默認值為高阻態(tài) 關(guān)鍵詞:wire: wiren-1:0變量名1,變量名2,變量名n;除wire外還有wand、wor、tri、triand、trior、trireg2. 寄存器類型:寄存器型變量只能在initial或always內(nèi)被賦值,沒被賦值

3、默認為x狀態(tài)。4種類型的寄存器變量:<1>reg:行為描述中對寄存器型變量說明 <2>integer:32位有符號整數(shù)型 <3>real:64位有符號實型變量(默認值是0) <4>time:64位無符號時間型reg:格式:regn-1:0變量名1,變量名n;例:integer counter; initial /initial是過程語句結(jié)構(gòu),賦值給寄存器類型變量 counter=-1;real:通常用于對實數(shù)型常量進行儲存運算例:real delta; initial begin delta=4e10; delta=2.13 end intege

4、r i; initial i=delta; /i得到的值為2time:主要用于儲存仿真時間,只儲存無符號整數(shù),常調(diào)用系統(tǒng)函數(shù)$time例:time current_time;initialcurrent_time=$time;Verilog 基本結(jié)構(gòu)module 模塊名(端口名1,端口名2,)端口類型說明(input,output,inout)/inout是雙向端口參數(shù)定義;/將常量用符號常量代替,非必須結(jié)構(gòu)數(shù)據(jù)類型定義(wire,reg等)實例化底層模塊和基本門級元件;連續(xù)賦值語句(assign);過程塊結(jié)構(gòu)(initial和always);行為描述語句;endmodule描述方式:結(jié)構(gòu)描述

5、方式:調(diào)用其他已定義好的底層模塊對整個電路進行描述,或直 接調(diào)用基本門級元件描述。數(shù)據(jù)流描述方式:使用連續(xù)賦值語句對電路邏輯功能進行描述。行為描述方式:使用過程塊語句結(jié)構(gòu)(initial,always)。組合邏輯電路門級建?;鹃T級元件:and:多輸入及門 or:多輸入或門 xor:多輸入異或門buf:多輸出緩沖器 bufif1:高電平有效三態(tài)緩沖器 bufif0:低電平有效三態(tài)緩沖器nand:多輸入及門 nor:多輸入或非門 xnor:多輸入異或非門not:多輸入反相器 notif1:高電平有效三態(tài)反相器notif0:低電平有效三態(tài)反相器多輸入門:and A1(out,in1,in2,in3

6、);多輸出門:buf B1(out1,out2,in);三態(tài)門:bufif1 B1(out,in,ctrl); notif1 N1(out,in,ctrl);組合邏輯電路數(shù)據(jù)流建模 數(shù)據(jù)流建模使用的基本語句是連續(xù)賦值語句,用于對wire型變量進行賦值,由關(guān)鍵詞assign開始,由操作數(shù)和運算符組成的邏輯表達式。 2選1數(shù)據(jù)選擇器:wire A,B,SEL,L;assign L=(A&SEL)|(B&SEL);組合邏輯電路行為級建模 描述數(shù)字邏輯電路的功能和算法,使用always結(jié)構(gòu),后面跟一系列過程賦值語句,給reg類型變量賦值。1. 條件語句:if: if(condition

7、_expr)true_statement;if(condition_expr)true_statement; else fale_statement;if(condition_expr1)true_statement1; else if(condition_expr2)true-statement2; else default_statement;注:if括號中的表達式若為0,z或x都按“假”處理,否則按“真”處理。2. 多支路分支語句:case: case(case_expr)item_expr1: statement1;item_expr2:statement2;default: defa

8、ult_statement; /可省略endcase注:若分支后的語句是多條語句,要在多余語句前加上begin,最后加上end。3. always: always (循環(huán)執(zhí)行條件) 表示括號內(nèi)的任意一個變量發(fā)生變化時,其下面的過程賦值語句就執(zhí)行一次,執(zhí)行完最后一句時,執(zhí)行掛起,等待變量發(fā)生變化,圓括號內(nèi)的變量被稱為敏感變量。注:敏感變量互相之間用or連接 只能給寄存器變量賦值(reg型)。用verilog描述鎖存器和觸發(fā)器1. 時序電路建模:always (事件控制表達式/敏感事件表)begin 塊內(nèi)局部變量的定義; 過程賦值語句; /左邊的變量必須為寄存器數(shù)據(jù)類型,右邊隨意end敏感事件分兩

9、種類型:電平敏感,邊沿觸發(fā)電平敏感:always (SEL or a or b)SEL,a,b中任意一個信號電平發(fā)生變化則后面的語句執(zhí)行一次。邊沿觸發(fā):posedge(上升沿) negedge(下降沿)always (posedge CP or posedge CR)時鐘信號CP上升沿到來或清零信號CR跳變?yōu)榈?電平時,執(zhí)行之后的語句。always內(nèi)部的賦值語句:阻塞型賦值語句(=號賦值),非阻塞型賦值語句(<=號賦值)阻塞型賦值語句:按語句由上到下的順序進行賦值,即有 先后順序非阻塞型賦值語句:并行執(zhí)行,所有語句同時執(zhí)行賦值注:一個語句塊(beginend)中只允許使用一種類型的賦值方

10、式,時序電路中采用非阻塞型賦值語句。用verilog描述時序邏輯電路1. 移位寄存器的Verilog建模:左移:Q<=Dsl,Q3:1將左移輸入端Dsl的數(shù)據(jù)直接傳給輸出Q3,Q3->Q2,Q2->Q1,Q1->Q0 (Q3:1傳給Q2:0)右移:Q<=Q3:0,Dsr;module Test_shift74194(S1,S0,D,Dsl,Dsr,Q,CP,CR);input S1,S0;input Dsl,Dsr;input CP,CR;input 3:0D;output 3:0Q;reg 3:0Q;always (posedge CP or negedge C

11、R)if(CR)Q<=4'b0000;else case (S1,S0)2'b00:Q<=Q;2'b01:Q<=Q2:0,Dsr;2'b10:Q<=Dsl,Q3:1;2'b11:Q<=D; endcaseendmodule2. 計數(shù)器的Verilog建模:a) 同步二進制計數(shù)器:module counter(CEP,CET,PE,D,CP,CR,Q,TC);input CEP,CET,PE,CP,CR;input 3:0D;output TC;output 3:0Q;reg 3:0Q;wire CE;assign CE=CE

12、P&CET;assign TC=CET&(Q=4'b1111);always (posedge CP or negedge CR)if(CR)Q<=4'b0000;else if(PE)Q<=D;else if(CE)Q<=Q;else Q<=Q+1'b1;endmoduleb)異步二進制計數(shù)器:module ripplecounter(Q0,Q1,Q2,Q3,CP,CR);output Q0,Q1,Q2,Q3;input CP,CR;D_FF FF0(Q0,Q0,CP,CR);D_FF FF1(Q1,Q1,Q0,CR);D_FF

13、 FF2(Q2,Q2,Q1,CR);D_FF FF3(Q3,Q3,Q2,CR);endmodulemodule D_FF(Q,D,CP,Rd);output Q;input D,CP,Rd;reg Q;always (negedge CP or negedge Rd)if(Rd)Q<=1'b0;else Q<=D;endmodulec)非二進制計數(shù)器:module m10_counter(CE,CP,CR,Q);input CE,CP,CR;output 3:0Q;reg 3:0Q;always (posedge CP or negedge CR)if(CR)Q<=4

14、'b0000;else if(CE)begin if (Q>=4'b1001)Q<=4'b0000;else Q<=Q+1'b1;endelse Q<=Q;endmodule所有實驗代碼及電路波形:十進制可逆計數(shù)器實驗:代碼一(可逆計數(shù)器):module kenijishuqi(set,cin,clk,clr,upd,q,co);input clk,clr,upd,set;input3:0 cin ;output reg co;output reg3:0q;always(posedge clk or negedge clr)begin i

15、f(!clr) if(!set)/clear 0 begin q=cin; end else begin q=0;co=0; end else begin if(upd)/add counter begin if(q=4'd8)co=1'b1;/when q=1000b,co=1 else co=0;/else co=0 if(q<4'd9)q=q+1'b1;/when q<=1000b, else q=0;/q=1001 next q=0000 end else/decrese begin if(q=1)co=1'b1; else co=0

16、; if(q>0)q=q-1'b1; else q=4'd9; end endendendmodule代碼二(BCD碼-七段譯碼器):module decode4_7(codeout,indec);input 3:0indec; output 6:0codeout;reg 6:0codeout;always (indec)begin case (indec)4'd0: codeout=7'b1111110;4'd1: codeout=7'b0110000;4'd2: codeout=7'b1101101;4'd3:

17、codeout=7'b1111001;4'd4: codeout=7'b0110011;4'd5: codeout=7'b1011011;4'd6: codeout=7'b1011111;4'd7: codeout=7'b1110000;4'd8: codeout=7'b1111111;4'd9: codeout=7'b1111011;default: codeout=7'bx;endcaseendendmodule移位器使用74198,不用代碼:Pw脈沖控制m:代碼一:module swm_1(clk,out10khz);input clk;reg 12:0 q5000;output reg out10khz;always(posedge clk)begin if(q5000<=2499) begin q5000<=q5000+1; out10khz<=1; end else if(q5000<=4999) begin q5000<=q5000+1; out10khz<=0; end else q5000<=0; end endmodule代碼二:module swm_2(clk

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論