ZYNQ
文章平均质量分 53
Leo_9824
这个作者很懒,什么都没留下…
展开
-
ZYNQ开发之系统搭建
ZYNQ工程包括PS、PL两部分,PS指的是嵌入式ARM部分,PL指的是FPGA部分。PS用到的资源需要在PL端例化。首先需要在PL端例化需要的资源1)create block design2)添加ZYNQ核点击‘+’号,搜素zynq双击ZYNQ7 Processing System出现下图3)选择需要例化的资源双击上图出现下图,想例化哪个资源就在里面找到它。这里例化UART和网口,点击UART0进入配置页面。根据电路板原理图选择板级供电电压、UART和网口连接的IO,选择是否需要上原创 2021-05-09 21:56:19 · 951 阅读 · 0 评论 -
FPGA开发实例之时序违规1
1、说明\qquad在用fpga做信号处理的时候用到了开根号运算,我直接调用ip核完成的。编译完成后出现了ip核路径时序违规,以下是解决方法。2、ip核时序违规如图所示\qquad打开第一个违规路径查看详细信息,可以看到信号路径都是CARRY和LUT,即信号路径中包含了很多组合逻辑。\qquad查看ip核发现,此ip是使用logic单元生成的,并且latency参数设置成了3,它为了保证运算速度所以用了大量的组合逻辑。组合逻辑很多时会导致信号延迟较高,所以产生了时序违规。我尝试着将lat原创 2020-06-17 10:50:48 · 1479 阅读 · 0 评论 -
FPGA开发实例之后仿真
FPGA仿真包含前仿真和后仿真,当前仿真没问题时并不能代表布线后也没问题。可以看看后仿真时序如何才能判断是否真的没有问题。下图是一个后仿真的结果,可以看到输出的信号上有很多毛刺,但是否会有影响得综合去判断了。下图也很奇怪,在一个时钟周期内数据总线会多次出现变化。上图数据总线变化的原因是多根总线在不同时刻变化导致的(下图)。所以有的时候用独热码或格雷码还是有必要的。...原创 2021-04-29 00:40:41 · 871 阅读 · 0 评论 -
ZYNQ开发实例之布局约束
分享一例位置约束实例如下图所示,出现这个警告的意思是在一个bank中时钟管理器不够用需要到其他bank中找一个,但这不是最优的解决方案,如果要这么处理就需要在约束文件中进行约束先分配一下IO对应的时钟管理器。A1分配mmcm1,A2分配PLL,A3分配mmcm2,如下图:可以在属性中获取时钟管理器的坐标:mmcm1的坐标是MMCME2_ADV_X1Y3pll的坐标是PLLE2_ADV_X1Y2mmcm2的坐标是MMCME2_ADV_X1Y2可以在Schematic中找到时钟管理器的网络路径原创 2021-04-29 00:03:05 · 1250 阅读 · 0 评论 -
ZYNQ芯片底层结构
开发ZYNQ时了解它的底层是有一定帮助的。那么它的底层是啥样呢?1、总览它的每一个bank所包含的元素都是相同的2、bank41)bank中包含1个PLL、1个MMCM、若干IO、IDELAY、ODELAY、IN_FIFO、OUT_FIFO、BUFR、BUFIO、DSP48、SLICE、BRAM、BUFH、BUFG等。2)每个bank都是上下对称的(所含元素相同)。3)每个bank中只有两个时钟管理器,如果想用的更多就需要跨bank了。4)对输入/输出信号处理的元素,如IDELAY2、OD原创 2021-04-28 00:17:38 · 1281 阅读 · 0 评论 -
APB总线
\quad上篇提到APB总线这里详细说明一下。APB总线适合应用于低性能、低数据带宽场景下。它通常需要桥电路将AMBA总线转为APB总线。以ZYNQ开发为例,结构如图:\quad上图中AXI总线经过AXI APB Bridge转为APB总线。APB的每一个接口都对应一个地址并且可配。PS访问对应地址时就会访问对应接口。它的时序也非常简单:PSEL、PENABLE都有效时代表选中设备此时PADDR已经有效。PWRITE高为写低为读。从机的PREADY信号有效时完成一次传输。1) 写无等待时序原创 2021-04-26 22:08:27 · 1469 阅读 · 0 评论 -
AMBA_AXI_HP
1、AMBA\quadAMBA(Advanced Microcontroller Bus Architecture)是由ARM公司研发的片上总线协议。AMBA总线包含:1)AHB(Advanced High-performance Bus)\quad应用于高性能、高时钟频率的系统模块,它构成了系统骨干总线。主要特性是突发传输、分割传输、流水线、一个周期内完成总线主设备对总线控制权的交接、单时钟沿操作、更宽的数据总线宽度。2)ASB(Advanced System Bus)\quad是第一代AMBA原创 2021-04-26 00:39:30 · 429 阅读 · 0 评论 -
ZYNQ开发之BootROM加载
1、概述\quad当完成系统复位后开始执行配置程序。CPU0执行BootROM程序,CPU1休眠等待CPU0唤醒。在执行BootROM程序时DAP和TAP JTAG控制器禁用。DDR控制器及其它外设不会被BootROM程序初始化。\quadPL的启动和初始化序列可以与PS启动同时进行,也可以在启动之后进行。如果BootROM需要启动PL,然后在BootROM执行的早期,BootROM将写入devcfg.CTRL [PCFG_PROG_B]位,在开始执行BootROM之前一直等待devcfg.STATU原创 2021-01-30 19:34:29 · 1092 阅读 · 1 评论 -
ZYNQ开发之系统启动与复位
1、介绍\quad复位系统包含由硬件、看门狗、JTAG控制器和软件生成的复位。硬件复位包含上电复位PS_POR_B和外部系统复位PS_SRST_B。\quad在PS端有三个看门狗复位。\quadJTAG复位只有在DBUG时候才能生成。\quad软件复位是软件生成的子模块或系统级复位。2、复位逻辑图3、启动流程1)完整复位顺序如上图所示。前两个步骤由外部系统控制,PS逻辑仅在电源接通复位(POR)被释放时才开始响应。当PS运行时,任何类型的复位都可以在POR之后发生。这些重置将在各自的位置插原创 2021-01-30 19:28:04 · 5745 阅读 · 0 评论 -
ZYNQ开发之上电流程概览
系统启动流程启动的四个流程如下:1)上电\qquad上电后会给内核、bank依次上电;2)复位\qquad上电后需要复位一段时间保证系统稳定;3)BootROM\qquad 执行一次引导程序;4)FSBL\qquad执行二次引导程序;...原创 2021-01-30 16:16:26 · 1335 阅读 · 0 评论 -
ZYNQ开发之PL-PS中断
1、说明\qquad本文叙述了ZYNQ芯片中断相关内容,并且例举了PL-PS中断实例。参考文献ug585.2、系统中断架构\qquad每个CPU都有一组私有外围中断(PPIs),通过使用banked register进行私有访问。PPIs包括全局定时器、私有看门狗定时器、私有定时器和来自PL的FIQ/IRQ。\qquad软件产生的中断(SGIs)被路由到一个或两个cpu。SGIs是通过写入通用中断控制器(GIC)中的寄存器来生成的。\qquad共享外围中断(SPI)由PS和PL中的各种I/O和内存原创 2020-06-22 15:08:05 · 6427 阅读 · 1 评论 -
ZYNQ开发之导出内存数据
对于ZYNQ芯片内存数据如何导出问题,这里给出一种方法。1、xilinx SDK内存数据导出可以使用XSCT/XSDB工具导出,如下图:(在线运行后会探出此窗口)选择XSDB工具操作说明:1) connect建立连接2) ta 查找可连接目标3) ta 2 连接到目标24) cd 指定路径5) mrd –bin –file name.bin address len从地址address开始读取长度为len的数据,存储到”指定路径”,文件名为name.bin。2、 注意事项 1原创 2020-05-21 11:38:13 · 2946 阅读 · 2 评论