• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

SOS求救信号发生器设计Verilog代码ISE nexys3开发板

09/05 08:19
458
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409261PH1132.doc

共1个文件

名称:SOS求救信号发生器设计Verilog代码ISE? nexys3开发板

软件:ISE

语言:Verilog

代码功能:

SOS求救信号发生器

1、控制LED0发出SOS信号,三次短闪烁三次长闪烁,短为1S,长为2S。

2、一个按键(rst)控制灯光和计时同时开始,同时暂停。

3、另外数码管显示计时的时间,从0000-9999,1S增1

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在nexys3开发板验证,nexys3开发板如下,其他开发板可以修改管脚适配:

nexys3开发板.png

演示视频:

设计文档:

1.工程文件

SOS_led:为下载到开发板的版本

SOS_led_sim:为将分频计数值减小的版本,可以减小仿真时间,仿真用该版本

2.程序文件

3.程序运行

4.Testbench

5.仿真图

部分代码展示:

`timescale?1ns?/?1ps
//////////////////////////////////////////////////////////////////////////////////
//?Company:?
//?Engineer:?
//?
//?Create?Date:????20:31:22?12/26/2018?
//?Design?Name:?
//?Module?Name:????SOS_led?
//?Project?Name:?
//?Target?Devices:?
//?Tool?versions:?
//?Description:?
//
//?Dependencies:?
//
//?Revision:?
//?Revision?0.01?-?File?Created
//?Additional?Comments:?
//控制LED0发出SOS信号,三次短闪烁三次长闪烁,短为1S,长为2S。
//一个按键(rst)控制灯光和计时同时开始,同时暂停。
//另外数码管显示计时的时间,从0000-9999,1S增1
//////////////////////////////////////////////////////////////////////////////////
module?SOS_led(
????input?clk,//时钟100M
????input?reset_p,//高电平复位--BTNL
????output?led,//SOS——led,高亮
????output?[7:0]?seg,//段选,低亮
????output?[3:0]?an//位选,低亮
????);
???
reg?[31:0]?div_cnt_1Hz=32'd0;//1s
//产生1Hz
reg?clk_1Hz=0;
always@(posedge?clk)
????if(div_cnt_1Hz>=32'd100000000)?begin//100000000Hz分频到1Hz,为加快仿真速度,仿真时减小到100
???????div_cnt_1Hz<=?32'd0;
???????clk_1Hz<=1;
???????end
????else?begin
???????div_cnt_1Hz<=div_cnt_1Hz?+?32'd1;?
???????clk_1Hz<=0;
???????end
//定义状态
parameter?s0=5'd0;
parameter?s1=5'd1;
parameter?s2=5'd2;
parameter?s3=5'd3;
parameter?s4=5'd4;
parameter?s5=5'd5;
parameter?s6=5'd6;
parameter?s7=5'd7;
parameter?s8=5'd8;
parameter?s9=5'd9;
parameter?s10=5'd10;
parameter?s11=5'd11;
parameter?s12=5'd12;
parameter?s13=5'd13;
parameter?s14=5'd14;
parameter?s15=5'd15;
parameter?s16=5'd16;
parameter?s17=5'd17;
parameter?s18=5'd18;
parameter?s19=5'd19;
parameter?s20=5'd20;
parameter?s21=5'd21;
parameter?s22=5'd22;
parameter?s23=5'd23;
parameter?s24=5'd24;
parameter?s25=5'd25;
parameter?s26=5'd26;
parameter?s27=5'd27;
parameter?s28=5'd28;
parameter?s29=5'd29;
reg?[4:0]?current_state=5'd0;
reg?light=0;
assign?led=light;
always@(posedge?clk)
if(reset_p)begin
????current_state<=s0;
?light<=0;
?end
else
if(clk_1Hz)//1秒变化一个状态
????case(current_state)
????????s0:begin
????????????current_state<=s1;
????????????light<=1;//一秒亮
????????????end
????????s1:begin
????????????current_state<=s2;
????????????light<=0;//一秒灭
????????????end
????????s2:begin
????????????current_state<=s3;
????????????light<=1;//一秒亮
????????????end
????????s3:begin?
????????????current_state<=s4;
????????????light<=0;//一秒灭
???????????end
????????s4:begin?
???????????????current_state<=s5;
???????????????light<=1;//一秒亮
??????????????end
????????s5:begin?
???????????????current_state<=s6;
???????????????light<=0;//一秒灭
???????????????end
????????s6:begin?
???????????????current_state<=s7;
???????????????light<=1;//一秒亮
???????????????end
????????s7:begin?????????????????????????????????
???????????????current_state<=s8;????????????????????????
???????????????light<=1;//一秒亮??????????
???????????????end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1144

  • 2-2409261PH1132.doc
    下载

相关推荐