You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support for source-based routing algorithm in routers, chimnyes and floogen. The route is encoded in the header as a route_t field, and each router consumes a couple of bits to determine the output ports. In the chimney, a two-stage encoder was added to first determine the destination ID of the request, and then retrive the pre-computed route to that destination from a table. The floogen configuration was extended to support the new routing algorithm, and it will also generate the necessary tables for the chimneys.
Chimneys now support multiple AXI IDs for non-atomic transactions by specifying the MaxUniqueids parameter. This will mitigate ordering of transactions from initially different IDs or endpoints at the expense of some complexity in the meta_buffer which then uses id_queue to store the meta information required to return responses.
The conversion from req/rsp with different ID widths from/to NoC has been moved from the chimneys to the floo_meta_buffer module.
Added virtual channel router floo_vc_router and corresponding floo_vc_narrow_wide_chimney. Currently only supports XY-Routing and mesh topologies.
Preliminary support for multiple local ports in the routers.
Additional traffic pattern generation and visualization.
Added option in floogen to define the direction of connections to/from routers with dst_dir and src_dir flags. This replaces the previous id_offset flag for that purpose. Specifying the direction of the connection is useful for mesh topologies with XYRouting, but also for tile-based implementation, where the order of the ports matters resp. needs to be known.
routers in floogen can no be configured with degree to overwrite the number of ports. This is manily useful for tile-based implementations, where all tiles should have identical routers.
Changed
floo_route_comp now supports source-based routing, and can output both destination ID and a route to the destination.
The chimneys have an additional port route_table_i to receive the pre-computed routing table that is generated by floogen.
System address map was renamed from AddrMap to Sam.
The destination field in the flit header have a new type dst_t which is either set to route_t for the new source-based routing algorithm, and id_t for all the other routing algorithms.
Bumped idma dependency to 0.6
Renamed rsvd field in flits to payload to better reflect its purpose.
Reordered directions in route_direction_e to better support multiple local ports.
Moved all system related rendered parameters from the flit package to its own package in my_system_floo_noc.sv. This allows to use the auto-generated routing information for tile-based implementations, that are assembled by hand.
The bidirectional flag for connections in floogen is set to true by default, since uni-directional links are currently not supported.
The System Address now needs to be passed as a parameter in the chimneys, since it is not part of the flit packages anymore.
Fixed
The generation of the unique ID has been changed resp. aligned for 2D meshes to increment Y-first and X-second. This way the address range and ID increment are consistent with each other.
Broadcasted input id_i in the chimneys should not throw an error anymore in elaboration.
The id_offset should not be correctly applied in the system address map. Before it resulted in negative coordinates.
The axi_ch_e types now have an explicit bitwidth. Previously, this caused issues during elaboration since a 32-bit integer was used as a type.
Fixed a typedef in floo_vc_arbiter when setting NumVirtChannels to 1, that caused issue when compiling with Verilator.
Fixes issue that the routing table was not renderred when IdTable was used as the routing algorithm.
Removed
Removed all floo_synth* wrapper modules. They are moved to the internal PD repository, since they are not really maintained as part of the FlooNoC repository.