FPGA:频闪灯设计
创始人
2024-12-25 22:09:07
0

1、需求

若在FPGA上实现LED灯一秒闪烁一次,先进行计算,1秒闪烁一次,即周期为1秒,开发板XC7A35TFFG-2的基本时钟输入由板载 50MHz 有源晶振提供,即频率为f = 50MHz
则一个周期为 T = 1 f = 1 50 M H z = 20 n s T=\frac{1}{f} = \frac{1}{50MHz}=20ns T=f1​=50MHz1​=20ns
将一秒钟一分为二,即前0.5秒灯灭,后0.5秒灯亮。即亮和灭的周期数为
0.5 × 1 0 9 ÷ 20 = 25000000 T 0.5\times 10^9 \div20=25000000T 0.5×109÷20=25000000T。假设时钟从0开始,设置一个计数器,如果我们想设计 n n n个时钟周期长度的计数器,一般计数到 n − 1 n-1 n−1即可。
例如设置一个计数为 4 4 4个时钟周期的计数器,时钟从 1 1 1开始,则计数器到 3 3 3即可,执行顺序如下 0 − 1 − 2 − 3 − 1 0-1-2-3-1 0−1−2−3−1.

2、设计定义

该实验有两个输入(复位信号和时钟信号),一个输出(led灯亮灭情况),复位信号低电平有效,时钟是上升沿触发。当复位信号来临时,led灯灭,计数器归0,当计数到24999999时,led灯翻转(即状态和原来相反),计数器归0。

3、编写代码

(1)创建工程,命名为led_flash_test,编写设计文件,其对应的verilog代码如下:

// 让led灯每秒闪烁一次  时序电路设计 module led_flash_test( 	clk,reset_n,led  //信号声明 ); input clk; input reset_n; output reg led;  // 在always模块赋值的语句,设为reg型 reg [24:0] counter; // 时钟计数单元 always @(posedge clk or negedge reset_n) if (!reset_n) 	counter<=1'd0; else if(counter == 24999999) 	counter<=1'd0; else 	counter<=counter+1'd1; always @(posedge clk or negedge reset_n) if(!reset_n) 	led <= 0; else if(counter == 24999999) 	led <= !led; endmodule 

编写测试文件,命名为led_flash_test_tb,其对应的verilog代码如下:

`timescale 1ns/1ps module led_flash_test_tb(); reg clk; reg reset_n; wire led; led_flash_test led_flash_test_inst0( 	.clk(clk), 	.reset_n(reset_n), 	.led(led) ); initial clk=1; always #10 clk = !clk;  # 每10ns翻转一次 initial begin 	reset_n=0; 	#201;   # 避免和时钟上升沿重合 	reset_n=1; 	#1000000000; end endmodule 

4、仿真&板级调试

点击run simulation,即可查看仿真结果,如下所示
在这里插入图片描述
接下来进行引脚分配,根据开发手册提供的引脚分配表,
在这里插入图片描述
将Y18分配给clk,M22(led0)分配给led,F15(按键S0)分配给reset_n,按下表示低电平,进行复位。具体设置如下:
在这里插入图片描述
生成比特流文件并写入开发板,效果如下:
一秒闪烁一次
在这里插入图片描述
在这里插入图片描述

按下复位按钮,灯灭。
在这里插入图片描述

相关内容

热门资讯

推荐十款!智星德州菠萝有挂吗,... 推荐十款!智星德州菠萝有挂吗,(红龙扑克)透视辅助黑科技,玩家必看秘籍(总是是有挂)1、不需要AI权...
透视科技!德州ai辅助,(德州... 透视科技!德州ai辅助,(德州之星)透视辅助挂,交流学习经验(确实真的有挂);最新版2024是一款经...
总算明白!德州ai机器人,(德... 您好,德州ai机器人这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
透视透明挂!德州之星辅助挂,(... 1、透视透明挂!德州之星辅助挂,(智星德州菠萝)透明挂辅助软件,今日百科(原来是有挂);该软件可以轻...
德州之星有外 挂!红龙扑克有没... 《德州之星有外 挂!红龙扑克有没有挂,红龙扑克辅助工具,让我来分享经验(其实是有挂)》 红龙扑克辅助...
德州ai辅助软件!德州免费辅助... 1、德州ai辅助软件!德州免费辅助神器app,德州ai辅助有用,科技揭秘(都是存在有挂);详细教程。...
智星德州菠萝!德州ai辅助软件... 智星德州菠萝!德州ai辅助软件,德州之星插件,盘点一款(原来是真的有挂);科技安装教程;136704...
德州之星外挂!智星德州菠萝有挂... 德州之星外挂!智星德州菠萝有挂吗,智星德州菠萝开挂,详细说明(其实有辅助挂);智星德州菠萝有挂吗软件...
推荐几款新版!德州之星有外 挂... 1、推荐几款新版!德州之星有外 挂,(德州ai)透视辅助器,热点讨论(原来有挂辅助挂)(UU pok...
推荐十款!德州ai人工智能,(... 推荐十款!德州ai人工智能,(智星德州菠萝)透明挂辅助app,一分钟了解(切实有挂);德州ai人工智...