Added
FlooGen
- New
floogen schemacommand, emitting a JSON schema of the configuration file so editors can complete field names and flag mistakes while a configuration is written. See the CLI documentation for how to wire it up. - Add a
helpcommand, to print the general help message (floogen help) or the help message of a specific command (floogen help <command>). - Configuration files can declare parameters in a top-level
paramsblock and reference them anywhere else in the file as${...}, with arithmetic, bit operations and comparisons supported inside the braces. Every command that reads a configuration accepts-P NAME=VALUEto override a declared parameter, so a single configuration can be generated for several mesh sizes or address maps without being edited. Parameters are resolved before validation and inlined into the generated output; they are additionally emitted aslocalparams in the generated package. See the parameter documentation. - Address ranges accept an
rdl_paramsfield, binding parameters on the SystemRDL component named byrdl_name(e.g.cluster_regs #(.NumCores(4)) cluster @0x10000000;). Values are resolved at generation time - typically from a configuration parameter - so the generated addrmap has no parameters of its own left to override. See the endpoint documentation.
Changed
Hardware
-
Refactor collective support to make the NoC agnostic of the collective operations: chimneys, routers and the reduction units now accept a generic
collect_op_tparameter type (an opcode vector) instead of the fixedcollect_op_eenum. Eventaul opcodes are treated transparently by the NoC. -
Add
XYRoutingMirroredandYXRoutingMirroredalgorithms to support mixedreq/rspalgorithms. -
Bump and adapt RTL to latest
common_cells v2.0.0-beta.3and bump related IPs:axi,axi_riscv_atomics,idmaandFPnew
FlooGen
- Align collective configuration with the generic
collect_op_t: reductions are now configured with a requirednum_opscount, and the generated package emitsNumNarrowSeqOps,NumWideSeqOps,NumCollectOpsandcollect_op_t, which is passed to chimneys and routers at the system level. - Add mixed
req/rspalgorithm support. - Unknown keys in the
protocolssection are now rejected instead of silently ignored, so a misspelled field name reports an error at its line and column rather than falling back to the default. - Fields that FlooGen derives during elaboration -
sam,num_x_bits,num_y_bits,num_route_bits,num_endpoints,addr_offset_bits,xy_id_offsetandaddr_width- are no longer accepted underrouting:. Setting one now reports an error rather than being overwritten or ignored during elaboration. - Enum-valued keys such as
route_algo,vc_implanddecouple_rwnow match case-insensitively, soroute_algo: xyis accepted alongsideroute_algo: XY. - Custom templates that test whether
decouple_rw/vc_implwere configured must usenoc.routing.decouple_rw is not Noneinstead of"decouple_rw" in noc.routing.model_fields_set. The generated output is unchanged.
Fixed
- Fixed
floo_reduction_unit: missing backpressure mechanism to avoid pushing data into full FIFO.