一个运用NoC来优化加解密设计的例子
Achronix 最新基于台积电(TSMC)的7nm FinFET工艺的Speedster7t FPGA器件包含了革命性的新型二维片上网络(2D NoC)。2D NoC如同在FPGA可编程逻辑结构上运行的高速公路网络一样,为FPGA外部高速接口和内部可编程逻辑的数据传输提供了超高带宽(~27Tbps)。
图1 Speedster 7t FPGA结构图
NoC使用一系列高速的行和列网络通路在整个FPGA内部分发数据,从而在整个FPGA结构中以水平和垂直方式分发数据流量。NoC中的每一行或每一列都有两个256位的、单向的、行业标准的AXI通道,可以在每个方向上以512Gbps(256bit x 2GHz)的传输速率运行。
NoC为FPGA设计提供了几项重要优势,包括:
本文用一个具体的FPGA设计例子来展现NoC在FPGA内部逻辑互连中发挥的重要作用。本设计主要是实现三重数据加密解密算法(3DES)。该算法是DES加密算法的一种模式,它是对于每个数据块应用三次DES加密算法,通过增加DES的密钥长度增加安全性。
在该FPGA设计中,我们将输入输出管脚放在的FPGA上下左右四个方向上。上面管脚进来的数据经过逻辑1进行解密然后通过蓝色的走线送到逻辑2加密以后从下面的管脚送出。左边管脚进来的数据经过逻辑3进行解密然后通过红色的走线送到逻辑4加密以后从右边的管脚送出。如图2 所示。
图2 3DES设计(没有用NoC)后端布局布线图
本设计遇到的问题如下:
上面两个问题也是广大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来简化和加速用户的设计。
说到 Native 与 JS 做交互,就不得不提一嘴 HyBird Mobile App。 Hybird 的翻译...
1、android:clipToPadding 意思是控件的绘制区域是否在padding里面。默认为true...
本文转载自微信公众号「无线深海」,作者蜉蝣采采 。转载本文请联系无线深海公众...
从与机器赛跑到第二次机器革命 人工智能革命被称作第四次工业革命。第一次工业革...
移动数据和分析公司 App Annie 透露,TikTok 击败了 Facebook 旗下的三款应用程...
2020年成为了人们记忆中的最糟糕的一年,很多组织不得不让员工在家远程工作,而...
为什么一款游戏APP,需要获取我们的位置信息?为什么一款购物软件需要读取我们的...
随着机器学习领域不断发展,对于处理机器学习的团队来说,在1台机器上训练1个模...
效果图 可以看到这个自定义控件结合了颜色渐变、动态绘制刻度、动态水球效果。接...
相信不少朋友还记得PP助手。 PP助手是早期的iOS的App下载平台,同时还集合大量iO...