基于FPGA的SoC芯片IP子系统原型验证
发布时间:2020-04-03 01:57
【摘要】:由于片上系统(System on Chip,SoC)芯片大规模的IP核(Intellectual Property core)复用,使得芯片架构变得非常复杂,同时也导致芯片验证的难度也不断加大,因此芯片验证研究工作具有十分重要的意义。目前比较常用的是软件仿真的验证方法,但是软件仿真都是在理想环境下验证,对于一些延时等隐藏的问题很难被发现。而现场可编程门阵列(Field-Programmable Gate Array,FPGA)原型验证是在更接近芯片真实硬件环境下进行的软硬件协同验证,它能最大限度地还原出芯片的应用场景,更加快速地找出芯片中的隐藏问题。因此,更多的芯片厂商在芯片流片前进行FPGA原型验证,以提高流片成功率。本文面向中国科学院计算技术研究所正在研究的卫星终端基带SoC芯片,采用FPGA原型验证技术对其IP子系统进行功能验证。主要工作包含以下三个方面:1.ASIC(Application Specific Integrated Circuit,专用集成电路)代码到FPGA代码的移植由于ASIC环境与FPGA环境在物理电路结构不同,采用FPGA原型验证技术对SoC芯片进行验证时,需要将ASIC环境下的代码替换为FPGA环境下的代码。2.基于FPGA的SoC芯片IP子系统功能仿真验证根据SoC芯片IP子系统的架构特点搭建仿真验证环境,利用Makefile脚本完成工程的自动化编译,提高验证效率,并对IP子系统各个模块进行FPGA功能仿真验证,主要研究验证过程中各个模块测试向量的设计与实现。3.IP子系统的FPGA板级验证使用StarFire-DC820 FPGA验证板搭建FPGA原型验证平台,在实现FPGA原型验证版本的过程中,为了提高综合实现效率,采用TCL脚本配置仿真工具自动执行整个综合实现过程,替代图形用户界面完成设计代码的综合、翻译、映射、布局布线工作,并对IP子系统进行FPGA板级验证,真实还原IP子系统应用场景,即语音的播放与录音功能。
【图文】:
图 3.1 生成 PLL 过程示意图在 FPGA 中,有全局时钟网络,使时钟信号通过网络到达片内触发器的(Skew)足够小,同时全局时钟网络具有很强的驱动能力,因此,在布局布线时钟通过 FPGA 的全局时钟网络分布给各个模块。通过在 QuartusII 软件开启自动全局时钟约束,工具在实现的时候会自动将一些高扇出的时钟到全局时钟网络上。在原型实现中,,使用 FPGA 器件中的锁相环(PLL)来管理时钟。本文使用artus II 11.0 软件中的 MegaWizard Plug-In Manager 工具调用 PLL,如图 3.1 成 PLL 过程示意图。根据 SoC 模块的时钟频率,设置输入频率、输出分频模块从 ASIC 设计到 FPGA 的移植如图 3.2 所示。
图 3.5 生成 RAM 宏单元过程示意图在存储单元替换过程中,需要注意的是 RTL 中的存储单元与 FPGA 的存储单元的使能信号是相反的,在 FPGA 中,片选信号为高有效,读写使能信号为高电平时,表示写数据,在读写使能信号为低时表示为读数据,而 RTL 代码中是相反的。如下所示为单口 RAM 的实例化:`ifdef WX_BP_ASICS55NLL-1024*32 insn_1024*32_0(.clk (clk),.cen (~ce_inner[0]).wen (~we_int),.gwen (!we_int),.em (we[3:0]).a (addr[9:0]),.d (di[31:0]),
【学位授予单位】:重庆邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TN791;TN47
本文编号:2612769
【图文】:
图 3.1 生成 PLL 过程示意图在 FPGA 中,有全局时钟网络,使时钟信号通过网络到达片内触发器的(Skew)足够小,同时全局时钟网络具有很强的驱动能力,因此,在布局布线时钟通过 FPGA 的全局时钟网络分布给各个模块。通过在 QuartusII 软件开启自动全局时钟约束,工具在实现的时候会自动将一些高扇出的时钟到全局时钟网络上。在原型实现中,,使用 FPGA 器件中的锁相环(PLL)来管理时钟。本文使用artus II 11.0 软件中的 MegaWizard Plug-In Manager 工具调用 PLL,如图 3.1 成 PLL 过程示意图。根据 SoC 模块的时钟频率,设置输入频率、输出分频模块从 ASIC 设计到 FPGA 的移植如图 3.2 所示。
图 3.5 生成 RAM 宏单元过程示意图在存储单元替换过程中,需要注意的是 RTL 中的存储单元与 FPGA 的存储单元的使能信号是相反的,在 FPGA 中,片选信号为高有效,读写使能信号为高电平时,表示写数据,在读写使能信号为低时表示为读数据,而 RTL 代码中是相反的。如下所示为单口 RAM 的实例化:`ifdef WX_BP_ASICS55NLL-1024*32 insn_1024*32_0(.clk (clk),.cen (~ce_inner[0]).wen (~we_int),.gwen (!we_int),.em (we[3:0]).a (addr[9:0]),.d (di[31:0]),
【学位授予单位】:重庆邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TN791;TN47
【参考文献】
相关期刊论文 前5条
1 吴军;华更新;刘鸿瑾;;SoC验证方法学研究与应用[J];空间控制技术与应用;2012年05期
2 朱车壮;陈岚;冯燕;;基于覆盖率驱动的SoC验证技术研究[J];微电子学与计算机;2011年11期
3 谢平;;基于龙芯IP核SoC芯片的FPGA验证技术研究[J];电子技术应用;2010年10期
4 李哲;田泽;杨峰;张荣华;王治;;基于AFDX网络终端系统SoC的FPGA原型验证[J];航空计算技术;2010年02期
5 孟庆,何乐年,沈海斌,严晓浪;基于事务的SoC验证策略[J];半导体技术;2002年06期
相关硕士学位论文 前4条
1 刘桑;指纹识别芯片的算法设计及其在FPGA上的原型验证[D];北京交通大学;2017年
2 秦宇;基于APB总线的SPI接口IP核的设计与验证[D];贵州大学;2015年
3 余何庆;基于FPGA的SoC原型验证平台设计与实现[D];西安电子科技大学;2014年
4 胡文彬;IC设计原型验证技术研究与实现[D];合肥工业大学;2010年
本文编号:2612769
本文链接:https://www.wllwen.com/kejilunwen/dianzigongchenglunwen/2612769.html