0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

時序邏輯電路:時鐘分頻

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

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

嘀嗒嘀嗒嘀嗒嘀嗒

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

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

相信大家和我的想法一樣,就一個字:等。既然一秒鐘可以嘀嗒一千兩百萬次,那我們每次點亮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ù)分頻的故事還是稍微多一點。我們看一下圖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ā)后進行賦值即可。

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ā)后進行賦值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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1640

    文章

    21910

    瀏覽量

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

    關(guān)注

    173

    文章

    6009

    瀏覽量

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

    關(guān)注

    1

    文章

    1698

    瀏覽量

    51639

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

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

收藏 0人收藏

    評論

    相關(guān)推薦

    邏輯電路芯片-組合邏輯電路芯片-時序邏輯電路芯片

    微型電子元件,在極小的空間內(nèi)實現(xiàn)了復(fù)雜的邏輯功能。邏輯電路芯片根據(jù)設(shè)計不同,可以分為組合邏輯電路時序邏輯電路兩大類。
    發(fā)表于 09-30 10:47

    時序邏輯電路故障分析

    時序邏輯電路的主要故障分析是一個復(fù)雜而重要的課題,它涉及電路的穩(wěn)定性、可靠性以及整體性能。以下是對時序邏輯電路主要故障的全面分析,旨在幫助理
    的頭像 發(fā)表于 08-29 11:13 ?1491次閱讀

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

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

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

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

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

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

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

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

    時序邏輯電路的五種描述方法

    時序邏輯電路是數(shù)字電路中的一種重要類型,它具有存儲和處理信息的能力。時序邏輯電路的描述方法有很多種,不同的方法適用于不同的設(shè)計和分析場景。以
    的頭像 發(fā)表于 08-28 11:39 ?2188次閱讀

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

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

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

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

    加法器是時序邏輯電路

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

    時序邏輯電路中如何判斷有效狀態(tài)和無效狀態(tài)

    時序邏輯電路中,有效狀態(tài)和無效狀態(tài)的判斷是電路分析和設(shè)計的重要環(huán)節(jié)。有效狀態(tài)是指電路在實際工作過程中被利用到的狀態(tài),它們構(gòu)成了電路的有效循
    的頭像 發(fā)表于 08-12 15:51 ?3944次閱讀

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

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

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

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

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

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

    時序邏輯電路的分類及各種電路特點是什么?

    時序邏輯電路是數(shù)字電路中的一種,它不僅具有組合邏輯電路的即時輸出特性,還擁有記憶功能,能夠根據(jù)輸入信號和當(dāng)前狀態(tài)產(chǎn)生輸出。
    的頭像 發(fā)表于 05-23 15:19 ?3929次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品