描述
我想在我的AC7t1500设计中使用NoC。 没有 C如何处理交易仲裁?
回答
Speedster7t片上网络(NoC)处理NoC逻辑本身内的所有事务仲裁。有两种仲裁方案,旨在防止死锁并公平地对待端点。行和列使用可配置的循环仲裁方案,NoC的外围部分使用基于FIFO的仲裁方案。
具有可配置循环的行和列
没有 C在内部处理事务仲裁,并交织来自AXI事务,以太网数据包和/或数据流的流量。这种仲裁不仅可以保持流量的移动并防止备份,还可以使NoC保持其峰值容量。行和列使用可配置的循环仲裁方案,用户可以在其中配置每个NAP的仲裁时间表。在实例化NAP时,计划值通过参数传递,并在配置结构后保持静态。对于列上的NAP,有一个参数,用于从北到南的方向以及从南到北的方向。类似地,这些行具有一个用于东西方向和东西方向的参数。
Each arbitration parameter is a 32-bit value used to initialize the arbitration schedule mechanism. Bit 0 of the arbitration schedule vector is used to determine if the local NAP transaction entering the 没有 C wins arbitration when there is competing traffic from the upstream NAP on the row or column. If bit 0 has a value of '1
', the local traffic entering the 没有 C wins, while if bit 0 has a value of '0
', the upstream transaction on the row or column wins. After each 没有 C clock cycle where both the local transaction and the upstream transaction are competing for access, the value in the schedule register rotates to the left. For example, a value of 32'hAAAA_AAAA
means that the local NAP transaction has high priority on every second 没有 C cycle.
下图显示了从FPGA逻辑启动的本地事务,尝试通过NAP从设备进入NoC,而上游事务同时遍历该行。如果在该NoC时钟周期内没有竞争事务,则该事务将通过NAP进行仲裁,而无需任何仲裁。
数字: NAP仲裁
ACE选择仲裁计划的默认值来创建行和列的公平性,但是如果特定的NAP需要在设计中具有更高的优先级,则用户可以覆盖这些值。建议用户不要覆盖仲裁计划值,因为默认值设置了行或列上所有NAP的公平性。每个NAP的默认值基于行或列上实例化NAP的数量以及特定NAP的位置。用于实例化N个NAP的每一行或每一列上的值的公式对于该方向上的最后一个NAP为1 / N,对于下一个上游NAP为1 /(N-1),依此类推,直到第一个实例化的NAP。行或列。例如,如果连续有三个NAP,则最西端的NAP每第三个周期具有优先级,下一个上游NAP则每第二个周期具有优先级,而最东端的NAP则始终具有优先级,因为从东到北没有任何其他竞争性NAP。西方向。 ACE和模拟环境都将强制执行默认仲裁值,除非被用户的值明确覆盖。有关仲裁时间表的更多信息,请参见《快速入门》中的“ Speedster7t片上网络基元”部分。 Speedster7t IP组件库用户指南 (UG086)。
基于FIFO仲裁的NoC外围环
事务仲裁可以使数据通过NoC传输,而不会引起严重的拥塞。对于NoC的外围部分,使用基于FIFO的仲裁方案,这意味着将按照先到先得的原则处理事务。如果多个事务在同一NoC时钟周期到达,则使用最近服务的策略对事务进行排序。该方案保证没有端点饿死,并且所有事务完成。 没有 C外围部分的仲裁方案不可配置。有关更多信息,请参阅 Speedster7t片上网络用户指南 (UG089)。