在SOPC上实现的波形发生器(RS232)

工具包下的设计与实现。本设计采用嵌入式软处理器核microblaze以及自主编写的包括实现dds在内的多种ip core,最大限度地实现系统的集成化。
引 言

sopc可编程片上系统是一种特殊的嵌入式微处理器系统。首先,它是片上系统(soc),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,以fpga为硬件基础,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件系统在线可编程的功能。

ip(intellectual property)知识产权是soc设计中非常重要的内容。资源复用(ip reuse)是指在集成电路设计过程中,通过继承、共享或购买所需的部分或全部知识产权内核(ip core)进行设计、综合和验证,从而加速流片设计过程的设计方法。ip技术包含两个方面的内容:ip核的生成和ip核的重用。本设计中采用vhdl语言,构建一个功能强大的完整dds模块,并根据ibm corecon-nect总线连接规范,在dds模块外面添加opb(on-chipperipheral bus)片上外设总线接口,封装为自定义ip,添加到硬件系统中。

对于本设计来说,利用sopc和ip的优势是可以利用最少的元器件,创建一个易配置、易扩展、易修改并且易于继承使用的集成系统。该系统的创建是基于xilinx公司提供的嵌入式开发工具包edk(embedded developmentkit)来实现的。edk自带了microblaze软核和powerpc硬核微处理器及大量免费ip,有利于构建简易系统。针对microblaze及powerpc提供的c语言编译器,可使系统的功能实现更加简易。对基于microblaze的系统,mi-croblaze通过opb总线与外设ip及外部存储器控制接口相连接,通过lmb(local memory bus)总线与fpga片上块存储器bram(block ram)相连接,还可以通过emc(external memory control)等存储器控制ip扩展片外ram或rom。
1 系统的架构

本设计采用sopc可编程片上系统的思想,利用xil-inx的spartan3系列xc3s400 fpga,通过edk开发工具包的集成开发环境xps(xilinx platform studio)完成了fpga硬件系统设计及基于此硬件系统的软件开发。图1是基于edk的系统开发设计流程图,设计分为硬件设计和软件设计两部分。硬件设计符合基于hdl硬件描述语言的eda开发流程,是根据硬件系统合理使用总线ip和外设ip,并为各个实例定义地址范围以及输出端口和时钟,经过综合及布线后形成硬件配置文件。软件设计与传统的嵌入式软件开发设计类似,是在硬件设计的基础上根据处理器所支持的指令集以及编译环境编写程序代码,然后对代码编译烧写及调试。

该设计通过fpga实现所有数字部分。系统的示意图如图2所示。

在fpga内部,以microblaze为控制核心,以ddsip为波形发生功能实现核心,同时加入了其他的ip核,诸如调试用的 mdm(microprocessor

debug module),用于与pc进行通信的uart(universal asynchronousreceiver&transmitter)通用异步传输模块,以及lcd显示和4×4按键控制模块,实现了系统的高度集成。fpga硬件系统为数字系统产生数字量,外围电路加上高速数模转换器件dac902,把波形数据转换为模拟波形,即实现了完整的可编程片上系统的波形发生器。

2 硬件系统的具体实现

本设计以32位microblaze软核处理器为系统的核心部分,负责指令的执行。各种ip包括自主编写的以及edk自带的,使用xps下的add/edit cores工具,通过相应类型的总线连接到microblaze上。其中uart、lcd、gpio和自主编写的dds的ip都是通过opb(on-chipperipheral bus)片上外设总线连接到处理器上的。程序存储器ram则是由fpga内部的bram实现,并通过lmb(local memory bus)本地存储器总线与microblaze相连接。自主编写的ip与总线间的接口符合coreconnect规范,实现了ip间的无缝结合,方便了数据的读写及时序控制。图3给出了在fpga内部由各种ip组合成的可编程硬件系统。

硬件系统所包含的器件如图3右部分所示。microb-laze_0是该系统的cpu,其中的debug—module为调试模块,dimb_cntlr和ilmb_cntlr为片上bram控制器。lmb_bram为片上bram,它通过lmb总线与bram控制器相连,接受cpu的读写访问。ddfs是为实现dds编写的ip模块。rs232为uart模块,用于与其他设备的通信以及程序调试。lcd ip负责128×64点阵液晶的显示控制。col和row是例化后的gpio接口,用于连接4×4键盘。

2.1 microblaze软核处理器

mieroblaze是xilinx提供的32位微处理器ip核,是哈佛结构的risc微处理器,有较高的性能。它可以在性价比很高的spartaniii系列fpga上实现。edk为其提供了mb-gcc,支持c及c++语言。microblaze架构如图4所示。

该处理器含有32个32位的通用寄存器,2个专用寄存器,独立的32位数据和指令总线,并与ibm的opb总线完全兼容,具有32位的指令宽度支持三个操作数和两种寻址模式,以及可选的硬件乘除法及浮点运算单元。

2.2 dds ip的实现

  • 在SOPC上实现的波形发生器(RS232)已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计