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,按下表示低电平,进行复位。具体设置如下:
在这里插入图片描述
生成比特流文件并写入开发板,效果如下:
一秒闪烁一次
在这里插入图片描述
在这里插入图片描述

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

相关内容

热门资讯

透视步骤!agpoker辅助,... 透视步骤!agpoker辅助,心悦辅助(辅助)确实一直总是有脚本(哔哩哔哩)1、游戏颠覆性的策略玩法...
透视经验!hhpoker脚本下... 透视经验!hhpoker脚本下载,HHpoker透视脚本真是是真的有脚本,第8分钟教程(讲解有挂)1...
第六分钟妙计!开心泉州作必弊,... 第六分钟妙计!开心泉州作必弊,h5反杀程序(辅助)真是真的有软件(哔哩哔哩)开心泉州作必弊透视方法中...
攻略辅助挂!潮汕激k辅助,po... 攻略辅助挂!潮汕激k辅助,pokemmo脚本(透视)开挂辅助脚本(哔哩哔哩)1、打开软件启动之后找到...
透视手段!来玩app 德州 辅... 透视手段!来玩app 德州 辅助,潮汕来物局透视脚本(辅助)切实是有教程(哔哩哔哩)1、潮汕来物局透...
两分钟要领!闲逸亲友圈app辅... 两分钟要领!闲逸亲友圈app辅助,微信开心十三张脚本(辅助)竟然有挂平台(哔哩哔哩)1、微信开心十三...
透视真的!广东闲来辅助免费,德... 透视真的!广东闲来辅助免费,德州圈脚本(透视)开挂辅助教程(哔哩哔哩)一、广东闲来辅助免费可以开透视...
透视手段!德扑圈透视,德普之星... 您好,德扑圈透视这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家在这...
第八分钟指南!钱塘十水三挂件,... 第八分钟指南!钱塘十水三挂件,新道游辅助透视下载(辅助)果然有挂平台(哔哩哔哩)1、金币登录送、破产...
透视法门!拱趴大菠萝作弊方法,... 透视法门!拱趴大菠萝作弊方法,WePoKer新版本切实真的是有下载,7分钟教程(有挂讲解)亲,关键说...