Мой VHDL 1-битный поведенческий ALU завершен?
Я впервые пишу код VHDL, и мне интересно, завершен ли этот простой код ALU VHDL. Все, что я могу найти, для более сложных ALU, но мне просто нужно написать этот простой.
Проблема заключается в следующем:
Напишите поведенческую модель, которая представляет собой простой АЛУ с целочисленными входами и выходами, а также функцию выбора входа типа бит. Если выбрана функция '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;
Я не прошу полного решения, а просто хочу знать, является ли мой код всем необходимым для этой простой проблемы.
Спасибо!
1 ответ
Ваш код потерпит неудачу, если ввод 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
...