Board logo

标题: 在SoPC上实现的波形发生器 [打印本页]

作者: 520503    时间: 2014-4-14 15:39     标题: 在SoPC上实现的波形发生器

关键字:IP   SOC   波形发生器  
       引 言

       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,并为各个实例定义地址范围以及输出端口和时钟,经过综合及布线后形成硬件配置文件。软件设计与传统的嵌入式软件开发设计类似,是在硬件设计的基础上根据处理器所支持的指令集以及编译环境编写程序代码,然后对代码编译烧写及调试。该设计通过FPGA实现所有数字部分。系统的示意图如图2所示。




       在FPGA内部,以MicroBlaze为控制核心,以DDS IP为波形发生功能实现核心,同时加入了其他的IP核,诸如调试用的MDM(Microprocessor Debug Module),用于与PC进行通信的UART(Universal Asynchronous Receiver & Transmitter)通用异步传输模块,以及LCD显示和4×4按键控制模块,实现了系统的高度集成。FPGA硬件系统为数字系统产生数字量,外围电路加上高速数模转换器件DAC902,把波形数据转换为模拟波形,即实现了完整的可编程片上系统的波形发生器

       2 硬件系统的具体实现

       本设计以32位MicroBlaze软核处理器为系统的核心部分,负责指令的执行。各种IP包括自主编写的以及EDK自带的,使用XPS下的ADD/Edit Cores工具,通过相应类型的总线连接到MicroBlaze上。其中UART、LCD、GPIO和自主编写的DDS的IP都是通过OPB(Onchip Peripheral Bus)片上外设总线连接到处理器上的。程序存储器RAM则是由FPGA内部的BRAM实现,并通过LMB(Local Memory Bus)本地存储器总线与MicroBlaze相连接。自主编写的IP与总线间的接口符合CoreConnect规范,实现了IP间的无缝结合,方便了数据的读写及时序控制。图3给出了在FPGA内部由各种IP组合成的可编程硬件系统。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0