mat, lw, sw, beq: std_logic; _format <= ((not Op (5)) and (not Op (4)) and (not Op (3)) and
(not Op (2)) and (not Op (1)) and (not Op (0))); <= (Op (5)) and (not Op (4)) and (not Op (3)) and
(not Op (2)) and (Op (1)) and (Op (0)); <= (Op (5)) and (not Op (4)) and (Op (3)) and
(not Op (2)) and (Op (1)) and (Op (0)); <= (not Op (5)) and (not Op (4)) and ( not Op (3)) and
(Op (2)) and (not Op (1)) and (not Op (0)); <= R_format; <= lw or sw; <= lw; < =R_format or lw; <= sw; <= beq; behav;
Рис.6. Структура комбінаційного модуля Керування: на вході - біті інструкції, на віході - біті Керування;
Як R-format позначені машінні інструкції, что Працюють з регістровімі Даними, Наприклад: add r1, r2, r3; - машинна інструкція завантаження слова з коміркі пам'яті до регістра; sw - машинна інструкція Збереження вмістімого регістра у комірці пам яті; beq - машинна інструкція умовно переходу за Ознакою рівності.
Перелічімо вихідні мікронаказі, что генерує вузол Керування: RegDest, ALUsrc, MemToReg, RegWrite, MtmRead, MemWrite, Branch, ALUOp1 та ALUOp2 .
.3 Модуль Виконання операцій (ЕХЕ)
Модуль ЕХЕ Виконує Операції.
chipIEEE; IEEE. STD_LOGIC_1164. ALL; IEEE. STD_LOGIC_ARITH. ALL; IEEE. STD_LOGIC_UNSIGNED. ALL; ex_chip is (Branch: in std_logic;: in std_logic;: in std_logic_vector (7 downto 0);: in std_logic_vector (7 downto 0);: in std_logic_vector (7 downto 0);: in std_logic_vector (7 downto 0); : out std_logic_vector (7 downto 0); _Address: out std_logic_vector (7 downto 0);: out std_logic); ex_chip; behav of ex_chip isBranch_Address_tmp: std_logic_vector (8 downto 0); Zero: std_logic; <= (Rs + Rt) when (ALUsrc=«0») else (Rs + Immediate); _Address_tmp <= («0» & NPC) + (Immediate (6 downto 0) & «0» & «0») ; _Address <= Branch_Address_tmp (7 downto 0); <= «1» when (Rs=Rt) else «0»; <= Branch and Zero; behav;
.4 Mодуль декодування інструкцій (ID)
Модуль ID / OF (декодуваті інструкцію / вібрато операнди) містіть регістровій файл, інтерфейс Якого до АЛП подає рис.7. Комбінаційній Пристрій Керування SPIM RISC розглядаємо окремо.
Рис.7. Інтерфейс регістрового файлу до АЛП.
ID chipIEEE; IEEE. STD_LOGIC_1164. ALL; IEEE. STD_LOGIC_ARITH. ALL; IEEE. STD_LOGIC_UNSIGNED. ALL; ID_chip is (clock: in std_logic;: in std_logic;: in std_logic;: in std_logic;: in std_logic_vector (31 downto 0); _data: in std_logic_vector (7 downto 0);: out std_logic_vector (7 downto 0); : out std_logic_vector (7 downto 0);: out std_logic_vector (7 downto 0);: out std_logic_vector (5 downto 0)); ID_chip; behav of ID_chip isreg1, reg2, reg3, reg4, reg5, reg6, reg7: std_logic_vector (7 downto 0); reg1tmp, reg2tmp, reg3tmp, reg4tmp, tmp, reg6tmp, reg7tmp: std_logic_vector (7 downto 0); reg1wr, reg2wr, reg3wr, reg4wr, wr, reg6wr, reg7wr: std_logic; rd_addr1, rd_addr2: std_logic_vector (4 downto 0 ); wr_addr_ALUop, wr_addr_LWop, _addr: std_logic_vector (4 downto 0); <= Instructi...