版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Verilog基礎(chǔ):
1.間隔符:空格(\b),Tab(\t),換行符(\n),換頁(yè)符。
。2.注釋:/**///
。3.標(biāo)記符,關(guān)鍵詞:標(biāo)記符由英文字母、數(shù)字、$符、下劃線組成,以英文字母或下劃。
。線開(kāi)頭。
4.邏輯值:0:邏輯假1:邏輯真。x或X:不擬定狀態(tài)。z或Z:高阻態(tài)
5.常量:<1>格式:<+/-><位寬>,<基數(shù)符號(hào)><數(shù)值>
b/o/d/h:二、八、十、十六進(jìn)制
<2>數(shù)字可加下劃線8b1001_1001表達(dá)8位二進(jìn)制數(shù)10011001
<3>科學(xué)計(jì)數(shù):5E-4:5*10A4
<4>運(yùn)用參數(shù)定義語(yǔ)句來(lái)定義一個(gè)標(biāo)記符表達(dá)常量:parameter參數(shù)名1=
常量1,參數(shù)名2=常量2;
例:parameterBIT=1,BYTE=8;
6.字符串:雙撇號(hào)內(nèi)的字符序列,不能分多行書(shū)寫(xiě),表達(dá)式或賦值語(yǔ)句中字符串要換
成。無(wú)符號(hào)整數(shù),用8位ASCII碼表達(dá),一個(gè)8位ASCII碼表達(dá)一個(gè)字
符
變量的數(shù)據(jù)類型:
1.線網(wǎng)(nettype)類型:線網(wǎng)類被定義后若沒(méi)有被元件驅(qū)動(dòng),則默認(rèn)值為高阻態(tài)
關(guān)鍵詞:wire:wire[n—1:0]變量名1,變量名2,…,變量
名n;
除wire外尚有wand、wor、tri、triand,trior、trire
g
2.寄存器類型:
寄存器型變量只能在initial或always內(nèi)被賦值,沒(méi)被賦值默認(rèn)為x狀態(tài)。
4種類型的寄存器變量:<l>reg:行為描述中對(duì)寄存器型變量說(shuō)明
<2>integer:32位有符號(hào)整數(shù)型
<3>real:64位有符號(hào)實(shí)型變量(默認(rèn)值是0)
<4>time:64位無(wú)符號(hào)時(shí)間型
@reg:格式:reg[n?l:0]變量名1,變量名n;
例:integercounter;
initial//initial是過(guò)程語(yǔ)句結(jié)構(gòu),賦值給寄存器類型變量
counter=-l;
③rea1:通常用于對(duì)實(shí)數(shù)型常量進(jìn)行儲(chǔ)存運(yùn)算
例:realde1ta;
initia1
begin
de1ta=4elO;
delta=2.13
end
integeri;
initiali=deIta;//i得到的值為2
?time:重要用于儲(chǔ)存仿真時(shí)間,只儲(chǔ)存無(wú)符號(hào)整數(shù),常調(diào)用系統(tǒng)函數(shù)$lime
例:timecurrent_time;
initial
current_time=$time;
Veri1og基本結(jié)構(gòu)
modu1e模塊名(端口名1,端口名2,…)
端口類型說(shuō)明(input,output,inout)//inout是雙向端口
參數(shù)定義;〃將常量用符號(hào)常量代替,非必須結(jié)構(gòu)
數(shù)據(jù)類型定義(wire,reg等)
實(shí)例化底層模塊和基本門級(jí)元件;
連續(xù)賦值語(yǔ)句(assign);
過(guò)程塊結(jié)構(gòu)(initia1和always);
行為描述語(yǔ)句;
endmodu1e
描述方式:①結(jié)構(gòu)描述方式:調(diào)用其他已定義好的底層模塊對(duì)整個(gè)電路進(jìn)行描述,或直。
接調(diào)用基本門級(jí)元件描述。
②數(shù)據(jù)流描述方式:使用連續(xù)賦值語(yǔ)句對(duì)電路邏輯功能進(jìn)行描述。
③行為描述方式:使用過(guò)程塊語(yǔ)句結(jié)構(gòu)(iniiia1,always)?
組合邏輯電路門級(jí)建模
基本門級(jí)元件:and:多輸入與門or:多輸入或門xor:多輸入異或門
buf:多輸出緩沖器bufifl:高電平有效三態(tài)緩沖器
bufifO:低電平有效三態(tài)緩沖器
nand:多輸入與門nor:多輸入或非門xnor:多輸入異或非門
not:多輸入反相器notifl:高電平有效三態(tài)反相器
notifO:低電平有效三態(tài)反相器
①多輸入門:andA1(out,in1,in2,in3);
②多輸出門:bufB1(outl,out2,???,in);
③三態(tài)門:bufiflB1(out,in,ctri);
notif1N1(out,in,Ctrl);
組合邏輯電路數(shù)據(jù)流建模
數(shù)據(jù)流建模使用的基本語(yǔ)句是連續(xù)賦值語(yǔ)句,用于對(duì)wire型變量進(jìn)行賦值,由關(guān)鍵詞ass
ign開(kāi)始,由操作數(shù)和運(yùn)算符組成的邏輯表達(dá)式。
2選1數(shù)據(jù)選擇器:wireA,B,SEL,L;
assignL=(A&?SEL)|(B&SEL);
組合邏輯電路行為級(jí)建模
描述數(shù)字邏輯電路的功能和算法,使用always結(jié)構(gòu),后面跟一系列過(guò)程賦值語(yǔ)句,給r
eg類型變量賦值。
1.條件語(yǔ)句:if:①if(condition_expr)true_staternent;
②if(condition_expr)true_statement;
eIsefale_statement;
(3)if(condition__exprl)true_statement1;
elseif(condition_expr2)true-statement2;
elsedefau1t_statement;
注:if括號(hào)中的表達(dá)式若為0,z或x都按“假”解決,否則按“真”處。
理。
2.多支路分支語(yǔ)句:case:case(case_expr)
item_expr1:statement1;
item_expr2:statement2;
default:default_statement;〃可省略
endcase
注:若分支后的語(yǔ)句是多條語(yǔ)句,要在多余語(yǔ)句前加上begin,最后加上
oendo
3.always:a1ways@(循環(huán)執(zhí)行條件)表達(dá)括號(hào)內(nèi)的任意一個(gè)變量發(fā)生變化時(shí),其下面
。的過(guò)程賦值語(yǔ)句就執(zhí)行一次,執(zhí)行完最后一句時(shí),執(zhí)行掛起,等待變量發(fā)生變
。化,圓括號(hào)內(nèi)的變量被稱為敏感變量。
注:①敏感變量互相之間用or連接②只能給寄存器變量賦值(reg型)。
用verilog描述鎖存器和觸發(fā)器
1.時(shí)序電路建模:always@(事件控制表達(dá)式/敏感事件表)
begin
塊內(nèi)局部變量的定義;
過(guò)程賦值語(yǔ)句;//左邊的變量必須為寄存器數(shù)據(jù)類型,右邊隨意
end
敏感事件分兩種類型:電平敏感,邊沿觸發(fā)
①電平敏感:aIways@(SELoraorb)
SEL,a,b中任意一個(gè)信號(hào)電平發(fā)生變化則后面的。
語(yǔ)句執(zhí)行一次。
②邊沿觸發(fā):posedge(上升沿)negedge(下降沿)
always@(posedgeCPorposedgeCR)
時(shí)鐘信號(hào)CP上升沿到來(lái)或清零信號(hào)CR跳變?yōu)榈?/p>
電平時(shí),執(zhí)行之后的語(yǔ)句。
always內(nèi)部的賦值語(yǔ)句:阻塞型賦值語(yǔ)句(二號(hào)賦值),非阻塞型賦值語(yǔ)句(。號(hào)賦值)
①阻塞型賦值語(yǔ)句:按語(yǔ)句由上到下的順序進(jìn)行賦值,即有
先后順序
②非阻塞型賦值語(yǔ)句:并行執(zhí)行,所有語(yǔ)句同時(shí)執(zhí)行賦值
注:一■個(gè)語(yǔ)句塊(begin…end)中只允許使用一種類型的賦
。值方式,時(shí)序電路中采用非阻塞型賦值語(yǔ)句。
用verilog描述時(shí)序邏輯電路
1.移位寄存器的Verilog建模:左移:Q<={Dsl,Q[3:l]}
將左移輸入端Dsi的數(shù)據(jù)直接傳給輸出Q[3],
Q[3]->Q[2],Q[2]->Q[1],Q[1]->Q[O](Q[3:H
傳給Q[2;OJ)
右移:Q<={Q[3:0],Dsr};
moduleTest_shift74194(S1,SO,D,DsI,Dsr,Q,CP,CR);
inputS1,SO;
inputDshDsr;
inputCP,CR;
input[3:0]D;
output[3:0]Q;
regE3:0JQ;
aIways@(posedgeCPornegedgeCR)
if(?CR)Q<=4^0000;
else
case({SI,SO})
21600:Q<=Q;
b01:Q<={Q[2:0],Dsr};
2fb10:Q<={Dsl,Q[3:l]};
b11:Q<=D;
endcase
endmodu1e
2,計(jì)數(shù)器的Verilog建模:
a)同步二進(jìn)制計(jì)數(shù)器:
modulecounter(CEP,CET,PE,D,CP,CR,Q,TC);
inputCEP,CET,PE,CP,CR;
input[3:0]D;
outputTC;
output[3:0]Q;
reg[3:0JQ;
wireCE;
assignCE=CEP&CET;
assignTC=CET&(Q==4'bl111);
always@(posedgeCPornegedgeCR)
if(~CR)Q<=4'b0000;
elseif(~PE)Q<=D;
elseif(-CE)Q<=Q;
eIseQ<=Q+l'b1;
endmodule
)ps20.040.0ns60』ns80.0ns100.0ns1200ns140.0ns160.0ns
ValuenS
Name
15.0315.025its
J_
CP_Aj__n匚L_TLnLTT^_^Ln_TLT1LT
91CEPA
D^2CETA
心3CRA—i__r~
■
后4SDA[?I[0]
?9PEA
各10aQA[:]::[2]X(3]X(4]X(5]X(6]X門]X[8]x[£]XioX[o]XCdXC2]X[3]X[4]X[5]
"15TCAI
b)異步二進(jìn)制計(jì)數(shù)器:
moduleripplecounter(Q0,Q1,Q2,Q3,CP,CR);
outputQ0,Q1,Q2,Q3;
inputCP,CR;
D_FFFF0(QO,?QO,CP,?CR);
D_FFFF1(Q1,~Q1,Q0,?CR);
D_FFFF2(Q2,~Q2,Q1,~CR);
D_FFFF3(Q3,?Q3,Q2,?CR);
endmodule
moduleD_FF(Q,D,CP,Rd);
outputQ;
inputD,CP,Rd;
regQ;
always@(negedgeCPornegedgeRd)
if(?Rd)Qv=「bO;
elseQ<=D;
endmodule
c)非二進(jìn)制計(jì)數(shù)器:
modu1em10_counter(CE,CP,CR,Q);
inputCE,CP,CR;
output[3:0]Q;
reg[3:0]Q;
a1ways@(posedgeCPornegedgeCR)
if(-CR)Q<=4,b0000;
eIseif(CE)
beginif(Q>=4'b1001)Q<=4fb0000:
e1seQ<=Q+l'b1;
end
elseQ<=Q;
endmodu1e
所有實(shí)驗(yàn)代碼及電路波形:
十進(jìn)制可逆計(jì)數(shù)器實(shí)驗(yàn):
代碼一(可逆計(jì)數(shù)器):
modulekenijishuqi(set,cin,cIk,cIr,upd,q,co);
inputclk,c1r,upd,set;
input[3:0]cin;
outputregco;
outputreg[3:0]q;
always@(posedgeclkornegedgeclr)
begin
if(!clr)
if(!set)//clear0
begin
q=cin;
end
else
begin
q=0;co=0;
end
else
begin
if(upd)//addcounter
begin
if(q==4*d8)co=1'b1;//whenq=1000b,co=1
elseco=0;//elseco=0
if(q<4'd9)q=q+1*b1;//whenq<=1000b,
elseq=0;//q=1001nextq=0000
end
else//decrese
begin
if(q==l)co=l1bl;
elseco=0;
if(q>0)q=q-l'bl;
elseq=4'd9;
end
end
end
endmodule
代碼二(BCD碼.七段譯碼器):
moduledecode4_7(codeout,indec);
inputL3:01indec;
output[6:0]codeout;
reg[6:0]codeout;
always@(indec)
begin
case(indec)
4*d0:codeout=7'b1111110;
4'd1:codeout=7zb0110000;
4'd2:codeout=7'bl101101;
4'd3:codeout=7,bl111001;
41d4:codeout=7'bO110011;
4'd5:codeout=7rb1011
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京工業(yè)大學(xué)浦江學(xué)院《圖形與標(biāo)志設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 非特異性免疫說(shuō)課稿
- 深圳市萬(wàn)豪御景苑施工組織設(shè)計(jì)
- 南京工業(yè)大學(xué)浦江學(xué)院《企業(yè)家精神》2022-2023學(xué)年第一學(xué)期期末試卷
- 【初中化學(xué)】化學(xué)反應(yīng)的定量關(guān)系單元綜合題-2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)
- 南京工業(yè)大學(xué)浦江學(xué)院《公益組織內(nèi)部治理和戰(zhàn)略管理》2022-2023學(xué)年第一學(xué)期期末試卷
- 精神科責(zé)任自負(fù)協(xié)議書(shū)(2篇)
- 南京工業(yè)大學(xué)《有機(jī)波譜分析》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《無(wú)機(jī)非金屬材料工學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 教育4-5歲幼兒尊重并接納不同群體的實(shí)施方案
- 2024年重慶市高考物理試卷(含答案解析)
- 2019新人教版高中生物選擇性必修二全冊(cè)重點(diǎn)知識(shí)點(diǎn)歸納總結(jié)
- 2023版國(guó)開(kāi)電大本科《高級(jí)財(cái)務(wù)會(huì)計(jì)》在線形考(任務(wù)一至四)試題及答案
- 工業(yè)互聯(lián)網(wǎng)安全技術(shù) 課件全套 魏旻 第1-9章 緒論、工業(yè)互聯(lián)網(wǎng)安全體系架構(gòu) -工業(yè)互聯(lián)網(wǎng)安全測(cè)試
- 痛風(fēng)病完整課件
- 湖北漢江王甫洲水力發(fā)電限責(zé)任公司公開(kāi)招聘工作人員【6人】高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 慢性阻塞性肺疾病案例分析護(hù)理
- 孤殘兒童護(hù)理理論知識(shí)考試題庫(kù)及答案
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題及參考答案
- 2024年計(jì)算機(jī)軟考(初級(jí))網(wǎng)絡(luò)管理員考試題庫(kù)大全(含真題等)
- 北師大版三年級(jí)數(shù)學(xué)上冊(cè)第六單元《乘法》(大單元教學(xué)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論