当前位置: 首页 > news >正文

ZYNQ:流水灯实验

实验目的

PL_LED0 和 PL_LED1 连接到 ZYNQ 的 PL 端,PL_LED0 和 PL_LED1循环往复产生流水灯的效果,流水间隔时间为 0.5s。

原理图

在这里插入图片描述

程序设计

本次实验是需要实现两个LED的循环熄灭点亮,时间间隔是0.5S,对时间间隔的控制使用计数器来完成。本次实验需要使用系统时钟,并且添加系统复位。所以可以得到下面的模块示意图。

在这里插入图片描述

板载的系统时钟是50MHZ,周期是20ns
我们需要的时间间隔是0.5s
计数器需要的时钟周期数是:0.5S/20ns = 25000000
所以计数器最大计数到25000000-1,就是0.5S

仿真代码tb_flow_led.v

`timescale 1ns / 1ns // 仿真单位 / 仿真时间module tb_flow_led();//声明了一个名为tb_flow_led的测试平台(Testbench)模块parameter CLK_PERIOD = 20;//系统时钟是50MHZ  周期是20nsreg sys_clk;
reg sys_rst_n;wire [1:0] led;//信号初始化
initial beginsys_clk <= 1'b0;sys_rst_n <= 1'b0;#200 //表示延迟 200 个时间单位sys_rst_n <= 1'b1;
end//产生时钟
always #(CLK_PERIOD/2) sys_clk = ~sys_clk;//例化待测设计
flow_led  u_flow_led(.sys_clk(sys_clk),.sys_rst_n(sys_rst_n),.led(led)
);
endmodule

仿真

在这里插入图片描述

新建工程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看RTL原理图

在这里插入图片描述
约束管脚

在这里插入图片描述
ctrl + S 保存
在这里插入图片描述
这个可以看到约束文件
在这里插入图片描述
添加周期约束
将时钟周期设置为 20ns(对应 50MHz 的频率)。

# 创建时钟周期约束
create_clock -period 20.000 -name sys_clk [get_ports sys_clk]# IO 引脚约束
set_property PACKAGE_PIN U18 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property PACKAGE_PIN N16 [get_ports sys_rst_n]
set_property IOSTANDARD LVCMOS33 [get_ports sys_rst_n]
set_property PACKAGE_PIN L15 [get_ports {led[1]}]
set_property PACKAGE_PIN H15 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]

生成bit文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看LED初始值
在这里插入图片描述
在这里插入图片描述

下载验证

先连接好线,再上电!!!
在这里插入图片描述
下载后确实可以看到LED交替闪烁

总结

1、主要还是熟悉流程和编写代码!
完成比完美更加重要

学习来源:正点原子

http://www.lryc.cn/news/465860.html

相关文章:

  • StratoVirt中vCPU拓扑(SMP)配置与实现的深度解析
  • Xml 相关注解使用
  • 本地时间与时区时间转化(以Helpdesk和BPI Challenge 2012为例)
  • Golang | Leetcode Golang题解之第482题秘钥格式化
  • 代码随想录 -- 贪心 -- 无重叠区间
  • sql server xml
  • WPF中MVVM的应用举例
  • 编程题 7-24 约分最简分式【PAT】
  • 尚硅谷大数据Flink1.17实战教程-笔记04【Flink DataStream API】
  • MySQL常见优化策略
  • gyp ERR stack Error: Command failed: D:\python\python.EXE -c import sys; print
  • 代码随想录day6| 242.有效的字母异位词 、349. 两个数组的交集、 202. 快乐数 、 1. 两数之和
  • 《IDE 巧用法宝:使用技巧全解析与优质插件推荐》
  • 安全见闻---清风
  • Python爬虫:urllib_post请求百度翻译(06)
  • GPIO输入和输出
  • 时序动作定位 | DDG-Net:弱监督时间动作定位的判别驱动图网络(ICCV 2023)
  • mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.
  • C#运动控制
  • 监控易监测对象及指标之:Kafka中间件JMX监控指标解读
  • PDF文件为什么不能编辑是?是啥原因导致的,有何解决方法
  • 海螺AI在人类表情刻画中的应用:技术与创新
  • 【Python实战】几种打包python代码的方法!!!
  • (已开源-ECCV2024)BEV检测模型-LabelDistill,使用真值进行知识蒸馏
  • web前端第一次作业
  • CMake 开发者手册
  • Redis入门:在Java程序中高效使用Redis
  • 活着就好20241021
  • 阿里字节技术管理岗位面试要求
  • MySQL !=NULL 与IS NOT NULL