一、Visio圖示
圖1 寄存器輸入輸出引腳
圖2 輸入為高電平-例1
同步復位和異步復位都存在于時序邏輯中,與組合邏輯相比對毛刺有屏蔽作用。
圖3 組合邏輯和時序邏輯的區(qū)別
當復位為高電平時,組合邏輯的結(jié)果是其輸入,時序邏輯的輸出需參考上升沿,此時紅色虛線處的key_in為高電平,故時序邏輯的輸出仍為高電平,這就解釋了為什么時序邏輯與組合邏輯相比對毛刺有屏蔽作用。
圖4 時序邏輯延遲一個周期
圖5 輸入為高低電平交錯-例2
二、代碼
1. rtl代碼
代碼如下(示例):
module flip_flop
(
input wire sys_clk,//時鐘信號頻率50MHz
input wire sys_rst_n,
input wire key_in,
output reg led_out
);
/* //同步復位
always@(posedge sys_clk)
if(sys_rst_n==1'b0)//復位信號低電平有效
led_out<=1'b0;//輸出0
else//復位信號高電平無效
led_out<=key_in;//輸入賦值給輸出 */
//異步復位
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n==1'b0)//復位信號低有效
led_out<=1'b0;//輸出0
else//復位信號無效
led_out<=key_in;//輸入賦值給輸出
endmodule
同步復位:當時鐘為上升沿時,如果復位信號是0,則低電平有效,此時輸出為0;當復位信號是1,則高電平無效,此時輸出與輸入一致。
異步復位:當時鐘為上升沿或復位為下降沿時,如果復位信號是0,此時輸出為0;當復位信號是1時,此時輸出與輸入一致。
2.RTL Viewer
圖6 同步復位RTL Viewer圖示
圖7 異步復位RTL Viewer圖示
3.測試文件
代碼如下(示例):
`timescale 1ns/1ns
module tb_flip_flop();
reg sys_clk;
reg sys_rst_n;
reg key_in;
wire led_out;
initial
begin
sys_clk=1'b1;
sys_rst_n<=1'b0;
key_in<=1'b0;//高低都行,這里是低
#20//延遲20個時間單位,即20ns
sys_rst_n<=1'b1;//復位信號低電平有效,先拉低,復位完成后再拉高,系統(tǒng)才能正常工作
#210//在下降沿進行復位
sys_rst_n<=1'b0;
#40
sys_rst_n<=1'b1;//觀察同步復位和異步復位的區(qū)別
end
always #10 sys_clk=~sys_clk;//每隔10ns反轉(zhuǎn)一次,即一個時鐘周期20ns,為50MHz
always #20 key_in<={$random}%2;
initial
begin
$timeformat(-9,0,"ns",6);
$monitor("@time %t:key_in=%b,led_out=%b",$time,key_in,led_out);
end
flip_flop flip_flop_inst
(
.sys_clk (sys_clk),
.sys_rst_n(sys_rst_n),
.key_in (key_in),
.led_out (led_out)
);
endmodule
三、仿真結(jié)果
根據(jù)上面的代碼仿真出的結(jié)果比較全局,沒有圖5所示復位全是高電平,此時將測試文件中的key_in不設置取余,而設置為1’b1,即高電平即可。
圖8 同步復位仿真結(jié)果
分析參考線,即229.95ns到270ns的情況:
同步復位:左側(cè)參考線處復位信號為0,但此時時鐘是下降沿,所以輸出延遲到時鐘在下一個上升沿時為0;右側(cè)參考線處復位信號為1,此時時鐘是下降沿,故輸出延遲到下一個上升沿才與輸入一致。
圖9 異步復位仿真結(jié)果文章來源:http://www.zghlxwxcb.cn/news/detail-768942.html
異步復位:左側(cè)參考線處復位信號為0,此時時鐘是下降沿,但復位是下降沿,故輸出立刻變?yōu)?;右側(cè)參考線處復位信號為1,時鐘是下降沿,復位信號是上升沿,故故輸出延遲到下一個上升沿才與輸入一致。文章來源地址http://www.zghlxwxcb.cn/news/detail-768942.html
到了這里,關于Quartus實現(xiàn)寄存器:同步復位+異步復位的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!