1、描述一个交通信号灯的设计。(仕兰微电子)
东西南北四个方向,东西与南北两组交通灯轮流交替变换,其中,红灯时间为30个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。五个状态如下:
分别设计状态机控制程序,计数程序,顶层程序和测试程序
module top_light(clk,rst_n,light1,light2)
input clk,rst_n;
output [2:0] light1;
output [2:0] light2;
wire [5:0] cnt;
StateMachine_light StateMachine_light_m0
(
.clk (clk),
.rst_n (rst_n),
.count (cnt),
.light1 (light1),
.light2 (light2)
);
count_light count_light_m0
(
.clk (clk),
.rst_n (rst_n),
.count (cnt)
);
endmodule
module StateMachine_light(clk,rst_n,count,light1,light2)
input clk;
input rst_n;
input [5:0] count;
output [2:0]light1;
output [2:0]light2;
reg [2:0] light1,light2;
reg [2:0] state;
parameter idle = 3'b000,
s1 = 3'b001,
s2 = 3'b010,
s3 = 3'b011,
s4 = 3'b100;
always @(posedge clk or negedge rst_n)
begin
if