In the available RTL, there's only one clock domain. We have used the
rocket-chip generator to build chips with multiple clock domains,
though. The boundary between a Rocket tile and the uncore is a
natural demarcation, since all communication across that cut is
decoupled. The queues can just be replaced with async FIFOs.
At the moment, doing so requires manual post-processing of the Verilog
that Chisel spits out.
Andrew
-Ben
It’s perfectly reasonable to pass the Chisel-generated Verilog directly through the VLSI flow if you are comfortable with the design residing within a single clock domain.There are different approaches to building in all of the bells and whistles you need to actually tape out a chip, but the two broad approaches boil down to 1) embedding necessary Verilog modules via Chisel BlackBoxes or 2) instantiating the Chisel-generated Verilog in a handwritten (or script-written) top-level Verilog module.Off the top of my head, some of the bits and pieces that Chisel doesn’t handle completely (and so we have to postprocess):* Instantiating a pad frame* Handling multiple clock domains and async FIFO insertion* Muxing multiple off-chip clock sources* Instantiating SRAM macros* Instantiating analog IPThere’s probably more depending on your goals for the silicon.-Ben
| John Eaton
Adding an optional IP-Xact backend would be a great project for some
external Chisel contributor to work on (volunteers?), but this project
should wait until Chisel 3.0 is stable.
Krste
Thanks Ben!
------
Sent from a phone without a UCSD GreenDroid processor.
On Oct 25, 2016, at 11:07, Prof. Michael Taylor <prof....@gmail.com> wrote:Hi Ben,
Quick question -- which FIFOs in the chisel code do you guys replace?
M
------
Apologies for any errors, an approximate neural network and a mobile phone synthesized this email.