P
paradbird
Guest
Tôi muốn làm asynchronism viết, nhưng chương trình này không thể làm việc sau khi tổng hợp, tôi không biết tại sao.
Xin cho tôi một số cố vấn.
Cảm ơn rất nhiều.
thư viện ieee;
ieee.std_logic_1164.all sử dụng;
ieee.std_logic_unsigned.all sử dụng;
thực thể là ioInput
port (
D_out1: out std_logic_vector downto 255 (0);
D_out2: out std_logic_vector downto 127 (0);
cs: in std_logic;
wr: in std_logic;
addr: in std_logic_vector (3 downto 0);
D_in: in std_logic_vector (31 downto 0)
);
cuối ioInput;
kiến trúc arch_ioInput của ioInput là
subtype SLV32 là std_logic_vector (31 downto 0);
Loại tmp_Data_in_type là mảng (11 downto 0) của SLV32;
tín hiệu tmp_Data_in: tmp_Data_in_type;
bắt đầu
quá trình (cs, addr, wr, D_in)
bắt đầu
nếu cs = '0 'và wr = '0' rồi
trường hợp là addr
khi "0000" => tmp_Data_in (0) <= D_in;
khi "0.001" => tmp_Data_in (1) <= D_in;
khi "0.010" => tmp_Data_in (2) <= D_in;
khi "0.011" => tmp_Data_in (3) <= D_in;
khi "0.100" => tmp_Data_in (4) <= D_in;
khi "0.101" => tmp_Data_in (5) <= D_in;
khi "0.110" => tmp_Data_in (6) <= D_in;
khi "0.111" => tmp_Data_in (7) <= D_in;
khi "1000" => tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
<= D_in;
khi "1001" => tmp_Data_in (9) <= D_in;
khi "1010" => tmp_Data_in (10) <= D_in;
khi "1011" => tmp_Data_in (11) <= D_in;
khi những người khác => null;
kết thúc vụ án;
nếu kết thúc;
kết thúc quá trình;
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="Mát mẻ" border="0" />
&
tmp_Data_in (7) & tmp_Data_in (6) & tmp_Data_in (5) & tmp_Data_in (4);
cuối arch_ioInput;
Xin cho tôi một số cố vấn.
Cảm ơn rất nhiều.
thư viện ieee;
ieee.std_logic_1164.all sử dụng;
ieee.std_logic_unsigned.all sử dụng;
thực thể là ioInput
port (
D_out1: out std_logic_vector downto 255 (0);
D_out2: out std_logic_vector downto 127 (0);
cs: in std_logic;
wr: in std_logic;
addr: in std_logic_vector (3 downto 0);
D_in: in std_logic_vector (31 downto 0)
);
cuối ioInput;
kiến trúc arch_ioInput của ioInput là
subtype SLV32 là std_logic_vector (31 downto 0);
Loại tmp_Data_in_type là mảng (11 downto 0) của SLV32;
tín hiệu tmp_Data_in: tmp_Data_in_type;
bắt đầu
quá trình (cs, addr, wr, D_in)
bắt đầu
nếu cs = '0 'và wr = '0' rồi
trường hợp là addr
khi "0000" => tmp_Data_in (0) <= D_in;
khi "0.001" => tmp_Data_in (1) <= D_in;
khi "0.010" => tmp_Data_in (2) <= D_in;
khi "0.011" => tmp_Data_in (3) <= D_in;
khi "0.100" => tmp_Data_in (4) <= D_in;
khi "0.101" => tmp_Data_in (5) <= D_in;
khi "0.110" => tmp_Data_in (6) <= D_in;
khi "0.111" => tmp_Data_in (7) <= D_in;
khi "1000" => tmp_Data_in (
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
<= D_in;
khi "1001" => tmp_Data_in (9) <= D_in;
khi "1010" => tmp_Data_in (10) <= D_in;
khi "1011" => tmp_Data_in (11) <= D_in;
khi những người khác => null;
kết thúc vụ án;
nếu kết thúc;
kết thúc quá trình;
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="Mát mẻ" border="0" />
&
tmp_Data_in (7) & tmp_Data_in (6) & tmp_Data_in (5) & tmp_Data_in (4);
cuối arch_ioInput;