上一次使用system generator体验了自动生成代码技术的简洁、方便。在学习了一段时间EDK/SOPC技术之后,本次博文主要探讨基于Xilinx SOPC技术对FPGA控制算法进行实现。基于FPGA的可配置嵌入式系统开发技术以及相应的片上可编程系统(SOPC)解决方案,融入了微处理器技术、数字信号处理技术、可编程系统级芯片以及软硬件协同设计技术,提供了一种新的系统级设计方法。以下是我总结的一个基于SOPC开发的总体框架,希望可以起到抛砖引玉的作用:-)
1. SOPC解决方案
Xilinx公司的SOPC解决方案以3类RISC结构的处理器为核心,涵盖了系统硬件设计和软件设计的各个方面,分别为PicoBlaze、MicroBlaze和PowerPC,其中PicoBlaze和MicroBlaze是可剪裁的软核处理器,PowerPC为硬核处理器。PicoBlaze的处理功能不强,主要适应于低端控制领域,而PowerPC是一款硬核处理器,且只集成在高端FPGA芯片内部,开发成本较高。MicroBlaze软核是一种针对于Xilinx FPGA器件而优化的一种功能强大的32位嵌入式处理器,是业界最快的IP核解决方案,支持CoreConnect总线的标准外设集合,具有兼容性和重复利用性。其主要特点如下:
[1]. 32位的采用RISC构架的CPU,可以运行操作系统,如ucLinux等;
[2]. 32个32位的通用寄存器;
[3]. 采用哈佛结构,内部有32位的指令和数据总线;
[4]. 可以配置高速缓存、浮点运算等单元;
[5]. 占用的逻辑资源少,处理速度高。
MicroBlaze结构最显著的特点是基于CoreConect构建。CoreConect技术是由IBM公司开发的片上总线通信链,通过多个IP核相连,构成一个完整的SOPC嵌入式系统。本文使用Spartan3/3E系列的芯片,所以选用了MicroBlaze处理器来实现相关算法。
2. SOPC设计流程
一个完整的SOPC系统设计主要包括硬件设计与调试,软件设计与调试,以及仿真等步骤,各个步骤相辅相成,主要包括:
[1]. 创建硬件平台:利用XPS快速构建系统的硬件平台,包括选择处理器的类型,程序存储空间的大小等,这是设计的第一步;
[2]. 定制IP核:用户自主设计系统需要的专用外设;
[3]. 设置工程属性:设置不同硬件模块直接的连接关系,以及外部端口的特性;
[4]. 生成仿真文件并测试硬件系统;
[5]. 生成硬件比特流;
[6]. 下载硬件比特流文件;
[7]. 使用ChipScope对FPGA的内部逻辑进行调试;
[8]. 开发系统软件:包括选择软件操作系统,编写应用软件,最后生成.elf格式的可执行代码;
[9]. 采用XMD调试应用软件:利用XMD工具,通过JTAG编程电缆在线调试系统的应用软件,并重新生成.elf格式的可执行代码。
[10]. 合并软硬件比特流并下载:硬件生成的硬件比特流以及软件生成的可执行代码进行合并,生成最终的二进制比特流文件,并下载到芯片内执行。 |