我需要一些关于VHDL的提示。我很陌生,所以要善良。
我已经写了一个模块,我已经注册了输出(它是一个Carry Save Adder - CSA)。我在我的设计的某些部分使用了这个模块。
现在我要使用相同的模块,但我需要删除输出寄存器(我需要以组合的方式使用它)。我知道我可以复制和粘贴VHDL代码并使用不同的实体,但在我看来它有点不优雅。
我想使用通用参数,但我不知道从哪里开始。有人可以给我一个暗示吗?
答案 0 :(得分:2)
是的,在架构中添加注册输出通用。如果是这样,请实现已注册的输出。如果它为假,则将输出连接到寄存器的输入。然后,您可以使用不同的通用集在两个不同的位置实例化它。
此代码完全未经测试(甚至未编译),但希望您明白这一点。
GEN_REG : if REG_OUTPUT = true generate
p_output : process is
begin -- process p_output
wait until clk'event and clk = '1';
Q <= Q_internal;
end process p_output;
end generate GEN_REG;
GEN_WIRE : if REG_OUTPUT = false generate
Q <= Q_internal;
end generate GEN_WIRE;