0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过点灯逻辑体验FPGA的编程流程

电子森林 来源:FPGA入门到精通 作者:FPGA入门到精通 2021-02-02 17:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

“点灯”是我们板农们拿到一块板子后第一个要实现的目标,正如软件工程师尝试新的语言必然会先写出“hello world”一样。

学习FPGA也不例外,不要小瞧这只小小的LED,它能在你学习的路上带给你光明,引导一个门外汉跨进可编程逻辑世界的大门!

作为“寒假在家一起练”的第二次直播讲座,我们今天就基于1个LED做了1个多小时的分享,从创建第一个FPGA项目、写下第一句Verilog代码,到调用FPGA的IP Cores,体验了FPGA的设计流程以及Verilog的基本语法规范。

用的平台是这款:

96bb413a-5fd1-11eb-8b86-12bb97331649.png

模块MIcroUSB右侧白色的小东东就是一只用FPGA的IO连接的LED,左侧的一只是电源指示灯,只要板上电源工作正常它就能亮。而FPGA连接的LED则可以通过编程FPGA内部的逻辑实现不同的状态。

BTW,苏老师所有的FPGA项目中最前面的几行代码肯定是一个每秒跳动一次的“心跳灯”,看着它跳动,心安。

先简单说一下点灯的要素 -LED点灯的工作原理

9782aca2-5fd1-11eb-8b86-12bb97331649.png

LED的典型连接方式

灯亮以及灯亮时的亮度取决于下面的因素:

供电电源和控制管脚之间的压差一定要大于LED的正向偏压Vbias灯才能亮,否则是灭的。不同的器件,不同颜色的LED其偏压也是不同的,要看数据手册;

改变电阻值R1(我们一般称之为限流电阻), I = (3.3V-Vbias)/R1也就发生了变化,LED的亮度也跟着变;

已经设计好的板子,限流电阻的值已经可能动态地改变,如果要调整LED的亮度,就要调节流经LED和限流电阻上的平均电流

项目1 - 让LED灯亮起来:

创建项目一个新项目- LED

创建Verilog代码 module(led),体会Verilog的语法结构;

module LED (led); output led; assign led = 1'b0; endmodule

编译

分配管脚(查找管脚映射表,通过电路图或项目中的表格)

生成jed文件

查看资源占用情况

下载到16管脚的FPGA模块上

项目2 - 让LED灯跳动起来

在module的端口中添加clk的输入信号

在verilog逻辑中通过计数分频产生12M/223(~1.5Hz) 的周期信号,体会wire、reg的区别以及计数分频的实现方法

module LED (clk_in,led);input clk_in;output led; reg [23:0] counter; always @(posedge clk_in) counter = counter + 1'b1; assign led = counter[23]; endmodule

编译

分配管脚中补充新的clk管脚

生成jed文件

查看资源占用情况

下载到16管脚的FPGA模块上

项目3 - 让LED灯每秒刚好跳动1次

修改Verilog逻辑,能够产生精准的1Hz的周期信号,体会偶数分频乃至奇数分频的实现方法

module LED (clk_in,led);input clk_in;output led; parameter T1S = 12_000_000;parameter T05S = T1S/2; reg [23:0] counter; always @(posedge clk_in) begin if(counter < T1S-1) counter <= counter + 1'b1; else counter <= 1'b0; end assign led = (counter < T05S); endmodule

生成jed文件

查看资源占用情况

下载到16管脚的fpga模块上,对比结果

项目4 - 心跳加速会如何?- 50Hz的心跳灯

修改verilog逻辑,产生50Hz的周期信号

生成jed文件

下载到16管脚的fpga模块上,LED亮度变化,视觉暂留的效果,可以通过调节占空比控制LED的亮度(PWM),亮度与占空比(平均电流)非线性

单色的LED - 通过调节驱动信号的占空比调节LED的亮度

984787f2-5fd1-11eb-8b86-12bb97331649.gif

3色的LED - 通过调节每种颜色的LED的亮度实现不同的颜色组合

项目5 - 体验内部锁相环的使用以及内部IP Core的调用方式

添加PLL的IP

修改Verilog逻辑,通过PLL输出的时钟,产生1Hz的周期信号

生成jed文件

查看资源占用情况

下载到16管脚的fpga模块上

其实还有更多可玩的,时间关系就让同学们自己去琢磨和体验去了,比如:

“呼吸”灯 - 通过PWM来实现呼吸的效果

“流水”灯 -多只LED组合,通过逻辑编程可以实现炫酷的效果(1维)

“交通”灯 - R、G、B三色组合,通过状态机的编程模拟道路交通灯的工作状态

数码管 - 其实也是几根LED组合在一起的显示器件

点阵LED屏 - 体会图形化显示的基本原理

一颗LED才几分钱,但可以玩出很多花样,可以锻炼很多技能,是不是?

原文标题:通过点灯的逻辑体验FPGA的编程流程以及Verilog语法基础

文章出处:【微信公众号:FPGA入门到精通】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22553

    浏览量

    640500
  • 编程
    +关注

    关注

    90

    文章

    3725

    浏览量

    97515

原文标题:通过点灯的逻辑体验FPGA的编程流程以及Verilog语法基础

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工程师高培解读XilinxVivadoFPGA设计进阶与AI自动编程

    编程的总结,以下围绕八个核心模块展开技术要点,供FPGA开发者参考。 一、理解FPGA底层结构 用好Vivado,需要对FPGA内部结构有清晰认识。LUT(查找表)实现组合
    的头像 发表于 04-22 16:29 245次阅读
    工程师高培解读XilinxVivado<b class='flag-5'>FPGA</b>设计进阶与AI自动<b class='flag-5'>编程</b>

    赛灵思FPGA电源解决方案全解析

    个复杂且关键的环节。本文将深入探讨赛灵思(Xilinx)FPGA的电源解决方案,为电子工程师们提供全面的参考。 文件下载: MAX17017DEVKIT+.pdf FPGA概述 FPGA是一种可
    的头像 发表于 04-02 15:45 306次阅读

    【黑金云课堂笔记】第一~二期知识点总结

    知识卡片一:【FPGA 基础篇】开启硬件编程之门 FPGA 的本质 : FPGA(现场可编程门阵列)并非在运行软件程序,而是在 构建电路本身
    的头像 发表于 04-01 16:10 272次阅读

    FPGA在音频产品上的应用案例

    FPGA(Field-Programmable Gate Array),现场可编程逻辑门阵列,它是一种电子设备,用于执行任何(数字)逻辑功能或数字电路的硬件实现。它是作为专用集成电路(
    的头像 发表于 03-19 10:30 4787次阅读
    <b class='flag-5'>FPGA</b>在音频产品上的应用案例

    基于FPGA的低照度条件下EBAPS图像混合噪声去除算法

    本文提出了基于可编程逻辑门阵列(field programmable gate array,FPGA)的开关融合中值-高斯(open and close mix-median-Gaussian,OCMMG)滤波算法。
    的头像 发表于 03-11 09:24 7506次阅读
    基于<b class='flag-5'>FPGA</b>的低照度条件下EBAPS图像混合噪声去除算法

    FPGA 入门必看:Verilog 与 VHDL 编程基础解析!

    的基础概念和实践方法。一、FPGA与MCU/MPU的区别MCU/MPU:顺序执行程序,CPU负责所有逻辑FPGA:可编程逻辑阵列,逻辑电路可
    的头像 发表于 01-19 09:05 820次阅读
    <b class='flag-5'>FPGA</b> 入门必看:Verilog 与 VHDL <b class='flag-5'>编程</b>基础解析!

    使用TinyFPGA-Bootloader将比特流加载到FPGA

    FPGA 设计中,一个常见但略显繁琐的环节是:如何方便地将新的比特流加载到 FPGA。尤其是在没有专用 USB-JTAG/编程芯片或者在低成本板卡中,传统的编程方式可能需要额外硬件
    的头像 发表于 12-19 15:20 5238次阅读
    使用Tiny<b class='flag-5'>FPGA</b>-Bootloader将比特流加载到<b class='flag-5'>FPGA</b>

    嵌入式和FPGA的区别

    ,芯片内部的门电路连接在出厂时就已固定,无法更改,它们的功能是通过软件编程也就是嵌入式软件来实现的。 FPGA(现场可编程门阵列) 则是一种可编程
    发表于 11-19 06:55

    FPGA板下载运行调试流程

    今天主要介绍一下整个FPGA板下载运行调试流程。 1、首先,参考网址https://doc.nucleisys.com/hbirdv2/soc_peripherals/ips.html#gpio 第
    发表于 10-29 06:57

    FPGA板下载调试流程

    今天主要介绍一下整个FPGA板下载运行调试流程。 1、首先,参考网址https://doc.nucleisys.com/hbirdv2/soc_peripherals/ips.html#gpio 第
    发表于 10-29 06:37

    编程逻辑控制器PLC是什么?如何实现上网通信?

    编程逻辑控制器(PLC)是一种专为工业环境设计的数字运算操作电子系统,其核心是通过编程存储器存储逻辑运算、顺序控制、定时、计数和算术运算
    的头像 发表于 09-22 17:27 1306次阅读

    5CEBA4F23C8NQS现场可编程门阵列(FPGA)芯片

    5CEBA4F23C8NQS现场可编程门阵列(FPGA)芯片5CEBA4F23C8NQS是Intel-ALTERA(原 Altera)研发的Cyclone V系列性能卓越、低能耗的现场可编程门阵列
    发表于 06-11 09:01

    从发明到 AI 加速:庆祝 FPGA 创新 40 周年

    今年是首款商用现场可编程门阵列( FPGA )诞生 40 周年,其带来了可重编程硬件的概念。通过打造“与软件一样灵活的硬件”,FPGA 可重
    发表于 06-05 17:32 1495次阅读
    从发明到 AI 加速:庆祝 <b class='flag-5'>FPGA</b> 创新 40 周年

    【经验分享】玩转FPGA串口通信:从“幻觉调试”到代码解析

    FPGA开发,思路先行!玩FPGA板子,读代码是基本功!尤其对从C语言转战FPGA的“宝贝们”来说,适应流水线(pipeline)编程可能需要点时间。上篇
    的头像 发表于 06-05 08:05 1289次阅读
    【经验分享】玩转<b class='flag-5'>FPGA</b>串口通信:从“幻觉调试”到代码解析

    MCU+CPLD 联合编程(概念及流程

    编程技巧。 一、前述 在AG32芯片(所有型号)中,都有内嵌2K的逻辑门,可供FPGA/CPLD来使用。 也就是说,使用AG32的芯片时,有三种选择: 只使用MCU部分; 只使用CPLD部分
    发表于 05-26 16:22