-
Notifications
You must be signed in to change notification settings - Fork 47
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
treewide: Add Ethernet peripheral #104
base: main
Are you sure you want to change the base?
Conversation
Bender.lock
Outdated
@@ -34,6 +34,13 @@ packages: | |||
- common_verification | |||
- register_interface | |||
- tech_cells_generic | |||
axi_mem_if: |
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.
This is added because the dependency is in pulp-ethernet
, please remove it as from my review (https://github.com/pulp-platform/pulp-ethernet/pull/3/files#r1500435712), it should not be needed.
SpiHost : 1, | ||
Gpio : 1, | ||
Dma : 1, | ||
Dma : 0, |
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.
I know this is WIP, but make sure you test correct working of the ethernet integration when the system DMA is enabled. Just a reminder :)
hw/cheshire_soc.sv
Outdated
output logic eth_txck_o, | ||
output logic [3:0] eth_txd_o, | ||
output logic eth_txctl_o, | ||
output logic eth_rstn_o, |
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.
As the lint action on github suggests, there are some trailing spaces. Please remove trailing spaces before pushing
.reg_rsp_o ( reg_out_rsp[RegOut.ethernet] ) // req from cheshire def, but inside ethernet, it awaits for the type | ||
); | ||
|
||
end else begin : gen_no_ethernet |
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.
Since the port is incoming into the crossbar, req is an input and resp is an output. Tie input to '0
and leave outputs floating
@@ -0,0 +1,72 @@ | |||
#include <stdio.h> |
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.
Missing license + autorship
target/sim/src/tb_cheshire_pkg.sv
Outdated
@@ -12,7 +12,7 @@ package tb_cheshire_pkg; | |||
// A dedicated RT config | |||
function automatic cheshire_cfg_t gen_cheshire_rt_cfg(); | |||
cheshire_cfg_t ret = DefaultCfg; | |||
ret.AxiRt = 1; | |||
ret.AxiRt = 0; |
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.
It should work when AxiRt is enabled, same reminder as for the system DMA :)
@@ -12,7 +12,7 @@ set TESTBENCH tb_cheshire_soc | |||
# Set voptargs only if not already set to make overridable. | |||
# Default on fast simulation flags. | |||
if {![info exists VOPTARGS]} { | |||
set VOPTARGS "-O5 +acc=p+tb_cheshire_soc. +noacc=p+cheshire_soc. +acc=r+stream_xbar" | |||
set VOPTARGS "-O5 +acc=p+tb_cheshire_soc. +acc=p+cheshire_soc. +acc=r+stream_xbar" |
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.
Please do not upstream these changes, keep them local or set VOPTARGS
when locally running the simulation :) let the default as is now
.reg_req_t ( reg_req_t ), | ||
.reg_rsp_t ( reg_rsp_t ) | ||
) i_tx_eth_idma_wrap ( | ||
.clk_i, |
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.
Suggestion: Update the ethernet here with the version with exposed clocks; this is important so that we can handle clock generation in Cheshire
@thommythomaso do you think we should handle clock generation for ethernet in cheshire, or expose these clocks also in cheshire and let the end user provide the correct clock? In the latter case, we can generate them in the cheshire testbench as for cheshire's main clock
0465402
to
784ea21
Compare
0126bd6
to
3a908f4
Compare
* target/sim: Add JTAG tasks to read/write 32b registers * target/sim: Add JTAG task to halt and load binary Can be used by platforms to halt CVA6 and preload a shared memory when execution happens on domains different than Cheshire. * target/sim: Clean up added tasks --------- Co-authored-by: Paul Scheffler <[email protected]>
a7d5736
to
f1704ae
Compare
3ba061a
to
903658b
Compare
0970289
to
515bbac
Compare
@thommythomaso @alex96295
axi-rt
,idma
)idma
regs updatepulp-ethernet
integration