以处理器为中心的开发流程
Zynq-7000 EPP 依赖于一种常见的工具流,嵌入式软件和硬件工程师可利用这一工具流来执行开发、调试和实施任务。其方法与现在非常相似,即采用通过 Xilinx® ISE® 设计套装和第三方工具提供的常见嵌入式设计方法(图 2)。Getman 注意到,软件应用工程师能使用与在之前的设计中采用的相同开发工具。赛灵思为嵌入式软件应用项目提供了软件开发工具包(SDK,一种基于 Eclipse 的工具套装)。工程师还可以使用第三方开发环境,例如 ARM Development Studio 5 (DS-5™)、ARM RealView Development Suite (RVDS™) 或任何其它来自 ARM 体系的开发工具。
Linux 应用开发人员可以充分利用 Zynq-7000 器件中的两个 Cortex-A9 CPU 内核,在对称多处理器模式下实现最高的性能。此外,他们还可以在单处理器或对称多处理器模式下运行的 Linux 系统(一种实时操作系统 (RTOS),包括 VxWorks 等)中设置 CPU 内核,也可以在二者中同时设置。为了支持快速开始软件开发,赛灵思为客户提供了开源的 Linux 驱动程序和裸机驱动程序,适用于所有外围处理设备(USB、以太网、SDIO、UART、CAN、SPI、I2C 和 GPIO)。赛灵思和 ARM 合作伙伴生态系统还提供了全面支持的 OS/RTOS 板卡支持套件,以及中间件和应用软件。
与此同时,ISE 设计套装中的硬件设计流程与嵌入式处理器设计流程相似,并为可扩展处理平台增加了一些新步骤。处理子系统是一个拥有整套通用外围设备的完整的双核系统。硬件设计师可以通过在可编程逻辑中为处理子系统连接更多软 IP 外围设备,来扩展其处理能力。硬件开发工具 Xilinx Platform Studio 实现了许多常用硬件开发步骤的自动化,还能协助设计师优化器件引脚。Getman 介绍说:“我们还为 ISE 增加了一些对硬件断点和交叉触发进行共同调试的功能。对我们来说,最重要的是要为软件开发人员和硬件设计师们提供舒适的开发环境。”
一种妥善的编程方法
在赛灵思的产品中,用户可以配置可编程逻辑,并通过 AXI “互连”模块将其连接到 ARM 内核,以扩展处理器系统的性能和功能范围。赛灵思和 ARM 合作伙伴生态系统提供了大量的软 AMBA 接口 IP 内核,供设计人员在 FPGA 可编程逻辑中使用。设计人员可以用它们来构建其目标应用所需的任何自定义功能。器件使用的是与 7 系列 FPGA 相同的常见可编程逻辑结构,所以设计人员可以加载一个或者多个配置文件,甚至采用部分可重配置技术,来支持器件按需即时对可编程逻辑功能进行重新编程。
器件两部分之间的互连操作对于设计人员在很大程度上是透明的。
图 2 - Zynq-7000 EPP 采用的是一种常见工具流,供系统架构师、软件开发人员和硬件设计师等人员使用。
工具开发流程
主、从器件之间的相互访问是根据为每个从器件分配的地址范围,通过 AXI 互连来路由的。多个主器件可以同时访问多个副器件,并且每个 AXI 互连使用一个两级 (two-level) 仲裁机制解决争用问题。