Vhdl 这个设计有什么问题
我有一些VHDL代码在合成时表现得很奇怪,但我怀疑我对VHDL合成的基本理解是错误的 同步是一个短脉冲,大约有半个时钟周期,在时钟上升沿上为高,但不久后变低。在合成过程中,当同步高时,只有一些信号分配分配在clk上升沿上 同步是否需要在最短时间内保持高同步Vhdl 这个设计有什么问题,vhdl,Vhdl,我有一些VHDL代码在合成时表现得很奇怪,但我怀疑我对VHDL合成的基本理解是错误的 同步是一个短脉冲,大约有半个时钟周期,在时钟上升沿上为高,但不久后变低。在合成过程中,当同步高时,只有一些信号分配分配在clk上升沿上 同步是否需要在最短时间内保持高同步 process(clk) begin if rising_edge(clk) then if sync = '1' then a <= '1'; y3 <= y2; y2 <= y1
process(clk)
begin
if rising_edge(clk) then
if sync = '1' then
a <= '1';
y3 <= y2;
y2 <= y1;
y1 <= y0;
end if;
end if;
...
只有a在合成时更新其值…我只能猜测,因为您没有显示整个过程 在进程运行之前,信号不会得到更新。因此,如果您使用信号作为中间变量,其他信号将不会像您预期的那样更新
if a is a signal which has value 1 before the process.
process(clk)
...
a <= '0'
a still has value 1 here
....
end process
a's value is now updated to 0
我只能猜测,因为你没有展示整个过程 在进程运行之前,信号不会得到更新。因此,如果您使用信号作为中间变量,其他信号将不会像您预期的那样更新
if a is a signal which has value 1 before the process.
process(clk)
...
a <= '0'
a still has value 1 here
....
end process
a's value is now updated to 0
你在这里展示的看起来不错。它和你们在模拟中期望的一样吗?我希望Y3,Y2,Y1会被更新,但什么也没发生。所以我想知道同步脉冲对于实现来说是否太短,或者类似的东西。不,如果正在更新,那么同步脉冲没有问题。您在这里显示的看起来没问题。它和你们在模拟中期望的一样吗?我希望Y3,Y2,Y1会被更新,但什么也没发生。所以我想知道同步脉冲对于实现来说是否太短,或者类似的东西。不,如果正在更新,那么同步脉冲没有问题。