lowRISC / opentitan

OpenTitan: Open source silicon root of trust
https://www.opentitan.org
Apache License 2.0
2.57k stars 769 forks source link

[fpga] Switch top_earlgrey to new FPGA board "NEWFPGAv1" #5388

Closed imphil closed 3 years ago

imphil commented 3 years ago

We need to switch to a newer FPGA board to provide enough space for the OpenTitan top_earlgrey design, replacing top_earlgrey_nexysvideo with top_earlgery_newfpgav1.

The existing Nexys Video code needs to move to another toplevel, see https://github.com/lowRISC/opentitan/issues/5396, as the design is too large to fit the Nexys Video board.

@msfschaffner @dsandrs Do we have the specs (FPGA type, pinout, etc.) for this board yet? Even if we don't have the board we can already start the process by looking at the spec only.

msfschaffner commented 3 years ago

Hey Philipp, we know the FPGA type (XC7K410T-1FBG676C), but the board specs and pinout are still in flux.

For the time being I suggest just to rename top_earlgrey_nexysvideo, switch the FPGA type, but leave everything else as is (this should work for the synthesis check). We could however increase the system frequency again.

CC: @tjaychen

imphil commented 3 years ago

Just a quick note on timing: we can make this switch today, but it would mean we effectively give up even synthesis testing on top_earlgrey, and would be left with no working FPGA platform.

So if we have to switch today, it'll be just disabling the FPGA builds altogether, which is very easy to do. Please ping me when the first PRs break due to FPGA over-utilization and I'll do that.

However, I really want to delay doing that until the very last minute since disabling FPGA synthesis and tests would be a rather large quality regression. I'm trying to get another toplevel which supports Nexys Video ready first, but no guarantees (tracked in #5397).

msfschaffner commented 3 years ago

Thanks @imphil,

I agree that we should only take FPGA CI out if there is no other way. If needed, I can also temporarily stub some unused things in the NexysVideo top-level to buy us some more time.

If we can get another toplevel up and running for NexysVideo, and a synthesis-only regression for the target device, that would however be great!

tjaychen commented 3 years ago

i think it's worth circling back to ask.. are we sure we want to maintain another top? My main concern is that the different tops heavily diverge over time (top_englishbreakfast doesn't have otp or life cycle for example, it's actually amazing to me it still works), and it would become difficult to maintain. The various emails about extending boot loaders / roms to support that is kind of a sign.

The ROM for example would eventually become kind of difficult because the ROM is going to actually read the OTP to populate other things, so we may end up with a ton of IFDEF's. Should we revisit the stubbing idea again? Because I feel like it's easier to maintain something that's structurally the same, just with the modules underneath being hollowed shells of themselves.

Maybe we could even consider an approach similar to what we do for prim wrappers?

On Mon, Mar 1, 2021 at 4:17 PM Michael Schaffner notifications@github.com wrote:

Thanks @imphil https://github.com/imphil,

I agree that we should only take FPGA CI out if there is no other way. If needed, I can also temporarily stub some unused things in the NexysVideo top-level to buy us some more time.

If we can get another toplevel up and running for NexysVideo, and a synthesis-only regression for the target device, that would however be great!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lowRISC/opentitan/issues/5388#issuecomment-788423027, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAH2RSRREDMGS7AGPR5N2SDTBQVCXANCNFSM4YIIRGEA .

vogelpi commented 3 years ago

@imphil , should we close this issue? It seems that this has been addressed in #6614 .