03 2024 档案
摘要:前面的中断学习中我们学了按键,GPIO,Timer,是时候把它们整合到一起了。 今天我们混合使用PS/PL部分的资源,建立一个比较大的系统。 板子:zc702。 实现功能如下: 1.通过串口打印信息询问你要按SW5还是SW7; 2.当正确的按键被按下,定时器启动,关闭led DS23; 3.当定时器
阅读全文
摘要:前面我们介绍了按键中断,其实我们稍作修改就可以用按键控制LED了。 做个小实验,两个按键分别控制两个led亮灭。 板子:zc702。 硬件部分 添加zynq核: 勾选串口用于打印信息,勾选EMIO,我们控制两个led,所以需要2bit PL 到PS的中断勾选上: PL时钟什么的都用不到,我们用的按键
阅读全文
摘要:私有定时器属于PS部分,定时器可以帮我们计数、计时,有效的控制模块的时序。 这一次实验我们认识定时器并使用定时器产生中断。 CPU的私有中断(PPI) CPU的私有中断(PPI),5个:全局定时器, 私有看门狗定时器, 私有定时器以及来自 PL 的 FIQ/IRQ。 它们的触发类型都是固定不变的,
阅读全文
摘要:PS和PL之间的交互,怎么都逃不过中断,稍微大型的数字系统,PS和PL之间配合使用就需要中断作为桥梁。 本文通过按键发起中断请求尝试学习PL请求中断的处理机制。 板子用的是zc702。 ZYNQ的中断 ZYNQ是中断类系统框图: 由上图可知,zynq的中断分为三种: 1.软件中断(SGI,Softw
阅读全文
摘要:原文地址:https://zhuanlan.zhihu.com/p/610401819 一、什么是总线 总线就是一组统一的信号和协议,通常用于设备之间的通讯和传输 主设备master:主动发出请求(如 CPU) 从设备slave :被动相应请求(如 内存) 二、最简单的总线(同步读 SRAM – 读
阅读全文
摘要:Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。 ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。 每一个BRAM都有两个共享数据的独立端口,当然是可以配置
阅读全文
摘要:前面我们介绍过EMIO,但是不详细。 MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途, 在下图中我们可以看到54个MIO连接这么多东西,必须得复用, 所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用。 板子用的是zc702。 下面我们双击ZYNQ核: 我们到
阅读全文
摘要:上一节我们体验了一把PS和PL是怎样联合开发的,这种ARM和FPGA联合设计是ZYNQ的精华所在。 这一节我们实现一个稍微复杂一点的功能——测量未知信号的频率, PS和PL通过AXI总线交互数据,实现我们希望的功能。 如何测量数字信号的频率 最简单的办法——在一段时间内计数 在我们设定的时间(Tpr
阅读全文
摘要:上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序, 这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势, PS可以控制PL产生定制化的行为,而不需要去动硬件代码。 这次实验是产生频率和占空比可调的PWM(Pulse Width Modulation)信号,
阅读全文
摘要:前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。 这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。 由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。 具体做法是创建一个基于AXI总线的加法器模
阅读全文
摘要:前言: FPGA+ARM是ZYNQ的特点,那么PL部分怎么和ARM通信呢,依靠的就是AXI总线。 这个实验是创建一个基于AXI总线的GPIO IP,利用PL的资源来扩充GPIO资源。 通过这个实验迅速入门开发基于总线的系统。 使用的板子是zc702。 AXI总线初识: AXI (Advanced e
阅读全文
摘要:前言: 前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Run as或者Debug as来运行程序。 JTAG方式是通过tcl脚本来初始化PS,然后用JTAG收发信息, 优点是可以在线调试, 缺点是断电后程序就丢失了。 为了解决程序丢失的问题,可以制作镜像文件烧写到sd卡或者
阅读全文
摘要:前言: ZYNQ 7000有三种GPIO:MIO,EMIO,AXI_GPIO MIO是固定管脚的,属于PS,使用时不消耗PL资源; EMIO通过PL扩展,使用时需要分配管脚,使用时消耗PL管脚资源; AXI_GPIO是封装好的IP核,PS通过M_AXI_GPIO接口控制PL部分实现IO,使用时消耗管
阅读全文
摘要:前言: 使用的板子是zc702。用Vivado的IP核搭建最小系统,包括ARM核(CPU xc7z020),DDR3(4×256M),一个UART串口(Mini USB转串口),纯PS,通过串口打印出HelloWorld,工程虽小,五脏俱全,算是一种朝圣。配置要和板子对应,大家注意修改。 操作步骤:
阅读全文
摘要:前言: 偶数分频容易得到:N倍偶数分频,可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。 奇数分频如何得到呢? 第一部分 奇数分频 奇数分频方法: N倍奇数分频,首先进行上升沿触发进行模N计数,
阅读全文
摘要:原文链接:https://blog.csdn.net/u014485485/article/details/78056980 前言: 学习Xilinx的ZYNQ 7000系列,用的板子是zc702(注意不是zedboard),SOC型号是xc7z020。虽然设计思路一样,但不同的套件引脚和io标准是
阅读全文
摘要:一、发生情况 0.新安装了VS Code 但是打开的时候插件没有启用,同时上方有提示 1.打开VS Code 提示目前处于限制模式下 2.点击了解详细信息后阅读说明得知: 在受限模式下 vscode 将禁用或限制任务、调试、工作空间设置和扩展,来提高安全性。 二、 解决方案 1.网上查了一下,决定关
阅读全文
摘要:方法步骤 第一步 1.当我们进入到Visual Studio Code,中之后,你可以看到该页面是英文来显示的,那么我们可以点击左侧的箭头所指的图标。 第二步 2.接着进入到页面中,在搜索框中输入【简体中文】,接着按下键盘上的回车键进行搜索,搜索出来的简体中文,点击【install】按钮进行安装。
阅读全文
摘要:一、 vivado 2019_2 的安装步骤 vivado的安装: 安装包地址:链接:https://pan.baidu.com/s/1uEl3GWg-ocivbsfX-dK3Zw 提取码:ae89 选择vivado2019进行下载,安装包共计31G,需要预留50G以上的安装空间 将zip压缩包进行
阅读全文
摘要:一、项目架构设计 FPGA设计是采用自顶向下,模块化设计的方式,这样便于仿真调试。 注:特别是在整体架构的基础上,能把整体的数据流向和控制逻辑梳理清楚,这样实现起来就很容易。 注意:Verilog是硬件设计语言,跟软件设计有本质区别 二、模块架构设计 基本原则:控制逻辑和数据逻辑分开处理 三、模块接
阅读全文
摘要:Visual Studio Code搭配插件,可实现verilog纠错、画波形图、变量定义跳转等功能,一起来体验吧。 一、Visual Studio Code 安装 1、下载Visual Studio Code 官网:Visual Studio Code - Code Editing. Redefi
阅读全文
摘要:zedboard基于vivado的试验 试验①:点亮一个led灯,使用一个按钮做复位。 project_2.v module project_2( input clk, //时钟输入 input rst, //复位,高电平有效 output reg led //led输出 ); always@(po
阅读全文
摘要:vivado仿真 vivado集成了HLS工具,可以直接使用C \ C++ \ systemC 语言对Xilinx的FPGA器件进行编程。 用户无需手动创建RTL,通过高层次综合生成HDL级的IP核,从而加速IP创建。 参考了下面的视频整理出的流程与步骤: vivado视频教程: 第一讲:https
阅读全文
摘要:verilog的学习教程与笔记(LZQ自用): 第1章 Verilog 的历史 视频讲解03_verilog历史:https://www.bilibili.com/video/BV14K4y1u7kH?p=3&vd_source=da31a9aa66fbe4d6b904e621d9943c75 1.
阅读全文
摘要:第1章 PyQt5开发环境搭建和配置 PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。 本文内容 本文主要第1节 PyQt5环境搭建和配置。主要内容包括: [!TIP]
阅读全文