⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 traffic_ls.v

📁 some example for verilog design
💻 V
字号:
//// Copyright (c) 2000 Exemplar Logic Inc. All rights reserved.////// This is a typical example of a state machine description // in Verilog HDL.//   Two always statements, one to update the state on a clock plus//   or reset, and one to calculate the next state and//   the outputs in a case statement//// This description implements a traffic light controller////download from: www.fpga.com.cn & www.pld.com.cnmodule traffic (clock, reset, sensor1, sensor2,	  red1, yellow1, green1, red2, yellow2, green2);input clock, reset, sensor1, sensor2;output  red1, yellow1, green1, red2, yellow2, green2;// Define the states. Enumerated type pragma allows Spectrum to chose encoding.parameter /*exemplar enum ee1 */ st0 = 0, st1 = 1, st2 = 2, st3 = 3,	  st4 = 4, st5 = 5, st6 = 6, st7 = 7;reg [2:0] /* exemplar enum ee1 */ state, nxstate ;reg red1, yellow1, green1, red2, yellow2, green2;// Update the state with the next state on the clock edge// or reset value.always @(posedge clock or posedge reset)begin    if (reset) 	state = st0 ;    else	state = nxstate;end// // Calculate the next state and the outputs,// based on the present state and the inputs//always @(state or sensor1 or sensor2)begin     // Default values for the outputs    red1 = 1'b0; yellow1 = 1'b0; green1 = 1'b0;    red2 = 1'b0; yellow2 = 1'b0; green2 = 1'b0;    case (state) /* exemplar full_case */ /* exemplar parallel_case */	st0: begin	    green1 = 1'b1;	    red2 = 1'b1;	    if (sensor2 == sensor1) 		nxstate = st1;	    else if (~sensor1 & sensor2) 		nxstate = st2;            else                 nxstate = st0;        end	    	st1: begin 	    green1 = 1'b1;	    red2 = 1'b1;	    nxstate = st2;        end	st2: begin 	    green1 = 1'b1;	    red2 = 1'b1;	    nxstate = st3;        end	st3: begin 	    yellow1 = 1'b1;	    red2 = 1'b1;	    nxstate = st4;        end	st4: begin 	    red1 = 1'b1;	    green2 = 1'b1;	    if (~sensor1 & ~sensor2) 		nxstate = st5;	    else if (sensor1 & ~sensor2) 		nxstate = st6;            else                nxstate = st4;        end	    	st5: begin 	    red1 = 1'b1;	    green2 = 1'b1;	    nxstate = st6;        end		st6: begin 	    red1 = 1'b1;	    green2 = 1'b1;	    nxstate = st7;        end		st7: begin 	    red1 = 1'b1;	    yellow2 = 1'b1;	    nxstate = st0;        end    endcaseendendmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -