棋子 · 2023年04月25日

【芯知识】SoC的RTL移植到FPGA的RTL修改啥?

image.png

      尽管对于工程师而言目标始终是以原始形式对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的设计。

作者:Jacky Yu
文章来源:芯播客

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
11182
内容数
1222
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息