在SoPC上实现的波形发生器
摘要:可编程片上系统(SoPC)设计是一个崭新的、富有生机的嵌入式系统设计方向。嵌入式集成化设计已成为电子领域发展的一个重要方向。Xilinx提供的EDK正是用于创建基于FPGA的嵌入式系统的开发工具包。本文介绍基于SoPC的波形发生器在EDK工具包下的设计与实现。本设计采用嵌入式软处理器核 MicroBlaze以及自主编写的包括实现DDS在内的多种IP Core,最大限度地实现系统的集成化。
关键词:SoPC IPCore EDK MicroBlaze DDS 波形发生器
引 言
SoPC可编程片上系统是一种特殊的嵌入式微处理器系统。首先,它是片上系统(SoC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,以FPGA为硬件基础,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件系统在线可编程的功能。
IP(Intellectual Property)知识产权是SoC设计中非常重要的内容。资源复用(IP Reuse)是指在集成电路设计过程中,通过继承、共享或购买所需的部分或全部知识产权内核(IP Core)进行设计、综合和验证,从而加速流片设计过程的设计方法。IP技术包含两个方面的内容:IP核的生成和IP核的重用。本设计中采用VHDL语言,构建一个功能强大的完整DDS模块,并根据IBM CoreConnect总线连接规范,在DDS模块外面添加OPB(On?chip Peripheral Bus)片上外设总线接口,封装为自定义IP,添加到硬件系统中。
对于本设计来说,利用SoPC和IP的优势是可以利用最少的元器件,创建一个易配置、易扩展、易修改并且易于继承使用的集成系统。该系统的创建是基于Xilinx公司提供的嵌入式开发工具包EDK(Embedded Development Kit)来实现的。EDK自带了MicroBlaze软核和PowerPC硬核微处理器及大量免费IP,有利于构建简易系统。针对MicroBlaze及PowerPC提供的C语言编译器,可使系统的功能实现更加简易。对基于MicroBlaze的系统,MicroBlaze通过OPB总线与外设IP及外部存储器控制接口相连接,通过LMB(Local Memory Bus)总线与FPGA片上块存储器BRAM(Block RAM)相连接,还可以通过EMC(External Memory Control)等存储器控制IP扩展片外RAM或ROM。
1 系统的架构
本设计采用SoPC可编程片上系统的思想,利用Xilinx的Spartan3系列XC3S400 FPGA,通过EDK开发工具包的集成开发环境XPS(Xilinx Platform Studio)完成了FPGA硬件系统设计及基于此硬件系统的软件开发。图1是基于EDK的系统开发设计流程图,设计分为硬件设计和软件设计两部分。硬件设计符合基于HDL硬件描述语言的EDA开发流程,是根据硬件系统合理使用总线IP和外设IP,并为各个实例定义地址范围以及输出端口和时钟,经过综合及布线后形成硬件配置文件。软件设计与传统的嵌入式软件开发设计类似,是在硬件设计的基础上根据处理器所支持的指令集以及编译环境编写程序代码,然后对代码编译烧写及调试。
0