目的是提供多个架构?

Ear*_*rlz 7 hardware syntax vhdl hdl

我正在学习VHDL,我正在尝试从示例,语法指南和实验中学习.

有一点我不太明白为什么你想要提供多个架构.例如,这个示例MUX代码:

architecture behv1 of Mux is
begin
    process(I3,I2,I1,I0,S)
    begin

        -- use case statement
        case S is
        when "00" =>    O <= I0;
        when "01" =>    O <= I1;
        when "10" =>    O <= I2;
        when "11" =>    O <= I3;
        when others =>  O <= "ZZZ";
    end case;

    end process;
end behv1;

architecture behv2 of Mux is
begin

    -- use when.. else statement
    O <=    I0 when S="00" else
        I1 when S="01" else
        I2 when S="10" else
        I3 when S="11" else
        "ZZZ";

end behv2;
Run Code Online (Sandbox Code Playgroud)

有它的目的,还是仅仅为了清酒?

此外,不确定这是属于这里还是Electronics.SE,所以我想先试试这里.

Tom*_*ila 7

虽然这个特定的例子似乎仅仅是为了一个例子,但是有几个原因可以解释为什么你需要为某些设计采用不同的架构.

当你试图模拟整个SoC设计的另一个(不相关的)部分时,通常做的一件事是出于性能原因提供IP设计的黑盒模型.

或者,您可能拥有更高级别的IP模型,允许更快的模拟时间,以及用于合成的模型.较高级别的模型通常用于处理器内核,因为在验证设计的其余部分时通常不需要模拟整个内核.

另一个可能的原因是在IP设计中有选择地具有不同的行为,以便在将IP集成到SoC设计中时可以实例化略微不同的版本.例如,一个架构可能用于一个时钟域操作,而另一个架构可能在两个不同的时钟域之间具有同步.