-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add initial DCLS support and documentation #246
base: main
Are you sure you want to change the base?
Changes from all commits
8a29cfe
15108f7
16e7b21
b9e824c
58edf36
9e239a0
292b341
8b6a64e
4eba23c
ad22741
65bcc28
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
@@ -319,6 +319,10 @@ module el2_dec | |||||||||
output logic dec_tlu_dccm_clk_override, // override DCCM clock domain gating | ||||||||||
output logic dec_tlu_icm_clk_override, // override ICCM clock domain gating | ||||||||||
|
||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||
el2_regfile_if.veer_rf_src regfile, | ||||||||||
`endif | ||||||||||
|
||||||||||
output logic dec_tlu_i0_commit_cmt, // committed i0 instruction | ||||||||||
input logic scan_mode // Flop scan mode control | ||||||||||
|
||||||||||
|
@@ -418,14 +422,52 @@ module el2_dec | |||||||||
|
||||||||||
el2_dec_decode_ctl #(.pt(pt)) decode (.*); | ||||||||||
|
||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||
el2_regfile_if regfile_if (); | ||||||||||
assign regfile.gpr.ra = regfile_if.gpr.ra; | ||||||||||
assign regfile.gpr.sp = regfile_if.gpr.sp; | ||||||||||
assign regfile.gpr.fp = regfile_if.gpr.fp; | ||||||||||
assign regfile.gpr.a0 = regfile_if.gpr.a0; | ||||||||||
assign regfile.gpr.a1 = regfile_if.gpr.a1; | ||||||||||
assign regfile.gpr.a2 = regfile_if.gpr.a2; | ||||||||||
assign regfile.gpr.a3 = regfile_if.gpr.a3; | ||||||||||
assign regfile.gpr.a4 = regfile_if.gpr.a4; | ||||||||||
assign regfile.gpr.a5 = regfile_if.gpr.a5; | ||||||||||
assign regfile.gpr.a6 = regfile_if.gpr.a6; | ||||||||||
assign regfile.gpr.a7 = regfile_if.gpr.a7; | ||||||||||
|
||||||||||
assign regfile.tlu.pc = regfile_if.tlu.pc; | ||||||||||
assign regfile.tlu.npc = regfile_if.tlu.npc; | ||||||||||
assign regfile.tlu.mstatus = regfile_if.tlu.mstatus; | ||||||||||
assign regfile.tlu.mie = regfile_if.tlu.mie; | ||||||||||
assign regfile.tlu.mtvec = regfile_if.tlu.mtvec; | ||||||||||
assign regfile.tlu.mscratch = regfile_if.tlu.mscratch; | ||||||||||
assign regfile.tlu.mepc = regfile_if.tlu.mepc; | ||||||||||
assign regfile.tlu.mcause = regfile_if.tlu.mcause; | ||||||||||
assign regfile.tlu.mtval = regfile_if.tlu.mtval; | ||||||||||
assign regfile.tlu.mip = regfile_if.tlu.mip; | ||||||||||
assign regfile.tlu.mcyclel = regfile_if.tlu.mcyclel; | ||||||||||
assign regfile.tlu.mcycleh = regfile_if.tlu.mcycleh; | ||||||||||
assign regfile.tlu.minstretl = regfile_if.tlu.minstretl; | ||||||||||
assign regfile.tlu.minstreth = regfile_if.tlu.minstreth; | ||||||||||
assign regfile.tlu.mrac = regfile_if.tlu.mrac; | ||||||||||
`endif | ||||||||||
|
||||||||||
el2_dec_tlu_ctl #(.pt(pt)) tlu (.*); | ||||||||||
el2_dec_tlu_ctl #(.pt(pt) | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||
) tlu ( | ||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||
.regfile(regfile_if.veer_tlu_rf), | ||||||||||
`endif | ||||||||||
.*); | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||
|
||||||||||
|
||||||||||
el2_dec_gpr_ctl #( | ||||||||||
.pt(pt) | ||||||||||
) arf ( | ||||||||||
.*, | ||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||
.regfile(regfile_if.veer_gpr_rf), | ||||||||||
`endif | ||||||||||
// inputs | ||||||||||
.raddr0(dec_i0_rs1_d[4:0]), | ||||||||||
.raddr1(dec_i0_rs2_d[4:0]), | ||||||||||
Comment on lines
472
to
473
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -39,15 +39,33 @@ | |||||||||||||||||||||||||||||||||||||||||||||
output logic [31:0] rd0, // read data | ||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||
output logic [31:0] rd1, | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||||||||||||||||||||||||||||||||||||||
el2_regfile_if.veer_gpr_rf regfile, | ||||||||||||||||||||||||||||||||||||||||||||||
`endif | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
input logic scan_mode | ||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
logic [31:1] [31:0] gpr_out; // 31 x 32 bit GPRs | ||||||||||||||||||||||||||||||||||||||||||||||
Check warning on line 49 in design/dec/el2_dec_gpr_ctl.sv GitHub Actions / format-review
|
||||||||||||||||||||||||||||||||||||||||||||||
logic [31:1] [31:0] gpr_in; | ||||||||||||||||||||||||||||||||||||||||||||||
logic [31:1] w0v,w1v,w2v; | ||||||||||||||||||||||||||||||||||||||||||||||
logic [31:1] gpr_wr_en; | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.ra = gpr_out[1][31:0]; // x1 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.sp = gpr_out[2][31:0]; // x2 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.fp = gpr_out[8][31:0]; // x8 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a0 = gpr_out[10][31:0]; // x10 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a1 = gpr_out[11][31:0]; // x11 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a2 = gpr_out[12][31:0]; // x12 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a3 = gpr_out[13][31:0]; // x13 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a4 = gpr_out[14][31:0]; // x14 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a5 = gpr_out[15][31:0]; // x15 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a6 = gpr_out[16][31:0]; // x16 | ||||||||||||||||||||||||||||||||||||||||||||||
assign regfile.gpr.a7 = gpr_out[17][31:0]; // x17 | ||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+55
to
+65
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||
`endif | ||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
// GPR Write Enables | ||||||||||||||||||||||||||||||||||||||||||||||
Check warning on line 68 in design/dec/el2_dec_gpr_ctl.sv GitHub Actions / format-review
|
||||||||||||||||||||||||||||||||||||||||||||||
assign gpr_wr_en[31:1] = (w0v[31:1] | w1v[31:1] | w2v[31:1]); | ||||||||||||||||||||||||||||||||||||||||||||||
for ( genvar j=1; j<32; j++ ) begin : gpr | ||||||||||||||||||||||||||||||||||||||||||||||
rvdffe #(32) gprff (.*, .en(gpr_wr_en[j]), .din(gpr_in[j][31:0]), .dout(gpr_out[j][31:0])); | ||||||||||||||||||||||||||||||||||||||||||||||
|
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
@@ -23,7 +23,7 @@ | |||||||||
module el2_veer | ||||||||||
import el2_pkg::*; | ||||||||||
#( | ||||||||||
`include "el2_param.vh" | ||||||||||
Check warning on line 26 in design/el2_veer.sv GitHub Actions / format-review
|
||||||||||
) | ||||||||||
( | ||||||||||
input logic clk, | ||||||||||
|
@@ -455,7 +455,12 @@ | |||||||||
output logic dccm_ecc_single_error, | ||||||||||
output logic dccm_ecc_double_error, | ||||||||||
|
||||||||||
`ifdef RV_LOCKSTEP_REGFILE_ENABLE | ||||||||||
// Register file | ||||||||||
el2_regfile_if.veer_rf_src regfile, | ||||||||||
Comment on lines
+459
to
+460
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [verible-verilog-format] reported by reviewdog 🐶
Suggested change
|
||||||||||
`endif | ||||||||||
|
||||||||||
input logic [pt.PIC_TOTAL_INT:1] extintsrc_req, | ||||||||||
Check warning on line 463 in design/el2_veer.sv GitHub Actions / format-review
|
||||||||||
input logic timer_int, | ||||||||||
input logic soft_int, | ||||||||||
input logic scan_mode | ||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[verible-verilog-format] reported by reviewdog 🐶