Em có viết đoạn code sau mô tả register files( em ko biết dịch là gì):
có 1 đầu vào 8bit, 2 đầu ra 8bit, có 2 thanh ghi RF0va RF1
Em dùng DXP 2004 để mô phỏng thì thấy RF0,RF1 chỉ có giá trị ?????
Các pác giúp em xem có sai sót gì không
Em chân thành cảm ơn
--------------RegisterFile -2x8bit--------------------
lIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY regfile IS PORT(
clk:IN STD_LOGIC;
WE:IN STD_LOGIC;--write enable
WA:IN STD_LOGIC;--write andress
input:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
RAE:IN STD_LOGIC;--read enable cổng A
RAA:IN STD_LOGIC;--read andress
RBE:IN STD_LOGIC;--read enable Cổng B
RBA:IN STD_LOGIC;--read andress
Aout,Bout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END regfile;
ARCHITECTURE Behavioral OF regfile IS
SUBTYPE reg IS STD_LOGIC_VECTOR(7 DOWNTO 0);
TYPE regArray IS array(0 TO 1) OF reg;
SIGNAL RF:regArray ;
BEGIN
WritePort:PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
IF (WE='1') THEN
if (WA='1') then
RF(1)<=input;
else RF(0)<=input;
end if;
END IF;
END IF;
END PROCESS;
ReadPortA:PROCESS(RAE,RAA)
BEGIN
IF (RAE='1') then
if (RAA='1') then
Aout<=RF(1);
else Aout<=RF(0);
end if;
ELSE
Aout<=(others=>'0');
END IF;
END PROCESS;
ReadPortB:PROCESS(RBE,RBA)
BEGIN
IF (RBE='1') then
if (RBA='1') then
Bout<=RF(1);
else Bout<=RF(0);
end if;
ELSE
Bout<=(others=>'0');
END IF;
END PROCESS;
END Behavioral;
------------------------------------------
có 1 đầu vào 8bit, 2 đầu ra 8bit, có 2 thanh ghi RF0va RF1
Em dùng DXP 2004 để mô phỏng thì thấy RF0,RF1 chỉ có giá trị ?????
Các pác giúp em xem có sai sót gì không
Em chân thành cảm ơn
--------------RegisterFile -2x8bit--------------------
lIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY regfile IS PORT(
clk:IN STD_LOGIC;
WE:IN STD_LOGIC;--write enable
WA:IN STD_LOGIC;--write andress
input:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
RAE:IN STD_LOGIC;--read enable cổng A
RAA:IN STD_LOGIC;--read andress
RBE:IN STD_LOGIC;--read enable Cổng B
RBA:IN STD_LOGIC;--read andress
Aout,Bout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END regfile;
ARCHITECTURE Behavioral OF regfile IS
SUBTYPE reg IS STD_LOGIC_VECTOR(7 DOWNTO 0);
TYPE regArray IS array(0 TO 1) OF reg;
SIGNAL RF:regArray ;
BEGIN
WritePort:PROCESS(clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
IF (WE='1') THEN
if (WA='1') then
RF(1)<=input;
else RF(0)<=input;
end if;
END IF;
END IF;
END PROCESS;
ReadPortA:PROCESS(RAE,RAA)
BEGIN
IF (RAE='1') then
if (RAA='1') then
Aout<=RF(1);
else Aout<=RF(0);
end if;
ELSE
Aout<=(others=>'0');
END IF;
END PROCESS;
ReadPortB:PROCESS(RBE,RBA)
BEGIN
IF (RBE='1') then
if (RBA='1') then
Bout<=RF(1);
else Bout<=RF(0);
end if;
ELSE
Bout<=(others=>'0');
END IF;
END PROCESS;
END Behavioral;
------------------------------------------
Comment