Closed sriyerg closed 8 months ago
@tjaychen @msfschaffner @eunchan @martin-lueker FYI.
Moving this to M3, since we have a workaround for this in place (unused ports are excluded from coverage).
Triaged for otbn
I think this should be done for M2.5 assuming it doesn't generated significant extra design effort
Triaged for edn
. Suggest https://github.com/lowRISC/opentitan/labels/Priority%3AP3 for M2.5 because the design behaves within spec and DV verifies it, so I would do this "if we have time left".
estimate range: 2 - 4
Changing priority based on @andreaskurth comment
Probably this does not save a lot of area since the synthesis tool should prune any tied off EDN output ports away. However, since it is not very clean to have so many dangling ports on EDN1, we could do a best effort attempt on parameterizing this down to just one output port.
I.e., invest 1h to see whether this is feasible at all by creating a second DV target. If this works with no major issues, the NumEndPoints
should be declared as an exposed parameter in the edn.hjson
and overridden accordingly in the top_earlgrey.hjson
.
I came across some Yosys synthesis results from last year and also had a look at the FPGA numbers (both before @h-filali 's recent change removing the redundant output FIFO).
In my view, the different synthesis tools are pretty efficient at carving out the 7 tied off endpoints in EDN1. I don't expect further gains from instantiating a version with NumEndPoints set to 1 that would justify the effort at this point.
In my view we should close this issue.
Thanks for the numbers, @vogelpi! I agree, let's close it.
The
top_earlgrey.sv
(autogenerated) instantiates 2 EDN instances. On the second instance (u_edn1
), only 1 endpoint is connected (OTBN), the rest are unconnected and tied off.This results in additional overhead in terms of coverage exclusions for the tied off end points, since they are truly unreachable, and more importantly, redundant logic in the design.
Filing an issue to see if it is feasible instead to instantiate it with
NumEndPoints
set to 1 given the tooling complexities.