- 分得到析四个状态:
S1: 主干道(绿灯亮) ,支干道(亮红灯);--40S
S1: 主干道 (黄灯亮) ,支干道(亮红灯);--4S
S1: 主干道 (亮红灯),支干道(绿灯亮);--20S
S1: 主干道 (亮红灯),支干道(黄灯亮);--4S
代码:包括四部分:traffic_ligh_top(顶层例化)、traffic_light(交通灯控制部分)、led_input_display(把(交通灯控制部分的)数据打一拍(再送给74595))、led_74595_driver(串转并-进行显示)
仿真:代码及波形显示
- 代码编写
//---------------------------------------------------------------------------------------
- RTL Viewer
- traffic_ligh_top(顶层例化)
1 /*----------------------------------------------------------------------- 2 Author : WHaoL 3 Technology blogs : http://www.cnblogs.com/luckySuperman/ 4 : http://blog.chinaaet.com/eWorld 5 Email Address : liangwenhao0603@163.com 6 Filename : traffic_ligh_top.v 7 Data : 2016-09-26 8 Description : 9 modification history : 10 Data By Version Change Description 11 ========================================================================= 12 16/9/26 WHaoL 1.0 Original 13 =======================================================================*/ 14 `timescale 1ns/1ns 15 module traffic_ligh_top 16 ( 17 input clk, 18 input rst_n, 19 20 //matrix keyboard interface 21 22 23 output led595_clk, 24 output led595_dout, 25 output led595_latch 26 ); 27 28 29 wire [2:0] led_east; 30 wire [2:0] led_south; 31 32 wire key_flag; 33 //------------------------------------- 34 traffic_light u_traffic_light 35 ( 36 .clk(clk), //时钟 50MHz 37 .rst_n(rst_n), //复位 低电平有效 38 39 // south north east west 40 //.e_light(e_light), // 东方向 指示灯 41 //w_light, //西方向 指示灯 42 43 //.s_light(s_light), //南方向 指示灯 44 //n_light, //北方向 指示灯 45 .led_east(led_east), 46 //.led_wast(led_wast), 47 48 .led_south(led_south), 49 //.led_nouth(led_nouth) 50 .key_flag(key_flag) 51 ); 52 53 //--------------------------------- 54 //led data input with enable signal. 55 wire [7:0] led_data; 56 led_input_display 57 #( 58 .LED_WIDTH (8) 59 ) 60 u_led_input_display 61 ( 62 //global 63 .clk (clk), 64 .rst_n (rst_n), 65 66 //user interface 67 .led_en (key_flag), 68 .led_value ({led_east[2:0],2'b00,led_south[2:0]}), 69 70 //led interface 71 .led_data (led_data) 72 ); 73 74 //------------------------------------------- 75 led_74595_driver u_led_74595_driver 76 ( 77 //global clock 78 .clk (clk),//50MHz 79 .rst_n (rst_n), 80 81 //user led output 82 .led_data (led_data), 83 .led595_clk (led595_clk), 84 .led595_dout (led595_dout), 85 .led595_latch (led595_latch) 86 ); 87 88 endmodule
- traffic_light(交通灯控制部分)
1 `timescale 1ns/1ns 2 module traffic_light 3 ( 4 clk, 5 rst_n, 6 7 key_flag, 8 9 led_east, 10 //led_wast, 11 12 led_south 13 //led_nouth 14 15 ); 16 parameter TIME_1S = 50_000_000; 17 18 input clk; 19 input rst_n; 20 21 output [2:0] led_east; 22 //output [2:0] led_wast; 23 output [2:0] led_south; 24 //output [2:0] led_nouth; 25 output key_flag; 26 27 reg [2:0] led_east; 28 //reg [2:0] led_wast; 29 reg [2:0] led_south; 30 //reg [2:0] led_nouth;