FPGA入门教程示例
本教程基于案例逐步介绍FPGA逻辑代码的设计与实现方法,核心是硬件描述语言Verilog HDL(简称Verilog)的语法介绍。
richfu72
专注FPGA开发近20年,特别熟悉图像与视频处理、高速数据采集、通信与雷达领域的工作。
展开
-
04_led_water_flow_v0 流水灯
流水灯是一种灯效模式,LED灯在一定的时间间隔内依次点亮或熄灭,形成像水流一样的效果。而跑马灯则是LED灯在一定的时间间隔内依次从左向右或从右向左依次点亮或熄灭,形成像跑马一样的效果,每个时刻只有一个灯亮,其他灯都熄灭。流水灯和跑马灯都是一种常见的LED灯效,它们在灯光的变化方式上有所不同。了解呼吸灯的效果,思考如何用Verilog设计实现。使用dip开关控制跑马灯的速度和方向。原创 2024-05-05 12:01:22 · 585 阅读 · 0 评论 -
05. 基于Verilog的呼吸灯程序设计
学习了点亮LED、LED闪烁、LED跑马灯和LED呼吸灯这样多种模式LED效果,思考如何将这些不同的效果在一个工程里全部实现,并利用DIP开关选择不同的运行模式,呈现不同的效果。一个基于Verilog的呼吸灯程序示例,该程序通过PWM(脉冲宽度调制)技术来模拟呼吸灯的效果,逐渐变亮再逐渐变暗的LED灯,给人一种灯光在“呼吸”的感觉。PWM(脉冲宽度调制):通过改变输出信号的占空比来模拟不同亮度的LED灯。呼吸灯亮度变化:呼吸灯的亮度变化通过改变占空比的值来模拟。原创 2024-05-05 20:08:13 · 753 阅读 · 0 评论 -
03_led_horse_run_v1 跑马灯
跑马灯是一种常见的电子显示方式,它通过控制多个LED灯的顺序点亮,形成一种动态的视觉效果,看起来就像灯在“跑”一样。在Verilog中实现跑马灯通常涉及到使用一个计数器来控制LED灯的亮灭顺序。使用dip开关控制跑马灯的速度和方向。原创 2024-05-05 11:20:36 · 556 阅读 · 0 评论 -
03_led_horse_run_v0 跑马灯
Verilog实现跑马灯,通过控制多个LED灯的顺序点亮,形成一种动态的视觉效果,看起来就像灯在“跑”一样。原创 2024-05-05 11:19:27 · 499 阅读 · 0 评论 -
02.2 基于Verilog控制LED以不同频率闪烁
本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块,其功能是控制6个LED灯同步闪烁,每秒钟闪烁一次。使用模块级parameter关键词定义一些常量,模块级参数可以在例化模块的时候给出具体值,参数化模块使得代码更具灵活,提高可复用性。在模块接口的output接口使用reg型变量,因此代码中不再需要。使用唯一的三目运算符(?:)处理组合逻辑的多路分支。增加一组dip控制引脚,用于控制LED闪烁的速度;这样的代码,代码更简洁。原创 2024-04-28 16:06:54 · 494 阅读 · 0 评论 -
02.3 基于Verilog控制多个LED灯以不同频率闪烁
使用一个特定位宽的count变量控制多个LED的速度,与之前版本不同,本例代码中,6个led可以以不同的速度闪烁,呈现更丰富的效果,为后续跑马灯,流水灯和呼吸灯做准备,同学们要重点理解变量位宽的概念和位宽的确定方法。本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块,其功能是控制6个LED灯同步闪烁,每秒钟闪烁一次。使用Verilog的位拼接语法,组合各个led不同的闪烁速度。原创 2024-04-28 16:21:53 · 488 阅读 · 0 评论 -
02.0 基于Verilog控制LED灯每秒钟闪烁一次
本例代码用于理解时序逻辑的概念,理解多个always模块完全并行执行的概念,讲授时可以与C语言的执行过程进行比对,特别是分支结构与C语言形式上非常相似。本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块,其功能是控制6个LED灯同步闪烁,每秒钟闪烁一次。原创 2024-04-28 15:36:43 · 490 阅读 · 1 评论 -
02.1 基于Verilog控制LED灯闪烁,使用Parameter增强可维护性和可读性
版本相比,本例使用parameter关键词定义一些常量,使得代码更具可读性,增强可维护性。Verilog模块中的parameter类似于C语言的const常量。本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块,其功能是控制6个LED灯同步闪烁,每秒钟闪烁一次。版本相比,本例在模块接口的output接口使用reg型变量,因此代码中不再需要。这样的代码,代码更简洁。原创 2024-04-28 15:47:02 · 322 阅读 · 0 评论