VHDL generate vagy valami mas
Radó Zoltán
zrado at leasingtechnology.com
Thu Mar 20 18:53:38 CET 2003
Haliho!
Hogy lehet az alábbi VHDL kódot "dinamikussá" tenni, hogy egy globalis
constant-nak megfeleloen mukodjon?
----------------------------------------------------------------------------
constant port_no: integer:= 6;
signal tx: std_logic_vector(port_no-1 downto 0);
signal tx_en: std_logic_vector(port_no-1 downto 0);
Sout <= tx(0) when tx_en(0) = '1' else
tx(1) when tx_en(1) = '1' else
tx(2) when tx_en(2) = '1' else
tx(3) when tx_en(3) = '1' else
tx(4) when tx_en(4) = '1' else
tx(5) when tx_en(5) = '1' else
'1';
----------------------------------------------------------------------------
Ilyesmire gondolok, hogy:
---------------------------------------------------------------------------
proba: for i in 0 to port_no-1 generate
Sout <= tx(i) when tx_en(i) = '1' else '1';
end generate;
----------------------------------------------------------------------------
Ezzel ugye az a baj, hogy multi source lesz az Sout...
Egy megoldast tudtam kitalálni: (de általánosabb megoldást keresek)
----------------------------------------------------------------------------
--------------------
constant zeros: std_logic_vector(port_no-1 downto 0):= (others => '0');
signal sout_masked: std_logic_vector(port_no-1 downto 0);
sout_masked <= tx and tx_en;
Sout <= '0' when sout_masked = zeros and tx_en /= zeros else '1';
----------------------------------------------------------------------------
--------------------
Köszi...
Zoli
More information about the Elektro
mailing list