精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog時序邏輯中同步計數器的功能和應用

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-03-15 11:06 ? 次閱讀

沒有任何寄存器邏輯,RTL設計是不完整的。RTL是寄存器傳輸級或邏輯,用于描述依賴于當前輸入和過去輸出的數字邏輯。

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

如果所有存儲元件均由相同的源時鐘信號觸發,則稱該設計為同步設計。同步設計的優點是總體傳播延遲等于觸發器或存儲元件的傳播延遲。STA對于同步邏輯分析非常容易,甚至可以通過使用流水線來提高性能。大多數ASIC/FPGA實現都使用同步邏輯。本節介紹同步計數器的設計。

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

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

圖5.14四位二進制計數器

如圖5.14所示。計數器有四條輸出線“QA、QB、QC、QD”,其中“QA”是LSB,“QD”是MSB。“QA”處的輸出在每個時鐘脈沖上切換,因此除以2?!癚B”處的輸出每兩個時鐘周期切換一次,因此可被四整除,“QC”處的輸出每四個時鐘周期切換一次,因此輸出被八整除。類似地,“QD”處的輸出每8個周期切換一次,因此“QD”處的輸出除以輸入時鐘時間周期的16。在實際應用中,計數器被用作時鐘分頻器網絡。在分頻綜合器中使用偶數計數器來產生可變頻率輸出。

三位遞增計數器

計數器用于在時鐘的活動邊緣上生成預定義和所需的計數序列。在ASIC/FPGA設計中,使用可綜合結構為計數器編寫有效的RTL代碼是至關重要的。用Verilog描述了三位向上計數器生成可綜合設計。計數器在時鐘的正邊緣從“000”計數到“111”,在計數的下一個正邊緣環回到“000”。示例5.7中描述的計數器是可預設的計數器,它具有同步激活的高“load_en”輸入,以對所需的三位預設值進行采樣。數據輸入為三位,表示為“data_in”。

計數器具有有效的低電平異步“reset_n”輸入,當其處于低電平時,輸出到“q_out”上的狀態為“000”。在正常操作期間,“reset_n”處于高電平狀態。

可綜合輸出如圖5.15所示,具有三位數據輸入線“data_in”、有源高電平“load_en”和有源低電平復位輸入“reset_n”。輸出由“q_out”和“clk”觸發的正邊緣時鐘指示。

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

示例5.7三位遞增計數器的Verilog RTL

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

圖5.15三位遞增計數器綜合頂層圖

三位遞減計數器Three-Bit Down Counter

用Verilog描述了三位遞減計數器的產生和綜合設計。計數器從“111”計數到“000”,在時鐘的正邊緣觸發,并在達到計數值“000”后在計數的下一個正邊緣環回到“111”。三位遞減計數器的時序如圖5.16所示。

示例5.9中描述的計數器是可預設計數器,它具有同步激活的高“load_en”輸入,用于采樣三位所需的可預設值。數據輸入為三位,表示為“data_in”。

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

圖5.16三位二進制遞減計數器的時序

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

示例5.8三位遞減計數器的Verilog RTL

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

圖5.17綜合三位遞減計數器頂層圖

計數器具有低電平異步“reset_n”輸入,當其處于低電平時,輸出“q_out”上的狀態為“000”。在正常操作期間,“reset_n”處于高電平狀態。

可綜合輸出如圖5.17所示,具有三位數據輸入線“data_in”、有源高電平“load_en”和有源低電平復位輸入“reset_n”。輸出由“q_out”和“clk”觸發的正邊緣時鐘指示。

三位增、減計數器

用Verilog描述了三位增、減計數器產生的可綜合時序設計。遞減計數器計數從“111”到“000”,在時鐘的正邊緣觸發,并在達到計數值“000”后,在計數的下一個正邊緣環回到“111”。遞增計數器從“000”計數到“111”,在時鐘的正邊緣觸發,并在達到計數值“000”后在計數的下一個正邊緣環回到“000”。

圖5.18給出了三位二進制增、減計數器的內部結構。對于UP/DOWN等于邏輯“1”,計數器充當遞增計數器,對于UP/DOWN等于“0”,計數器充當遞減計數器。

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

計數器具有有效的低電平異步“reset_n”輸入,當其處于低電平時,輸出“q_out”上的狀態為“000”。在正常操作期間,“復位”處于高電平狀態(示例5.9)。

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

圖5.18三位遞增、遞減計數器

可綜合輸出如圖5.19所示,具有三位數據輸入線“data_in”、有源高電平“load_en”和有源低電平復位輸入“reset_n”。輸出由“q_out”和“clk”觸發的正邊緣時鐘指示,選擇行為“up_down”。

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

示例5.9三位遞增、遞減計數器的Verilog RTL

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

圖5.19三位遞增、遞減計數器頂層綜合模塊

格雷碼計數器Gray Counters

格雷碼計數器用于多時鐘域設計中,因為時鐘邊沿上只有一位發生變化。同步器中也會使用格雷碼。

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

示例5.10中描述的計數器是可預設計數器,它具有同步激活的高“load_en”輸入,用于采樣四位所需的可預設值。數據輸入為四位,表示為“data_in”。

計數器具有激活的高電平異步復位“rst”輸入,當它處于激活的高電平時,輸出行“out”上的狀態為“0000”。正常運行期間,“rst”處于低電平狀態。

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

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

示例5.10四位Gray計數器

格雷碼和二進制計數器

在大多數實際應用中,需要使用二進制和格雷碼計數器。通過使用組合邏輯,可以從二進制計數器輸出生成格雷碼計數器。有關二進制到格雷碼和格雷碼到二進制代碼轉換器,請參閱前面文章。

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

四位二進制計數器的模擬結果如下面的時序圖5.20所示,并且對于時鐘計數器的每個正邊緣,輸出增量為1。

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

示例5.11參數化二進制和格雷碼計數器的Verilog RTL

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

圖5.20四位二進制計數器的時序

環形計數器Ring Counters

實際應用中使用環形計數器來提供預定義的延遲。這些計數器本質上是同步的,以引入一定量的預定義延遲,并用于實際應用中,如交通燈控制器定時器。圖5.21顯示了四位環形計數器使用D觸發器的內部邏輯結構,如圖所示,MSB觸發器的輸出反饋到LSB觸發器輸入,計數器在時鐘信號的每個活動邊上移動數據。

示例5.12中描述了四位環形計數器的Verilog RTL,計數器具有“set_in”輸入,以將輸入初始化值設置為“1000”,并在時鐘信號的正邊緣工作。

綜合邏輯如圖5.22所示。

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

圖5.21環形計數器內部結構

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

示例5.12四位環形計數器的Verilog RTL

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

圖5.22四位環形計數器的綜合邏輯

約翰遜計數器Johnson Counters

約翰遜計數器是一種特殊類型的同步計數器,采用移位寄存器設計。三位約翰遜計數器的內部結構如圖5.23所示。

四位約翰遜計數器的Verilog RTL如例5.13所示。

綜合邏輯如圖5.24所示。

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

圖5.23三位約翰遜計數器

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

示例5.13四位約翰遜計數器的Verilog RTL

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

圖5.24四位約翰遜計數器的綜合邏輯

參數化計數器

在實際應用中,為了提高計數器的可讀性和可重用性,通過定義參數來設計計數器。參數整數值可用于定義計數器的位數。8位參數化計數器的Verilog RTL如圖5.25所示。

參數化計數器的可綜合頂層模塊如圖5.26所示。

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

圖5.25八位參數化計數器的Verilog RTL

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

圖5.26參數化計數器的綜合邏輯

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5253

    瀏覽量

    119212
  • Verilog
    +關注

    關注

    28

    文章

    1333

    瀏覽量

    109721
  • 計數器
    +關注

    關注

    32

    文章

    2241

    瀏覽量

    93980

原文標題:Verilog時序邏輯硬件建模設計(三)同步計數器

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    時序邏輯電路的精華——計數器

    時序邏輯電路的精華——計數器
    的頭像 發表于 12-29 09:23 ?1237次閱讀

    規模集成時序邏輯設計

    規模集成時序邏輯設計:計數器:在數字邏輯系統,使用最多的
    發表于 09-01 09:09 ?13次下載

    移位型計數器反饋邏輯電路的設計

    摘要:移位型計數器是以移位寄存為主體構成的同步計數器。這類計數器具有電路連接簡單,編碼別具特色的特點,用途十分廣泛。文中介紹了移位型
    發表于 04-26 11:16 ?29次下載

    時序邏輯電路

    實驗十六  時序邏輯電路? 實驗(1) 計數器?一、實驗目的?⒈ 熟悉計數器的設計方法及工作原理。?⒉ 了解同步
    發表于 09-24 22:17 ?3291次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯</b>電路

    基于MSI的N進制計數器設計方法

    計數器是數字邏輯系統的基本部件,它是數字系統中用得最多的時序邏輯電路,本文主要闡述了用規模集
    發表于 02-28 11:41 ?6945次閱讀
    基于MSI的N進制<b class='flag-5'>計數器</b>設計方法

    基于Multisim的計數器設計仿真

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

    計數器時序電路

    1、了解時序電路的經典設計方法(D觸發、JK觸發和一般邏輯門組成的時序邏輯電路)。 2、
    發表于 07-10 14:37 ?15次下載

    計數器邏輯功能測試實驗報告

    本文主要介紹了計數器邏輯功能測試實驗報告。時序邏輯電路,有一種電路叫
    發表于 06-27 08:00 ?15次下載
    <b class='flag-5'>計數器</b><b class='flag-5'>邏輯</b><b class='flag-5'>功能</b>測試實驗報告

    采用規模集成計數器進行任意進制計數器設計的解決方案

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

    同步計數器和異步計數器是什么 同步計數器和異步計數器的主要區別?

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

    時序邏輯電路設計之計數器

    前面已經學習了時序邏輯電路的基本單元:觸發,這次就用其來整點活,實現計數器的設計,計數器可以
    的頭像 發表于 05-22 16:54 ?4495次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯</b>電路設計之<b class='flag-5'>計數器</b>

    時序邏輯電路設計之同步計數器

    時序電路的考察主要涉及分析與設計兩個部分,上文介紹了時序邏輯電路的一些分析方法,重點介紹了同步時序電路分析的步驟與注意事項。 本文就
    的頭像 發表于 05-22 17:01 ?2836次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯</b>電路設計之<b class='flag-5'>同步</b><b class='flag-5'>計數器</b>

    時序邏輯電路設計之異步計數器

    上文介紹了同步計數器的設計原則以及各注意事項,本文承接上文繼續介紹異步計數器以及三種常用的集成計數器的相關內容。
    的頭像 發表于 05-22 17:07 ?4102次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯</b>電路設計之異步<b class='flag-5'>計數器</b>

    同步計數器和異步計數器的區別主要在哪里

    同步計數器和異步計數器的區別詳解 同步計數器和異步計數器是數字電路
    的頭像 發表于 12-13 14:54 ?8074次閱讀

    同步計數器和異步計數器各有什么特點

    同步計數器和異步計數器是兩種常見的數據結構,它們都用于控制對共享資源的訪問。它們的主要作用是實現多個線程之間的同步和并發控制。盡管它們都被用于同步
    的頭像 發表于 12-15 10:49 ?1581次閱讀