请教关于vhdl顺序语句赋值的问题(只有4行代码)
这是我们课上的一个作业,代码如下:begin
PROCESS(CLK)
BEGIN
IF CLK'EVENT ANDCLK='1' THEN
A<=D;
END IF;
Q<=A;
END PROCESS;
其中A是自己定义的signal,D和Q是输入输出。综合以后显示的是一个d触发器。
但是我的理解是在时钟上升沿,两个赋值应该同时进行,A<=D要在进程结束后才完成赋值,故在Q<=A时,A的值还没有变化。在时钟下降沿,才完成了Q的值是之前D的值。所以这样的话,综合的电路应该是两个触发器串联,第一个上升沿触发,第二个为下降沿触发。
请问我的理解错在哪里?为什么结果是一个上升沿的d触发器? D触发器本来就有延时功能
begin
PROCESS(CLK)
BEGIN
IF CLK'EVENT ANDCLK='1' THEN
A<=D;
END IF;
END PROCESS;
Q<=A; 放在进程后吧 回复【楼主位】nionio
-----------------------------------------------------------------------
好像有竞争冒险吧!
页:
[1]