请教下这样做有什么用

[复制链接]
3063|11
 楼主| wangjun403 发表于 2011-7-15 19:08 | 显示全部楼层 |阅读模式
ST, ce, ic, TE, se
  1. architecture behav of nios_fifo_ram_interface is

  2. signal nARE_delay1,nARE_delay2 :std_logic;
  3. signal nAWE_delay1,nAWE_delay2 :std_logic;

  4. begin

  5. process(reset_b,clk)
  6. begin
  7. if reset_b = '0' then
  8. nARE_delay1 <= '1';
  9. nARE_delay2 <= '1';

  10. nAWE_delay2 <= '1';
  11. nAWE_delay1 <= '1';
  12. elsif clk'event and clk='1' then
  13. nARE_delay2 <= nARE_delay1;
  14. nARE_delay1 <= nARE;

  15. nAWE_delay2 <= nAWE_delay1;
  16. nAWE_delay1 <= nAWE;
  17. end if;
  18. end process;

  19. ……

  20. if (nAWE_delay2 ='1' and nAWE_delay1='0') then
  21. ……


请问下时钟上升沿的操作有什么用呢

下面为什么执行那样的判断呢
sxhhhjicbb 发表于 2011-7-15 19:33 | 显示全部楼层
捕获nAWE的下降沿。利用了同步逻辑中的信号将保持一个时钟周期的特性。
 楼主| wangjun403 发表于 2011-7-15 22:15 | 显示全部楼层
捕获下降沿可以用 event啊?为什么用这个呢

为什么需要保持这一个时钟周期呢
lwq030736 发表于 2011-7-15 22:21 | 显示全部楼层
时钟上升沿的操作是以时钟跳变作为触发,给信号赋值啊。
信号的赋值会在时钟上升沿之后才会得到更新,
在进程中上升沿那一个时刻,nAWE_delay2的值等于上上个上升沿时nAWE的值,nAWE_delay1的值等于上个时钟上升沿时nAWE的值。这样就可以判断nAWE是否发生了从1到0的跳变。
binghe41 发表于 2011-7-15 22:39 | 显示全部楼层
时钟上升沿产生寄存器,时钟触发用来刷新信号值,并且保持一周期
nongfuxu 发表于 2011-7-16 19:43 | 显示全部楼层
学习中!
sxhhhjicbb 发表于 2011-7-16 20:58 | 显示全部楼层
3# wangjun403

event 的话,会引入一个时钟网络,在同步电路设计中,推荐的是单一时钟网络.
当然如果是低速的话,多时钟网络也是可以的.
或LZ很NB,也可以采用多时钟网络
 楼主| wangjun403 发表于 2011-7-16 21:45 | 显示全部楼层
LS解释的感觉很合理

但event为什么就会引入时钟网络呢?没有见那里说过啊
sxhhhjicbb 发表于 2011-7-17 09:42 | 显示全部楼层
8# wangjun403

LS请查看。D触发器的结构。是由FPGA内部的资源决定的。
rockhard 发表于 2011-7-17 10:52 | 显示全部楼层
主要目的是为了用同一个时钟。在FPGA源代码设计过程中,大多数人愿意偏向用同一个时钟,这样设计比较保守,在最后物理布线时不会出现多时钟的麻烦。
如果设计比较复杂,这样的风格比较有益处。如果设计不复杂,则没什么必要。
 楼主| wangjun403 发表于 2011-7-17 10:57 | 显示全部楼层
9# sxhhhjicbb

谢谢,你说的很对
小嘿 发表于 2011-7-19 16:03 | 显示全部楼层
除非万不得已,不要引入多域时钟;正所谓多个香炉多个鬼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:数学才不是浮云

0

主题

629

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部