ZYNQ初识2(zynq_7010)基于vivado,从PL端调用PS端的时钟
由于需要进行一些FPGA的简单开发,但板载PL端没有焊接晶振,所以需要从PS端借用时钟到PL端使用。
首先新建项目,根据自己的板载选择芯片,我的板载芯片是zynq_7010。

一路next,在自己的vivado的工作文档新建文件夹并给自己新建的项目命名,随后进行芯片选型,由于我的板载芯片是zynq_7010,所以做如下选择。确认无误后点击finish即可。
下面是创建好新工程的主界面,点击创建block_design

根据自己需要是否修改设计名字,不改也可。点击OK后进入如下界面,点击“+”,在左上角搜索ZYNQ并选择唯一对应的Precessing System。

随后出现对应Processing System模块,双击进入设置

选择Preihpheral IO PIns,根据板载设置,一般设置好QuadSPI和UART即可简单使用。

随后进入DDR的设置,按如下步骤选择MemoryPart(应是和板载芯片最接近的设置)

随后按如下操作取消勾选,得到最终的PrecessingSystem模块。

右键两个引脚,选择自动接出,如下图

随后点击左上角Sources,选中刚刚创建的bp文件,右击选择生成输出项目

点击Generate即可。

随后继续选中bp文件,右击选择创建顶层文件,点击OK


随后点击创建bit流文件,而后默认点击Yes,跳转后默认点击OK即可,生成文件后,弹出界面选择cancel即可,不需要进行修改。

随后选择File,选择导出,将生成的bit流文件导出到硬件Hardware,默认点击OK即可。但需要勾选中包含流文件(including Stresming file)

随后选择Launch SDK,启动PS端,随后默认点击OK即可。
页面跳转至如下界面:
随后依次点击左上角File,选择New,选择Application Project进行文件创建:

根据自己情况为新创建的文件命名,随后选择提供的空模板,点击Finish即可。


随后单击选择新建好的工程文件夹,找到src文件夹并新建main.c文件

双击打开新建好的main.c文件,发现程序字号显示较小,按下操作调整主界面字号,选择Window->Preference->general->color and font,选择Text Font,点击左侧Edit,根据需要修改即可。

随后将下面的几行代码复制到新建的main.c文件中,保存(运行)。
int main(void){while(1){}
}

随后选择工程文件,选择Run as->Run Configuration

选中最下面的选项,双击后,勾选右侧界面的Reset entire system和ProgramFPGA,随后点击run
随后切换到PL端,给工程文件添加现有的LED闪烁的代码文件(源文件):

添加完后在Diagram主界面中右击选择添加model,将刚刚添加到工程文件中的led闪烁文件模块加入到Diagram界面并连线,将复位和led输出两个引脚选中,并点击Make Externalm,最终如下图:

随后点击右侧的Run Synthesis,进行综合分析并进行IO引脚的配置(结合板载的原理图)
引脚配置完成后如下图:

随后将保存的文件自行命名(不需要和工程文件名字统一,但不可以是中文字符),随后点击OK

点击左侧左下角的生成bit流文件,默认点击OK,等待生成即可。
随后选中OpenTarget,选择自动连接 auto connect

随后依次点击Program device ->Program来将生成后的bit流文件下载烧写至板载中。
随后则可以观察到板载小灯闪烁,上述过程成功。
另外在下面附上FPGA两个小灯交替闪烁的代码:
`timescale 1ns / 1ps
module test_led003(input sys_clk,input sys_rst_n,output [1:0] led
);reg [25:0] cnt;
assign led = (cnt<26'd25_000_000) ? 2'b01 : 2'b10;
always @ (posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)cnt <= 26'd0;else if (cnt< 26'd50_000_000)cnt <= cnt + 1'b1;elsecnt <= 26'd0;end
endmodule
另附上修改后的三个小灯连续闪烁的代码:(注意修改对应的管脚分配)
`timescale 1ns / 1ps
module test_006(input sys_clk,input sys_rst_n,output [2:0] led // 修改为3位宽,控制三个LED
);
//reg define
reg [25:0] cnt;
wire [2:0] led_state; // 定义一个3位宽的wire,用于存储LED状态// 使用case语句来实现三个LED的交替闪烁
assign led_state = (cnt > 26'd25_000_000) ? 3'b001 : // 当计数器大于25,000,000时,LED1亮(cnt > 26'd12_500_000) ? 3'b010 : // 当计数器大于12,500,000时,LED2亮3'b100; // 否则,LED3亮assign led = led_state; // 将led_state的值赋给led输出always @ (posedge sys_clk or negedge sys_rst_n) beginif (!sys_rst_n)cnt <= 26'd0;else if (cnt < 26'd50_000_000)cnt <= cnt + 1'b1;elsecnt <= 26'd0;
end
endmodule相关文章:
ZYNQ初识2(zynq_7010)基于vivado,从PL端调用PS端的时钟
由于需要进行一些FPGA的简单开发,但板载PL端没有焊接晶振,所以需要从PS端借用时钟到PL端使用。 首先新建项目,根据自己的板载选择芯片,我的板载芯片是zynq_7010。 一路next,在自己的vivado的工作文档新建文件夹并给自…...
Android详解——ConstraintLayout约束布局
目录 一、ConstraintLayout概述 二、ConstraintLayout属性介绍 1. 相对位置 2. 边距 3. 中心和偏移位置 中心位置 偏移位置 4. 圆形位置 5. 可见性 6. 尺寸约束 最小尺寸 WRAP_CONTENT :强制约束 MATCH_CONSTRAINT Min和Max 百分比尺寸 比率 7. 链式布局 创建…...
docker简单命令
docker images 查看镜像文件 docker ps -a 查看容器文件 docker rm 0b2 删除容器文件,id取前三位即可 docker rmi e64 删除镜像文件(先删容器才能删镜像),id取前三位即可 在包含Dockerfile文件的目录…...
【linux】shell(36)-文件操作
1. 文件创建 1.1 使用 touch 命令创建空文件 touch filename创建一个名为 filename 的空文件。如果文件已存在,touch 会更新该文件的时间戳。 示例: touch file1.txt1.2 使用重定向符创建文件 > filename使用 > 符号创建一个空文件。如果文件…...
c语言——数据结构【链表:单向链表】
上篇→快速掌握C语言——数据结构【创建顺序表】多文件编译-CSDN博客 一、链表 二、单向链表 2.1 概念 2.2 单向链表的组成 2.3 单向链表节点的结构体原型 //类型重定义,表示存放的数据类型 typedef int DataType;//定义节点的结构体类型 typedef struct node {union{int l…...
Python 标识符是啥?
Python 的标识符就是我们写代码时用来给变量、函数、类等取名字的东西。 你写的 my_variable 是个标识符, 定义的 add_numbers 函数名也是个标识符, 甚至你写的 Cat 类名,也是标识符。 一句话总结:标识符就是代码里给“东西”起…...
视频及JSON数据的导出并压缩
npm下载安装 jszip 和 file-saver 这两个库来实现文件的压缩和保存功能: npm install jszip npm install file-saver 导入依赖库: import JSZip from jszip; import { saveAs } from file-saver; 方法实现: batchDownload() {const zip…...
VScode使用教程(菜鸟版)
目录 1.VScode是什么? 2.VScode的下载和安装? 2.1下载和安装 下载路径: 安装流程: 一、点击【Download for Windows】 二、等一小会儿的下载,找到并双击你下载好的.exe文件,开始进入安装进程 三、点…...
【漏洞复现】Grafana 安全漏洞(CVE-2024-9264)
🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 一、漏洞概述 1.1漏洞简介 漏洞名称:Grafana 安全漏洞 (CVE-2024-9264)漏洞编号:CVE-2024-9264 | CNNVD-202410-1891漏洞类型:命令注入、本地文件包含漏洞威胁等级:…...
Android AOSP 源码中批量替换“phone“为“tablet“的命令详解
我来帮你写一篇关于这条命令的分析博客。 Android 项目中批量替换"phone"为"tablet"的命令详解 前言 在 Android 开发中,有时我们需要批量修改资源文件中的某些文本内容。今天我们来分析一条结合了 grep 和 sed 的强大命令,该命令用于将项目中的 “ph…...
基于JavaWeb(SSM+MySQL)问卷调查管理系统设计与实现毕业论文
标题:基于 JavaWeb(SSMMySQL)问卷调查管理系统设计与实现 内容:1.摘要 摘要:本文介绍了一个基于 JavaWeb(SSMMySQL)的问卷调查管理系统的设计与实现。该系统旨在为用户提供一个高效、便捷的问卷调查工具,帮…...
域内用户枚举与密码喷洒与密码爆破
域控:192.168.72.163 攻击者:192.168.72.162 域:hacker.com 用户枚举 as-rep 回复状态判断域用户 用户存在且启用:KDC_ERR_PREAUTH_REQUIRED (需要额外的预认证) 用户存在但禁用:KDC_ERR_CLIENT_REVOKED NT Stat…...
DIY 集合求并集(union)运算的代码 ← Python
【算法分析】 已知 Python 提供了求并集运算的函数 union。代码示例如下; >>> s1{1,2,3} >>> s2{2,3,7,1,9} >>> s1.union(s2) {1, 2, 3, 7, 9} >>> 不过,知其然也要知其所以然。 本例自己 DIY 集合求并集(union…...
Redis bitmaps 使用
应用场景: 记录id为 1 的用户,2024年12月签到情况,并统计; 记录 1号签到 zxys-redis:0>setbit 1:202412 1 1 记录 2号签到 zxys-redis:0>setbit 1:202412 2 1 记录 3号未签到 zxys-redis:0>setbit 1:202412 3 0 …...
vue深层数据响应的问题
vue版本为v2.16 数据是数组数据,且初始数据为空; 当接口返回的数据直接赋值到字段之后导致深层的子项数据无法被监听到; 数据结构如下: //数据结构//初始化数据 data:[] 接口返回数据 resData:[{id:"",name:"&quo…...
解决Nginx + Vue.js (ruoyi-vue) 单页应用(SPA) 404问题的指南
问题描述 在使用Vue.js构建的单页应用(SPA)中,特别是像ruoyi-vue这样的框架,如果启用了HTML5历史记录模式进行路由管理,那么用户直接访问子路径或刷新页面时可能会遇到404错误。这是因为当用户尝试访问一个非根路径时…...
项目计划表如何制作?使用甘特图制作项目计划表的步骤
在项目管理中,项目计划是项目的核心要素,它详细记录了项目任务详情、责任人、时间规划以及所需资源。 这份计划不仅为项目推进提供指引,更是控制范围蔓延、争取更多支持的有力工具。 然而,如同项目管理的其他环节一样࿰…...
Flutter-底部分享弹窗(showModalBottomSheet)
showModalBottomSheet 构造函数的样式 Future<T?> showModalBottomSheet<T>({required BuildContext context, // 上下文对象,通常是当前页面的上下文bool isScrollControlled false, // 控制底部弹窗的大小,如果为…...
初学stm32 --- 时钟配置
目录 stm32时钟系统 时钟源 (1) 2 个外部时钟源: (2)2 个内部时钟源: 锁相环 PLL PLLXTPRE: HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC: PLL 输入时钟源 (PL…...
LeetCode:226.翻转二叉树
跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:226.翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 …...
遇到戴氏庄辉兰老师,是孩子英语学习的幸运
作为家长,一直为孩子英语焦虑,直到遇见戴氏庄辉兰老师,才真正放下心来。庄老师教学水平高、责任心强、有爱心、懂教育,不仅教知识,更培养兴趣和习惯。她课堂生动有趣,把枯燥知识点变得简单易懂,…...
当机器人遇见城市:江南北如何重塑武汉的智能生活图景
城市,是人类文明的结晶,也是科技创新的试验场。在武汉这座英雄的城市,一场由江南北(武汉)信息技术有限公司(简称“江南北机器人”)引领的智能革命,正悄然改变着市民的日常生活与城市…...
(Python)Pandas reset_index() 实战解析:从数据混乱到索引清晰
1. 为什么你的Pandas数据总是乱糟糟? 每次处理完数据,看着那个乱七八糟的索引是不是特别头疼?我刚开始用Pandas的时候,经常遇到这样的问题:合并几个表格后索引重复了,分组统计后多出来一堆莫名其妙的层级&a…...
别再手动一个个改了!用PowerCLI脚本5分钟批量搞定VMware虚拟机网卡升级(ESXi 7.0实测)
5分钟极速升级:PowerCLI全自动批量替换VMware虚拟机网卡实战指南 每次ESXi版本升级后,总有一堆历史遗留问题等着处理——比如那些性能拉胯的E1000网卡。上周我负责的金融客户集群刚完成ESXi 7.0迁移,结果压测时发现300台虚拟机里竟有192台还在…...
开源破产法知识库:从实务场景到技术架构的深度解析与应用指南
1. 项目概述:一个律师的破产法知识库最近在GitHub上看到一个挺有意思的项目,叫zhang-lawyer-org/zhang-bankruptcy。光看这个名字,你大概能猜到,这是一个跟破产法相关的知识库,而且很可能是一位张律师(或张…...
基于eNSP的园区网络高可用与安全隔离综合实验
1. 实验背景与核心价值 园区网络作为企业数字化转型的基础设施,其稳定性和安全性直接关系到日常运营效率。记得去年参与某金融机构网络改造项目时,他们的核心业务系统因为单点故障导致全网瘫痪4小时,直接损失超过百万。这个案例让我深刻认识到…...
LaTeX中文排版难题:如何快速解决字体缺失问题?
LaTeX中文排版难题:如何快速解决字体缺失问题? 【免费下载链接】latex-chinese-fonts Simplified Chinese fonts for the LaTeX typesetting. 项目地址: https://gitcode.com/gh_mirrors/la/latex-chinese-fonts 你是否曾经在深夜赶论文时&#x…...
Node.js服务端应用无缝集成Taotoken提供多模型AI能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js服务端应用无缝集成Taotoken提供多模型AI能力 将大模型能力集成到Node.js后端服务中,可以快速为应用增加智能对…...
使用Gemini-OpenAI代理实现零成本AI模型迁移与协议转换
1. 项目概述:一个让OpenAI生态无缝接入Gemini的桥梁如果你和我一样,长期在AI应用开发的一线折腾,肯定遇到过这样的场景:手头有一个基于OpenAI API(比如ChatGPT的gpt-3.5-turbo或gpt-4)构建得相当成熟的应用…...
别再折腾了!我整理好的Elsevier LaTeX模板(通用版+复杂版)直接拿来用
Elsevier LaTeX模板终极避坑指南:从编译报错到一键投稿 第一次打开Elsevier官方LaTeX模板时,我盯着满屏的报错信息足足愣了五分钟——作为一个刚踏入科研领域的研究生,这简直像在解一道没有提示的数学证明题。经过三个月的反复试错和数十次期…...
