一.非阻塞賦值延時打拍
always@ (posedge clk) begind1<= d;d2?<=?d1;? ? ? ....... ? ? ?dout <=?dn;end
本質(zhì)上就是對數(shù)據(jù)進行多級寄存器緩存,延遲時間以clk的一個周期為單位,消耗的就是寄存器。比較適合延遲固定周期以及延遲周期比較短的情況。
缺點:延遲時間不方便控制,不適合延遲時間比較長的情況。
二、移位寄存器延時
reg [data_width*delay_width-1:00] data_r=0;always@ (posedgeclk)begin data_r <= {data_r[data_width*(delay_width-1)-1:0],data_in};endassign?data_out=data_r[camera_trig_delay_time];
這種方法利用的是移位寄存器的方法,用的是SLICEM資源。SLICEM可以在不使用觸發(fā)器的條件下配置為32位移位寄存器(注意:只能左移)。這樣,每個LUT可以將串行數(shù)據(jù)延遲1到32個時鐘周期。移位輸入D(LUT DI1腳)和移位輸出Q31(LUT MC31腳)可以進行級聯(lián),以形成更大的移位寄存器,達到更大的延遲效果。這種方法延遲的時間可配置性也比較高。
缺點:占用的資源比較多。尤其當延遲的數(shù)量級較大時,拼接的位移寄器是有個數(shù)限制的,如下圖則是當延遲時間設置比較久的時候vivado報錯的截圖。

三、計數(shù)器實現(xiàn)任意周期延時
這種資源消耗率較低,延遲周期也比較靈活。
parameterdelay_per =8'h4;//延時周期數(shù)regflag;reg[7:0] delay_count; always@(posedgeclkornegedgerst_n)beginif(!rst_n)begin flag <=?0; ? ? ? ?endelseif(in1)begin? ? ? ? ?flag <=?1; ? ? ? ?endelseif(delay_count == delay_per)begin? ? ? ? ?flag <=?0; ? ? ? ?endendalways?@(posedge?clk?ornegedge?rst_n)?beginif(!rst_n)begin? ? ? ? ?delay_count <=?0; ? ? ? ? out1 <=?0; ? ? ? ?endelseif(delay_count == delay_per && flag ==?1'b1)begin? ? ? ? ?delay_count <=?0; ? ? ? ? out1 <=?1; ? ? ? ?endelseif(flag ==?1'b1)begin? ? ? ? ?delay_count <= delay_count +?1'b1; ? ? ? ? out1 <=?0; ? ? ? ?endelsebegin? ? ? ? ?delay_count <=?0; ? ? ? ? out1 <=?0; ? ?endend
這種實現(xiàn)方式比較多,這里摘錄了網(wǎng)上的代碼。這種方法下,延遲的時間必須小于信號的間隔。因為如果延遲時間大于了信號間隔,就會丟掉信號。
缺點:.延遲時間必須小于信號間隔。
四、大容量存儲
對于比較大時間的延遲,可以用RAM或者fifo或者DDR這種存儲介質(zhì)進行緩存延遲
-
FPGA
+關注
關注
1650文章
22213瀏覽量
627639 -
寄存器
+關注
關注
31文章
5498瀏覽量
128107 -
計數(shù)器
+關注
關注
32文章
2302瀏覽量
97269
原文標題:FPGA中數(shù)據(jù)延遲方案匯總
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
無線模塊通信中的數(shù)據(jù)延遲
使用通信中的無線模塊的數(shù)據(jù)延遲
使用通信中的無線模塊的數(shù)據(jù)延遲
FPGA使用ddio方式送數(shù)據(jù)給AD9957發(fā)現(xiàn)FPGA送數(shù)據(jù)的延遲較大
如何在FPGA中實現(xiàn)選定信號的準確延遲
一種基于FPGA和DSP的高速數(shù)據(jù)采集設計方案介紹
PCIE高速傳輸解決方案FPGA技術XILINX官方XDMA驅(qū)動
請問大神FPGA延遲控制用多少個bit可以達到輸出給DAC的是2路250M的數(shù)據(jù)?
FPGA的多路可控脈沖延遲系統(tǒng)設計
低成本FPGA中實現(xiàn)動態(tài)相位調(diào)整方案
通過高性能FPGA搭建的客制硬體,更大幅縮短往返交易延遲
在FPGA高速AD采集設計中的PCB布線解決方案淺析
Xilinx Vivado I/O延遲約束介紹
FPGA學習-IO延遲的約束方法
集成電源解決方案-Altera FPGA應用介紹

FPGA中數(shù)據(jù)延遲方案介紹
評論