下冰雹 · 2023年05月11日

【芯知识】SoC设计的IO PAD怎么移植到FPGA原型验证

       FPGA原型验证系统要尽可能多的复用SoC相关的模块,这样才是复刻SoC原型的意义所在。通常,许多SoC中设计的方式在FPGA中其实是不能通用的,在SoC设计的顶层,主要包括SoC芯片外设元件和顶层的IO PAD实例。典型的SoC顶层的简化视图如下所示:

image.png

      为了将这种SoC设计顺利移植到FPGA,我们需要用FPGA中现有的等效物替换图中所示的Chip Support和IO PAD,或者简单地完全移除顶层,并用新的FPGA里面特有的单元顶层封装Design Core。

      RTL中的IO PAD实例化的代码在FPGA中是不能被综合的,并且FPGA中其实是不需要再将SoC代码中的IO PAD综合的,因为综合工具根据相关设置能够将相应的SoC的IO映射到FPGA的IO PAD,在大多数情况下只需要做绑定FPGA管脚的配置,并用其FPGA等效实物的可综合模型替换每个SoC的IO PAD实例。

      ASIC的工艺厂商技术库中的典型IO焊盘在其边界处可能有20个或更多的连接,包括主输入和输出加上电压和转换控制以及扫描测试。其中一些连接将连接到封装引脚/球,而另一些连接到设计的核心或直接连接到相邻的焊盘。为了进行FPGA原型设计,我们只需要对从设计核心到“外部”世界的逻辑连接进行建模。因此,我们只需要一种更简单的焊盘形式来实现逻辑连接,省略扫描等。我们写一个小RTL文件,该文件适合SoC
RTL中的IO PAD实例化,但包含等效的FPGA子集,这将黑盒PAD实例化转换为FPGA可综合的。尽管SoC中可能有一千多个PAD,但可能只有十种或更多不同类型的PAD。用FPGA等效可综合逻辑代码替换每种类型将相对简单,特别是如果我们的SoC设计在多个项目中使用相同的PAD库,我们可以建立一个小的等效逻辑库。

      上图中标记为“Design Support”的块包含设计中通常特定于目标的元素,通常被视为SoC的RTL代码主要功能的次要元素,但对其功能正确至关重要。这可能包括时钟生成和分配、复位控制和同步、电源门控以及测试和调试控制等功能。一些团队建议简单地用另一个更简单的块替换Design Support块,该块负责FPGA所需的元件。这意味着,实际上我们有一个新的FPGA兼容版本的SoC顶层。SoC的顶层RTL文件可以用作新FPGA顶层的基础,下图中的框图显示了新顶层的示例,可以看到顶层的时钟生成和同步电路图。
image.png

      支持现有设计核心。等效FPGA芯片支持块的创建是一项相对简单的FPGA设计任务,涉及分频器、时钟缓冲器和同步器,当原型使用多片FPGA时,FPGA时钟网络的使用变得更加复杂。

image.png

原文:芯播客
作者: Jacky Yu

相关文章推荐

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