working on adding read stage

This commit is contained in:
Yehowshua Immanuel 2025-03-07 12:09:08 -05:00
parent 4cc8c8d430
commit 6b81cd28ee
4 changed files with 24 additions and 10 deletions

View file

@ -158,15 +158,6 @@ decodeUType insn = case opcode of
rd = getRd insn rd = getRd insn
imm20 = getImm20UType insn imm20 = getImm20UType insn
getImm21JType :: Insn -> Unsigned 21
getImm21JType instr = bitCoerce |> imm20 ++# imm10_1 ++# imm11 ++# imm19_12 ++# zero
where
imm20 = slice d31 d31 (pack instr) -- imm[20]
imm10_1 = slice d30 d21 (pack instr) -- imm[10:1]
imm11 = slice d20 d20 (pack instr) -- imm[11]
imm19_12 = slice d19 d12 (pack instr) -- imm[19:12]
zero = 0 :: BitVector 1 -- LSB always zero for J-type
decodeJType :: Insn -> Maybe Opcode decodeJType :: Insn -> Maybe Opcode
decodeJType insn = decodeJType insn =
case opcode of case opcode of
@ -177,6 +168,15 @@ decodeJType insn =
rd = getRd insn rd = getRd insn
imm21 = getImm21JType insn imm21 = getImm21JType insn
getImm21JType :: Insn -> Unsigned 21
getImm21JType instr = bitCoerce |> imm20 ++# imm10_1 ++# imm11 ++# imm19_12 ++# zero
where
imm20 = slice d31 d31 (pack instr) -- imm[20]
imm10_1 = slice d30 d21 (pack instr) -- imm[10:1]
imm11 = slice d20 d20 (pack instr) -- imm[11]
imm19_12 = slice d19 d12 (pack instr) -- imm[19:12]
zero = 0 :: BitVector 1 -- LSB always zero for J-type
getOpcode :: Insn -> Unsigned 7 getOpcode :: Insn -> Unsigned 7
getOpcode instr = bitCoerce |> slice d6 d0 (pack instr) getOpcode instr = bitCoerce |> slice d6 d0 (pack instr)

6
hs/Execute.hs Normal file
View file

@ -0,0 +1,6 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NumericUnderscores #-}
module Execute(execute) where
execute = 1

6
hs/Read.hs Normal file
View file

@ -0,0 +1,6 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NumericUnderscores #-}
module Read(read) where
read = 2

View file

@ -87,8 +87,11 @@ library
exposed-modules: exposed-modules:
Simulation Simulation
other-modules: other-modules:
Fetch,
Decode, Decode,
DecodeTypes, DecodeTypes,
Execute,
Read,
Peripherals.Ram, Peripherals.Ram,
Peripherals.Uart, Peripherals.Uart,
Peripherals.UartCFFI, Peripherals.UartCFFI,
@ -99,7 +102,6 @@ library
BusTypes, BusTypes,
Cpu, Cpu,
RegFiles, RegFiles,
Fetch,
Exceptions, Exceptions,
Util Util
c-sources: c/uart_sim_device.c c-sources: c/uart_sim_device.c