首页 > 技术 > 内容

基于Zynq SoC架构在器件的可编程逻辑内构建外设来加快处理速度

时间:2025-12-07  作者:Diven  阅读:0

Zynq SoC架构的主要优势就是能够通过在器件的可编程逻辑内构建外设来加快处理速度。

这是Adam Taylor 计划编写的Zynq-7000 All ProgRAMmable SoC实际操作教程系列的第三部分。前两部分教程分别刊登在《赛灵思中国通讯》第47期和48期。Adam 经常为《赛灵思中国通讯》撰稿,同时还为All ProgRAMmable 星球社区撰写博客 ( )。

赛灵思 Zynq™- 7000 All Programmable SoC真正的重要优势就是能够通过在可编程逻辑(PL)侧构建外设来提高器件处理系统(PS)侧的性能。最初您可能会认为这将是一项比较复杂的工作,但是,创建自己的外设其实很简单。

如果您试图提高PS的性能或者使用PS来控制PL侧的设计行为,那么在PL内添加外设会起到很大的帮助。例如,PS可能会使用一系列存储器映射寄存器来控制PL内的设计运行或选项。

我们选择简单模块作为设计实例,该模块用于打开和关闭ZedBoard上的存储器映射LED。我们将使用赛灵思PlanAhead™、XPS和软件开发套件(SDK)工具分三步来创建该模块。

1. 在嵌入式开发套件(EDK)环境中创建模块。

2. 为模块编写VHDL程序并构建系统。

3. 编写使用最新定制模块的软件。

在EDK中创建模块

要创建自己的外设,首先需要从包含Zynq SoC设计的PlanAhead项目中打开Xilinx Platform Studio (XPS) ,并选择菜单选项中的“hardware-》create or import peripheral” 。

对我们的实例模块而言,ZedBoard上的7个LED应展示出walking display的效果,除了最重要的那个LED必须在软件应用控制下点亮以外,其都可以依次相继点亮。尽管这并不是最棒的定制模块应用,但对于流程演示 而言是非常有用且简单的实例。一旦掌握了这个流程,您将掌握实现更复杂模块所需的全部知识。

创建外设时只需相继打开10个简单窗口并选择所需的选项。

前两个截屏(如图1所示)询问是否需要创建外设或导入现有的外设,如果是,需要将其关联到哪个项目。下一步,您可在第三个截屏中对模块进行命名并高效地定义版本和修订版本。(注意:可利用外设流程底部的选项通过回读*.cip文件来重新定制已创建的模块。)

选定模块名称后,接下来要选择所需AXI总线类型,如图2所示。我们的实例设计需要的是简单的存储器映射控制寄存器型接口,因此我们选择了最上面的AXI4-Lite选项。(如需了解有关不同AXI总线类型的更多信息,敬请访问: mentation/white_papers/wp379_AXI 4_Plug_and_Play_IP.pdf )。在这个步骤中将创建众多简单寄存器。我们可利用处理系统通过AXI总线对寄存器进行读/写操作。

这些寄存器位于Zynq SoC上的可编程逻辑架构中,因此也能通过用于创建外设功能的用户逻辑应用来访问。

接下来的六个截屏为您提供相应选项,以便对AXI的主配置或从配置以及您将用于控制用户逻辑和支持文件的寄存器的数量进行定制。本例中我们仅使用一 个寄存器,并将其用作AXI-Lite的从配置。简化系统开发的最重要方法是选择外设实现支持标签上的“generate template driver files”选项。这样就能提供一系列有助于所创外设内部通信的源文件和头文件。

最后一步,XPS会生成一系列有助于创建和使用新外设的文件:

• 以您的外设命名的顶层VHDL文件

• 可在其中创建用户逻辑的VHDL文件

微处理器外设描述文件:用于定义连接模块的接口,以便将模块与XPS配合使用

• CIP文件:必要时可对外设进行重新定制

• 针对SDK的驱动程序源文件

• 针对SDK的实例源文件

微处理器驱动程序定义文件:详细描述外设所需的驱动程序

这些文件将在PlanAhead源目录(即本例中的zed_blog.srcs\ sources_1\edk\proc_subsystem)下创建。

源目录的子目录是包含XPS和PlanAhead所需文件(在与外设同名的目录下)的Pcores目录以及包含SDK所需文件的驱动程序目录。

创建RTL

在Pcores目录中您可以看到两个文件,其中一个与您所创建的组件同名(本例中为led_if.vhd),另一个文件名为

user_logIC.vhd。您可在user_logIC.vhd这个文件中进行设计创建。同时您将会发现向导已经帮您生成了用于通过AXI总线在此文 件中进行通信所需的寄存器和接口。您可在led_if.vhd文件进行用户逻辑模块实例化。对user_logic.vhd实体所做的任何修 改都必须传送到端口映射中。如果要求使用外部端口(例如我们的设计实例就需要外部端口来点亮LED),还必须传送对led_if.vhd实体所做的修改。

逻辑设计创建完成后,您可能希望对逻辑进行仿真以确保达到预期效果。在Pcores/devl/bfmsim目录下为您提供了总线功能模型。

猜您喜欢


分流器作为重要的电子元件,在电路测量和保护中是关键配件。泰科电子(TE Connectivity)作为全球领先的电子元器件制造商,其分流器产品因高品质和多样化规...
2019-08-10 22:18:30
前言:【核芯观察】是电子发烧友编辑部出品的深度系列专栏,目的是用最直观的方式令读者尽快理解电子产业架构,理清上、中、下游的各个环节,同时迅速了解各大细分环节中的...
2024-04-14 06:53:00
TT Electronics 作为英国知名的制造商,高质量的电位器产品赢得了全球用户的信赖。电位器作为调节电压、电流的关键组件,应用于各类电子设备中。本文将详细...
2012-11-09 05:18:13
热风拆焊台,一款高效精准的电子设备维修工具,应用于各类电子产品的维修与生产中。凭借独特的热风拆焊技术,轻松应对PCB板上元器件的拆卸与焊接,无论是手机、电脑主板...
2020-11-16 00:00:00
电流采样电阻作为关键的测量元件,应用于电源管理、电机控制、充电设备等多个领域。作为全球知名的电子品牌,Panasonic(松下)不仅在家电领域享有盛誉,其电子元...
2016-11-13 05:38:30
贴片电阻上的「121」并非直接代表阻值,而是一种代码表示法。它代表的是120欧姆的阻值,误差为±5%。这种编码方式通常被称为三位数代码法。其中,前两位数字代表有...
2024-11-26 11:29:17
瓷管电阻因其良好的耐高温性能和稳定的电阻值,被应用于各种电路设计中。作为行业内知名品牌,Panasonic(松下)瓷管电阻优异的品质和可靠性深受用户青睐。面对市...
2012-11-26 05:35:30
贴片电阻上的「01R」表示其阻值为0.01欧姆,也就是10毫欧。 字母「R」代表小数点,它前面的数字表示整数部分,后面的数字表示小数部分。 所以,01R 就相当...
2024-11-26 11:30:03
1、前言分频器是FPGA设计中使用频率非常高的基本单元之一。尽管目前在大部分设计中还广泛使用集成锁相环(如Altera的PLL,Xilinx的DLL)来进行时...
2019-02-01 01:49:00
电阻器作为最基础的元件,应用于各种电路设计中。随着电子设备功率的不断提升,升功率电阻因其能够承受更大功率的特性,成为许多电路设计中不可少的关键元件。本文将围绕“...
2015-06-28 21:35:14