当前位置: 首页 > 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.mrgr.cn/news/55606.html

相关文章:

  • 今日头条躺赚流量:自动化新闻爬取和改写脚本
  • Vue项目中如何设置角色菜单权限
  • 如何使用Git推送本地搭建的仓库以及远程克隆的仓库
  • 中国信通院联合中国电促会开展电力行业企业开源典型实践案例征集
  • springboot接口Get请求实体类入参
  • 深入理解new Function
  • .net framework3.5sp1runtime组件怎么开启
  • Python Web 框架中 Django 框架
  • Java面试题五
  • AB包资源管理器
  • CISP/NISP二级练习题-第一卷
  • c语言typedef的使用 Java短路逻辑运算符
  • Linux 查看进程内存占用的 6 种方法,建议点赞收藏备用,排查问题好帮手
  • 详解23种设计模式——第二部分:结构型模式
  • 计算机基础 -- 计算机补码的原理
  • 数据库中`cast(x as type)` 或 `convert(type, x)` 函数的处理
  • Git合并多个分支中的提交内容
  • 用PYTHON可视化分析热门MEMECOIN的代码思路参考。
  • boost搜索引擎
  • 边缘计算与联邦学习:探索隐私保护和高效数据处理的结合
  • 关于技术管理者的一些思考
  • hashCode的底层原理
  • windows 上验证请求接口是否有延迟
  • 进程:消息队列
  • 用ESP32驱动stt7735 TFT屏幕
  • 1-2.Python 引入 - 变量(变量定义、变量命名、动态类型)