如何以微小的差异支持架构重用

时间:2014-12-15 15:18:42

标签: hardware vhdl

我需要一些关于VHDL的提示。我很陌生,所以要善良。

我已经写了一个模块,我已经注册了输出(它是一个Carry Save Adder - CSA)。我在我的设计的某些部分使用了这个模块。

现在我要使用相同的模块,但我需要删除输出寄存器(我需要以组合的方式使用它)。我知道我可以复制和粘贴VHDL代码并使用不同的实体,但在我看来它有点不优雅。

我想使用通用参数,但我不知道从哪里开始。有人可以给我一个暗示吗?

1 个答案:

答案 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;