在SoPC上实现的波形产生器
发布日期:2011-04-20
择要:可编程片上体系(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(Onchip 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,并为各个实例定义地点范畴以及输出端口和时钟,颠末综合及布线后形成硬件配置文件。软件计划与传统的嵌入式软件开辟计划雷同,是在硬件计划的底子上根据处理惩罚器所支持的指令集以及编译环境编写步伐代码,然后对代码编译烧写及调试。
图1EDK体系开辟流程图
该计划通过FPGA实现全部数字部分。体系的表示图如图2所示。
图2体系表示图
图3FPGA内部的硬件体系
图4MicroBlaze处理惩罚器架构图
在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(Onchip Peripheral Bus)片上外设总线连接到处理惩罚器上的。步伐存储器RAM则是由FPGA内部的BRAM实现,并通过LMB(Local Memory Bus)本地存储器总线与MicroBlaze相连接。自主编写的IP与总线间的接口切合CoreConnect范例,实现了IP间的无缝连合,方便了数据的读写及时序控制。图3给出了在FPGA内部由种种IP组合成的可编程硬件体系。
硬件体系所包括的器件如图3右部分所示。Microblaze_0是该体系的CPU,此中的debug_module为调试模块,dlmb_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软核处理惩罚器
MicroBlaze是Xilinx提供的32位微处理惩罚器IP核,是哈佛布局的RISC微处理惩罚器,有较高的性能。它可以在性价比很高的SpartanIII系列FPGA上实现。EDK为其提供了MBGCC,支持C及C++语言。 MicroBlaze架构如图4所示。
该处理惩罚器含有32个32位的通用寄存器,2个专用寄存器,独立的32位数据和指令总线,并与IBM的OPB总线完全兼容,具有32位的指令宽度支持三个操纵数和两种寻址模式,以及可选的硬件乘除法及浮点运算单位。
2.2 DDS IP的实现
数字直接频率合成技能(Direct Digital Frequency Synthesis,简称DDS或DDFS)的基源头根本理是利用采样定理,通过查表法孕育产生波形,其根本电路原理如图5所示。
DDS的频率及步进容易控制,且合成的频率取决于累加器及查找表的速率,采取FPGA可以很好的发挥这项上风,得到风雅的步进及宽带带。利用HDL硬件形貌语言,可以很方便的形貌出DDS的FPGA硬件实例。在根本的DDS模块上,添加相应的控制寄存器,通过向差别的寄存器内写入相应的控制字,实现频率以及幅度的可控性。末了通过IBM CoreConnect技能,在DDS模块表面添加总线接口,作为自定义IP,告成地将其挂载到体系总线上,便可以方便的对其举行读写操纵,实现DDS模块与MicroBlaze的通讯。图6是从用户逻辑到成为切合IBM CoreConnect技能范例的DDS IP的实现进程。
DDS的VHDL代码作为子模块与opb_core_ssp0_ref.vhd模块共同构成opb_DDS IP Core,此中ipif(IP InterFace )切合IBM CoreConnect范例,认真DDS逻辑与OPB总线之间的通讯。在EDK中,通过Create/Import IP东西把opb_DDS添加到体系中,并为其分派地点,创建端口连接,之后就可以利用该IP了。DDS IP共同控制步伐可孕育产生种种波形,并对频率、幅度举行正确的控制。
2.3 别的部分
体系所必要的LCD表现、DAC控制等模块,均通过与天生DDS IP雷同的方法,编写为切合IBM CoreConnect总线范例的IP,以供利用。
在硬件体系构建完毕之后,利用Platgen东西天生网表文件和Bitgen东西天生相应的硬件配置文件。若将工程导入到ISE软件中,可以举行优化设置,还可以将工程导入到其他的综合东西如Synplify Pro举行实现。IP核的编写是在ISE中完成的。无论对付整个体系还是一个单独的IP,都可以利用Modelsim东西举行举动及时序仿真。末了,为此体系形貌XBD(Xilinx Board Description)板级形貌文件,通过此文件,EDK可以通过BSB(Base System Builder)模式主动天生根本的硬件体系,并对所添加的端口举行束缚,如许可以实现资源的承继性利用。
图5DDS原理硬件实现图
图6DDS IP的实现方法表示图
3 软件体系的实现
EDK提供了免费的GNU C Compiler,可以支持标准C。同时,EDK为多种IP以API的情势提供了驱动函数,有利于步伐的开辟。XPS所集成的软件工程办理东西容许在一个硬件平台上同时开辟多个软件工程。完成软件代码的编写后,利用EDK集成的XMD和GDB调试器对代码举行仿真和调试,也可以共同ChipScope(片内逻辑阐发仪)举行硬件及软件的协同调试。XMD通过MDM模块和JTAG口连接目标板上的CPU,GDB可以对步伐举行单步调试或断点设置。针对本计划及应用,编写了体系控制及液晶表现步伐。步伐编译后天生为elf文件,通过Update bitstream东西把步伐同硬件配置文件合成为Download.bit文件,把此文件下载到目标板后,FPGA起首根据硬件配置信息创建硬件体系,并把步伐代码映射到片内BRAM中,末了启动MicroBlaze,运行步伐。
4 总结
本体系基于FPGA,以MicroBlaze为内核,参加具有精良特性的DDS IP,并辅以须要的外围电路,构成了高度集成化的体系。别的,SoPC体系的柔性配置,使得可以基于此体系扩展片外存储器,并可以实现RTOS操纵体系的移植,以实现更丰富的成果和完成更巨大的任务。