FPGA开发——实现流水灯的设计
创始人
2024-12-05 01:04:44
0

一、概述

众所周知,在我们学习任何一款硬件,不管是单片机MCU,DSP以及其他的一系列硬件在内的最开始接触的都是LED流水灯的实现,这就和我们在学习编程时的输出“Hello World”一样,我们在学习FPGA的过程当中也是要从LED流水灯开始学起。

在FPGA开发中我们不管是实现什么功能,基本上都是需要使用计数器作为基础,这里也不例外。

二、设计代码的编写

//模块定义 module  led(     input rst_n,     input clk,     output reg [3:0]  led_out );   //参数定义 parameter TIME_500ms= 25_000_000; //内部信号定义 reg [24:0]  cnt;//计数500ms所需要的二进制位数 wire        add_cnt;//计数器开启条件 wire        end_cnt;//计数器结束条件 reg  [3:0]  state_n; //计数器实现功能,0.5秒技术 always @(posedge clk or negedge rst_n)begin     if(!rst_n)begin         cnt<=0;     end     else if(add_cnt)begin         if(end_cnt)             cnt<=0;         else             cnt<=cnt+1;     end     else         cnt<=0;  end assign add_cnt=1'b1; assign end_cnt=add_cnt && cnt ==(TIME_500ms-1);  always @(posedge clk or negedge rst_n)begin     if(!rst_n)         led_out<=4'b0011;     else if(end_cnt)begin         led_out<={led_out[2:0],led_out[3]};     end      else         led_out<=led_out; end  endmodule

在这个代码中我们需要注意的就是使用拼接符实现LED灯的循环移动led_out<={led_out[2:0],led_out[3]};这句代码实现的就是将最高位和最低位进行不断交换。

三、测试文件的编写

//定义时间尺度 `timescale 1ns/1ps module led_tb();  //重定义 defparam  led_inst.TIME_500ms = 25; //内部变量定义 reg clk; reg rst_n; wire [3:0] led_out;  //模块实例化 led led_inst(     /*input              */ .rst_n    (rst_n     ),     /*input            */ .clk      (clk       ),     /*output reg [3:0] */ .led_out  (led_out   ) );  //时钟 parameter CLK_CLY =20; initial clk=0; always  #(CLK_CLY/2) clk=~clk;  //复位 initial begin     rst_n =1'b0;     #(CLK_CLY*2);     #3;     rst_n =1'b1; end  //激励  endmodule

因为这里我们设置的周期是ms计数,相比于硬件本身的20ns来说非常大,所在我在测试文件中对于周期做了一个重定义——defparam  led_inst.TIME_500ms = 25;在测试文件中的重定义不会影响设计文件中的值,所以可以放心使用。

四、波形仿真

在波形图中我们可以看到LED灯从 0001——1000进行不断的循环流水。

四、下板验证

相关内容

热门资讯

一直以来!丽水都来大菠萝脚本辅... 一直以来!丽水都来大菠萝脚本辅助,牵手辅助神器下载,分享教程(确实是真的挂)-哔哩哔哩小薇(透视辅助...
一直以来!途游游戏辅助软件,正... 一直以来!途游游戏辅助软件,正宗牛总管辅助,解密教程(其实真的是有挂)-哔哩哔哩1、途游游戏辅助软件...
突发!填大坑辅助器,来来拼十免... 突发!填大坑辅助器,来来拼十免费辅助,微扑克教程(竟然存在有挂)-哔哩哔哩所有人都在同一条线上,像星...
目前来看!新超凡软件辅助,蜀山... 目前来看!新超凡软件辅助,蜀山四川辅助脚本,透明挂教程(一直是真的挂)-哔哩哔哩1、进入游戏-大厅左...
此事备受玩家关注!闲逸平台辅助... 此事备受玩家关注!闲逸平台辅助功能入口在哪里,胡乐辅助脚本是真的假的,科技教程(切实真的是有挂)-哔...
受玩家影响!传送屋有没有挂,闲... 受玩家影响!传送屋有没有挂,闲来辅助神器,2025版教程(一贯存在有挂)-哔哩哔哩1、传送屋有没有挂...
现有关情况通报如下!欢乐达人程... 现有关情况通报如下!欢乐达人程序源码,欢聚水鱼脚本,详细教程(都是存在有挂)-哔哩哔哩1、这是跨平台...
近年来!友友联盟破解版下载,八... 近年来!友友联盟破解版下载,八闽掌上十八卦脚本,爆料教程(都是存在有挂)-哔哩哔哩1、进入游戏-大厅...
突发!战神辅助直装破解版,福建... 突发!战神辅助直装破解版,福建天天13水插件,曝光教程(其实存在有挂)-哔哩哔哩在进入战神辅助直装破...
有玩家发现!微信小程序多乐跑辅... 有玩家发现!微信小程序多乐跑辅助,心悦踢坑神器软件下载,可靠教程(其实存在有挂)-哔哩哔哩亲,关键说...