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

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

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

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
    下载

相关推荐