sld-columbia / esp

Embedded Scalable Platforms: Heterogeneous SoC architecture and IP integration made easy
Other
314 stars 102 forks source link

Clarification on the ESP NoC #221

Closed HamasWaqar closed 2 months ago

HamasWaqar commented 2 months ago

Hi,

I hope your day is going well. I am interisted in exploring the ESP project, particularly the NoC interface component. However, I have few clarification question listed below for the NoC interface component.

  1. Firstly, does the ESP NoC interconnect support different NoC topologies other than mesh interconnect topology?
  2. Does your NoC interconnect support flits with different priority levels? In other words, does the the route prioritize the routing of flits with higher priority vs flits with lower priority?
  3. From my understanding, the ESP NoC interconnect is written in implemented in System Verilog and VHDL. Just curios, are the two implementation the same or does one implementation has more features than the other?
  4. I noticed in your comments that the NoC interface component only generates a 5x5 Mesh interconnect. Could we modify some parameter within the code to generate different interconnect sizes (for instance, 8x8 interconnect, 12x12 interconnect, or 10x20 interconnect)? If so, how would one change the NoC interconnect sizes?
  5. Could the NoC Interconnect size in both X or Y dimensions be different? In other words, could we create an NoC interconnect where the number of routers in the X dimension does not equal the number of routers in the Y dimension (for instance, interconnect size that is 4x8 or 10x20).
  6. Does the NoC interface component support routing algorithms other than DoR?

Thanks.

jzuckerman commented 2 months ago

Hi, thanks for your questions.

  1. No, the NoC only supports a 2D mesh topology.
  2. No, all flits have the same priority, and arbitration within the router is done in a round-robin manner.
  3. The implementations are the same. The SystemVerilog implementation is now the default in te new release.
  4. The current maximum is an 8x8 NoC. This is because the tile coordinates use 3 bit signals. In theory, the NoC can be expanded to be larger, though. Where do you see that the limit is 5x5?
  5. Yes, the X and Y dimensions do not need to be equal.
  6. No, the NoC only supports dimension-ordered routing.