基于FPGA的SoC原型验证的设计与实现

2011-07-01 06:41:17来源: 互联网
    0 引言

  随着SoC设计规模的与日俱增,其功能日趋复杂,芯片的验证阶段占据了整个芯片开发的大部分时间。为了缩短验证时间,在传统的仿真验证的基础上涌现了许多新的验证手段,如SDV(Software Driven verification)、BFM(Bus Function Model)等,以及基于FPGA的原型验证技术。

  因FPGA工艺及技术的发展,其速度、容量和密度都大大增加,功耗和成本在不断的降低,使得基于FPGA的原型验证得到广泛的应用。基于FPGA的原型验证可以比软件仿真速度高出4~6个数量级,而且还可以提高流片成功率,并为软件开发提供了硬件平台,加速了软件的开发速度。

  本文主要论述了FPGA基原型验证的实现方法,并且针对ARM1136为内核的SoC,如何快速而有效地搭建一个原型验证平台做了详细的论述,最后还以UART为例来说明一种简单、可重用性好、灵活性强的测试程序架构。

  1 基于ARM1136的SoC设计

  本文验证的SoC芯片是定位于手持视频播放设备、卫星导航产品的高性能应用处理器,采用了ARM1136作为内核,ARM11在提供超高性能的同时,还能保证功耗、面积的有效性。

  同时在这个架构中还采用了ARM公司的AMBA(Advanced Microcontroller Bus Architecture)总线,它是一组针对基于ARM核的片上系统之间通信而设计的标准协议。在设计中,对于一些处理数据和通讯速度要求较高的设备挂在AHB总线上,而那些对总线性能要求不高的设备挂在APB总线上。

  为了能够提高一些设备间的数据传输速度,该设计加入了DMA,其支持存储器存储器存储器到外设、外设到存储的传输。

  基于ARM11设计的SoC系统构架如图1所示,这个系统还包括了USB控制器、LCD控制器、图像处理单元GPU、视频处理单元VPU、GPS、I2S、通用异步串口UART、同步串口SPI、TIMER、PWM、实时时钟(RTC)、I2C总线和功耗管理单元(PMU)等。

a.JPG

  2 FPGA原型验证平台的快速搭建

  FPGA的发展为SoC的原型验证提供了巨大的发挥空间,面对复杂的SoC系统,传统的一些验证方法和单一的验证技术已经不能满足设计的要求。本文所设计的平台不仅能加快开发速度,提高流片成功率,而且还具有低错误率、快速和简易的特点,因此特别适合用于RTL代码更改频繁的设计中。

  2.1 FPGA原型验证平台的硬件环境设计

  FPGA原型验证平台的硬件设计应该考虑FPGA的逻缉资源、应用资源、扩展能力、PCB信号质量、调试难度、组态和成本等方面的因素。本原型系统设计的FPGA开发板采用的是Terasic公司的DE3开发板,其FPGA芯片是StratixIII EP3SL340,扩展板是根据SoC整体验证方案而设计的PCB板。FPGA原型验证平台的硬件架构如图2所示,为了使FPGA的调试性能增强,该平台加入了ICE在线调试器,它可以让验证人员和软件开发人员观察到ARM内核和设计中各个寄存器的状态信息,并且可以进行单步运行、在线调试等。

b.JPG

  2.2 FPGA原型验证平台的软件环境设计

  SoC芯片采用的是ASIC工艺流程,ASIC和FPGA在实现结构上是不同的,AISC通常使用综合工具将RTL级代码映射到芯片制造厂提供的标准单元上。这些标准单元包括完成逻辑功能的与非门、非门、或非门等基本门单元和完成存储功能的各类触发器、锁存器,以及其它的宏单元。而FPGA器件为了实现可编程功能,通常使用查找表结构实现电路的逻辑功能。本文原型设计流程如图3所示,在图示中仅是将部分模块列出,如PMU和GPIO。

c.JPG

  2.2.1 设计代码的转换

  虽然FPGA和ASIC所用资源和实现方式不同,但在进行原型设计中需要遵循的一个原则就是“尊重原设计”。在FPGA现有资源情况下实现SoC时,尽可能地少改动原SoC设计,在此基础上需要对原设计做如下转换:

  (1)存储模块。存储单元是必须进行代码转换的,ASIC中的存储单元通常用代工厂所提供的Memory Compiler来定制。如果直接将ASIC代码中的存储单元作为FPGA的输入,通常综合器是综合不出来的,即使能综合出来,也要花费很长时间,并且资源消耗多、性能不好。而FPGA厂商一般提供经过验证并优化的存储单元,因此存储单元要进行代码转换。在设计里用FPGA的RAM宏单元来替换ESRAM,SoC芯片里面的DDR PHY是模拟的模块,此要替换成Altera公司的PHY的IP核。

  (2)时钟和门控。数字电路中,时钟是整个电路最重要、最特殊的信号。在ASIC中,用布局布线工具来放置时钟树,利用代工厂提供的PLL进行时钟设计。而FPGA中通常已经配置一定数量的PLL宏单元,并有针对时钟优化的全局时钟网络,一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过全局时钟BUF适配到全局时钟网络,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异可以忽略不计,因此时钟单元需要采用FPGA的PLL宏单元和专门的时钟布线资源来替换。

  为了减少功耗,SoC设计中使用了门控时钟(clockgating),如图4所示,对于FPGA来说这种门控时钟容易产生毛刺,导致数据不正确,所以在FPGA设计中要使用时钟使能寄存器代替门控时钟。

d.JPG

  2.2.2 设计综合

  综合是将较高级抽象层次的描述转换成较低层次描述,在这里就是把HDL程序转化成标准的门级结构网表。本设计采用的EDA工具是Sy-nopsys公司的Synplify,将SoC的各个模块分别进行综合,综合时要加约束文件和Altera公司的相应器件的库文件,产生一个FPGA网表文件。

[1] [2]

关键字:时序分析  原型验证  布局布线  存储单元

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/0701/article_2234.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
时序分析
原型验证
布局布线
存储单元

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved