找回密码
 注册
搜索
查看: 1014|回复: 3

[讨论] 时钟延时的问题

[复制链接]
发表于 2006-4-20 09:11:00 | 显示全部楼层 |阅读模式
一个设计模块,在CLK时钟控制下工作,完成处理后,需要延时一个时钟,再输出数据。
请问,这个延时单元怎么设计?
谢谢!!
发表于 2006-4-26 18:09:00 | 显示全部楼层
<P>你用一个寄存器缓冲一下不就行了吗?</P><P>reg   temp;    (temp是数据)</P><P>reg  next_temp;</P><P><a href="mailtalways@(posedge" target="_blank" >always@(posedge</A> clock)</P><P>   begin</P><P>       next_temp&lt;=temp;</P><P>   end</P>[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-4-28 10:02:00 | 显示全部楼层
<P>你这实际就是D触发器嘛!!</P><P>但如果信号在CLK沿之前就有变化,怎么办??</P>
点评回复

使用道具 举报

发表于 2006-4-30 08:22:00 | 显示全部楼层
<b><FONT size=2>延时方法的汇总

</FONT></b>1、两个非门,(用constraint来告诉synthesizer不要综合掉这些逻辑)
2、delay cell,lcell
3、更高的时钟,计数器。
4、两个DFF
5、另一個clk buffer 這個延时變化較小
7、延时多久就得存储多久的数据,不用ff,用存储器也可以
8、用fifo或ram我知道一点,只是觉得用ip生成时都延时比较大,不如用内部的
  资源实现
9、负时钟驱动DFF来获得半个时钟周期的延时
10 合适的buffer,实在不行用几个buffer的串联也是可以的啊
11 有时候可以用门电路或者缓冲器实现几个NS的延时,比较好的办法使用触发器来完成,延时是一个你自己定义的一个触发时钟(可控)
12 一般在同步设计中尽量避免用缓冲器实现延时的,可以用触发器实现整个时钟周期的延时,但是这样可能有于需要的不符合。
13 VHDL Component Declaration:
   COMPONENT LCELL
   PORT (a_in : IN STD_LOGIC;
     a_out: OUT STD_LOGIC);
   END COMPONENT;
14 1。门延时数量级的延时(几个ns),可用逻辑门来完成,但告诉综合器不要将其优化掉。(不精确,误差大,常常不被推荐)
   2。几个时钟的延时时,可以用触发器来实现;
   3。长时间时就要用计数器了。
15 不过,在寄存器赋值时加一点延时对仿真有好处,可以完全消除竞争现象。
   比如这样的逻辑:
   always @(posedge clk)
   abc_r &lt;= #`HOLD_DELAY abc_nxt;
   是有利于仿真的。
16 在综合时,忽略所有的延时语句!
17 各个厂商的FPGA器件都受其工艺线宽,分布电容,连线阻抗等条件限制,则器件的门延时和连线延时都不尽相同,如-1,-2,-3,-10表示器件的速度(延时)。
   当系统的工作时钟频率小于器件的最大输入频率时如何运行?
   比如EP20K200-2的片子的最大时延为3ns,而系统的工作频率要求250M,此时这个系统肯定无法在这个平台上跑起来,如何解决?
   经多方咨询并试验解决,得到以下几种方法:
   1.改用更好的片子;
   2.采用流水线设计;
   3.改变时钟的占空比;(我得方法)
   4.大量使用组合逻辑;
18 用移位寄存器或者计数器
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-17 01:12 , Processed in 0.047239 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表