如何在结构VHDL代码中更新时钟上升沿的输出?

时间:2017-09-24 23:49:09

标签: vhdl

我有这个非常简单的16位和门在VHDL中用结构形式写的: 文件已上传here

Map

为了在时钟的上升沿更新输出,我已经定义了这个" s"信号。我想知道这是否是更新结构VHDL代码输出的正确方法?我该怎么做才能为第一个输出扫描未知输出?

任何评论都会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

将顺序进程放入子模块并在顶层(and_16bit)中实例化它会更好。然后你的顶级将更具结构性。

您可以像and_1bit一样为每个位设置一个实例。

例如,该模块是1位寄存器。

entity dff_1bit is
    Port (
        D   : in  std_logic;
        Clk : in  std_logic;
        Q   : out std_logic );
end dff_1bit;

architecture Behavioral of dff_1bit is
begin

process(Clk)
    begin
        if rising_edge(Clk) then
             Q <= D;                     
        end if;
end process;

end Behavioral;

然后,您可以在同一个and_16bit块内的generate中对其进行实例化。

dff_1bit_x: dff_1bit port map (D => s(i), Clk => Clk, Q => C(i));