0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog時(shí)序邏輯中同步計(jì)數(shù)器的功能和應(yīng)用

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:OpenFPGA ? 2022-03-15 11:06 ? 次閱讀

沒(méi)有任何寄存器邏輯,RTL設(shè)計(jì)是不完整的。RTL是寄存器傳輸級(jí)或邏輯,用于描述依賴(lài)于當(dāng)前輸入和過(guò)去輸出的數(shù)字邏輯。

48b095fe-9756-11ec-952b-dac502259ad0.png

如果所有存儲(chǔ)元件均由相同的源時(shí)鐘信號(hào)觸發(fā),則稱(chēng)該設(shè)計(jì)為同步設(shè)計(jì)。同步設(shè)計(jì)的優(yōu)點(diǎn)是總體傳播延遲等于觸發(fā)器或存儲(chǔ)元件的傳播延遲。STA對(duì)于同步邏輯分析非常容易,甚至可以通過(guò)使用流水線(xiàn)來(lái)提高性能。大多數(shù)ASIC/FPGA實(shí)現(xiàn)都使用同步邏輯。本節(jié)介紹同步計(jì)數(shù)器的設(shè)計(jì)。

四位二進(jìn)制計(jì)數(shù)器用于從“0000”到“1111”進(jìn)行計(jì)數(shù),四位BCD計(jì)數(shù)器用于從“0000”到“1001”進(jìn)行計(jì)數(shù)。圖5.14顯示了四位二進(jìn)制計(jì)數(shù)器,其中每個(gè)階段被兩計(jì)數(shù)器分割。

48c23980-9756-11ec-952b-dac502259ad0.png

圖5.14四位二進(jìn)制計(jì)數(shù)器

如圖5.14所示。計(jì)數(shù)器有四條輸出線(xiàn)“QA、QB、QC、QD”,其中“QA”是LSB,“QD”是MSB?!癚A”處的輸出在每個(gè)時(shí)鐘脈沖上切換,因此除以2。“QB”處的輸出每?jī)蓚€(gè)時(shí)鐘周期切換一次,因此可被四整除,“QC”處的輸出每四個(gè)時(shí)鐘周期切換一次,因此輸出被八整除。類(lèi)似地,“QD”處的輸出每8個(gè)周期切換一次,因此“QD”處的輸出除以輸入時(shí)鐘時(shí)間周期的16。在實(shí)際應(yīng)用中,計(jì)數(shù)器被用作時(shí)鐘分頻器網(wǎng)絡(luò)。在分頻綜合器中使用偶數(shù)計(jì)數(shù)器來(lái)產(chǎn)生可變頻率輸出。

三位遞增計(jì)數(shù)器

計(jì)數(shù)器用于在時(shí)鐘的活動(dòng)邊緣上生成預(yù)定義和所需的計(jì)數(shù)序列。在A(yíng)SIC/FPGA設(shè)計(jì)中,使用可綜合結(jié)構(gòu)為計(jì)數(shù)器編寫(xiě)有效的RTL代碼是至關(guān)重要的。用Verilog描述了三位向上計(jì)數(shù)器生成可綜合設(shè)計(jì)。計(jì)數(shù)器在時(shí)鐘的正邊緣從“000”計(jì)數(shù)到“111”,在計(jì)數(shù)的下一個(gè)正邊緣環(huán)回到“000”。示例5.7中描述的計(jì)數(shù)器是可預(yù)設(shè)的計(jì)數(shù)器,它具有同步激活的高“l(fā)oad_en”輸入,以對(duì)所需的三位預(yù)設(shè)值進(jìn)行采樣。數(shù)據(jù)輸入為三位,表示為“data_in”。

計(jì)數(shù)器具有有效的低電平異步“reset_n”輸入,當(dāng)其處于低電平時(shí),輸出到“q_out”上的狀態(tài)為“000”。在正常操作期間,“reset_n”處于高電平狀態(tài)。

可綜合輸出如圖5.15所示,具有三位數(shù)據(jù)輸入線(xiàn)“data_in”、有源高電平“l(fā)oad_en”和有源低電平復(fù)位輸入“reset_n”。輸出由“q_out”和“clk”觸發(fā)的正邊緣時(shí)鐘指示。

48d615cc-9756-11ec-952b-dac502259ad0.png

示例5.7三位遞增計(jì)數(shù)器的Verilog RTL

48ec0e5e-9756-11ec-952b-dac502259ad0.png

圖5.15三位遞增計(jì)數(shù)器綜合頂層圖

三位遞減計(jì)數(shù)器Three-Bit Down Counter

用Verilog描述了三位遞減計(jì)數(shù)器的產(chǎn)生和綜合設(shè)計(jì)。計(jì)數(shù)器從“111”計(jì)數(shù)到“000”,在時(shí)鐘的正邊緣觸發(fā),并在達(dá)到計(jì)數(shù)值“000”后在計(jì)數(shù)的下一個(gè)正邊緣環(huán)回到“111”。三位遞減計(jì)數(shù)器的時(shí)序如圖5.16所示。

示例5.9中描述的計(jì)數(shù)器是可預(yù)設(shè)計(jì)數(shù)器,它具有同步激活的高“l(fā)oad_en”輸入,用于采樣三位所需的可預(yù)設(shè)值。數(shù)據(jù)輸入為三位,表示為“data_in”。

49028f3a-9756-11ec-952b-dac502259ad0.png

圖5.16三位二進(jìn)制遞減計(jì)數(shù)器的時(shí)序

491941d0-9756-11ec-952b-dac502259ad0.png

示例5.8三位遞減計(jì)數(shù)器的Verilog RTL

49317372-9756-11ec-952b-dac502259ad0.png

圖5.17綜合三位遞減計(jì)數(shù)器頂層圖

計(jì)數(shù)器具有低電平異步“reset_n”輸入,當(dāng)其處于低電平時(shí),輸出“q_out”上的狀態(tài)為“000”。在正常操作期間,“reset_n”處于高電平狀態(tài)。

可綜合輸出如圖5.17所示,具有三位數(shù)據(jù)輸入線(xiàn)“data_in”、有源高電平“l(fā)oad_en”和有源低電平復(fù)位輸入“reset_n”。輸出由“q_out”和“clk”觸發(fā)的正邊緣時(shí)鐘指示。

三位增、減計(jì)數(shù)器

用Verilog描述了三位增、減計(jì)數(shù)器產(chǎn)生的可綜合時(shí)序設(shè)計(jì)。遞減計(jì)數(shù)器計(jì)數(shù)從“111”到“000”,在時(shí)鐘的正邊緣觸發(fā),并在達(dá)到計(jì)數(shù)值“000”后,在計(jì)數(shù)的下一個(gè)正邊緣環(huán)回到“111”。遞增計(jì)數(shù)器從“000”計(jì)數(shù)到“111”,在時(shí)鐘的正邊緣觸發(fā),并在達(dá)到計(jì)數(shù)值“000”后在計(jì)數(shù)的下一個(gè)正邊緣環(huán)回到“000”。

圖5.18給出了三位二進(jìn)制增、減計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)。對(duì)于UP/DOWN等于邏輯“1”,計(jì)數(shù)器充當(dāng)遞增計(jì)數(shù)器,對(duì)于UP/DOWN等于“0”,計(jì)數(shù)器充當(dāng)遞減計(jì)數(shù)器。

示例5.9中描述的計(jì)數(shù)器是可預(yù)設(shè)計(jì)數(shù)器,它具有同步激活的高“l(fā)oad_en”輸入,用于采樣三位所需的可預(yù)設(shè)值。數(shù)據(jù)輸入為三位,表示為“data_in”。遞增或遞減計(jì)數(shù)操作由輸入“up_down”選擇,“up_down=1”計(jì)數(shù)器用作向上/遞減計(jì)數(shù)器,“up_down=0”計(jì)數(shù)器用作向下/遞減計(jì)數(shù)器。

計(jì)數(shù)器具有有效的低電平異步“reset_n”輸入,當(dāng)其處于低電平時(shí),輸出“q_out”上的狀態(tài)為“000”。在正常操作期間,“復(fù)位”處于高電平狀態(tài)(示例5.9)。

493f1234-9756-11ec-952b-dac502259ad0.png

圖5.18三位遞增、遞減計(jì)數(shù)器

可綜合輸出如圖5.19所示,具有三位數(shù)據(jù)輸入線(xiàn)“data_in”、有源高電平“l(fā)oad_en”和有源低電平復(fù)位輸入“reset_n”。輸出由“q_out”和“clk”觸發(fā)的正邊緣時(shí)鐘指示,選擇行為“up_down”。

4975c6da-9756-11ec-952b-dac502259ad0.png

示例5.9三位遞增、遞減計(jì)數(shù)器的Verilog RTL

498acbf2-9756-11ec-952b-dac502259ad0.png

圖5.19三位遞增、遞減計(jì)數(shù)器頂層綜合模塊

格雷碼計(jì)數(shù)器Gray Counters

格雷碼計(jì)數(shù)器用于多時(shí)鐘域設(shè)計(jì)中,因?yàn)闀r(shí)鐘邊沿上只有一位發(fā)生變化。同步器中也會(huì)使用格雷碼。

該示例中描述了格雷碼計(jì)數(shù)器,在該示例中,相對(duì)于計(jì)數(shù)器的先前輸出,活動(dòng)時(shí)鐘邊緣上只有一位發(fā)生變化。在這種情況下,高電平復(fù)位輸入為“rst”。當(dāng)“rst=1”時(shí),計(jì)數(shù)器“out”的輸出賦值給“0000”。

示例5.10中描述的計(jì)數(shù)器是可預(yù)設(shè)計(jì)數(shù)器,它具有同步激活的高“l(fā)oad_en”輸入,用于采樣四位所需的可預(yù)設(shè)值。數(shù)據(jù)輸入為四位,表示為“data_in”。

計(jì)數(shù)器具有激活的高電平異步復(fù)位“rst”輸入,當(dāng)它處于激活的高電平時(shí),輸出行“out”上的狀態(tài)為“0000”。正常運(yùn)行期間,“rst”處于低電平狀態(tài)。

49a66970-9756-11ec-952b-dac502259ad0.png

49bfe238-9756-11ec-952b-dac502259ad0.png

示例5.10四位Gray計(jì)數(shù)器

格雷碼和二進(jìn)制計(jì)數(shù)器

在大多數(shù)實(shí)際應(yīng)用中,需要使用二進(jìn)制和格雷碼計(jì)數(shù)器。通過(guò)使用組合邏輯,可以從二進(jìn)制計(jì)數(shù)器輸出生成格雷碼計(jì)數(shù)器。有關(guān)二進(jìn)制到格雷碼和格雷碼到二進(jìn)制代碼轉(zhuǎn)換器,請(qǐng)參閱前面文章。

示例中描述了參數(shù)化二進(jìn)制和格雷碼計(jì)數(shù)器,并描述了Verilog RTL以生成四位二進(jìn)制和格雷碼輸出。對(duì)于“rst_n=0”,二進(jìn)制和格雷碼計(jì)數(shù)器輸出賦值為“0000”。四位格雷碼輸出表示為“gray”(示例5.11)。

四位二進(jìn)制計(jì)數(shù)器的模擬結(jié)果如下面的時(shí)序圖5.20所示,并且對(duì)于時(shí)鐘計(jì)數(shù)器的每個(gè)正邊緣,輸出增量為1。

49d526fc-9756-11ec-952b-dac502259ad0.png

示例5.11參數(shù)化二進(jìn)制和格雷碼計(jì)數(shù)器的Verilog RTL

49ea88bc-9756-11ec-952b-dac502259ad0.png

圖5.20四位二進(jìn)制計(jì)數(shù)器的時(shí)序

環(huán)形計(jì)數(shù)器Ring Counters

實(shí)際應(yīng)用中使用環(huán)形計(jì)數(shù)器來(lái)提供預(yù)定義的延遲。這些計(jì)數(shù)器本質(zhì)上是同步的,以引入一定量的預(yù)定義延遲,并用于實(shí)際應(yīng)用中,如交通燈控制器、定時(shí)器。圖5.21顯示了四位環(huán)形計(jì)數(shù)器使用D觸發(fā)器的內(nèi)部邏輯結(jié)構(gòu),如圖所示,MSB觸發(fā)器的輸出反饋到LSB觸發(fā)器輸入,計(jì)數(shù)器在時(shí)鐘信號(hào)的每個(gè)活動(dòng)邊上移動(dòng)數(shù)據(jù)。

示例5.12中描述了四位環(huán)形計(jì)數(shù)器的Verilog RTL,計(jì)數(shù)器具有“set_in”輸入,以將輸入初始化值設(shè)置為“1000”,并在時(shí)鐘信號(hào)的正邊緣工作。

綜合邏輯如圖5.22所示。

4a1e5c32-9756-11ec-952b-dac502259ad0.png

圖5.21環(huán)形計(jì)數(shù)器內(nèi)部結(jié)構(gòu)

4a36a760-9756-11ec-952b-dac502259ad0.png

示例5.12四位環(huán)形計(jì)數(shù)器的Verilog RTL

4a4ea5ea-9756-11ec-952b-dac502259ad0.png

圖5.22四位環(huán)形計(jì)數(shù)器的綜合邏輯

約翰遜計(jì)數(shù)器Johnson Counters

約翰遜計(jì)數(shù)器是一種特殊類(lèi)型的同步計(jì)數(shù)器,采用移位寄存器設(shè)計(jì)。三位約翰遜計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)如圖5.23所示。

四位約翰遜計(jì)數(shù)器的Verilog RTL如例5.13所示。

綜合邏輯如圖5.24所示。

4a65b3de-9756-11ec-952b-dac502259ad0.png

圖5.23三位約翰遜計(jì)數(shù)器

4a7e8936-9756-11ec-952b-dac502259ad0.png

示例5.13四位約翰遜計(jì)數(shù)器的Verilog RTL

4aae0c1a-9756-11ec-952b-dac502259ad0.png

圖5.24四位約翰遜計(jì)數(shù)器的綜合邏輯

參數(shù)化計(jì)數(shù)器

在實(shí)際應(yīng)用中,為了提高計(jì)數(shù)器的可讀性和可重用性,通過(guò)定義參數(shù)來(lái)設(shè)計(jì)計(jì)數(shù)器。參數(shù)整數(shù)值可用于定義計(jì)數(shù)器的位數(shù)。8位參數(shù)化計(jì)數(shù)器的Verilog RTL如圖5.25所示。

參數(shù)化計(jì)數(shù)器的可綜合頂層模塊如圖5.26所示。

4abfa40c-9756-11ec-952b-dac502259ad0.png

圖5.25八位參數(shù)化計(jì)數(shù)器的Verilog RTL

4ad629de-9756-11ec-952b-dac502259ad0.png

圖5.26參數(shù)化計(jì)數(shù)器的綜合邏輯

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119201
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109713
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2241

    瀏覽量

    93974

原文標(biāo)題:Verilog時(shí)序邏輯硬件建模設(shè)計(jì)(三)同步計(jì)數(shù)器

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    時(shí)序邏輯電路的精華——計(jì)數(shù)器

    時(shí)序邏輯電路的精華——計(jì)數(shù)器
    的頭像 發(fā)表于 12-29 09:23 ?1236次閱讀

    規(guī)模集成時(shí)序邏輯設(shè)計(jì)

    規(guī)模集成時(shí)序邏輯設(shè)計(jì):計(jì)數(shù)器:在數(shù)字邏輯系統(tǒng),使用最多的
    發(fā)表于 09-01 09:09 ?13次下載

    移位型計(jì)數(shù)器反饋邏輯電路的設(shè)計(jì)

    摘要:移位型計(jì)數(shù)器是以移位寄存為主體構(gòu)成的同步計(jì)數(shù)器。這類(lèi)計(jì)數(shù)器具有電路連接簡(jiǎn)單,編碼別具特色的特點(diǎn),用途十分廣泛。文中介紹了移位型
    發(fā)表于 04-26 11:16 ?29次下載

    時(shí)序邏輯電路

    實(shí)驗(yàn)十六  時(shí)序邏輯電路? 實(shí)驗(yàn)(1) 計(jì)數(shù)器?一、實(shí)驗(yàn)?zāi)康?⒈ 熟悉計(jì)數(shù)器的設(shè)計(jì)方法及工作原理。?⒉ 了解同步
    發(fā)表于 09-24 22:17 ?3291次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路

    基于MSI的N進(jìn)制計(jì)數(shù)器設(shè)計(jì)方法

    計(jì)數(shù)器是數(shù)字邏輯系統(tǒng)的基本部件,它是數(shù)字系統(tǒng)中用得最多的時(shí)序邏輯電路,本文主要闡述了用規(guī)模集
    發(fā)表于 02-28 11:41 ?6944次閱讀
    基于MSI的N進(jìn)制<b class='flag-5'>計(jì)數(shù)器</b>設(shè)計(jì)方法

    基于Multisim的計(jì)數(shù)器設(shè)計(jì)仿真

    計(jì)數(shù)器是常用的時(shí)序邏輯電路器件,文中介紹了以四位同步二進(jìn)制集成計(jì)數(shù)器74LS161和異步二-五-十模值計(jì)
    發(fā)表于 07-26 11:38 ?134次下載
    基于Multisim的<b class='flag-5'>計(jì)數(shù)器</b>設(shè)計(jì)仿真

    計(jì)數(shù)器時(shí)序電路

    1、了解時(shí)序電路的經(jīng)典設(shè)計(jì)方法(D觸發(fā)、JK觸發(fā)和一般邏輯門(mén)組成的時(shí)序邏輯電路)。 2、
    發(fā)表于 07-10 14:37 ?15次下載

    計(jì)數(shù)器邏輯功能測(cè)試實(shí)驗(yàn)報(bào)告

    本文主要介紹了計(jì)數(shù)器邏輯功能測(cè)試實(shí)驗(yàn)報(bào)告。時(shí)序邏輯電路,有一種電路叫
    發(fā)表于 06-27 08:00 ?15次下載
    <b class='flag-5'>計(jì)數(shù)器</b><b class='flag-5'>邏輯</b><b class='flag-5'>功能</b>測(cè)試實(shí)驗(yàn)報(bào)告

    采用規(guī)模集成計(jì)數(shù)器進(jìn)行任意進(jìn)制計(jì)數(shù)器設(shè)計(jì)的解決方案

    計(jì)數(shù)器是數(shù)字邏輯系統(tǒng)的基本部件, 它是數(shù)字系統(tǒng)中用得最多的時(shí)序邏輯電路,其主要功能就是用
    的頭像 發(fā)表于 05-30 08:24 ?1.6w次閱讀
    采用<b class='flag-5'>中</b>規(guī)模集成<b class='flag-5'>計(jì)數(shù)器</b>進(jìn)行任意進(jìn)制<b class='flag-5'>計(jì)數(shù)器</b>設(shè)計(jì)的解決方案

    同步計(jì)數(shù)器和異步計(jì)數(shù)器是什么 同步計(jì)數(shù)器和異步計(jì)數(shù)器的主要區(qū)別?

    在數(shù)字電子產(chǎn)品,計(jì)數(shù)器是由一系列觸發(fā)組成的時(shí)序邏輯電路。顧名思義,計(jì)數(shù)器用于計(jì)算輸入在負(fù)或正
    的頭像 發(fā)表于 03-25 17:31 ?2.4w次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>計(jì)數(shù)器</b>和異步<b class='flag-5'>計(jì)數(shù)器</b>是什么 <b class='flag-5'>同步</b><b class='flag-5'>計(jì)數(shù)器</b>和異步<b class='flag-5'>計(jì)數(shù)器</b>的主要區(qū)別?

    時(shí)序邏輯電路設(shè)計(jì)之計(jì)數(shù)器

    前面已經(jīng)學(xué)習(xí)了時(shí)序邏輯電路的基本單元:觸發(fā),這次就用其來(lái)整點(diǎn)活,實(shí)現(xiàn)計(jì)數(shù)器的設(shè)計(jì),計(jì)數(shù)器可以
    的頭像 發(fā)表于 05-22 16:54 ?4486次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之<b class='flag-5'>計(jì)數(shù)器</b>

    時(shí)序邏輯電路設(shè)計(jì)之同步計(jì)數(shù)器

    時(shí)序電路的考察主要涉及分析與設(shè)計(jì)兩個(gè)部分,上文介紹了時(shí)序邏輯電路的一些分析方法,重點(diǎn)介紹了同步時(shí)序電路分析的步驟與注意事項(xiàng)。 本文就
    的頭像 發(fā)表于 05-22 17:01 ?2829次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之<b class='flag-5'>同步</b><b class='flag-5'>計(jì)數(shù)器</b>

    時(shí)序邏輯電路設(shè)計(jì)之異步計(jì)數(shù)器

    上文介紹了同步計(jì)數(shù)器的設(shè)計(jì)原則以及各注意事項(xiàng),本文承接上文繼續(xù)介紹異步計(jì)數(shù)器以及三種常用的集成計(jì)數(shù)器的相關(guān)內(nèi)容。
    的頭像 發(fā)表于 05-22 17:07 ?4088次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>邏輯</b>電路設(shè)計(jì)之異步<b class='flag-5'>計(jì)數(shù)器</b>

    同步計(jì)數(shù)器和異步計(jì)數(shù)器的區(qū)別主要在哪里

    同步計(jì)數(shù)器和異步計(jì)數(shù)器的區(qū)別詳解 同步計(jì)數(shù)器和異步計(jì)數(shù)器是數(shù)字電路
    的頭像 發(fā)表于 12-13 14:54 ?8063次閱讀

    同步計(jì)數(shù)器和異步計(jì)數(shù)器各有什么特點(diǎn)

    同步計(jì)數(shù)器和異步計(jì)數(shù)器是兩種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它們都用于控制對(duì)共享資源的訪(fǎng)問(wèn)。它們的主要作用是實(shí)現(xiàn)多個(gè)線(xiàn)程之間的同步和并發(fā)控制。盡管它們都被用于同步
    的頭像 發(fā)表于 12-15 10:49 ?1573次閱讀