soc原型验证技术的研究精品

上传人:小** 文档编号:39271674 上传时间:2018-05-13 格式:PDF 页数:8 大小:199.50KB
返回 下载 相关 举报
soc原型验证技术的研究精品_第1页
第1页 / 共8页
soc原型验证技术的研究精品_第2页
第2页 / 共8页
soc原型验证技术的研究精品_第3页
第3页 / 共8页
soc原型验证技术的研究精品_第4页
第4页 / 共8页
soc原型验证技术的研究精品_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《soc原型验证技术的研究精品》由会员分享,可在线阅读,更多相关《soc原型验证技术的研究精品(8页珍藏版)》请在金锄头文库上搜索。

1、 SoC 原型验证技术的研究 SoC 原型验证技术的研究 作者:马凤翔 孙义和 摘 要:摘 要: 快 速系统原型技术已成为 SoC(片上系统)验证的主要手段之一,但大多数的原型描述仍使用 Verilog/VHDL 语言,描述效率低。以软件编译式系统设计 (SCSD)为基础,提出了SoC的原型验证流程,用Handel-C语言描述SoC原型,并直接实现在原型验证硬件上;用SCSD的软件工具、 RC1000 和 RC200 硬件平台搭建了一个 SoC 原型验证系统的样机,并在样机上完成了 Lena 图像处理 SoC 的原型验证;在反复试验的基础上,改进了 SoC 原型验证流程,并设计出了新的原型电路

2、板。 关键词:关键词:原型 SoC 验证 软件编译式系统设计 Handel-C 由于SoC设计复杂度不断增加,使得缩短面市时间的压力越来越重。 虽然充分利用IP核大大减少了SoC的设计时间,但SoC验证仍然非常复杂耗时。 SoC和ASIC的最大不同之处在于它的系统特性,除了大量硬件模块之外,SoC还需要大量的固件和软件,如操作系统、驱动程序、通讯协议以及应用程序 等。SoC硬件模块数目众多、内嵌软件复杂,传统的基于逻辑模拟的验证方式已不再可行。 尤其是软硬协同验证时,模拟时间之长令人难以忍受。 为了缩短SoC 验证时间,快速系统原型(Rapid System Prototype)验证,即硬件原

3、型和软件原型结合验证,已经成为SoC设计流程前期阶段的常用手段1。 快速系统原型验证的本质在于快速地实现SoC设计中的硬件模块,让软件模块在真正的硬件上高速运行,实现SoC设计的软硬件协同验证。该技术 实现的基础是强大的FPGA和有力的设计描述及编译工具。 原型验证系统由三个部分组成:系统硬件、 软件编译器和运行程序。系统硬件设计的核心部分是定制的 FPGA并行系统,用来实现SoC设计中的关键模块如Mpeg编码器,系统硬件的常规模块可由商用芯片实现。软件编译器则把寄存器级或门级设计及其验证环 境扁平化,映射到系统硬件。 运行程序控制原型系统的运行、 设计调试,一般采用C-API编程,并且有开放

4、的软件结构,便于后期紧密集成。 快速系统原型验证采用商用芯片实现设计中的常用模块,只有核心模块才用FPGA实现,因此提高了原型系统的速度,减少了原型描述及其实现的 工作量,降低了原型验证系统的成本,更适合于开发出针对某个领域的验证平台。但目前的SoC原型的描述主要使用Verilog或者VHDL,描述的级别 低、复杂度高、容易出错,因此不能很快地实现SoC的原型。本文的目的就是找出一种方法,用高级语言(如C语言)来描述SoC的原型,并实现在设计的原型 验证硬件上。 1 SoC原型的Handel-C描述及其实现流程1 SoC原型的Handel-C描述及其实现流程 Celoxica公司提出的软件编译

5、式系统设计(Software-Compiled System Design,SCSD)把软件设计技术引入硬件设计,直接用Handel-C语言描述硬件设计,大大改善了硬件设计效率。 SCSD的软件工具包括集成开 发环境(DK)、 平台开发工具(PDK)以及系统级硬件描述语言Handel-C等。DK可以编辑、模拟、调试并编译Handel-C源代码,生成 EDIF、Verilog或VHDL代码,并能够与ModelSim一起协同模拟Handel-C和Verilog设计2。PDK由数据流管理器(DSM)、平台抽象层(PAL)和平台支持库(PSL)三个层面构成3。 通过DSM,可以很方便地在软件和硬件之间

6、实现转移设计的功能,便于快速地划分设计,找到最优的划分方案;PAL提供与API方式访问原型电路板一致的硬 件资源,实现Handel-C设计的可移植性;PSL为DK和Handel-C设计提供与电路板、可编程器件或开发工具有关的支持,更接近驱动程序的概 念。 SCSD的整套软件工具能够把Handel-C描述的设计直接实现到FPGA上,因此非常适合SoC原型的描述及其实现。本文以SCSD为基础,提出了SoC/IP的原型验证流程,如图 1 所示。 图 1 SoC/IP 原型实现的基本流程及其 EDA 工具 在 SoC 原型验证中,不同的硬件模块用不同的方式实现。处理器用主机 CPU 或者原型硬件中的嵌

7、入式处理器实现;存储器用原型硬件中与 FPGA 直接相连的存储器排实现;Verilog描述的核心模块在 FPGA 中实现;各种外设模块用原型硬件中的外设资源实现;模块之间的互连实现在 FPGA 和原型 硬件的互连总线上。IP 原型验证需要确定它的外围逻辑环境、验证向量生成机制和验证结果分析检查策略。本文把 SoC 和 IP 验证中所有需要描述的模块及其互 连与原型硬件的映射关系以及原型验证的硬件支持统称为设计的验证环境。被验证的设计用 Verilog/VHDL 语言描述,验证环境用 Handel-C 语言 描述。 Handel-C 描述完成后,用模拟器 ModelSim 和 Handel-C

8、开发工具 DK 协同模拟、调试设计和验证环境,这样可用较少的验证 向量检查验证环境的正确性。模拟成功后,DK 把验证环境的 Handel-C 描述编译为 Verilog 描述。 然后调用综合工具(Synplify)对设计及 其验证环境的 Verilog 描述进行编译优化。 接着调用 Xilinx 的布局布线工具(ISE),把优化的 Verilog描述转换为原型系统硬件的配置数 据。 原型系统配置完毕后,就可以启动系统执行原型验证了。 如果模块设计的 RTL 优化已经完成,就无需调用 Synplify 进行优化,直接输入 ISE 即可。 在 SoC 软硬件协同验证中,首先通过 DK,协同模拟 C

9、/C+描述的软件、Handel-C 描述的验证环境和 Verilog 描述的模块;然 后把软件编译成 SoC 处理器的目标代码,让软件在原型系统中高速运行,执行验证。 主机 PC 上运行的诊断软件与 SoC 的软件模块的描述实现流程基本一致,只 是最终实现运行在主机的处理器上。 2 SoC 原型验证系统样机2 SoC 原型验证系统样机 本文利用可配置计算电路板 RC1000 和 SoC 设计展示评估平台 RC200 搭建了一个原型验证系统的样机,以充分体验 SCSD 的优缺点,为以后 SoC 原型验证系统的设计做一些基础性研究工作。 原型验证系统的样机由 PC 主机、RC1000 和 RC20

10、0 构成,如图 2 所示。在功能定位上,PC主机是主控子系统,RC1000 和 RC200 共同组成原型子系统。RC1000 插在 PC 主机的 PCI 插槽中。 RC200 和 PC 主机之间用并口总线连接。 RC1000 和 RC200 之间用自制的 34 位总 线连接。 图 2 RC1000 的功能框图 PC主机与原型子系统之间通信的方式有三种:单数位、字节和DMA。单数位方式使用GPI和GPO两根信号线进行一位的数据通信,可用来传递 一个状态。字节方式使用RC1000 控制/状态端口进行单字节数据传输,可用来传递控制命令或状态信息;两者采用握手协议,只有在操作完成之后才能返回。 前两种

11、方式一般用来对存储器所有权的交换进行同步,DMA方式一般用于大量数据的传输。首先主机以DMA方式在SRAM中写入数据;然后FPGA获得 SRAM所有权后,读取数据并进行处理,将结果写入SRAM;最后主机又以DMA方式取回结果。 RC1000 的FPGA外接四排SRAM,其中任何一排都可以赋给FPGA或者主机。 SRAM是主机和原型子系统交换数据的缓冲区。 把RC1000和RC200连接起来,共同构成原型子系统弥补了两者的缺点:首先,为RC1000提供多种接口标准支持,如音视频输入输出、 Internet和Bluetooth、触摸屏、串/并口等;其次,增强RC200 的调试诊断能力,运行过程中的

12、数据可以通过RC1000 传输到主机,因 此可以和模拟环境中一样观察分析信号;另外,还扩展了系统的逻辑容量:RC1000 的FPGA有 2.5M系统门,RC200 的FPGA有 1M系统门,所以 整个子系统的逻辑容量为 3.5M系统门,可以实现更大设计的原型验证。 并口总线是PC主机和RC200 之间唯一的通信渠道。PC主机只能通过并口总线下载RC200配置数据,或者读写RC200 上SmartMedia卡中内容。而RC1000 配置可通过PCI总线实现,有多种灵活的配置方式4。 RC1000 的可编程时钟可以提供 400kHz100MHz的时钟频率5。 它的输出时钟从“OUT“端口输出,经由

13、连接总线驱动RC200,实现RC1000 和RC200 的时钟同步。 3 Lena 图像处理 SoC 的原型验证3 Lena 图像处理 SoC 的原型验证 为了检验系统样机进行原型验证的有效性,试验了一个实例:Lena 图像处理 SoC 原型验证,如图 3 所示。主机处理器代表 SoC 处理器的原型;RC1000 实现图像扭曲算法,是专用图像处理模块;RC200 是显示驱动模块及显示装置。 图 3 SoC 原型示意图 Lena 图像数据以静态库文件的方式嵌入程序源代码。 主机程序启动后,首先对原型子系统进行配置,然后用 DMA 方式把图像数据送入 RC1000 的存储器中。 数据传输结束后,主

14、机用控制端口通知 RC1000 进行处理。RC1000 对 Lena 图像进行扭曲处理,处理完一帧后,用状态端口 通知主机取回结果,并在主机显示器上显示。主机拿到结果后,通知 RC1000 继续处理。如此反复。也就是说,主机以 DMA 方式传输一帧静态图像,然后再以 DMA 方式逐帧取回处理结果,在主机显示器上得到扭曲变幻的动态图像。 在 RC1000 对每帧图像的处理过程中,是以像素为单位把图像数据传递给 RC200 的。 像素数据的传送使用三条信号线,分别是 Data、 Write 和 RC200Rdy。Data 是 16 位的数据总线,用来发送像素数据。Write 是 RC1000 发送

15、数据的标志信号线。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 位的像素数据应加以

16、处理,把它扩展到 24 位。 动态 图像的显示借助 FrameBufferdb 实现,这是Celoxica 的视频显示核。它用两个存储器排作为视频缓冲器,交替接收数据和驱动显示。 4 实验结果及系统原型的性能分析4 实验结果及系统原型的性能分析 Lena 图像处理及其试验表明:SCSD 能够有效、快速地实现 SoC 的原型验证和 IP 的仿真验证。 但用于 SoC 原型验证,尚有不足之处。 首 先,它只支持设计的可配置逻辑实现,不支持诊断能力的实现;其次,它只能在单个 FPGA 上实现设计,不能把 Handel-C 设计划分在多个FPGA 上实 现。而这两点对于原型验证来说却非常重要。 诊断就是在原型运行过程中如何实现重要信号的收集和分析。 诊断涉及到监测点的指定及其实现,以及监测点数据的处理分析。在 Verilog 中 指定监测点相对简单,因为有现成的工具Synplicity 的 Identify。在 Handel-C 中还没有现成办法指定监测点,其指定和实现机制需要 进一步的研究。 可行的办法就是,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号