差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
altera_10tra [2017/05/31 14:08]
group002 创建
altera_10tra [2021/10/03 01:34] (当前版本)
gongyu
行 1: 行 1:
-=====简易交通灯===== +## 简易交通灯
 本节将向您介绍Verilog语法之中的精髓内容——状态机,并且将利用状态机实现十字路口的交通灯。 本节将向您介绍Verilog语法之中的精髓内容——状态机,并且将利用状态机实现十字路口的交通灯。
  
 \\ \\
-====硬件说明与实现项目框图==== +### 1. 硬件说明与实现项目框图 
--------+
 {{ ::​jiaotongdeng.png?​300 |}} {{ ::​jiaotongdeng.png?​300 |}}
 上图为十字路口交通示意图分之路与主路,要求如下: 上图为十字路口交通示意图分之路与主路,要求如下:
-* 交通灯主路上绿灯持续15s的时间,黄灯3s的时间,红灯10s的时间; +  ​* 交通灯主路上绿灯持续15s的时间,黄灯3s的时间,红灯10s的时间; 
-* 交通灯支路上绿灯持续7s的时间, 黄灯持续3秒的时间,红灯18秒的时间;+  * 交通灯支路上绿灯持续7s的时间, 黄灯持续3秒的时间,红灯18秒的时间;
 {{ ::​状态机框架.png?​300 |}} {{ ::​状态机框架.png?​300 |}}
 根据上述要求,状态机设计框架分析如下: 根据上述要求,状态机设计框架分析如下:
-* S1:​主路绿灯点亮,支路红灯点亮,持续15s的时间; +  ​* S1:​主路绿灯点亮,支路红灯点亮,持续15s的时间; 
-* S2:​主路黄灯点亮,支路红灯点亮,持续3s的时间; +  * S2:​主路黄灯点亮,支路红灯点亮,持续3s的时间; 
-* S3:​主路红灯点亮,支路绿灯点亮,持续10s的时间; +  * S3:​主路红灯点亮,支路绿灯点亮,持续10s的时间; 
-* S4:​主路红灯点亮,支路黄灯点亮,持续3s的时间; +  * S4:​主路红灯点亮,支路黄灯点亮,持续3s的时间; 
-{{ ::​状态示意图.png?​300 |}} +// 
-====Verilog代码==== +{{ ::​状态示意图.png?​500 |}} 
-------+// 
 +
 + 
 +### 2. Verilog代码 
 首先是时钟分频部分: 首先是时钟分频部分:
 <code verilog> <code verilog>
行 171: 行 174:
  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;
   
行 273: 行 276:
 \\  ​ \\  ​
 \\  ​ \\  ​
-====引脚分配==== + 
--------+### 3. 引脚分配 
 小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号
 \\ \\
-^信号 ​    ​^引脚 ​           ^信号 ​     ^引脚 ​   ^    + 信号 ​          引脚 ​           ^  信号 ​        ​ 引脚 ​   ^    
-|clk      |C1              ​|rst ​     |L14     ^ + **clk**      ​| ​ ​J5 ​             ​| ​ **rst**      ​| ​ ​J9 ​    ^ 
-|out[0] ​  |P2              ​|out[1] ​  |N2      ^ + **out[0]**   |  ​E14 ​             ​| ​ **out[1]**   |  ​E15 ​     ^ 
-|out[2] ​  |M2              ​|out[3] ​  |P4      ^ + **out[2]**   |  ​G15 ​             ​| ​ **out[3]**   |  ​D12 ​     ^ 
-|out[4] ​  |N3              ​|out[5] ​  |M3      ^ + **out[4]**   |  ​C14 ​             ​| ​ **out[5]**   |  ​C15 ​     ^
-\\+
 \\ \\
  
 配置好以后编译下载程序。您也可以试试修改程序,观察修改代码对于FPGA内部电路所造成的影响。\\ 配置好以后编译下载程序。您也可以试试修改程序,观察修改代码对于FPGA内部电路所造成的影响。\\
  
-====小结==== +### 4. 小结 
-------+
 状态机是一类很重要的时序逻辑电路,是许多数字系统的核心部件,掌握状态机的使用是利用FPGA与CPLD进行开发的一项必会技能,本小节的交通灯程序即是利用三段式状态机描述方法实现的,希望读者能够快速掌握这项技能。 状态机是一类很重要的时序逻辑电路,是许多数字系统的核心部件,掌握状态机的使用是利用FPGA与CPLD进行开发的一项必会技能,本小节的交通灯程序即是利用三段式状态机描述方法实现的,希望读者能够快速掌握这项技能。