時鐘和復(fù)位是FPGA中關(guān)鍵,下面是特權(quán)寫的,復(fù)制以備找工作~~~
同步復(fù)位:
1.復(fù)位信號只有在時鐘上升沿到來時,才能有效。
2.代碼為:
always@(posedge clk)
if ( !rst_n )
....
else
....
異步復(fù)位:
1.無論時鐘沿是否來到,只要復(fù)位信號有效就對系統(tǒng)復(fù)位。
2.代碼為:
always@ ( posedge clk or negedge rst_n )
if ( !rst_n )
....
else
....
優(yōu)缺點:
同步復(fù)位優(yōu)點:
1. 有利于仿真 2. 100%為同步電路 3. 可以濾除高于時鐘的毛刺
缺點:
1. 復(fù)位信號有效時長要大于時鐘周期,同時還要考慮電路延時
2. 大多數(shù)的邏輯器件只有異步復(fù)位接口,使用同步復(fù)位需要耗費較多的邏輯資源
異步復(fù)位優(yōu)點:
1. 節(jié)省資源 2. 設(shè)計簡單 3. 可以使用專用的復(fù)位端口CLR
缺點:
1. 在復(fù)位信號釋放時,如果在時鐘沿附近容易導(dǎo)致寄存器輸出出現(xiàn)亞穩(wěn)態(tài)
2. 復(fù)位信號容易受毛刺的影響
同時獲得兩者的優(yōu)點:異步復(fù)位,同步釋放
代碼為:
always@(poseedge clk or negedge rst_in)
if ( ! rst_in )
begin
rst_buf <= 1'b0;
rst_n <= 1'b0;
end
else
begin
rst_buf <= 1'b1;
rst_n <= rst_buf ;
end