【文章】明德楊FPGA入門篇_Verilog計(jì)數(shù)器
明德楊FPGA入門篇——Verilog計(jì)數(shù)器
???????????????????????????????????????????????
本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請注明出處!? ??作者:盧靖東
一、Verilog介紹
Verilog HDL是一種硬件描述語言,以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。Verilog HDL和VHDL是世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。
?二、Verilog計(jì)數(shù)器實(shí)測

例題:
我們用 明德楊《至簡設(shè)計(jì)法》--八部計(jì)數(shù)法來分析此題
?
1.明確目標(biāo):找輸入輸出并繪畫I/O表
?? ① 輸入輸出:
1.模塊時鐘,D觸發(fā)器中clk和rst_n為輸入,位寬默認(rèn)為1。
2.題目給出輸出為dout,位寬和時鐘默認(rèn)為1。
?②?I/O表:? ? ??

2.畫波形圖
① 根據(jù)題目分析繪畫波形圖
? ?先看第一個階段a部分:?

1.復(fù)位后,dout值為0,dout初始值為0。
2.收到信號en=1時,dout由0?→?1并持續(xù)五個周期后,由
?完成第一階段后繼續(xù)后面的內(nèi)容:
3.計(jì)數(shù)框架
① 計(jì)數(shù)結(jié)構(gòu):
以該題為例,題目要求多次收到en的信號,多個階段的信號處理,所以
我們可以優(yōu)先考慮使用兩個計(jì)數(shù)器,命名為cnt_0和cnt_1,分別來記錄en=1
后dout處于哪個階段。

4.加一結(jié)束條件

?u? cnt_0加1條件:收到en的信號后,利用變量flag_add輔助來持續(xù)周期,所以cnt_0=flag_add為
????? ?加1條件。
u? cnt_1加1條件:當(dāng)cnt_0完成一個階段計(jì)數(shù)后,每收到en的信號,cnt_1就開始計(jì)數(shù),完成一個階段cnt_1加1,所以??cnt_1=end_cnt_0??為加1條件。

5.定義特殊點(diǎn)
① 將需要的特殊點(diǎn)挑選出來,并用信號表示
SHAPE?* MERGEFORMAT
a?整個功能的開始點(diǎn):en;
b?cnt_0的結(jié)束條件:cnt _0= x-1,定為end_cnt_0;
c?cnt_1的結(jié)束條件:cnt_1= 3-1,定為end_cnt_1;
d?dout變高條件:en==1。
?6.完整性檢查
保證每個信號的變化條件已經(jīng)清晰明確,并且變化條件要用信號表示。
SHAPE?* MERGEFORMAT
z是數(shù)值
7.計(jì)數(shù)器代碼

??? 計(jì)數(shù)器框架、加1條件和結(jié)束條件代碼
8.功能代碼

??? 按照完整性檢查,寫出計(jì)數(shù)器之外的代碼。
?
最后仿真檢測一下代碼:

第一次接收到en信號

第二次接收到en信號
第三次接收到en的信號?

以上就是Verilog計(jì)數(shù)器部分的內(nèi)容分享,更多FPGA使用技巧學(xué)習(xí)請關(guān)注明德?lián)P官網(wǎng)!