Initial commit
This commit is contained in:
18
Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd
Normal file
18
Libs/RiscV/HEIRV32/MultiCycle/hdl/instrDecoder_rtl.vhd
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
ARCHITECTURE rtl OF instrDecoder IS
|
||||
BEGIN
|
||||
|
||||
decode : process(op)
|
||||
begin
|
||||
case op is
|
||||
when "0000011" => immSrc <= "00"; -- lw
|
||||
when "0100011" => immSrc <= "01"; -- sw
|
||||
when "0110011" => immSrc <= "--"; -- R-type
|
||||
when "1100011" => immSrc <= "10"; -- beq
|
||||
when "0010011" => immSrc <= "00"; -- l-type ALU
|
||||
when "1101111" => immSrc <= "11"; -- jal
|
||||
when others => immSrc <= "--"; -- unknwon
|
||||
end case;
|
||||
end process decode;
|
||||
|
||||
END ARCHITECTURE rtl;
|
@ -0,0 +1,26 @@
|
||||
|
||||
ARCHITECTURE rtl OF instructionForwarder IS
|
||||
signal lvec_irMem : std_ulogic_vector(readData'range);
|
||||
BEGIN
|
||||
|
||||
-- forwardIR : process(rst, clk)
|
||||
-- begin
|
||||
-- if rst = '1' then
|
||||
-- lvec_irMem <= (others => '0');
|
||||
-- elsif rising_edge(clk) then
|
||||
-- if en = '1' and IRWrite = '1' then
|
||||
-- lvec_irMem <= readData;
|
||||
-- end if;
|
||||
-- end if;
|
||||
-- end process forwardIR;
|
||||
|
||||
forwardIR : process(readData, irWrite)
|
||||
begin
|
||||
if irWrite = '1' then
|
||||
lvec_irMem <= readData;
|
||||
end if;
|
||||
end process forwardIR;
|
||||
|
||||
instruction <= lvec_irMem;
|
||||
|
||||
END ARCHITECTURE rtl;
|
Reference in New Issue
Block a user