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

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

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

時序邏輯電路:時鐘分頻

電子森林 ? 來源:FPGA入門到精通 ? 作者:FPGA入門到精通 ? 2021-01-06 17:02 ? 次閱讀

單片機(jī)一樣,FPGA開發(fā)板上也都會配有晶振用來生成板載時鐘。前一篇我們提到了小腳丫的固定板載時鐘頻率為12MHz,這個頻率實際上就是作為我們的時間參考基準(zhǔn)。正如歌里唱的那樣:

嘀嗒嘀嗒嘀嗒嘀嗒

時針?biāo)煌T谵D(zhuǎn)動

因此,小腳丫只要在通電之后,它的內(nèi)部時鐘就會每隔83.8ns滴答一次。這個時間真的很快,連光速還沒來得及跑出小區(qū)大門就被掐斷了。那么問題來了:如果在某些應(yīng)用場合中,我們不需要這么快的嘀嗒該怎么辦?比如,我們想讓小腳丫上的LED燈以可觀察的頻率閃爍,如1Hz,也就是1秒閃一下。

相信大家和我的想法一樣,就一個字:等。既然一秒鐘可以嘀嗒一千兩百萬次,那我們每次點(diǎn)亮LED之前就先等你跳一千兩百萬次好了,畢竟也不耗油。換句話說,就是把內(nèi)部時鐘頻率放慢12,000,000倍。這個操作就叫做時鐘分頻,也就是我們今天要掌握的內(nèi)容。

先說偶數(shù)分頻,也就是說將內(nèi)部時鐘放慢的除數(shù)為偶數(shù)。在這里,我們只考慮占空比為50%的波形(高電平和低電平對半分)。圖1中,我們設(shè)定內(nèi)部時鐘為我們的輸入頻率,也就是12MHz,那么如果想獲得一個6MHz的輸出頻率,只需要等第二次上沿信號即可,因此分頻除數(shù)為2。

b1519624-4628-11eb-8b86-12bb97331649.png

圖1

如果想得到更低的輸出頻率,比如1MHz,則除數(shù)調(diào)整12;如果1KHz,除數(shù)調(diào)成12000,依次類推。注意,這種方法只對除數(shù)為偶數(shù)的情況下才管用!以下是生成1Hz輸出的代碼,于是我們將除數(shù)調(diào)成了12,000,000。

moduleclkdivider(clock_in,clock_out);inputclock_in;outputregclock_out;reg[23:0]counter=24'd0;parameter DIVISOR = 24'd12000000;
always@(posedgeclock_in)begincounter<=?counter?+?24'd1;if(counter>=(DIVISOR-1))counter<=?24'clock_out<=?(counter2)?1'b1:1'b0;//條件賦值endendmodule

在代碼中我們注意到了這一行代碼:

reg[23:0] counter=24’0

這個實際上就是用于存儲小腳丫固定時鐘頻率的一個數(shù)據(jù)格式,至于為什么是24位寬直接參考圖2就可以。打開你們電腦里的計算器,調(diào)成碼農(nóng)模式即可。

b1767cbe-4628-11eb-8b86-12bb97331649.png

圖2

再說奇數(shù)分頻。比如說我們想獲得一個4MHz的頻率,按道理說我們把分頻除數(shù)調(diào)成3即可。而實際上奇數(shù)分頻的故事還是稍微多一點(diǎn)。我們看一下圖3就明白了。

b1ca5460-4628-11eb-8b86-12bb97331649.png

圖3

不難發(fā)現(xiàn),當(dāng)除數(shù)為奇數(shù)時,此刻對應(yīng)的時間為內(nèi)部時鐘的下沿,如果僅靠上沿觸發(fā)的話,此時輸出是不會改變的。所以奇數(shù)分頻需要經(jīng)歷上沿觸發(fā)和下沿觸發(fā)才能完成。還好,在Verilog里,我們先不用研究邊沿觸發(fā)的構(gòu)造原理,只需要通過行為級描述即可直接完成指令:

always@(posedgeclk)//上沿觸發(fā)always @(negedge clk)    //下沿觸發(fā)

現(xiàn)在我們來看一個分頻倍數(shù)為3的例子。圖3中,不論輸出信號是高電平還是低電平,都只涵蓋了兩個邊沿信號,也就是說,不論是上沿還是下沿時鐘,我們只需要分別等待2次觸發(fā)后進(jìn)行賦值即可。

moduleclk_div3(clk,clk_out);inputclk;outputclk_out;reg[1:0]pos_count,neg_count;wire [1:0] r_nxt;
always@(posedgeclk)//處理上沿時鐘觸發(fā)部分if(pos_count==2)//等待輸入時鐘上沿觸發(fā)2次    pos_count<=0;  else    pos_count <= pos_count +1;
always@(negedgeclk)//處理下沿時鐘觸發(fā)部分if(neg_count==2) //等待輸入時鐘下沿觸發(fā)2次    neg_count<=0;  else    neg_count<=neg_count+1;
assignclk_out=((pos_count==2)|(neg_count==2));//每等待2次觸發(fā)后進(jìn)行賦值endmodule

了解了3倍分頻之后,如何實現(xiàn)通用的奇數(shù)分頻自然也就不在話下了,這一部分就交給愿意動手嘗試的朋友們?nèi)プ孕芯毩?xí)了。

最后,我們的任務(wù)是,讓小腳丫上的L1-L4這四個燈以2Hz的頻率閃爍,另外四個燈L5-L8分別以1Hz的頻率閃爍,看看能否實現(xiàn)呢?

責(zé)任編輯:xj

原文標(biāo)題:基于FPGA的數(shù)字電路實驗6:時序邏輯電路之時鐘分頻

文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


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

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600687
  • 電路
    +關(guān)注

    關(guān)注

    172

    文章

    5818

    瀏覽量

    171631
  • 數(shù)字
    +關(guān)注

    關(guān)注

    1

    文章

    1691

    瀏覽量

    51234

原文標(biāo)題:基于FPGA的數(shù)字電路實驗6:時序邏輯電路之時鐘分頻

文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    時序邏輯電路有記憶功能嗎

    時序邏輯電路確實具有記憶功能 。這一特性是時序邏輯電路與組合邏輯電路的本質(zhì)區(qū)別之一。
    的頭像 發(fā)表于 08-29 10:31 ?250次閱讀

    時序邏輯電路必不可少的部分是什么

    狀態(tài)信息和當(dāng)前的輸入信號來產(chǎn)生輸出。 具體來說,時序邏輯電路中的存儲電路通常由觸發(fā)器(Flip-flops)組成,觸發(fā)器是時序邏輯電路的基本
    的頭像 發(fā)表于 08-28 14:12 ?257次閱讀

    時序邏輯電路的基本概念、組成、分類及設(shè)計方法

    時序邏輯電路是數(shù)字電路中的一種重要類型,它不僅在計算機(jī)、通信、控制等領(lǐng)域有著廣泛的應(yīng)用,而且對于理解和設(shè)計現(xiàn)代電子系統(tǒng)具有重要意義。 1. 時序邏輯
    的頭像 發(fā)表于 08-28 11:45 ?445次閱讀

    時序邏輯電路的功能表示方法有哪些

    時序邏輯電路是數(shù)字電路中的一種重要類型,其特點(diǎn)是電路的輸出不僅取決于當(dāng)前的輸入,還取決于電路的狀態(tài)。時序
    的頭像 發(fā)表于 08-28 11:41 ?351次閱讀

    時序邏輯電路的描述方法有哪些

    時序邏輯電路是數(shù)字電路中的一種重要類型,它具有存儲功能,能夠根據(jù)輸入信號和內(nèi)部狀態(tài)的變化來改變其輸出。時序邏輯電路廣泛應(yīng)用于計算機(jī)、通信、控
    的頭像 發(fā)表于 08-28 11:37 ?311次閱讀

    時序邏輯電路有哪些結(jié)構(gòu)特點(diǎn)呢

    具有兩個穩(wěn)定狀態(tài)的電路,可以用來存儲一位二進(jìn)制信息。觸發(fā)器的類型有很多,如SR觸發(fā)器、JK觸發(fā)器、D觸發(fā)器、T觸發(fā)器等。觸發(fā)器的工作原理是通過輸入信號和時鐘信號的組合來改變其輸出狀態(tài)。 時鐘信號
    的頭像 發(fā)表于 08-28 11:07 ?209次閱讀

    加法器是時序邏輯電路

    加法器不是時序邏輯電路 ,而是組合邏輯電路的一種。時序邏輯電路和組合邏輯電路的主要區(qū)別在于它們?nèi)?/div>
    的頭像 發(fā)表于 08-28 11:05 ?274次閱讀

    時序邏輯電路包括什么器件組成

    時序邏輯電路是一種數(shù)字電路,它根據(jù)輸入信號和電路內(nèi)部狀態(tài)的變化產(chǎn)生輸出信號。時序邏輯電路廣泛應(yīng)用
    的頭像 發(fā)表于 07-30 15:02 ?428次閱讀

    邏輯電路時序邏輯電路的區(qū)別

    在數(shù)字電子學(xué)中,邏輯電路時序邏輯電路是兩種基本的電路類型。它們在處理數(shù)字信號和實現(xiàn)數(shù)字系統(tǒng)時起著關(guān)鍵作用。邏輯電路主要用于實現(xiàn)基本的
    的頭像 發(fā)表于 07-30 15:00 ?458次閱讀

    觸發(fā)器和時序邏輯電路詳解

    在數(shù)字電路設(shè)計中,觸發(fā)器和時序邏輯電路是構(gòu)建復(fù)雜數(shù)字系統(tǒng)不可或缺的基礎(chǔ)元素。觸發(fā)器(Flip-Flop)作為基本的存儲單元,能夠存儲一位二進(jìn)制信息,并在特定的時鐘信號控制下更新其狀態(tài)。
    的頭像 發(fā)表于 07-18 17:43 ?790次閱讀

    什么是組合邏輯電路時序邏輯電路?它們之間的區(qū)別是什么

    決定。它們沒有儲存器或時鐘元件,因此輸出僅取決于當(dāng)前輸入的狀態(tài)。組合邏輯電路不存儲任何信息,也沒有內(nèi)部狀態(tài)。典型的組合邏輯電路包括門電路、多路選擇器、譯碼器和編碼器等。
    的頭像 發(fā)表于 03-26 16:12 ?2859次閱讀

    時序邏輯電路輸出與什么有關(guān) 時序邏輯電路由哪兩部分組成

    組成:組合邏輯電路時鐘電路。組合邏輯電路是一種基本的邏輯電路,其輸出僅僅取決于當(dāng)前的輸入信號,與時間無關(guān)。組合
    的頭像 發(fā)表于 02-06 14:30 ?2329次閱讀

    時序邏輯電路有哪些 時序邏輯電路和組合邏輯電路區(qū)別

    時序邏輯電路是一種能夠存儲信息并根據(jù)時鐘信號按照特定順序執(zhí)行操作的電路。它是計算機(jī)硬件中非常重要的一部分,用于實現(xiàn)存儲器、時序控制器等功能。
    的頭像 發(fā)表于 02-06 11:18 ?8461次閱讀

    時序邏輯電路電子課件

    電子發(fā)燒友網(wǎng)站提供《時序邏輯電路電子課件.ppt》資料免費(fèi)下載
    發(fā)表于 11-21 14:43 ?0次下載
    <b class='flag-5'>時序</b><b class='flag-5'>邏輯電路</b>電子課件

    FPGA學(xué)習(xí)-時序邏輯電路

    時序邏輯電路 一 : 觸發(fā)器 1:D 觸發(fā)器 : 時序邏輯電路最小單元 。 (1):D 觸發(fā)器工作原理 忽略清零端情況下 : 當(dāng)使能條件 ( 往往為
    的頭像 發(fā)表于 11-02 12:00 ?883次閱讀
    FPGA學(xué)習(xí)-<b class='flag-5'>時序</b><b class='flag-5'>邏輯電路</b>