0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA中数据延迟方案介绍

FPGA设计论坛 来源:FPGA设计论坛 2025-10-15 10:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一.非阻塞赋值延时打拍

always@ (posedge clk) begind1<= d;d2 <= d1;      .......      dout <= dn;end

本质上就是对数据进行多级寄存器缓存,延迟时间以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可以在不使用触发器的条件下配置为32位移位寄存器(注意:只能左移)。这样,每个LUT可以将串行数据延迟1到32个时钟周期。移位输入D(LUT DI1脚)和移位输出Q31(LUT MC31脚)可以进行级联,以形成更大的移位寄存器,达到更大的延迟效果。这种方法延迟的时间可配置性也比较高。

缺点:占用的资源比较多。尤其当延迟的数量级较大时,拼接的位移寄器是有个数限制的,如下图则是当延迟时间设置比较久的时候vivado报错的截图。

c38903ae-a591-11f0-8c8f-92fbcf53809c.png

三、计数器实现任意周期延时

这种资源消耗率较低,延迟周期也比较灵活。

parameterdelay_per =8'h4;//延时周期数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

这种实现方式比较多,这里摘录了网上的代码。这种方法下,延迟的时间必须小于信号的间隔。因为如果延迟时间大于了信号间隔,就会丢掉信号。

缺点:.延迟时间必须小于信号间隔。

四、大容量存储

对于比较大时间的延迟,可以用RAM或者fifo或者DDR这种存储介质进行缓存延迟

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630191
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129053
  • 计数器
    +关注

    关注

    32

    文章

    2306

    浏览量

    97567

原文标题:FPGA中数据延迟方案汇总

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无线模块通信中的数据延迟

    无线模块在无线通讯的过程中会产生延迟接收的情况,造成这一情况的因素并不全是外界因素干扰,无线通讯技术本身也存在数据延迟,下面为大家介绍无线模块传输过程
    发表于 08-09 09:17

    使用通信中的无线模块的数据延迟

    无线模块在无线通讯的过程中会产生延迟接收的情况,造成这一情况的因素并不全是外界因素干扰,无线通讯技术本身也存在数据延迟,下面为大家介绍无线模块传输过程
    发表于 08-10 09:37

    使用通信中的无线模块的数据延迟

    无线模块在无线通讯的过程中会产生延迟接收的情况,造成这一情况的因素并不全是外界因素干扰,无线通讯技术本身也存在数据延迟,下面为大家介绍无线模块传输过程
    发表于 09-08 11:06

    FPGA使用ddio方式送数据给AD9957发现FPGA数据延迟较大

    请教ADI论坛的高手。 现在在调试一块板卡,板卡结构:FPGA的I/O与AD9957的18根数据线相连,AD9957的PDCLK输出到FPGA的专用时钟管脚,作为
    发表于 10-17 15:26

    如何在FPGA实现选定信号的准确延迟

    等等)中有传播延迟。因此,这些信号从另一个信号延迟20ns。信号频率范围是由输入可编程参考时钟控制的几KHz到20MHz。我的问题是:如何在FPGA实现选定信号(IOB输出)的准确
    发表于 05-28 12:16

    一种基于FPGA和DSP的高速数据采集设计方案介绍

    数据采集与处理系统提出了新的更高的要求,即高速度、高精度和高实时性。对数据采集与处理系统的设计,有以下3种方案可供选择:(1)A/D+DSP方案在传统的高速信号处理
    发表于 07-05 06:41

    PCIE高速传输解决方案FPGA技术XILINX官方XDMA驱动

    数据写到 FPGA 的发送 FIFO ,速率约为4.5GB/s,该采集卡具备上位机读写 FPGA 用户寄存器的功能,读写接口为 local bus 接口,方便易用。1. 系统结构图
    发表于 05-19 08:58

    请问大神FPGA延迟控制用多少个bit可以达到输出给DAC的是2路250M的数据

    请问大神,FPGA,ADC输出4路250M的数据,每个数据位宽16bit,延迟控制用多少个bit可以达到输出给DAC的是2路250M的
    发表于 04-23 14:46

    FPGA的多路可控脉冲延迟系统设计

    FPGA的多路可控脉冲延迟系统设计 采用数字方法和模拟方法设计了一种最大分辨率为0.15 ns级的多路脉冲延迟系统,可以实现对连续脉冲信号的高分辨
    发表于 03-29 15:09 2950次阅读
    <b class='flag-5'>FPGA</b>的多路可控脉冲<b class='flag-5'>延迟</b>系统设计

    低成本FPGA实现动态相位调整方案

    FPGA,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正确接收的目的。ALTERA的高端FPGA,如STRATIX(r) 系列
    的头像 发表于 02-16 17:32 1.1w次阅读
    低成本<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>实现动态相位调整<b class='flag-5'>方案</b>

    通过高性能FPGA搭建的客制硬体,更大幅缩短往返交易延迟

    在演算法交易领域的最新进展是导入一些更低延迟的解决方案,其中最佳的方式是使用FPGA搭建的客制硬体。这些FPGA硬体可说是硬编码ASIC的极致性能和CPU的灵活度之间的桥梁,提供大量的
    发表于 08-03 15:09 2556次阅读

    FPGA高速AD采集设计的PCB布线解决方案浅析

    FPGA高速AD采集设计,PCB布线差会产生干扰。今天小编为大家介绍一些布线解决方案
    发表于 03-07 14:52 7342次阅读

    Xilinx Vivado I/O延迟约束介绍

    1 I/O延迟约束介绍 要在设计精确建模外部时序,必须为输入和输出端口提供时序信息。Xilinx Vivado集成设计环境(IDE)仅在FPGA边界内识别时序,因此必须使用以下命令指
    的头像 发表于 11-29 10:01 6167次阅读

    FPGA学习-IO延迟的约束方法

    和set_output_delay命令来设置FPGA范围外的延迟值。两者在含义、约束命令等方面有很多地方是相似的,只不过一个是输入,一个是输出,本文还是分开对两者进行讲述; 输入延迟  set_input_delay命令设定
    的头像 发表于 01-01 11:50 4596次阅读

    集成电源解决方案-Altera FPGA应用介绍

    电子发烧友网站提供《集成电源解决方案-Altera FPGA应用介绍.pdf》资料免费下载
    发表于 11-28 09:21 0次下载
    集成电源解决<b class='flag-5'>方案</b>-Altera <b class='flag-5'>FPGA</b>应用<b class='flag-5'>介绍</b>