P
paradbird
Guest
Želim narediti asynchronism pisati, vendar ta program ne more delovati po sintezi, ne vem zakaj.
Prosim, daj mi nekaj svetuje.
Hvala veliko.
library IEEE;
uporaba ieee.std_logic_1164.all;
uporaba ieee.std_logic_unsigned.all;
Podjetje je ioInput
pristanišča (
D_out1: od std_logic_vector (255 downto 0);
D_out2: od std_logic_vector (127 downto 0);
cs: v std_logic;
wr: v std_logic;
naslov: v std_logic_vector (3 downto 0);
D_in: v std_logic_vector (31 downto 0)
);
end ioInput;
arhitektura arch_ioInput of ioInput je
podtip SLV32 je std_logic_vector (31 downto 0);
Tip je tmp_Data_in_type array (11 downto 0) of SLV32;
signal tmp_Data_in: tmp_Data_in_type;
začeti
proces (cs, naslov, WR, D_in)
začeti
če cs = '0 'in wr = '0' then
primeru je naslov
ko "0000" => tmp_Data_in (0) <= D_in;
ko "0001" => tmp_Data_in (1) <= D_in;
ko "0010" => tmp_Data_in (2) <= D_in;
ko "0011" => tmp_Data_in (3) <= D_in;
ko "0100" => tmp_Data_in (4) <= D_in;
ko "0101" => tmp_Data_in (5) <= D_in;
ko "0110" => tmp_Data_in (6) <= D_in;
ko "0111" => tmp_Data_in (7) <= D_in;
ko "1000" => tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />
<= D_in;
ko "1001" => tmp_Data_in (9) <= D_in;
ko "1010" => tmp_Data_in (10) <= D_in;
ko "1011" => tmp_Data_in (11) <= D_in;
ko drugi => null;
konec postopka;
end if;
koncu postopka;
D_out2 <= tmp_Data_in (3) & tmp_Data_in (2) & tmp_Data_in (1) & tmp_Data_in (0);
D_out1 <= tmp_Data_in (11) & tmp_Data_in (10) & tmp_Data_in (9) & tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />
&
tmp_Data_in (7) & tmp_Data_in (6) & tmp_Data_in (5) in tmp_Data_in (4);
end arch_ioInput;
Prosim, daj mi nekaj svetuje.
Hvala veliko.
library IEEE;
uporaba ieee.std_logic_1164.all;
uporaba ieee.std_logic_unsigned.all;
Podjetje je ioInput
pristanišča (
D_out1: od std_logic_vector (255 downto 0);
D_out2: od std_logic_vector (127 downto 0);
cs: v std_logic;
wr: v std_logic;
naslov: v std_logic_vector (3 downto 0);
D_in: v std_logic_vector (31 downto 0)
);
end ioInput;
arhitektura arch_ioInput of ioInput je
podtip SLV32 je std_logic_vector (31 downto 0);
Tip je tmp_Data_in_type array (11 downto 0) of SLV32;
signal tmp_Data_in: tmp_Data_in_type;
začeti
proces (cs, naslov, WR, D_in)
začeti
če cs = '0 'in wr = '0' then
primeru je naslov
ko "0000" => tmp_Data_in (0) <= D_in;
ko "0001" => tmp_Data_in (1) <= D_in;
ko "0010" => tmp_Data_in (2) <= D_in;
ko "0011" => tmp_Data_in (3) <= D_in;
ko "0100" => tmp_Data_in (4) <= D_in;
ko "0101" => tmp_Data_in (5) <= D_in;
ko "0110" => tmp_Data_in (6) <= D_in;
ko "0111" => tmp_Data_in (7) <= D_in;
ko "1000" => tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />
<= D_in;
ko "1001" => tmp_Data_in (9) <= D_in;
ko "1010" => tmp_Data_in (10) <= D_in;
ko "1011" => tmp_Data_in (11) <= D_in;
ko drugi => null;
konec postopka;
end if;
koncu postopka;
D_out2 <= tmp_Data_in (3) & tmp_Data_in (2) & tmp_Data_in (1) & tmp_Data_in (0);
D_out1 <= tmp_Data_in (11) & tmp_Data_in (10) & tmp_Data_in (9) & tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Hladen" border="0" />
&
tmp_Data_in (7) & tmp_Data_in (6) & tmp_Data_in (5) in tmp_Data_in (4);
end arch_ioInput;