0****1
時序邏輯電路設(shè)計方法
時序邏輯電路的特點是輸出信號不僅與電路的輸入有關(guān),還與電路原來的狀態(tài)有關(guān)。
因此,電路需要具有記憶功能的存儲電路。FPGA中基本的存儲單元是D觸發(fā)器,也是實現(xiàn)時序邏輯的基本單元。
那么,什么樣的語句會被綜合成觸發(fā)器呢?在Verilog中,常使用always進程塊描述時序邏輯。此時,always進程塊中的敏感列表一般為時鐘邊沿和異步控制信號,
** always ** @(posedge clk,posedge rst)
always進程塊的執(zhí)行是在時鐘邊沿觸發(fā)下進行的。
時序邏輯電路按狀態(tài)變化的特點,可以分為同步時序邏輯電路和異步時序邏輯電路。
同步時序邏輯電路的各個觸發(fā)器狀態(tài)的轉(zhuǎn)換在同一時鐘脈沖作用下完成。目前,大多數(shù)數(shù)字電路都是同步時序電路。我們實驗中所涉及到的也都是同步時序電路。
在設(shè)計時需要注意,所有always敏感列表中第一項敏感信號應該為同一時鐘信號,比如,都為系統(tǒng)時鐘clk的上升沿。
不出現(xiàn)其他派生信號,比如,系統(tǒng)時鐘產(chǎn)生的分頻信號等等。
異步時序邏輯電路中,沒有統(tǒng)一時鐘,各觸發(fā)器狀態(tài)轉(zhuǎn)換是異步完成的。
在always進程塊描述時序邏輯時,賦值語句使用非阻塞賦值,即“<=”。
0****2
時序邏輯電路設(shè)計實例
下面來看幾個D觸發(fā)器的設(shè)計實例,來理解Verilog語句與電路之間的關(guān)系。
實例1:基本D觸發(fā)器
設(shè)計一個簡單的D觸發(fā)器,在時鐘上升沿觸發(fā)下,輸出等于輸入,其他時間輸出保持不變。
使用always語句進行描述,敏感列表為時鐘上升沿。當時鐘信號由0變?yōu)?時,執(zhí)行always語句“q_o=d_i”,如下圖所示。
我們看到輸入信號d_i不出現(xiàn)在敏感信號列表中,也就表明,輸入的變化不會引發(fā)輸出立即變化,只有在時鐘上升沿時才被采樣。
下面是綜合后的原理圖,綜合就是將Verilog設(shè)計對應到FPGA內(nèi)部組成單元上。
我們看到,綜合出的是D觸發(fā)器(FDRE為D觸發(fā)器,參見賽靈思官方文檔ug799),其中敏感列表中的clk被綜合為觸發(fā)器的時鐘信號C,d_i連接D觸發(fā)器輸入端D。D觸發(fā)器還包含信號CE(時鐘使能端),以及R(復位端,高有效),在本示例中均未用到。因此,將CE連接高電平,使時鐘始終有效,R連接低電平,使復位無效。
實例2:帶復位(高有效)的D觸發(fā)器
下面的例子加入了復位信號。復位分為同步復位和異步復位。
同步復位中,當復位信號有效時,必須要等到時鐘上升沿到來時,才能執(zhí)行復位信號相關(guān)的行為語句,如仿真波形圖中所示。
異步復位中的復位信號與時鐘沒有關(guān)系,只要復位信號有效,就立即執(zhí)行復位相關(guān)的邏輯行為。要實現(xiàn)異步復位,復位信號要放在敏感列表中。
仿真波形圖中可以看到,當rst有效時,輸出立即被復位,下一個clk上升沿到來時,此時,rst信號仍然有效,因此,輸出為0。再一個clk到來時,復位無效,則輸出等于輸入。
實例3:含異步復位(低有效)和同步使能的D觸發(fā)器
下面是一個帶有同步使能信號的D觸發(fā)器。
這里我們使用了低電平復位,當復位信號無效,使能信號有效時,在時鐘上升沿觸發(fā)下,輸出等于輸入。
在綜合后的原理圖中,en使能信號連接在了D觸發(fā)器的CE端。復位信號rst_n與CLK的連接經(jīng)過一個LUT(LUT是FPGA用于實現(xiàn)組合邏輯的基本單元查找表),在Vivado中可以看到該LUT的真值表,它實現(xiàn)的是反相器的功能,這也說明了賽靈思的FPGA中觸發(fā)器的復位引腳是高有效的,如果你設(shè)計中復位是低有效,這里就會多出一個反相器將其邏輯取反。
03
always進程塊用法總結(jié)
always進程塊是最常用的行為描述語句,他可以描述組合邏輯也可以描述時序邏輯。
描述組合邏輯時,敏感列表中為輸入電平信號,而描述時序邏輯時,敏感列表為時鐘邊沿及異步控制信號。Vivado綜合工具會根據(jù)always后面的敏感列表的不同形式綜合出相應的電路。
always在仿真中還可以通過延時控制來產(chǎn)生激勵信號。例如,always #5 clk=~clk,表示當執(zhí)行到該語句時,需要延遲5個時間單位的時間(由`timescales 定義),然后再執(zhí)行“clk=~clk”。
-
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
428瀏覽量
27360 -
反相器
+關(guān)注
關(guān)注
6文章
317瀏覽量
44269 -
D觸發(fā)器
+關(guān)注
關(guān)注
3文章
173瀏覽量
48769 -
時序邏輯電路
+關(guān)注
關(guān)注
2文章
94瀏覽量
16853 -
CLK
+關(guān)注
關(guān)注
0文章
128瀏覽量
17614
發(fā)布評論請先 登錄
評論