• 上下模块之间的连接总线和左右模块之间的连接总线出现了交叉,如果设计再复杂一点有可能会遇到布局布线局部拥塞,会大大增加工具布局布线时间。
上面两个问题也是广大FPGA设计者在复杂FPGA设计中或多或少会遇到的问题,导致的原因有可能是设计比较复杂,也有可能是硬件平台的限制,或者设计必须连接不同位置的外围Hard IP导致。
NoC的出现让我们上面遇到的问题迎刃而解。NoC为FPGA逻辑内部互连提供了双向288bit的原始数据模式(Raw data mode)。 用户可以通过这288bit的信号进行逻辑直连或者自定义协议互连。
图3 利用2D NoC进行内部逻辑互连
在NoC的每个交叉点上都有两个网络接入点(NAP),用户只要简单地通过例化NAP的原语或者宏定义就可以将自己的逻辑接入到NoC并进行互连。
图4 网络接入点NAP
图5 例化NAP宏定义示例
这样通过在3DES加密和解密模块上分别例化NAP,就可以实现3DES加密和解密模块之间的NoC互连。
图6 3DES设计(利用NoC)后端布局布线图
这样在简化用户设计的同时,设计性能有了很大的提高,从之前的260MHz提高到了750MHz。 图6中可以看到之前逻辑之间大量的连接总线已经看不到,总线的连接都由NoC接管,在后端布局布线图中只能看到绿色时钟走线和白色模块内部的逻辑走线。
本文主要想通过这样一个例子给广大FPGA设计者展示如何利用NoC来进行FPGA内部逻辑的互连,从而给广大FPGA设计者提供另一种考虑问题的思路。在传统的FPGA设计中出现了性能无法提升,布局布线拥塞的时候,是否可以考虑利用Achronix新一代的Speedster7t FPGA来简化和加速用户的设计。
关于FPGA,ASIC技术就介绍完了,您有什么想法可以联系小编。