From f3b18ead59ae02f95dabbf0a1dea40873a816975 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sun, 21 Jan 2024 06:23:46 -0600 Subject: rtl: refactor filenames and directory hierarchy --- rtl/core/core_decode_ldst_single.sv | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 rtl/core/core_decode_ldst_single.sv (limited to 'rtl/core/core_decode_ldst_single.sv') diff --git a/rtl/core/core_decode_ldst_single.sv b/rtl/core/core_decode_ldst_single.sv new file mode 100644 index 0000000..0f47a30 --- /dev/null +++ b/rtl/core/core_decode_ldst_single.sv @@ -0,0 +1,31 @@ +`include "core/isa.sv" +`include "core/uarch.sv" + +module core_decode_ldst_single +( + input word insn, + + output ldst_decode decode, + output logic snd_is_imm +); + + logic p, w; + + assign decode.rn = insn `FIELD_LDST_SINGLE_RN; + assign decode.rd = insn `FIELD_LDST_SINGLE_RD; + assign decode.size = insn `FIELD_LDST_SINGLE_B ? LDST_BYTE : LDST_WORD; + assign decode.load = insn `FIELD_LDST_LD; + assign decode.increment = insn `FIELD_LDST_SINGLE_U; + assign decode.writeback = !p || w; + assign decode.exclusive = 0; + assign decode.sign_extend = 0; + assign decode.pre_indexed = p; + assign decode.unprivileged = !p && w; + assign decode.user_regs = 0; + assign decode.regs = 16'b0; + + assign p = insn `FIELD_LDST_SINGLE_P; + assign w = insn `FIELD_LDST_SINGLE_W; + assign snd_is_imm = !insn `FIELD_LDST_SINGLE_REG; + +endmodule -- cgit v1.2.3