• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

fpga资源不够怎么实现延时

無唁苡對 2018-10-30 浏览量:1743
我想实现延时,本来用移位寄存器实现比较大的延时,但是延时太多,资源不够,我还有什么方法实现大的延时????
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 取决于你需要的延时长短,基本上有两张方法。
    1)利用走线的延时。可以用约束的方法,让这个信号的走线人为绕远。这种方式可以延时几到几十纳秒,但是随着芯片的批次不同以及芯片工作温度的变化,这个延时是不精确的;
    2)利用时钟往后推。就是用一个时钟对这个信号采样,可以获得时钟周期的整数倍延时。

    • 发布于 2018-10-30
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 洛克人zxa:我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

其他答案 数量:11
無唁苡對 回复了 yhj416606438 :我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

  • 在内部设计一个定时器/计数器,由该定时器或者计数器来实现延时
    • 发布于2018-10-30
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 wo4fisher :我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

  • 在内部设计一个定时器/计数器,由该定时器或者计数器来实现延时
    • 发布于2018-10-30
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 wo4fisher :我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

  • 1、门延时数量级的延时(几个ns),可用逻辑门来完成,但告诉综合器不要将其优化掉(不精确,误差大,常常不被推荐)。比如用两个非门(用constraint 来告诉synthesizer 不要综合掉这些逻辑)。
    2、使用delay cell,lcell。
    3、采用更快的时钟,通过计数器来实现对于比较小的延时用两个DFF 级联就可以。
    4、用fifo 或ram 实现。
    5、通过移位寄存器实现,延迟的时间和移位寄存器的位数有关。
    6、使用负时钟驱动DFF来获得半个时钟周期的延时。
    7、使用合适的buffer甚至用几个buffer的串联。
    • 发布于2018-10-31
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 FEItwo :我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

無唁苡對 回复了 @曲终人散@ :我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

  • 大延时可以用触发的方式,比如频率分到很低,用上升沿或者下降沿来做触发信号,
    • 发布于2018-10-31
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 fighter-12315 :我分的是很低,但是我发现还是没有作用 回复

  • 你可以用软件分时使用的方式来进行延时,这样不会占用你的硬件资源
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以设置一个小的延时,进行反复的调用来生成长时间的延时
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以设置一个小的延时,进行反复的调用来生成长时间的延时
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 用内部的定时器可以做到,直接定时器来定时输出
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 用多个延时来做,多个延时的累加也可以作为一个大的延时时间
    • 发布于2018-12-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

fpga资源不够怎么实现延时