Revert "Fix RISCV_FORMAL_BLACKBOX_REGS (broke liveness on branch ops)"

This reverts commit 624bc05f98.
This commit is contained in:
Clifford Wolf 2017-09-13 02:24:15 +02:00
parent 6ade29cce3
commit 13f93b7000
1 changed files with 10 additions and 10 deletions

View File

@ -1301,27 +1301,27 @@ module picorv32 #(
end end
always @(posedge clk) begin always @(posedge clk) begin
if (resetn && cpuregs_write && latched_rd) begin if (resetn && cpuregs_write && latched_rd)
`ifndef RISCV_FORMAL_BLACKBOX_REGS
cpuregs[latched_rd] <= cpuregs_wrdata; cpuregs[latched_rd] <= cpuregs_wrdata;
`else
// blackbox regs on write side because branching instructions
// require a stable value on register read port, abstracting
// on the read port in the block below would be more efficient
// but would require a more complex abstraction.
cpuregs[latched_rd] <= $anyseq;
`endif
end
end end
always @* begin always @* begin
decoded_rs = 'bx; decoded_rs = 'bx;
if (ENABLE_REGS_DUALPORT) begin if (ENABLE_REGS_DUALPORT) begin
`ifndef RISCV_FORMAL_BLACKBOX_REGS
cpuregs_rs1 = decoded_rs1 ? cpuregs[decoded_rs1] : 0; cpuregs_rs1 = decoded_rs1 ? cpuregs[decoded_rs1] : 0;
cpuregs_rs2 = decoded_rs2 ? cpuregs[decoded_rs2] : 0; cpuregs_rs2 = decoded_rs2 ? cpuregs[decoded_rs2] : 0;
`else
cpuregs_rs1 = decoded_rs1 ? $anyseq : 0;
cpuregs_rs2 = decoded_rs2 ? $anyseq : 0;
`endif
end else begin end else begin
decoded_rs = (cpu_state == cpu_state_ld_rs2) ? decoded_rs2 : decoded_rs1; decoded_rs = (cpu_state == cpu_state_ld_rs2) ? decoded_rs2 : decoded_rs1;
`ifndef RISCV_FORMAL_BLACKBOX_REGS
cpuregs_rs1 = decoded_rs ? cpuregs[decoded_rs] : 0; cpuregs_rs1 = decoded_rs ? cpuregs[decoded_rs] : 0;
`else
cpuregs_rs1 = decoded_rs ? $anyseq : 0;
`endif
cpuregs_rs2 = cpuregs_rs1; cpuregs_rs2 = cpuregs_rs1;
end end
end end