Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.2 kB
1
Indexable
Never
//MODULO
module traffic(clk,rst,r,a,v);
	//tipo	reg	[tamaño] nombre
	//entradas
	input			 clk,rst;
	//salidas
	output	reg		 r,a,v;
	//alambres
	//registros
	reg		[1:0]	maquina;
	reg		[5:0]	contador;
	//parámetros
	parameter		alto=0, siga=1, preventivo=2;
	
//ASIGNACIONES
	//señales
	//componentes
	//modulo etiqueta puerto
	//secuenciales
		//CONTROL DE TRANSICIONES
	always@(posedge clk)
	begin
		if(rst)
			maquina <=alto;
		else
			case(maquina)
				alto:			
						if(contador==29)
							begin
							maquina <= siga;
							contador <= 0;
							end
						else
							contador<=contador+1;
							
				siga:			
						if(contador==59)
							begin
							maquina <= preventivo;
							contador <= 0;
							end
						else
							contador<= contador+1;
				preventivo:	
						if(contador==4)
							begin
							maquina <= alto;
							contador <= 0;
							end
						else
							contador<=contador+1;
			endcase
	end
		//CONTROL DE SALIDAS
	always@(maquina)
	begin
		case(maquina)
			alto:
				begin
				r <= 1;
				a <= 0;
				v <= 0;
				end
			siga:
				begin
				r <= 0;
				a <= 0;
				v <= 1;
				end
			preventivo:
				begin
				r <= 0;
				a <= 1;
				v <= 0;
				end
		endcase
	end
endmodule