-
Notifications
You must be signed in to change notification settings - Fork 782
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
[Darjeeling] Instantiate Darjeeling #25283
Conversation
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
5c661cf
to
d24efeb
Compare
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Add jtag_id_pkg.sv, padring.sv, scan_role_pkg, ibex_pmp_reset_pkg.sv padring.sv, top_pkg.sv Signed-off-by: Robert Schilling <[email protected]>
The mi/dio signals are used in both cases, hardware strap sampling enabled an not. Signed-off-by: Robert Schilling <[email protected]>
d24efeb
to
015ee1d
Compare
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 PR is huge because files for Darjeeling get autogenerated and added. This is nicely separated into one commit, however, which makes it possible to manually review the other commits.
Overall LGTM, just a few minor suggestions/requests.
Note 1: hw/top_darjeeling
still has a FUSESOC_IGNORE
file, which is necessary to not disturb top_earlgrey
until the FuseSoC update and virtual cores transition has happened. Those working with top_darjeeling
need to
mv hw/top_{darjeeling,earlgrey}/FUSESOC_IGNORE
touch hw/top_englishbreakfast/FUSESOC_IGNORE
for now.
Note 2: Top-level simulations (even those without SW) don't yet work because chip_sim_cfg.hjson
hasn't been added yet. I think it's okay to do this in a follow-up PR, though that could uncover a few more changes necessary to be able to elaborate the top-level design.
Note 3: Some IPs, including the DMA, can already be simulated through Darjeeling's top sim config (util/dvsim/dvsim.py hw/top_darjeeling/dv/top_darjeeling_sim_cfgs.hjson --select-cfgs dma ...
), while others are still uncommented in top_darjeeling_sim_cfgs.hjson
and of those some (such as clkmgr
) don't elaborate yet. Also this, I think, is okay to resolve in a follow-up PR.
Thanks @Razer6!
waive -rules RESET_USE -location {pinmux_strap_sampling.sv} -regexp {'rst_ni' is connected to 'prim_clock_mux2' port 'clk1_i | ||
', and used as an asynchronous reset or set at pinmux_strap_sampling} \ | ||
waive -rules RESET_USE -location {pinmux_strap_sampling.sv} -regexp {'rst_ni' is connected to 'prim_clock_mux2' port 'clk1_i', and used as an asynchronous reset or set at pinmux_strap_sampling} \ |
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 just a line break change that shouldn't semantically affect the waiver used for Earlgrey.
(Just a note; no action required.)
@@ -573,7 +575,6 @@ module rv_dm | |||
// Tied-off and ignore signals from the DMI interface | |||
assign dmi_intg_error = 1'b0; | |||
assign dbg_intg_error = 1'b0; | |||
assign dmi_gate_intg_error = 1'b0; |
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 an unused signal; OK to remove.
(Just a note; no action required.)
# Copyright lowRISC contributors (OpenTitan project). | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
name: "lowrisc:systems:physical_pads:0.1" |
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.
name: "lowrisc:systems:physical_pads:0.1" | |
name: "lowrisc:systems:top_darjeeling_physical_pads:0.1" |
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.
Same as below.
# XXX: This name is currently required as global identifier until we have | ||
# support for "interfaces" or a similar concept. | ||
# Tracked in https://github.com/olofk/fusesoc/issues/235 | ||
name: "lowrisc:constants:top_pkg" |
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.
name: "lowrisc:constants:top_pkg" | |
name: "lowrisc:constants:top_darjeeling_top_pkg" |
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.
Do those core files need to specify a virtual core?
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.
Right, with virtual core support this core file would have the name suggested above and specify lowrisc:constants:top_pkg
as virtual core.
Dependent cores then either have lowrisc:constants:top_pkg
-- if they don't depend on a specific top -- or lowrisc:constants:top_darjeeling_top_pkg
-- if they do depend on a specific top -- in their dependencies.
We don't have proper support for virtual cores just yet, so I leave it to you whether you want to do this in this or in a follow-up PR.
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.
Let's do that (and the other Todo) in a follow up-PR to unblock multitop SW, which depends on that change. CI is green (so far it can), so let's get that in :)
// Local versions of the input signals | ||
logic [NMioPads-1:0] mio_out, mio_oe, mio_in; | ||
logic [NDioPads-1:0] dio_out, dio_oe, dio_in; | ||
|
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.
These lines get moved further up due to a change in the template. No functional change.
(This is just a note; no action required.)
@@ -37,6 +37,26 @@ package top_${top["name"]}_pkg; | |||
* Memory size for ${name} in top ${top["name"]}. | |||
*/ | |||
parameter int unsigned ${region.size_bytes_name().as_c_define()} = ${hex_size_bytes}; | |||
## TODO: we need a more holistic approach to declare memories and IPs sitting in the |
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 create an issue and reference it here (TODO(#....)
) so we can track this TODO item
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.
Issue: #25313
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'll link to that in a follow up PR
CI checks Verible lint and Check for and block unauthorized changes are failing due to the limitation in number of files. I'll run those checks locally before this PR gets merged. |
…onfigs Signed-off-by: Robert Schilling <[email protected]>
…lude CTN Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Add top_darjeeling.hjson and all xbar.hjson files. Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
015ee1d
to
a346722
Compare
Thanks for the review @andreaskurth.
I think it's ok for now. Adding the
I added all IPs. |
CHANGE AUTHORIZED: hw/ip/keymgr/rtl/keymgr.sv The CI check cannot run on this PR (too many files), but I ran it locally. The files above need to be authorized. None of the changes has a functional impact on Earlgrey. |
For the Verible lint check, which CI also cannot run due to the file limit, the report includes
@Razer6 This is a generated line; would it be simple to insert line breaks? |
CHANGE AUTHORIZED: hw/ip/keymgr/rtl/keymgr.sv None of the changes in this PR have a functional impact on Earlgrey. This is fine. |
No description provided.