打印

请教下这样做有什么用

[复制链接]
2311|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangjun403|  楼主 | 2011-7-15 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, ce, ic, TE, se
architecture behav of nios_fifo_ram_interface is

signal nARE_delay1,nARE_delay2 :std_logic;
signal nAWE_delay1,nAWE_delay2 :std_logic;

begin

process(reset_b,clk)
begin
if reset_b = '0' then
nARE_delay1 <= '1';
nARE_delay2 <= '1';

nAWE_delay2 <= '1';
nAWE_delay1 <= '1';
elsif clk'event and clk='1' then
nARE_delay2 <= nARE_delay1;
nARE_delay1 <= nARE;

nAWE_delay2 <= nAWE_delay1;
nAWE_delay1 <= nAWE;
end if;
end process;

……

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


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

下面为什么执行那样的判断呢

相关帖子

沙发
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的跳变。

使用特权

评论回复
5
binghe41| | 2011-7-15 22:39 | 只看该作者
时钟上升沿产生寄存器,时钟触发用来刷新信号值,并且保持一周期

使用特权

评论回复
6
nongfuxu| | 2011-7-16 19:43 | 只看该作者
学习中!

使用特权

评论回复
7
sxhhhjicbb| | 2011-7-16 20:58 | 只看该作者
3# wangjun403

event 的话,会引入一个时钟网络,在同步电路设计中,推荐的是单一时钟网络.
当然如果是低速的话,多时钟网络也是可以的.
或LZ很NB,也可以采用多时钟网络

使用特权

评论回复
8
wangjun403|  楼主 | 2011-7-16 21:45 | 只看该作者
LS解释的感觉很合理

但event为什么就会引入时钟网络呢?没有见那里说过啊

使用特权

评论回复
9
sxhhhjicbb| | 2011-7-17 09:42 | 只看该作者
8# wangjun403

LS请查看。D触发器的结构。是由FPGA内部的资源决定的。

使用特权

评论回复
10
rockhard| | 2011-7-17 10:52 | 只看该作者
主要目的是为了用同一个时钟。在FPGA源代码设计过程中,大多数人愿意偏向用同一个时钟,这样设计比较保守,在最后物理布线时不会出现多时钟的麻烦。
如果设计比较复杂,这样的风格比较有益处。如果设计不复杂,则没什么必要。

使用特权

评论回复
11
wangjun403|  楼主 | 2011-7-17 10:57 | 只看该作者
9# sxhhhjicbb

谢谢,你说的很对

使用特权

评论回复
12
小嘿| | 2011-7-19 16:03 | 只看该作者
除非万不得已,不要引入多域时钟;正所谓多个香炉多个鬼

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

0

主题

629

帖子

1

粉丝