時間的重要性不言而喻,加上時間這個維度就如同X-Y的平面加上了一個Z軸,如同打開了一個新的世界。所以今天我們就要來聊聊時序電路。
在時序電路中,電路任何時刻的穩定狀態輸出不僅取決于當前的輸入,還與前一時刻輸入形成的狀態有關。是不是有點繞?這樣,下次當你和對象吵架時,她把以前各種舊賬翻出來一起算的時候,你別急著還嘴,趕緊趁機溫習一下時序電路的概念,也許你想著想著就笑了。
總之……時序電路是有記憶功能的,因此可以設計成儲存電路用來保存信息。常用的存儲電路有兩類:一類采用電平觸發,我們稱為鎖存器(Latch);另一類通過邊沿信號觸發,也就是觸發器(Flip-flop)。中文譯法經常有一種不明覺厲的感覺有木有。 事實上,觸發器的工作原理并不復雜。首先我們來看圖1。
圖1D觸發器框圖和內部門電路結構
圖1所示的是一個D類觸發器的框圖和內部門電路結構??驁D中輸入端的三角形代表著時鐘信號邊沿觸發方式。同學們可以通過門電路結構研究D類觸發器的工作原理,在這里我們直接給出它的狀態特性表:
CLK | D | Q | Q’ |
X | X | X | Q |
X | 0 | 0 | 0 |
↑ | 0 | 1 | 1 |
↑ | 1 | 0 | 0 |
↑ | 1 | 1 | 1 |
其中,向上的箭頭表示時鐘信號從低升至高電平時觸發有效;反之,從高電平降至低電平的邊沿觸發方式則由向下的箭頭表示?,F在我們給出D類觸發器的Verilog代碼:
module dff2 ( input clk,d, output reg q, output wire qbar ); assignqbar=~q;always@(posedgeclk)//只有clk上升沿時刻觸發q<=?d;??????? //?只有當觸發生效時,才將d的值賦予給q endmodule? 上述代碼的意思差不多等效于:你不起床就別想讓我起床。就算你起床了,如果沒把早餐做好,我還是不起床。 ? 現在,我們已經有了代碼,如何在小腳丫上進行實驗呢?其他的好說,問題是我們要處理一下時鐘信號的問題,也就是代碼中的clk變量。
通常,輸入變量clk直接會被指定到小腳丫的板載時鐘信號上。不過,小腳丫的固定時鐘信號頻率為12兆赫茲,比人眼能分辨出的頻率快近幾十萬倍,所以我們根本不可能觀察到任何變化。 在我們學習時鐘分頻之前,觀察本次實驗的最好辦法,就是通過手動時鐘信號。因此,我們將變量分配至小腳丫的以下管腳:
變量 | 小腳丫元件 | FPGA管腳 |
clk | SW1 | J12 |
d | SW4 | H13 |
q | L1 | N15 |
qbar | L2 | N14 |
理論上說,將上述程序及管腳分配導入至小腳丫后,可以通過調節開關SW1和SW4來觀察q和qbar的狀態(L1和L2)。 我知道很多人手里沒有小腳丫,并且也懶得去www.stepfpga.com上購買,所以我就拋一個問題讓大家隔空思考一下(才知道微信把公眾號留言功能給關閉了):假如說,這個程序在仿真上的結果是正確的,但是導入小腳丫之后就不正常工作了,你覺得會是什么原因?
責任編輯:xj
原文標題:基于FPGA的數字電路實驗5:時序電路之觸發器
文章出處:【微信公眾號:FPGA入門到精通】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603321 -
時序電路
+關注
關注
1文章
114瀏覽量
21700 -
數字電路
+關注
關注
193文章
1605瀏覽量
80618
原文標題:基于FPGA的數字電路實驗5:時序電路之觸發器
文章出處:【微信號:xiaojiaoyafpga,微信公眾號:電子森林】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論