目的是利用嵌入在Xilinx FPGA中的MicroBlaze核实现基于AXI总线的双核嵌入式系统设计以及共享实现LED灯的时控。对于共享实现LED灯时控的方法是通过在两个低速总线之间加入一个axi2axi_connector实现axilite总线上的slave共享。对于实现双核之间的通信主要方法是利用mailbox和mutex完成核间通信。硬件平台采用的是Xilinx FPGA Spartan -6 Atlys板,软件平台是Xilinx EDK,主要使用的是XPS(硬件设计)和SDK(软件设计),开发出了运行在FPGA上的基于MicroBlaze双核的嵌入式系统,得出了核间通信的可行性以及共享slave实现LED灯时控的实用性。
前言
当前Xilinx新版本ISE系列产品基于AXI总线的趋势越来越明显,AXI总线是ARM高级微控制器总线结构的一部分,拥有高产率、高灵活、广泛IP可用性等优势。MicroBlaze多核处理器可以实现彼此之间快速通讯以及并行处理计算等,可以提高处理问题的速度,具有良好的可行性和实用性,而两者的结合是当前开发的新发展,通过Xilinx ISE系列软件可以很方便地进行硬件设计(XPS中)以及相应的软件(SDK中)设计。FPGA设计相比ARM设计也存在优势,不是固定的芯片实现,也是可以通过用户自定义IP核,可以嵌入所希望的系统来实现相应的功能[1]。因此,选择设计基于AXI总线的MicroBlaze双核嵌入式系统是当前的开发趋势,同时Xilinx的Atlys板为实验的可行性提供了硬件平台。
硬件设计方案
本文将会简要介绍基于AXI总线的MicroBlaze双核嵌入式系统设计[2~3],并分别对两个核进行LED灯时控的操作,即进行软件设计,检验硬件设计的实用性。如图1 是实现上述功能的系统总体硬件结构设计简图。
下面简要对功能模块进行解释和介绍:本系统中,使用的是Xilinx产品Spartan-6系列的Atlys硬件电路板实现硬件设计的嵌入。硬件设计中,通过axi2axi_connector实现axilite总线上的slave共享,可以简化设计,同时两个MicroBlaze核可以平等地享有slave,实现相应的软件设计,两个MicroBlaze核之间协同处理工作,使用AXI总线互连,可以利用mailbox和mutex实现核间通信,使用共享内存bram_block减少核间通信负担,本系统可以实现两个MicroBlaze核共享使用RS232_Uart输出信息,通过axi_ intc和axi_timer对自定义的led_ip核进行控制,软件设计完成后,可以使用XPS中的XMD对两个核进行操作,实现软件设计结果的验证。