明德楊FPGA入門篇——Verilog計數(shù)器
作者:盧靖東
本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請注明出處!
一、Verilog介紹
Verilog HDL是一種硬件描述語言,以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。Verilog HDL和VHDL是世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的。前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標準。
二、Verilog計數(shù)器實測
例題:
我們用 明德楊《至簡設(shè)計法》--八部計數(shù)法來分析此題
1.明確目標:找輸入輸出并繪畫I/O表
① 輸入輸出:
1.模塊時鐘,D觸發(fā)器中clk和rst_n為輸入,位寬默認為1。
2.題目給出輸出為dout,位寬和時鐘默認為1。
② I/O表:
2.畫波形圖
① 根據(jù)題目分析繪畫波形圖
先看第一個階段a部分:
完成第一階段后繼續(xù)后面的內(nèi)容:
3.計數(shù)框架
① 計數(shù)結(jié)構(gòu):
以該題為例,題目要求多次收到en的信號,多個階段的信號處理,所以
我們可以優(yōu)先考慮使用兩個計數(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條件:當cnt_0完成一個階段計數(shù)后,每收到en的信號,cnt_1就開始計數(shù),完成一個階段cnt_1加1,所以 cnt_1=end_cnt_0 為加1條件。
5.定義特殊點
① 將需要的特殊點挑選出來,并用信號表示
6.完整性檢查
保證每個信號的變化條件已經(jīng)清晰明確,并且變化條件要用信號表示。
7.計數(shù)器代碼
? 計數(shù)器框架、加1條件和結(jié)束條件代碼
8.功能代碼
? 按照完整性檢查,寫出計數(shù)器之外的代碼。
最后仿真檢測一下代碼:
第一次接收到en信號
第二次接收到en信號
第三次接收到en的信號
以上就是Verilog計數(shù)器部分的內(nèi)容分享,更多FPGA使用技巧加Q:2332395003交流學習!