diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-09-25 19:22:43 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-09-25 19:22:43 -0600 |
| commit | 3aa075cf009d9aa8c602389853cc3ea78cda8701 (patch) | |
| tree | d14d298de29c7d0a6040192018200b2a88b2b93e /rtl | |
| parent | f65e5611fde5e1c3e3a509cb2f3ffcafce5bbd33 (diff) | |
Fix Quartus issues
Diffstat (limited to 'rtl')
| -rw-r--r-- | rtl/core/cycles.sv | 1 | ||||
| -rw-r--r-- | rtl/core/decode/decode.sv | 2 | ||||
| -rw-r--r-- | rtl/core/regs/file.sv | 15 |
3 files changed, 12 insertions, 6 deletions
diff --git a/rtl/core/cycles.sv b/rtl/core/cycles.sv index d52c0b0..c5ad62f 100644 --- a/rtl/core/cycles.sv +++ b/rtl/core/cycles.sv @@ -39,7 +39,6 @@ module core_cycles always_ff @(posedge clk) begin cycle <= next_cycle; - stall <= next_cycle != EXECUTE; flags <= next_flags; if(next_cycle == EXECUTE) begin diff --git a/rtl/core/decode/decode.sv b/rtl/core/decode/decode.sv index 57744e1..508467d 100644 --- a/rtl/core/decode/decode.sv +++ b/rtl/core/decode/decode.sv @@ -59,7 +59,7 @@ module core_decode rd = 4'bxxxx; data_op = 4'bxxxx; - priority case(insn `FIELD_OP) inside + priority casez(insn `FIELD_OP) `GROUP_B: begin branch = 1; if(branch_link) begin diff --git a/rtl/core/regs/file.sv b/rtl/core/regs/file.sv index 1b10682..e2bcc09 100644 --- a/rtl/core/regs/file.sv +++ b/rtl/core/regs/file.sv @@ -13,12 +13,19 @@ module core_reg_file // Ver comentario en uarch.sv word file[30]; + word q, wr_value_hold; + logic overwrite_hold; - always @(posedge clk) - if(wr_enable) + assign rd_value = overwrite_hold ? wr_value_hold : q; + + always @(posedge clk) begin + if(wr_enable) begin file[rd_index] <= wr_value; + wr_value_hold <= wr_value; + end - always @(posedge clk) - rd_value <= wr_enable & (rd_index == wr_index) ? wr_value : file[rd_index]; + q <= file[rd_index]; + overwrite_hold <= wr_enable & (rd_index == wr_index); + end endmodule |
