paradoxfx

使用处理器系统设计嵌入式系统(1)开始设计

0
阅读(3448)

ZedBoard板子上所载的XC7Z020虽然名字里面有“7”,但是在Xilinx的分类下已经不属于7系列的FPGA,而是归为单独的系列“ZYNQ-7000”,器件的分类也不是单纯的FPGA,而是SOC了;这其中最显著的区别是ZYNQ含有双核的ARM Cortex™-A9 MPCore,它的设计重点不是围绕可编程逻辑资源(PL)展开,而是围绕处理器核心(PS)进行设计。PS与PL设计的一些基本区别是:

(1)          PS可以独立于PL运行,但是PS与外部资源的接口、PS的一些外设仍然需要使用到PL进行部分编程。

(2)          原有的IP核可以在PL中实现后,连接到PS作为它的扩展资源(个人理解像一个外设一样)。

(3)          PL中的逻辑显然可以独立于PS运行。在原有可以用JTAG配置PL的情况下,ZYNQ多出一种选择:用PS配置PL。

按照最开始的思路,本来想用Vivado HLS做一下电机控制上面一些C语言算法的直接综合实现的,但是看起来Vivado HLS的语法与原来的C程序有一些细微差别,所以完全调试好还需要一定的时间。于是先做一下简单的,基于PS核心做一下嵌入式系统的实现。考虑到新版本软件对ZedBoard上芯片的支持更好,并且排除已知bug的影响,使用了最新的ISE14.3+Vivado(包括HLS)14.3,以及Matlab2012b软件(均为64位版本)。最早的想法是看看Matlab中SystemGenerator对ZYNQ上的PS资源是否有新的支持,很遗憾的是目前SystemGenerator中仍然还没有出现专门的ZYNQ Arm内核的支持资源,所以这类测试只能等到测评最后有时间的话再实现了。

首先概括一下使用ZedBoard上的ZYNQ的PS资源进行设计的基本步骤,与原来基于MicroBlaze软核的设计其流程基本一致,只不过是PlanAhead的比重增加了不少:

1.       启动PlanAhead,添加ARM Cortex™-A9 PS资源,则XPS会自动启动。

2.       在XPS中,选择ZedBoard,添加嵌入式资源,其次配置PS,然后添加IP,然后手动退出XPS并返回PlanAhead。

3.       在PlanAhead中添加顶层模块、.ucf文件(特别是针对ZedBoard板子上资源的管脚配置);编译生成.bit文件并导入SDK。

4.       在SDK中配置前面定制的硬件资源,然后建立工程并编程.elf文件。

5.       把.bit和.elf文件编程到ZedBoard中。

6.       使用ChipScope Pro进行调试。

接下来将一步一步操作并说明,以便大家看的清楚。