計算機菜鳥,想請問一下大佬,為什么仿真圖為什么會有很多未知的資料。仿真圖如下圖所示。


代碼如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY regfile IS
PORT(
CLK :IN STD_LOGIC; --時鐘
reset :IN STD_LOGIC;
MA :IN STD_LOGIC_VECTOR(4 DOWNTO 0);
MB :IN STD_LOGIC_VECTOR(4 DOWNTO 0);
WN :IN STD_LOGIC_VECTOR(31 DOWNTO 0); --判斷地址為ma還是mb
D :IN STD_LOGIC_VECTOR(31 DOWNTO 0); --資料
QA :OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --reg(ma)
QB :OUT STD_LOGIC_VECTOR(31 DOWNTO 0) --reg(mb)
);
END regfile;
ARCHITECTURE regfile_body OF regfile IS
TYPE my_array IS ARRAY(31 DOWNTO 0) OF STD_LOGIC_VECTOR(31 DOWNTO 0);
SIGNAL reg: my_array;
BEGIN
PROCESS(CLK,RESET, MA, MB, WN, D)
BEGIN
IF RESET = '0' THEN
for i in 0 to 31 loop
reg(i) <= x"00000000";
end loop;
elsIF CLK'EVENT AND CLK = '0' THEN
IF (WN(31 DOWNTO 30) = "00") THEN
IF (WN(29 DOWNTO 26) = "0000") THEN --暫存器-暫存器型ALU指令
REG(CONV_INTEGER(MA)) <= D;
ELSE --暫存器-立即數型ALU指令
REG(CONV_INTEGER(MB)) <= D;
END IF;
END IF;
END IF;
END PROCESS;
QA <= REG(CONV_INTEGER(MA));
QB <= REG(CONV_INTEGER(MB));
END regfile_body;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/98012.html
標籤:其他技術討論專區
上一篇:pr故障
下一篇:養成一個好習慣
