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

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

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

3天內不再提示

時序邏輯電路:時鐘分頻

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

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

嘀嗒嘀嗒嘀嗒嘀嗒

時針它不停在轉動

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

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

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

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

圖1

如果想得到更低的輸出頻率,比如1MHz,則除數調整12;如果1KHz,除數調成12000,依次類推。注意,這種方法只對除數為偶數的情況下才管用!以下是生成1Hz輸出的代碼,于是我們將除數調成了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

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

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

圖2

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

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

圖3

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

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

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

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

了解了3倍分頻之后,如何實現通用的奇數分頻自然也就不在話下了,這一部分就交給愿意動手嘗試的朋友們去自行練習了。

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

責任編輯:xj

原文標題:基于FPGA的數字電路實驗6:時序邏輯電路之時鐘分頻

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


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

    關注

    1626

    文章

    21677

    瀏覽量

    601992
  • 電路
    +關注

    關注

    172

    文章

    5852

    瀏覽量

    171933
  • 數字
    +關注

    關注

    1

    文章

    1693

    瀏覽量

    51274

原文標題:基于FPGA的數字電路實驗6:時序邏輯電路之時鐘分頻

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

收藏 人收藏

    評論

    相關推薦

    時序邏輯電路故障分析

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

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

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

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

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

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

    時序邏輯電路是數字電路中的一種重要類型,它不僅在計算機、通信、控制等領域有著廣泛的應用,而且對于理解和設計現代電子系統具有重要意義。 1. 時序邏輯
    的頭像 發表于 08-28 11:45 ?824次閱讀

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

    時序邏輯電路是數字電路中的一種重要類型,其特點是電路的輸出不僅取決于當前的輸入,還取決于電路的狀態。時序
    的頭像 發表于 08-28 11:41 ?455次閱讀

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

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

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

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

    時序邏輯電路有哪些結構特點呢

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

    加法器是時序邏輯電路

    加法器不是時序邏輯電路 ,而是組合邏輯電路的一種。時序邏輯電路和組合邏輯電路的主要區別在于它們如
    的頭像 發表于 08-28 11:05 ?431次閱讀

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

    時序邏輯電路是一種數字電路,它根據輸入信號和電路內部狀態的變化產生輸出信號。時序邏輯電路廣泛應用
    的頭像 發表于 07-30 15:02 ?608次閱讀

    邏輯電路時序邏輯電路的區別

    在數字電子學中,邏輯電路時序邏輯電路是兩種基本的電路類型。它們在處理數字信號和實現數字系統時起著關鍵作用。邏輯電路主要用于實現基本的
    的頭像 發表于 07-30 15:00 ?645次閱讀

    觸發器和時序邏輯電路詳解

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

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

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

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

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

    時序邏輯電路有哪些 時序邏輯電路和組合邏輯電路區別

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