FPGA——点亮led灯

这篇具有很好参考价值的文章主要介绍了FPGA——点亮led灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验环境

quartus18.1
vscode
Cyclone IV开发板

二、实验任务

每间隔1S实现led灯的亮灭,实现流水灯的效果。

三、实验过程

3.1 编写verliog程序

//每间隔1S实现LED的亮灭
module led(
    input           clk     ,
    input           rst_n   ,

    output  reg   [3:0]  led   
);

//计时1S
//parameter CNT0_2S = 24'd9;//如果要进行仿真的话就使用这个计数器
parameter CNT0_2S = 24'd9_999_999;
reg [23:0]  cnt     ;//保存时钟上升沿的个数
reg [1:0]   state   ;

always @(posedge clk or negedge rst_n) begin//对寄存器赋值要使用always
    if(!rst_n)begin
        cnt <= 24'd0;
    end
    else if(cnt == CNT0_2S)begin
        cnt <= 24'd0;
    end
    else begin
        cnt <= cnt + 1'd1;
    end
end

always @(posedge clk or negedge rst_n) begin
    if(!rst_n)begin
        state <= 2'd0;
    end
    else if(state == 2'd3 && cnt == CNT0_2S)begin
        state <= 2'd0;
    end
    else if(cnt == CNT0_2S)begin
        state <= state + 1'd1;
    end
end

always @(posedge clk or negedge rst_n) begin
    if(!rst_n)begin
        led <= 4'b0000;
    end
    else begin
        case (state)
            2'd0:   led <= 4'b0001;
            2'd1:   led <= 4'b0010;
            2'd2:   led <= 4'b0100;
            2'd3:   led <= 4'b1000;
            default:led <= 4'b0000;
        endcase
    end
end

//0001,0010,0100,1000,0001
// always @(posedge clk or negedge rst_n) begin
//     if(!rst_n)begin
//         led <= 4'b0001;
//     end
//     else if(cnt == CNT0_2S)begin
//         led <= {led[2:0],led[3]};//使用位拼接可以更简单的实现流水灯
//     end
//     else begin
//         led <= led;
//     end
// end
endmodule

3.2 引脚配置

FPGA——点亮led灯,fpga开发

四、仿真

4.1 仿真代码

`timescale 1ns/1ns
module led_tb();
    reg     clk;
    reg     rst_n;

    wire    [3:0]   led;

always #10 clk = ~clk;

initial begin
    clk         =   1'b0;
    rst_n       =   1'b0;
    #10 rst_n   =   1'b1;
    #1000 $stop ;
end

led     u_led(
    .clk     (clk),
    .rst_n   (rst_n),
    .led     (led)   
);

endmodule

4.2仿真结果

FPGA——点亮led灯,fpga开发

五、实验结果

六、总结

本次实验主要是学习verilog的基础语法,掌握计数器的编写以及时序逻辑的设计方法。另外在进行仿真的时候需要修改计数器的大小,因为我们仿真设计的是延时1000ns,如果不把计数器改小的话就只能看到最开始的0001的状态,就无法判断逻辑是否出错。文章来源地址https://www.toymoban.com/news/detail-601749.html

到了这里,关于FPGA——点亮led灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA学习——点亮流水灯

    在FPGA开发板中,一般板载LED默认高电平点亮,因此我们只需要将想要亮起的LED赋值为1即可。 本入门实验要求为每隔1s开发板上的LED轮流亮起,因此我们需要一个1s的计数器, 由于开发板晶振时钟为50MHz,因此我们计数50_000_000即为1s。 注意:为了后续方便仿真所以这里MAX设置

    2024年02月13日
    浏览(48)
  • FPGA输出lvds信号点亮液晶屏

            该方案用于生成RGB信号,通过lvds接口驱动逻辑输出,点亮并驱动BP101WX-206液晶屏幕。 参考:下面为参考文章,内容非常详细。 Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客 http://t.csdn.cn/Zy37p         MMCM模块为时钟模块,负责将系统时钟变频与输出,产

    2024年02月09日
    浏览(51)
  • 学习笔记|LED点亮原理|STC32G单片机视频开发教程(冲哥)|第四集-下:点亮LED

    新建工程时待选择的Device:如 STC32G12K128 Seies,需要先在下拉菜单中选择“STC MCU Database”,然后可以选择STC32G12K128 Seies了。 当前以上节课的代码为基础,经过精简后的代码(裸板未添加任何头文件): 需手工下载至开发板(屠龙刀三.1版)。 当前已实现功能:点亮P2^1端口的板

    2024年02月13日
    浏览(55)
  • 野火stm32指南者开发板点亮LED

    目录 1.芯片手册中的LED电路图 2.官网手册 3.代码演示 3.1 stm32f10x.h 头文件 3.2 点亮绿灯 3.3 点亮蓝灯 3.4 点亮红灯 3.5 LED灯闪烁,绿灯闪烁 。 3.6 红绿蓝三色LED灯切换闪烁 3.1 stm32f10x.h 头文件 3.2 点亮绿灯 3.3 点亮蓝灯 3.4 点亮红灯 3.5 LED灯闪烁,绿灯闪烁 。 3.6 红绿蓝三色LED灯切

    2024年02月13日
    浏览(43)
  • 驱动开发学习之字符设备同时点亮三盏LED灯

    head.h test.c mychrdev.c

    2024年02月16日
    浏览(43)
  • FPGA之按键控制LED

    一、按键开关        1、按键开关(轻触开关):主要是指轻触式按键开关,属于电子元器件类,使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。        2、自锁按键:在开关

    2024年02月08日
    浏览(62)
  • STM32WB55_NUCLEO开发(9)----接收手机数据点亮LED

    本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过与STM32WB配对,向该特征写入一个任意字节,绿色LED会切换。 最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:6_15061293 。 首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板: 听不到声音的请点击

    2024年02月01日
    浏览(45)
  • 【elfboard linux开发板】11. 版本管理和修改设备树流程(点亮LED)

    git init 生成一个.git 目录 git config --global user.name 用户名 git config --global user.email 邮箱 vim .gitignore git status 查看状态 git add 文件名 git rm 文件名 git commit -m 说明 git log git branch git branch 分支名 git checkout 分支名 通过linux自带的gpio-leds驱动实现,改驱动通过调用Pinctrl子系统和GPIO子系

    2024年02月02日
    浏览(37)
  • 摁键控制LED灯(FPGA)

    提示:以下是本篇文章正文内容,下面案例可供参考 1.无按键按下时,LED灯全灭; 2.按键1按下时,LED灯显示.自右向左的流水效果; 3.按键2按下时,LED灯显示自左向右的流水效果; 4.按键3按下时,四个LED灯同时闪烁 5.按键4按下时,LED灯全亮 如图1所示,本实验使用四个按键开

    2024年02月08日
    浏览(39)
  • FPGA——HLS入门-LED闪烁仿真

    HLS就是高综合(High level Synthesis)的缩写,通过HLS,我们可以将C或者c++语言编译为FPGA能够读懂和运行的RTL级别的语言。 这个术语是行为和电子系统的结合:是一门技术,也是一门科学,它把设计意图抽象化,抽象视图可以自动地将人类设计者的努力付诸现实。最终生成的设

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包