差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
10._交通灯 [2019/12/24 09:58] anran [====硬件说明与实现项目框图====] |
10._交通灯 [2021/10/03 01:32] gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====简易交通灯===== | + | ## 简易交通灯 |
本节将向您介绍Verilog语法之中的精髓内容——状态机,并且将利用状态机实现十字路口的交通灯。 | 本节将向您介绍Verilog语法之中的精髓内容——状态机,并且将利用状态机实现十字路口的交通灯。 | ||
\\ | \\ | ||
- | ====硬件说明与实现项目框图==== | + | ### 1. 硬件说明与实现项目框图 |
- | ------- | + | |
// | // | ||
{{ ::jiaotongdeng.png?300 |}} | {{ ::jiaotongdeng.png?300 |}} | ||
行 22: | 行 22: | ||
// | // | ||
{{ ::状态示意图.png?500 |}} | {{ ::状态示意图.png?500 |}} | ||
- | } | + | // |
- | ====Verilog代码==== | + | |
- | ------ | + | ### 2. Verilog代码 |
首先是时钟分频部分: | 首先是时钟分频部分: | ||
<code verilog> | <code verilog> | ||
行 161: | 行 162: | ||
parameter time_s1 = 4'd15, //计时参数 | parameter time_s1 = 4'd15, //计时参数 | ||
time_s2 = 4'd3, | time_s2 = 4'd3, | ||
- | time_s3 = 4'd10, | + | time_s3 = 4'd7, |
time_s4 = 4'd3; | time_s4 = 4'd3; | ||
//交通灯的控制 | //交通灯的控制 | ||
行 278: | 行 279: | ||
\\ | \\ | ||
\\ | \\ | ||
- | ====引脚分配==== | + | |
- | ------- | + | ### 3. 引脚分配 |
小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 | 小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 | ||
\\ | \\ | ||
行 292: | 行 294: | ||
配置好以后编译下载程序。您也可以试试修改程序,观察修改代码对于FPGA内部电路所造成的影响。\\ | 配置好以后编译下载程序。您也可以试试修改程序,观察修改代码对于FPGA内部电路所造成的影响。\\ | ||
- | ====小结==== | + | ### 4. 小结 |
- | ------ | + | |
状态机是一类很重要的时序逻辑电路,是许多数字系统的核心部件,掌握状态机的使用是利用FPGA与CPLD进行开发的一项必会技能,本小节的交通灯程序即是利用三段式状态机描述方法实现的,希望读者能够快速掌握这项技能。 | 状态机是一类很重要的时序逻辑电路,是许多数字系统的核心部件,掌握状态机的使用是利用FPGA与CPLD进行开发的一项必会技能,本小节的交通灯程序即是利用三段式状态机描述方法实现的,希望读者能够快速掌握这项技能。 | ||