wordpress建立php站点地图,软件开发流程解读,网站建设制作公司哪家,全渠道营销成功案例实验目的
PL_LED0 和 PL_LED1 连接到 ZYNQ 的 PL 端#xff0c;PL_LED0 和 PL_LED1循环往复产生流水灯的效果#xff0c;流水间隔时间为 0.5s。
原理图 程序设计
本次实验是需要实现两个LED的循环熄灭点亮#xff0c;时间间隔是0.5S,对时间间隔的控制使用计数器来完成。本…实验目的
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 1b0;sys_rst_n 1b0;#200 //表示延迟 200 个时间单位sys_rst_n 1b1;
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、主要还是熟悉流程和编写代码 完成比完美更加重要
学习来源正点原子