![]() |
|
||||||||||||||
| . 网站首页 . 产品新知 . 业界资讯 . 技术文库 . 下载中心 . 服务导航 . 邮购需知 . 技术论坛 . | ||
|
||
|
|||||||
| SoC原型验证技术的研究 | |||||||
作者:马凤翔 孙… 文章来源:电子技术应用 点击数: 更新时间:2008-2-3 ![]() |
|||||||
|
来源:电子技术应用 | 作者:清华大学微电子所 马凤翔 孙义和 由于SOC设计复杂度不断增加,使得缩短面市时间的压力越来越重。虽然充分利用IP核大大减少了SoC的设计时间,但SoC验证仍然非常复杂耗时。SoC和ASIC的最大不同之处在于它的系统特性,除了大量硬件模块之外,SoC还需要大量的固件和软件,如操作系统、驱动程序、通讯协议以及应用程序等。SoC硬件模块数目众多、内嵌软件复杂,传统的基于逻辑模拟的验证方式已不再可行。尤其是软硬协同验证时,模拟时间之长令人难以忍受。为了缩短SoC验证时间,快速系统原型(Rapid System Prototype)验证,即硬件原型和软件原型结合验证,已经成为SoC设计流程前期阶段的常用手段。 快速系统原型验证采用商用芯片实现设计中的常用模块,只有核心模块才用FPGA实现,因此提高了原型系统的速度,减少了原型描述及其实现的工作量,降低了原型验证系统的成本,更适合于开发出针对某个领域的验证平台。但目前的SoC原型的描述主要使用Verilog或者VHDL,描述的级别低、复杂度高、容易出错,因此不能很快地实现SoC的原型。本文的目的就是找出一种方法,用高级语言(如C语言)来描述SoC的原型,并实现在设计的原型验证硬件上。 1 SoC原型的Handel-C描述及其实现流程 Celoxica公司提出的软件编译式系统设计(Software-Compiled System Design,SCSD)把软件设计技术引入硬件设计,直接用Handel-C语言描述硬件设计,大大改善了硬件设计效率。SCSD的软件工具包括集成开发环境(DK)、平台开发工具(PDK)以及系统级硬件描述语言Handel-C等。DK可以编辑、模拟、调试并编译Handel-C源代码,生成EDIF、Verilog或VHDL代码,并能够与ModelSim一起协同模拟Handel-C和Verilog设计。PDK由数据流管理器(DSM)、平台抽象层(PAL)和平台支持库(PSL)三个层面构成。通过DSM,可以很方便地在软件和硬件之间实现转移设计的功能,便于快速地划分设计,找到最优的划分方案;PAL提供与API方式访问原型电路板一致的硬件资源,实现Handel-C设计的可移植性;PSL为DK和Handel-C设计提供与电路板、可编程器件或开发工具有关的支持,更接近驱动程序的概念。 SCSD的整套软件工具能够把Handel-C描述的设计直接实现到FPGA上,因此非常适合SoC原型的描述及其实现。本文以SCSD为基础,提出了SoC/IP的原型验证流程,如图1所示。
图1 SoC/IP原型实现的基本流程及其EDA工具 在SOC软硬件协同验证中,首先通过DK,协同模拟C/C++描述的软件、Handel-C描述的验证环境和Verilog描述的模块;然后把软件编译成SoC处理器的目标代码,让软件在原型系统中高速运行,执行验证。主机PC上运行的诊断软件与SoC的软件模块的描述实现流程基本一致,只是最终实现运行在主机的处理器上。 2 SoC原型验证系统样机 本文利用可配置计算电路板RC1000和SoC设计展示评估平台RC200搭建了一个原型验证系统的样机,以充分体验SCSD的优缺点,为以后SoC原型验证系统的设计做一些基础性研究工作。 原型验证系统的样机由PC主机、RC1000和RC200构成,如图2所示。在功能定位上,PC主机是主控子系统,RC1000和RC200共同组成原型子系统。RC1000插在PC主机的PCI插槽中。RC200和PC主机之间用并口总线连接。RC1000和RC200之间用自制的34位总线连接。
图2 RC1000的功能框图
图3 SoC原型示意图 Lena图像数据以静态库文件的方式嵌入程序源代码。主机程序启动后,首先对原型子系统进行配置,然后用DMA方式把图像数据送入RC1000的存储器中。数据传输结束后,主机用控制端口通知RC1000进行处理。RC1000对Lena图像进行扭曲处理,处理完一帧后,用状态端口通知主机取回结果,并在主机显示器上显示。主机拿到结果后,通知RC1000继续处理。如此反复。也就是说,主机以DMA方式传输一帧静态图像,然后再以DMA方式逐帧取回处理结果,在主机显示器上得到扭曲变幻的动态图像。 在RC1000对每帧图像的处理过程中,是以像素为单位把图像数据传递给RC200的。像素数据的传送使用三条信号线,分别是Data、Write和RC200Rdy。Data是16位的数据总线,用来发送像素数据。Write是RC1000发送数据的标志信号线。RC200Rdy表明RC200是否准备好接收像素数据Data。像素数据的发送协议与握手协议类似。在RC1000 处理像素的过程中,Write为0,像素处理完成后,如果RC200Rdy为1,则开始发送数据Data,同时把Write置为1通知RC200接收数据;如果RC200Rdy为0,RC1000就进入等待状态,直至RC200Rdy跳变为1。在RC200接收、处理数据的过程中,RC200Rdy被置为0。 RC200接收到的数据是16位的,但它只支持24位或者30位的显示数据。因此,对16位的像素数据应加以处理,把它扩展到24位。动态图像的显示借助FrameBufferdb实现,这是Celoxica的视频显示核。它用两个存储器排作为视频缓冲器,交替接收数据和驱动显示。 4 实验结果及系统原型的性能分析 Lena图像处理及其试验表明:SCSD能够有效、快速地实现SoC的原型验证和IP的仿真验证。但用于SoC原型验证,尚有不足之处。首先,它只支持设计的可配置逻辑实现,不支持诊断能力的实现;其次,它只能在单个FPGA上实现设计,不能把Handel-C设计划分在多个FPGA上实现。而这两点对于原型验证来说却非常重要。诊断就是在原型运行过程中如何实现重要信号的收集和分析。诊断涉及到监测点的指定及其实现,以及监测点数据的处理分析。在Verilog中指定监测点相对简单,因为有现成的工具—Synplicity的Identify。在Handel-C中还没有现成办法指定监测点,其指定和实现机制需要进一步的研究。可行的办法就是,先用DK把Handel-C描述的验证环境或设计编译成Verilog描述,然后再在Identify中指定监测点。实现就是在硬件上获得并表现这些监测点的信号,如把这些信号直接或者经过某种处理后输出到逻辑分析仪或PC主机。但这需要圆形硬件的支持。 大规模设计需要多个FPGA实现。因此对于原型验证,需要把设计划分到多个FPGA上实现。比较快捷的方法是:先用DK把Handel-C设计编译为Verilog描述,然后用Synplicity的设计划分工具Certify划分,最后用Xilinx公司的布局布线工具生成配置数据。也可以进一步研究如何划分Handel-C设计。改进的SOC/IP原型验证流程及所用的软件工具如图4所示。
图4 改进的SoC原型验证流程
图5 原型电路板上总线结构及主要资源
参考文献:
ca.RC1000 Software Reference Manual.Celoxica,2003 |
|||||||
| 文章录入:admin 责任编辑:admin | |||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 片上系统(SOC)设计与EDA 基于ARM的SoC设计入门 高速视频处理系统中的信号完… 基于SOC的FPSLIC硬件实现分组… 采用嵌入式测试器实现SoC中存… 8位微控制器在SoC中的应用 SoC设计链中的可配置IP 无线SoC的信号完整性分析 统一的电路仿真验证平台的设… 适合数百万门级SoC设计的可扩… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|