1、基礎d觸發器
always表述d觸發器
module dff1(clk,d,q);
input clk,d;
output q;
reg q;
always@(posedge clk)
q <= d;
endmodule
posedge clk時鐘邊沿敏感表述,negsedge clk為下降沿敏感,clk為電平敏感。
當輸入的時鐘訊號clk發生乙個上公升沿時,啟動過程語句,將d送往輸出訊號q。
2、非同步復位d觸發器
(1)always語句表述
module
dff1_1(d,clk,rst,q);
input d,clk,rst;
output q;
reg q;
always@(posedge clk,negsedge rst)
begin
if(!rst) q
<=0;
else
q<=d;
endendmodule
rst下降沿非同步復位,與時鐘無關
(2)udp表述d觸發器
primitive edge_udp(q,d,clk,rst)
input d,clk,rst;
output
q; reg q;
table
//d clk rst : q : q+
0 (01) 1 : ? : 0;
1 (01) 1 : ? : 1;
? (1?) 1 : ? : -;
//保持不變
? (?0) 1 : ? : -;
1 0 0 : ? : 0;
1 1 0 : ? : 0;
0 0 0 : ? : 0;
0 1 0 : ? : 0;
endtable
endprimitive
module dff_udp(q,d,clk,rst); //例化udp
input d,clk,rst;
output q;
edge_udp u1(q,d,clk,rst);
endmodule
3、含非同步復位和時鐘使能的d觸發器
module
dff2(clk,d,q,rst,en);
input clk,d,rst,en;
output q;
reg q;
always@(posedge clk,negsedge rst)
begin
if(!rst) q
<=0;
else
if(en) q
<=d;
endendmodule
當rst為0是q為0;當en為1時,d送往q。
4、含同步復位控制d觸發器
(1)
module
dff3(clk,d,q,rst)
input d,clk,rst;
output q;
reg q;
always@(posedge clk)
if(rst==0) q
<=0;
else
if(rst==1) q
<=d;
endmodule
(2)
module
dff3(clk,d,q,rst);
input d,clk,rst;
output q;
reeg q,q1;
always@(rst)
if(rst==0) q1
<=0;
else
q1<=d;
always@(posedge clk)
q<=q1;
endmodule
(3)
module
dff3(input
clk,input
d,input
rst,output
q); always@(posedge clk)
q<= (rst ? 1
'b0 : d );
endmodule
同步復位d觸發器有3種表述方式,第3種最簡單。 FPGA 時序原理(更新)
建立時間和保持時間都是針對觸發器的特性說的。時序圖如下 建立時間 tsu set up time 是指在觸發器的時鐘訊號上公升沿到來以前,資料穩定不變的時間,如果建立時間不夠,資料將不能在這個時鐘上公升沿被穩定的打入觸發器,tsu就是指這個最小的穩定時間。保持時間 th hold time 是指在觸...
FPGA時序分析1 FPGA結構
記錄學習,記錄成長 介紹fpga的基本結構並說明fpga如何實現可程式設計功能。為什麼要了解fpga基本結構呢?了解這些後,在進行fpga設計時,可以大概知道電路在fpga上是如何實現的。在進行時序約束或者提高時鐘頻率時,知其然更知其所以然。目錄 1.fpga介紹 2.fpga組成三要素 2.1 c...
FPGA時序約束筆記3
基於明德揚fpga時序約束教程 其中上游器件 下游器件 約束思路 對於input delay,最大延時就是2.4ns,最小就是1.3ns 對於output delay,由於線路延時使得setup更惡劣,使得hold更容易滿足,setup的要求需要相應提高,hold的要求可以相應降低。設定要求為 2....