-
Notifications
You must be signed in to change notification settings - Fork 705
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
Draft: User config #1704
Draft: User config #1704
Changes from all commits
c1c0f8d
f6c408f
8ece4bc
602183c
89f20ac
14395ee
7b83e63
ae4c7ce
a3d00d8
ea82715
1cb902f
7491a5b
5149b1f
07892f7
6864328
ede0b69
459b88c
0d0aff2
380deda
b923412
17bcbb1
c1d985b
e5daf25
e7b55e2
fb9bdc1
ec46a8d
7e60a6f
abe3f1c
165fb39
8f64556
88d00ba
73e217f
4060d1c
159aef4
f96775b
14a860d
a10f318
25a9013
0153114
d5e9543
e1bc6e7
da3fc4a
9ea87eb
0a28bff
d1b87ce
ba4a59f
e18d7c5
172f8a7
57b7522
bc0f471
daafe1b
aad36dc
aeae3c0
32a26d6
5b159c7
e8c8945
94f3ed2
ee19871
9eba8e7
577021a
a73ba9e
02a2de9
06ebf24
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 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -18,8 +18,40 @@ module acc_dispatcher | |||||||||||||||||||||||||
import riscv::*; | ||||||||||||||||||||||||||
#( | ||||||||||||||||||||||||||
parameter config_pkg::cva6_cfg_t CVA6Cfg = config_pkg::cva6_cfg_empty, | ||||||||||||||||||||||||||
parameter type acc_req_t = acc_pkg::accelerator_req_t, | ||||||||||||||||||||||||||
parameter type acc_resp_t = acc_pkg::accelerator_resp_t, | ||||||||||||||||||||||||||
parameter type exception_t = logic, | ||||||||||||||||||||||||||
parameter type fu_data_t = logic, | ||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||
parameter type scoreboard_entry_t = logic, | ||||||||||||||||||||||||||
parameter type dcache_req_i_t = logic, | ||||||||||||||||||||||||||
parameter type dcache_req_o_t = logic, | ||||||||||||||||||||||||||
parameter type acc_req_t = struct packed { | ||||||||||||||||||||||||||
logic req_valid; | ||||||||||||||||||||||||||
logic resp_ready; | ||||||||||||||||||||||||||
riscv::instruction_t insn; | ||||||||||||||||||||||||||
logic [CVA6Cfg.XLEN-1:0] rs1; | ||||||||||||||||||||||||||
logic [CVA6Cfg.XLEN-1:0] rs2; | ||||||||||||||||||||||||||
fpnew_pkg::roundmode_e frm; | ||||||||||||||||||||||||||
Comment on lines
+27
to
+32
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 [CVA6Cfg.TRANS_ID_BITS-1:0] trans_id; | ||||||||||||||||||||||||||
logic store_pending; | ||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||
// Invalidation interface | ||||||||||||||||||||||||||
logic acc_cons_en; | ||||||||||||||||||||||||||
logic inval_ready; | ||||||||||||||||||||||||||
Comment on lines
+36
to
+37
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
|
||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||
parameter type acc_resp_t = struct packed { | ||||||||||||||||||||||||||
logic req_ready; | ||||||||||||||||||||||||||
logic resp_valid; | ||||||||||||||||||||||||||
logic [CVA6Cfg.XLEN-1:0] result; | ||||||||||||||||||||||||||
Comment on lines
+40
to
+42
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 [CVA6Cfg.TRANS_ID_BITS-1:0] trans_id; | ||||||||||||||||||||||||||
logic error; | ||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||
// Metadata | ||||||||||||||||||||||||||
logic store_pending; | ||||||||||||||||||||||||||
logic store_complete; | ||||||||||||||||||||||||||
logic load_complete; | ||||||||||||||||||||||||||
logic [4:0] fflags; | ||||||||||||||||||||||||||
logic fflags_valid; | ||||||||||||||||||||||||||
Comment on lines
+46
to
+50
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
|
||||||||||||||||||||||||||
// Invalidation interface | ||||||||||||||||||||||||||
logic inval_valid; | ||||||||||||||||||||||||||
logic [63:0] inval_addr; | ||||||||||||||||||||||||||
Comment on lines
+52
to
+53
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
|
||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||
parameter type acc_cfg_t = logic, | ||||||||||||||||||||||||||
parameter acc_cfg_t AccCfg = '0 | ||||||||||||||||||||||||||
Comment on lines
55
to
56
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
|
||||||||||||||||||||||||||
) ( | ||||||||||||||||||||||||||
|
@@ -38,8 +70,8 @@ module acc_dispatcher | |||||||||||||||||||||||||
output logic issue_stall_o, | ||||||||||||||||||||||||||
input fu_data_t fu_data_i, | ||||||||||||||||||||||||||
input scoreboard_entry_t [CVA6Cfg.NrCommitPorts-1:0] commit_instr_i, | ||||||||||||||||||||||||||
output logic [TRANS_ID_BITS-1:0] acc_trans_id_o, | ||||||||||||||||||||||||||
output xlen_t acc_result_o, | ||||||||||||||||||||||||||
output logic [CVA6Cfg.TRANS_ID_BITS-1:0] acc_trans_id_o, | ||||||||||||||||||||||||||
output logic [CVA6Cfg.XLEN-1:0] acc_result_o, | ||||||||||||||||||||||||||
output logic acc_valid_o, | ||||||||||||||||||||||||||
output exception_t acc_exception_o, | ||||||||||||||||||||||||||
// Interface with the execute stage | ||||||||||||||||||||||||||
|
@@ -123,14 +155,15 @@ module acc_dispatcher | |||||||||||||||||||||||||
logic acc_insn_queue_empty; | ||||||||||||||||||||||||||
logic [idx_width(InstructionQueueDepth)-1:0] acc_insn_queue_usage; | ||||||||||||||||||||||||||
logic acc_commit; | ||||||||||||||||||||||||||
logic [ TRANS_ID_BITS-1:0] acc_commit_trans_id; | ||||||||||||||||||||||||||
logic [ CVA6Cfg.TRANS_ID_BITS-1:0] acc_commit_trans_id; | ||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
assign acc_data = acc_valid_ex_o ? fu_data_i : '0; | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
fifo_v3 #( | ||||||||||||||||||||||||||
.DEPTH (InstructionQueueDepth), | ||||||||||||||||||||||||||
.FALL_THROUGH(1'b1), | ||||||||||||||||||||||||||
.dtype (fu_data_t) | ||||||||||||||||||||||||||
.dtype (fu_data_t), | ||||||||||||||||||||||||||
.FPGA_EN (CVA6Cfg.FPGA_EN) | ||||||||||||||||||||||||||
) i_acc_insn_queue ( | ||||||||||||||||||||||||||
.clk_i (clk_i), | ||||||||||||||||||||||||||
.rst_ni (rst_ni), | ||||||||||||||||||||||||||
|
@@ -153,13 +186,13 @@ module acc_dispatcher | |||||||||||||||||||||||||
**********************************/ | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
// Keep track of the instructions that were received by the dispatcher. | ||||||||||||||||||||||||||
logic [NR_SB_ENTRIES-1:0] insn_pending_d, insn_pending_q; | ||||||||||||||||||||||||||
logic [CVA6Cfg.NR_SB_ENTRIES-1:0] insn_pending_d, insn_pending_q; | ||||||||||||||||||||||||||
`FF(insn_pending_q, insn_pending_d, '0) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
// Only non-speculative instructions can be issued to the accelerators. | ||||||||||||||||||||||||||
// The following block keeps track of which transaction IDs reached the | ||||||||||||||||||||||||||
// top of the scoreboard, and are therefore no longer speculative. | ||||||||||||||||||||||||||
logic [NR_SB_ENTRIES-1:0] insn_ready_d, insn_ready_q; | ||||||||||||||||||||||||||
logic [CVA6Cfg.NR_SB_ENTRIES-1:0] insn_ready_d, insn_ready_q; | ||||||||||||||||||||||||||
`FF(insn_ready_q, insn_ready_d, '0) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
always_comb begin : p_non_speculative_ff | ||||||||||||||||||||||||||
|
@@ -186,13 +219,13 @@ module acc_dispatcher | |||||||||||||||||||||||||
* Accelerator request * | ||||||||||||||||||||||||||
*************************/ | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
acc_pkg::accelerator_req_t acc_req; | ||||||||||||||||||||||||||
acc_req_t acc_req; | ||||||||||||||||||||||||||
logic acc_req_valid; | ||||||||||||||||||||||||||
logic acc_req_ready; | ||||||||||||||||||||||||||
Comment on lines
223
to
224
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
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
acc_pkg::accelerator_req_t acc_req_int; | ||||||||||||||||||||||||||
acc_req_t acc_req_int; | ||||||||||||||||||||||||||
fall_through_register #( | ||||||||||||||||||||||||||
.T(acc_pkg::accelerator_req_t) | ||||||||||||||||||||||||||
.T(acc_req_t) | ||||||||||||||||||||||||||
) i_accelerator_req_register ( | ||||||||||||||||||||||||||
.clk_i (clk_i), | ||||||||||||||||||||||||||
.rst_ni (rst_ni), | ||||||||||||||||||||||||||
|
@@ -223,7 +256,7 @@ module acc_dispatcher | |||||||||||||||||||||||||
acc_req = '0; | ||||||||||||||||||||||||||
acc_req_valid = 1'b0; | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
// Unpack fu_data_t into accelerator_req_t | ||||||||||||||||||||||||||
// Unpack fu_data_t into acc_req_t | ||||||||||||||||||||||||||
if (!acc_insn_queue_empty) begin | ||||||||||||||||||||||||||
acc_req = '{ | ||||||||||||||||||||||||||
// Instruction is forwarded from the decoder as an immediate | ||||||||||||||||||||||||||
|
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 🐶