基于高性能DSP从接口HPI硬件仿真平台系统的设计与实现

来源 :电脑迷 | 被引量 : 0次 | 上传用户:zxqminibear
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 随着半导体制造技术的不断发展,相应的设计规模和复杂度飞速增长,传统的软件仿真工具已难以完全解决功能验证的问题。而且一些需要处理大量实时数据的应用(视频)也越来越多,因此我们要求能够在接近实时的条件下进行功能验证。基于仿真平台的测试已成为DSP设计流程中重要一个环节。基于仿真平台的测试可以用来改进RTL级设计代码,验证功能的正确和完整性,大大提高DSP的流片成功率。
  关键词 DSP HPI 硬件仿真
  中图分类号:TP3 文献标识码:A
  1平台结构
  整个平台按照PC-USB-FPGA-HPI的结构搭建,如图1,通过HPI接口与DSP进行通信。平台主要的器件有:Xilinx的Spartan 3S1200E FPGA、Xilinx的Platform Flash PROM XCF04s、Cypress公司FX2系列产品CY7C68013。
   图1 HPI仿真平台系统框架图
  PC机下发的请求通过USB控制器的GPIF产生访问波形,可以称为USB接口协议,USB接口协议完全由USB控制器处理。FPGA主要起到接口转换的作用,实现16位数据与32位数据之间的转化,工作时钟输入由CY7C68013提供。由于FPGA属于掉电易失性器件,每次断电重启后必须重新加载硬件代码才可正常工作,因此又为其配置了PROM器件(Xilinx XCF04S),FPGA从PROM中自动导入预先下载的设计文件即可正常工作,可以大大减少下载次数提高工作效率。仿真器硬件构架图如图2所示。
  
   图2 HPI仿真器硬件构架图
  在为HPI的仿真平台准备好所有的硬件资源之后,接下来的主要工作就是对协议转变器(FPGA)与仿真协同软件进行设计,并最终实现协同的仿真功能。图3体现的是仿真平台的软硬件构建。
  
   图3 仿真平台的软硬件构建
  2 FPGA协议转变器
  协议转变器在整个仿真平台中可以简单的看做是一个连接两个主要接口的中间地带,其主要的控制通路与数据通路方向如图4所示。
   图4 控制通路与数据通路主体构图
  PC机与协议转变器(FPGA)的连接实际指的是USB接口芯片FX2的GPIF接口与FPGA之间的连接,其中16位双向数据总线FD到协议变换器内部,经过FPGA的IOBUF的端口处理,拆分成两个单向信号FD_out(输出信号)与FD_in(输入信号)。RDY0的信号值由协议转变器中产生。具体的信号连接如图5所示。
  在设计中,FPGA一共被分为4个单元,如图6协议转变器FPGA框架图所示。其中译码单元(PC_Decoder)单元对PC机的操作要求进行译码,主要包括区分单字访问、自增访问,确定访问的对象、确定读/写操作以及对FX2的控制输入信号的采样。数据拆分和拼接单元(PC_Single)主要针对输入和输出的16位与32位的接口差异进行数据的拆分和拼接。批量数据处理单元(PC_Bulk_Data)设计有3个单元,及HPIC_access、HPIA_access、HPID_access。PC机的指令经过译码单元译码后,对HPIC_access、HPIA_access、HPID_access进行访问操作。RAM单元用来暂存发往DSP和返回上位机的数据。
  
   图5 PC机与FPGA的接口连接
   图6 协议转变器FPGA框架图
  3 协同软件
  在本设计中,协同软件主要包括固件设计、驱动程序设计和主机端口应用程序设计。如图2仿真平台的软硬件构建所示。
  (1)固件设计
  CYPRESS公司的EZ-USB FX2开发套件提供给用户一个固件函数库(Ezusb.lib)和固件框架(Frame work),两者均是基于KEIL C51开发的。固件函数库提供了一系列的函数来加速USB 固件程序的开发,使用时只需在程序中包含fx2.h 和fx2regs.h 两个头文件,并在项目中链接Ezusb.lib 就可以直接使用固件库中的各个函数了。在使用固件框架来进行特定的固件开发时,固件框架已经实现了初始化、重枚举、电源管理等功能。对我们而言,只需要在固件架构的预留位置处添加代码,就可以完成特定的功能。
  GPIF能够装载4个控制波形,分别是单个数据读、单个数据写、连续数据读、连续数据写。“读”是指FX2从外部接口读入数据,“写”是指FX2向外部接口写出数据。所谓“连续数据读写”是指读入的数据存放在FX2的内部FIFO,或者写出的数据来自FX2的内部FIFO。图7为GPIF批量写波形。
   图7 GPIF批量写波形图
  (2)驱动程序设计
  驱动程序是指一系列硬件设备的函数,它为连接到计算机的硬件提供了软件接口。用户应用程序可以通过驱动程序接口访问各种硬件,而不必考虑如何具体实现不同硬件的控制。Cypress公司的开发套件提供给用户一个通用USB驱动,在该设计中,不需要对程序加以修改,经过DDK编译后直接使用。
  (3)主机端口应用程序设计
  为有效完成HPI口的相关操作,我们一共设置了9个设备请求:
  HPIC_WRITE:写HPIC寄存器;
  HPIC_READ:读HPIC寄存器;
  HPIA_WRITE:写HPIA寄存器;
  HPIA_READ:读HPIA寄存器;
  HPID_WRITE:写HPID寄存器;
  HPID_READ:读HPID寄存器;
  HPID_ADDR_ADD_WRITE:地址自增写HPID寄存器;
  HPID_ADDR_ADD__READ:地址自增读HPID寄存器;
  RESET_DSP:DSP复位。
  以上几个设备请求均是通过控制传输实现的,另外,为实现大规模数据传输,我们采用批量传输的方式定义了两个函数:
  ①WriteBULKDataToDSPRAM( );
  ②ReadBULKDataFromDSPRAM( );
  参考文献
  [1] 杜慧敏,李宥谋,赵全良.基于Verilog的FPGA设计基础[J].西安:西安电子科技大学出版社,2006.
  [2] Prakash Rashinkar, Peter Paterson,Leena Singh著,孙海平,丁健 译.系统芯片(SOC)验证方法与技术[M].电子工业出版社,2005.1.
  [3] 高阁.高性能定点DSP(XDSP)UTOPIA接口的研究与设计[D].湖南:国防科技大学,2010.
其他文献
《梅花喜神谱》现存最早的版本是上海博物馆藏有南宋景定二年双桂堂刊语的孤本。进入清代以後,该本派生出了至少七种翻刻本和抄本,又在民国和现代以影印本的形式广泛地流布海
随着计算机网络的不断应用,在其软件的编程中,对于C语言的编程中,有助于计算机软件的更新,并且能够加快计算机在各行各业的使用范围,因此在本文对C语言进行研究,分别从编程的
摘 要 随着计算机技术的快速发展,编程技术在软件开发过程中演绎着举足轻重的角色,其作用直接决定着软件质量水准的高低,传统的单语言编程已经无法满足日新月异的软件开发需求,因此,将多种编程语言融合到一起,取长补短,是今后软件开发的趋势和方向。本文简要介绍了多语言编程技术,并具体分析了VB(Visual Basic)和VC(Visual C++)混合编程在软件开发中的应用。  关键词 多语言编程 软件开
在太阳能热发电站中,选择Al-12.07%Si作为储能材料,310S不锈钢作为储能容器,并将310S不锈钢沉浸在Al-12.07%Si中进行长达1080 h的腐蚀。通过SEM、EDAX、XRD方法分别对腐蚀后
期刊
编辑你好!纳米材料和纳米技术是目前材料科学领域的热点,我想请问纳米的概念,纳米技术的特点以及主要应用.
期刊
打印机卡纸是电脑用户经常会碰到的打印故障,当打印卡纸后,只要采取恰当的方法即可取出被卡纸张,然后继续印工作。一般来说,打印机会在打印机的内部、出纸器的地和纸盒进纸的
对热型连铸制备的柱状晶CuAlBe超弹性合金丝做等温变形试验,研究柱状晶在变形过程中组织和性能的变化。等温温度从400℃到600℃,变形量从25%到62.5%。结果表明,变形温度为450