这是我第一次编写VHDL代码,我想知道这个简单的ALU VHDL代码是否完整。我能找到的所有东西都是针对更复杂的ALU,但我只需要编写这个简单的ALU。
问题如下:
编写一个表示带有整数输入和的简单ALU的行为模型 输出和类型位的函数选择输入。如果函数select为'0',则为ALU 输出应该是输入的总和;否则输出应该是差异 输入。
entity ALU is
port(x, y, func: in bit; z: out bit;);
end entity ALU;
architecture behav of ALU is
begin
alu: process is
begin
case func is
when "0" =>
z <= x + y;
wait on x, y;
when "1" =>
z <= x - y;
wait on x, y;
end case;
end process;
end behav;
我不是要求一个完整的解决方案,而只是要知道我的代码是否是我为这个简单问题所需要的一切。
谢谢!
答案 0 :(得分:2)
如果输入x
和y
没有改变,但操作符func
会改变,您的代码将会失败。
话虽如此,在我见过的所有VHDL代码中,您只需使用敏感列表而不是等待语句。
process(func, x, y)
begin
case func is
when "0" =>
z <= x + y;
when "1" =>
z <= x - y;
end case;
end process;
或者,如果您使用的是VHDL-2008:
process(all)
begin
case func is
...