Я хотел реализовать 3xor ворота, выход из первых два XOR ворота должен быть входом для последнего исключающего воротаVHDL 3xor ворот в одном используя-структуру
xor1--->
xor3----> final output
xor2--->
Вот мой код, я не уверен, если то, что я сделал до сих пор, хорошо, и я думаю, что я должен объявить арку. когда я делаю мод. thingys? Приветствия за помощь!
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
architecture struct of triplexor is
component unit10
port (a0, a1: in bit; o1: out bit); --xor1
end component;
architecture func of unit10 is
begin
o1 <= a0 xor a1;
end func;
component unit11
port (a2, a3: in bit; o2: out bit); --xor2
end component;
architecture func of unit11 is
begin
o2 <= a2 xor a3;
end func;
component unit2
port (i1, i2: in bit; yi: out bit); --xor3
end component;
architecture func of unit2 is
begin
yi <= i1 xor i2;
end func;
signal ya, yb, yout: bit;
begin
mod_unit10: unit10 port map (a, b, ya);
mod_unit11: unit11 port map (a, b, yb);
mod_unit2 : unit2 port map (ya, yb, yout);
output: y<=yout;
end architecture struct;
Есть причина, почему вы скрываете операцию XOR в компонентах? Почему у вас есть 3 компонента, заполненных одним xor? Вы можете просто использовать один компонент и создать 3 экземпляра. Ваш пример всегда будет оцениваться как '0' (y: = x xor x -> y: = 0). Где ваша структура? – Paebbels
Является ли использование компонента обязательным? Не можете ли вы просто использовать: Y <= (a xor b) xor (c xor d); – grorel
Если вы ДОЛЖНЫ использовать компоненты, вы можете удалить две декларации компонентов и трижды создать экземпляр оставшегося компонента. –