SoC的RTL移植到FPGA的RTL修改啥?

电子说

1.3w人已加入

描述

尽管对于工程师而言目标始终是以原始形式对SoC源RTL进行原型化,但在原型化工作的早期,SoC设计必须进行必要的修改,以适应FPGA原型系统。设计变化通常是由于在SoC技术中发现的设计元素,这些设计元素在FPGA技术中不可用或不适合FPGA技术。原型平台的局限性也导致了设计的变化,对更高性能和调试工具进行了调整。

Top层的IO PAD(Top_level pads)

FPGA工具流程无法解析SoC中IO PAD的例化,因为IO PAD的例化代码一般来源于Fab代工厂提供的库,每家Fab的库的写法各不相同,只对应其相应的工艺。

门级网表(Gate_level netlists)

门级网表形式的设计没有FPGA工具认识的RTL方式,因为门级网表也是SoC工艺库逻辑单元的映射,FPGA工具无法解析。

SoC单元例化(SoC cell instantiations)

FPGA的工具不能解析工艺库提供的SoC cell的例化。

SoC存储单元(SoC memory)

SoC的存储单元也是工艺库特定的,与FPGA上特定的存储单元有本质区别,FPGA工作无法解析相应的存储单元RTL的例化。

SoC特定IP(SoC Sepecific IP)

从简单的DesignWare宏到完整的CPU的IP,如果IP的源RTL不可用或者是黑盒看不见可综合代码的,那么我们需要在FPGA这一端替换一个等效功能的RTL模块或FPGA的软硬核IP。

内建自测试(BIST built-in self test)

内置自测试(BIST)和其他测试相关电路主要在SoC整个流程中起测试作用,并不是SoC主要的功能描述,BIST的存在是为了快速debug已有的SoC功能,但有些BIST是直接实例化设计到RTL中。但FPGA原型不需要这样做,因为这只是为了SoC的测试功能,而不是SoC的功能,在FPGA端不用做出原型。

门控时钟(Gated clocks)

与BIST一样,时钟门控是SoC为了降低功耗特别使用的一种手段,但通常直接写入RTL的,FPGA原型只是为了做出功能原型机,而无法模拟功耗原型,所以这通常会用FPGA中可用的时钟资源,能够提供正常功能的所需时钟。

其他复杂生成的时钟模块

通常在SoC设计中,都会有一个CRG模块,与门控时钟一样,生成的时钟可能需要简化或以其他方式处理(会用FPGA中可用的时钟资源或者例化FPGA中的分频器和倍频器IP模块),以适应FPGA的设计。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分