FPGA——点亮led灯

news2024/11/24 6:45:39

文章目录

    • 一、实验环境
    • 二、实验任务
    • 三、实验过程
      • 3.1 编写verliog程序
      • 3.2 引脚配置
    • 四、仿真
      • 4.1 仿真代码
      • 4.2仿真结果
    • 五、实验结果
    • 六、总结

一、实验环境

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 引脚配置

在这里插入图片描述

四、仿真

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仿真结果

在这里插入图片描述

五、实验结果

六、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现CAN-SOME/IP通信路由测试

区别于基于UDP的车内通信路由&#xff0c;基于SOME/IP协议的路由增加了服务发现&#xff08;Service Discovery&#xff09;和服务发布&#xff08;Service Publish&#xff09;&#xff0c;那对于测试工程师来说&#xff0c;怎么实现CAN-SOME/IP路由的测试呢&#xff1f; 01 …

开放式耳机的类型有哪些?开放式耳机有什么优点?本文章为你讲解

伴随着开放式耳机越来越受大家欢迎&#xff0c;很多人还不知道开放式耳机是什么&#xff0c;有哪些好用的&#xff0c;有哪些优点&#xff0c;就直接入手了&#xff0c;结果踩雷了&#xff01;面对这些常见问题&#xff0c;我来跟大家一一讲解开放式耳机热门问题。 1.开放式耳…

【C#】并行编程实战:同步原语(3)

在第4章中讨论了并行编程的潜在问题&#xff0c;其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时&#xff0c;就需要同步每个线程的结果。线程局部存储和分区局部存储&#xff0c;某种程度上可以解决同步问题。但是&#xff0c;当数据共享时&#xff0c;就需要用…

浅谈企业能源管理系统在水泥企业的设计与应用

安科瑞 华楠 摘要: 水泥企业是我国高能耗行业之一&#xff0c;一直是政府推进节能减排工作的控制对象。建立企业能源管理系统&#xff0c;实现从能源因素采集、过程监控、能耗管理控制全过程的自动化、科学化管理。加大能源的合理化使用&#xff0c;减少能源消耗&#xff0c;对…

UE初级-C++基础-1.类库简介及目录结构

原文链接&#xff1a;UE5 C教程&#xff08;一、基本结构&#xff09;_skycol的博客-CSDN博客 原文链接&#xff1a;UE4C学习篇&#xff08;一&#xff09;_卡西莫多说的博客-CSDN博客 一.类库简介 虚幻API由三部分组成&#xff0c;分别是Runtime, Developer utilitiew&#…

门票售罄+酒店满房+营收创新高 原拓·非遗嘉年华战报来袭

7月2日&#xff0c;原拓非遗文化嘉年华首站在北京圆满落幕。作为原拓酒店创立的品牌活动IP&#xff0c;原拓非遗文化嘉年华携手非遗传承人、艺术创作者、文创品牌等志同道合的伙伴&#xff0c;在酒店空间呈现丰富体验&#xff0c;通过 DIY 工作坊、创意市集等方式&#xff0c;让…

【机器人模拟-02】 模拟移动机器人设置里程计

一、说明 在本教程中,我将向您展示如何设置移动机器人的测程。本教程是“机器人模拟”指南中的第二个教程。测量位移是仿真中的重要内容,设置测程的官方教程在此页面上,但我将逐步引导您完成整个过程。 您可以在此处获取此项目的完整代码。让我们开始吧! 二、ROS 2 中的里程…

MySQL查询数据库、表以及表行数所占内存大小

前言 在开发中我们想知道某个数据库,或者某个数据表的内存大小,那么怎么查询呢?下面通过简单示例一一介绍,希望对您有所帮助。 某表每行所占字节数 SELECT TABLE_NAME , CONCAT((DATA_LENGTH + INDEX_LENGTH), 字节) AS 每行占用字节数 FROM information_schema.TAB…

高并发的哲学原理(六)-- 拆分网络单点(下):SDN 如何替代百万人民币的负载均衡硬件

上一篇文章的末尾&#xff0c;我们利用负载均衡器打造了一个五万 QPS 的系统&#xff0c;本篇文章我们就来了解一下负载均衡技术的发展历程&#xff0c;并一起用 SDN&#xff08;软件定义网络&#xff09;技术打造出一个能够扛住 200Gbps 的负载均衡集群。 负载均衡发展史 F5 …

备战秋招 | 笔试强训4

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、有以下程序&#xff0c;程序运行后的输出结果是&#xff08;&#xff09; #include<iostream> #include<cstdio> using namespace std; int main() {int m0123, n123;printf(&quo…

【LeetCode: 931. 下降路径最小和 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

中国8K摄像机厂家加入国际广电设备制造商协会IABM

近日&#xff0c;BOSMA博冠正式成为国际广电设备制造商协会IABM会员&#xff0c;标志着中国8K摄像机厂家BOSMA博冠在广播电视超高清前端采集领域受到全球广电权威机构认可&#xff0c;进一步推动国产品牌在全球市场竞争中提升品牌知名度、加强行业影响力。 IABM创立于1976年&am…

【Unity面试篇】Unity 面试题总结甄选 |C#基础篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

android更换开机动画

android11 路径&#xff1a;device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例&#xff1a;android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径&#xff1a;device / softwinner / {PRO…

2023年最全最新的学习课程合集

WEB前端入门&#xff1a;从零开始做网站。 完成所有课堂练习就可以做出自己的作品&#xff0c;并掌握数据库和了解开源项目。 这些课程涵盖了HTML、CSS和JavaScript等前端技术&#xff0c;以及与之相关的设计原则和最佳实践。 前端课程的目标是培养学生在网页开发方面的技能…

uniCloud

uniCloud 一、介绍1.新建项目2.初识云函数 二、数据库1.在云控制台操作数据库2.通过云函数对数据库进行操作&#xff08;1&#xff09;查询&#xff08;2&#xff09;修改&#xff08;3&#xff09;删除 3.客户端操作4.JQL语法 三、云函数四、云对象五、云存储六、uni-id七、扩…

2023年7月深圳软考中级系统集成项目管理工程师报名

系统集成项目管理工程师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职…

EasyCVR接口调用正常,但快照不显示是什么原因?

有用户反馈&#xff0c;现场部署了EasyCVR v3.1版本&#xff0c;将设备通过国标GB28181协议接入到平台&#xff0c;但是页面没有显示出快照&#xff0c;请求我们协助排查。 针对用户的反馈&#xff0c;我们立即排查。排查后发现&#xff0c;视频播放是正常的&#xff0c;调用接…

玩转字符串函数与字符函数——【C语言】

在C语言的学习中&#xff0c;我们经常会遇到字符串&#xff0c;对它的处理也是数不胜数&#xff0c;但是我们没有很好的处理办法&#xff0c;字符串只能放在字符数组或常量字符串中通过自定义函数去使用处理。而现在我将带领大家学习C语言函数库中专门处理字符串的函数。 这些…

超高性能MCU发布,为开发人员提供了高效的工具链

近日嵌入式开发软件和服务的全球领导者IAR与业界领先的半导体器件供应商兆易创新(GigaDevice)宣布&#xff0c;联合推出最新版本IAR Embedded Workbench for Arm 9.40已经全面支持兆易创新的GD32H737/757/759系列超高性能MCU微控制器&#xff0c;这为**ERP系统**开发人员提供了…