diff options
author | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2024-05-23 08:20:16 +0200 |
---|---|---|
committer | Flavian Kaufmann <flavian@flaviankaufmann.ch> | 2024-05-23 08:20:16 +0200 |
commit | 6a9573628b3c7e537bd273a483be9abcfa2ee429 (patch) | |
tree | acc804258af80527e3f606b709cb2fe8e36593a9 /rtl/src/control_unit.v | |
parent | c6e342f93d1a7fe92d2a7e1b4e488f328e1f4469 (diff) | |
download | riscv_cpu-6a9573628b3c7e537bd273a483be9abcfa2ee429.tar.gz riscv_cpu-6a9573628b3c7e537bd273a483be9abcfa2ee429.zip |
mem size
Diffstat (limited to 'rtl/src/control_unit.v')
-rw-r--r-- | rtl/src/control_unit.v | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/rtl/src/control_unit.v b/rtl/src/control_unit.v index 6849214..608f6b1 100644 --- a/rtl/src/control_unit.v +++ b/rtl/src/control_unit.v @@ -14,6 +14,7 @@ module control_unit ( output reg mem_addr_src, output reg mem_we, + output reg [2:0] mem_size, output reg instr_we, @@ -132,6 +133,7 @@ always @ (*) begin instr_we = INSTR_WE_DISABLE; pc_update = PC_UPDATE_DISABLE; branch = BRANCH_DISABLE; + mem_size = FUNCT3_LS_W; case(state) STATE_FETCH: begin mem_addr_src = MEM_ADDR_SRC_PC; @@ -155,6 +157,7 @@ always @ (*) begin STATE_MEM_LOAD: begin mem_addr_src = MEM_ADDR_SRC_RESULT; result_src = RESULT_SRC_ALU_RESULT_BUF; + mem_size = funct3; end STATE_MEM_WB: begin result_src = RESULT_SRC_DATA_BUF; @@ -164,6 +167,7 @@ always @ (*) begin mem_addr_src = MEM_ADDR_SRC_RESULT; result_src = RESULT_SRC_ALU_RESULT_BUF; mem_we = MEM_WE_ENABLE; + mem_size = funct3; end STATE_EXECUTE_R: begin alu_a_src = ALU_A_SRC_RD1_BUF; |