HDLBits (179) — 定時(shí)器
本題鏈接:
https://hdlbits.01xz.net/wiki/Cs450/timer
實(shí)現(xiàn)一個定時(shí)器,它的功能是對給定的時(shí)鐘周期數(shù)進(jìn)行倒計(jì)時(shí),然后斷言一個信號以表示給定的時(shí)間已經(jīng)過去。 實(shí)現(xiàn)它的一種比較好的辦法是使用遞減計(jì)數(shù)器,當(dāng)計(jì)數(shù)變?yōu)?0 時(shí)斷言輸出信號。
在每個時(shí)鐘周期:
如果 load = 1,則用 10 位數(shù)據(jù)加載內(nèi)部計(jì)數(shù)器,定時(shí)器在超時(shí)之前的每個時(shí)鐘周期應(yīng)該一直計(jì)數(shù)。 當(dāng)它仍在計(jì)數(shù)且尚未達(dá)到 0 時(shí)也可以隨時(shí)加載計(jì)數(shù)器。
如果 load = 0,內(nèi)部計(jì)數(shù)器應(yīng)該減 1。
輸出信號 tc(“終端計(jì)數(shù)”)指示內(nèi)部計(jì)數(shù)器是否已達(dá)到 0。一旦內(nèi)部計(jì)數(shù)器達(dá)到 0,它就應(yīng)該保持為?0(停止計(jì)數(shù)),直到計(jì)數(shù)器被再次加載。
以下示例是計(jì)時(shí)器計(jì)數(shù) 3 個周期時(shí)的情況:


題目

答案

輸出波形


有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)不僅是一種電路的描述工具,而且也是一種思想方法,在電路設(shè)計(jì)的系統(tǒng)級和 RTL 級有著廣泛的應(yīng)用。
Verilog 中狀態(tài)機(jī)主要用于同步時(shí)序邏輯的設(shè)計(jì),能夠在有限個狀態(tài)之間按一定要求和規(guī)律切換時(shí)序電路的狀態(tài)。狀態(tài)的切換方向不但取決于各個輸入值,還取決于當(dāng)前所在狀態(tài)。狀態(tài)機(jī)可分為 2 類:Moore?狀態(tài)機(jī)和?Mealy?狀態(tài)機(jī)。
參考內(nèi)容:
4.2 Verilog 過程賦值 | 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-process-assign.html
6.3 Verilog 狀態(tài)機(jī)?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-fsm.html