El hacedor

Solo disponible en BuenasTareas
  • Páginas : 5 (1022 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de septiembre de 2012
Leer documento completo
Vista previa del texto
MÁQUINA DE ESTADOS:

PARA LA CUAL TENEMOS LOS SIGUIENTES VALORES DE ESTADO:
S0= 000
S1=001
S2= 010
S3=011
S4= 100
S5=101
LA PROGRAMACION FUE REALIZADA EN VERILOG, A CONTINUACION SE MUESTRA EL ALGORITMO DE PROGRAMACIÓN:
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 15:55:3004/30/2012
// Design Name:
// Module Name: ASCENSOR
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module ASCENSOR(
input U1,
input U2,
input U3,
inputD2,
input D3,
input D4,
input RESET,
input RELOJ,
output reg [2:0] PISO
);

localparam S0 = 3'd0;
localparam S1 = 3'd1;
localparam S2 = 3'd2;
localparam S3 = 3'd3;
localparam S4 = 3'd4;
localparam S5 = 3'd5;

reg [2:0] eActual;

initial
begin
eActual <= S0;
end
always@(posedge RELOJ)
begin
if (RESET==1'b1)
eActual <= S0;
else
begin
case(eActual)

S0:
begin
if (U1==1'b1)
eActual <= S1;
else if (U3==1'b1 && U2==1'b0 && U1==1'b0)
eActual <= S2;
else if (D4==1'b1 && U1==1'b0 && U2==1'b0 && U3==1'b0)
eActual <= S3;
else if (D3==1'b1 && D4==1'b0 && U1==1'b0 && U2==1'b0 && U3==1'b0)
eActual <= S4;
else if (D2==1'b1 && U1==1'b0&& U2==1'b0 && U3==1'b0 && D3==1'b0 && D4==1'b0)
eActual <= S5;
end

S1:
begin
if (U2==1'b1)
eActual <= S2;
else if (U3==1'b0 && U2==1'b0 && D4==1'b0 && D3==1'b0 && D2==1'b0 && U1==1'b1)
eActual <= S0;
else if (D3==1'b1 && U2==1'b0 && U3==1'b0 && D4==1'b0)
eActual <= S4;
else if(D2==1'b1 && U2==1'b0 && U3==1'b0 && D4==1'b0 && D3==1'b0)
eActual <= S5;
else if (U2==1'b0 && U3==1'b0 && D4==1'b1)
eActual <= S3;
end

S2:
begin
if (U3==1'b1)
eActual <= S3;
else if (U2==1'b1 && U3==1'b0 && D3==1'b0 && D4==1'b0 && D2==1'b0)
eActual <= S1;
else if (U3==1'b0 && D4==1'b0&& D3==1'b0 && D2==1'b0 && U1==1'b1)
eActual <= S0;
else if (D3==1'b1 && U3==1'b0 && D4==1'b0)
eActual <= S4;
else if (D2==1'b1 && U3==1'b0 && D4==1'b0 && D3==1'b0)
eActual <= S5;
end

S3:
begin
if (D4==1'b1)
eActual <= S4;
else if (D2==1'b1 && D4==1'b0 && D3==1'b0)
eActual <= S5;
else if (U1==1'b1&& D4==1'b0 && D3==1'b0 && D2==1'b0)
eActual <= S0;
else if (U2==1'b1 && D4==1'b0 && D3==1'b0 && D2==1'b0 && U1==1'b0 && U3==1'b0)
eActual <= S1;
else if (U3==1'b1 && D4==1'b0 && D3==1'b0 && D2==1'b0 && U1==1'b0 && U2==1'b0)
eActual <= S2;
end

S4:
begin
if (D3==1'b1)eActual <= S5;
else if (U1==1'b1 && D3==1'b0 && D2==1'b0)
eActual <= S0;
else if (D3==1'b0 && D2==1'b0 && U1==1'b0 && U2==1'b1)
eActual <= S1;
else if (D3==1'b0 && D2==1'b0 && U1==1'b0 && U2==1'b0 && U3==1'b1)
eActual <= S2;
else if (D4==1'b1 && D3==1'b0 && D2==1'b0 && U1==1'b0 &&U2==1'b0 && U3==1'b0)
eActual <= S3;
end

S5:
begin
if (D2==1'b1)
eActual <= S0;
else if (D2==1'b0 && U1==1'b0 && U2==1'b1)
eActual <= S1;
else if (U3==1'b1 && U2==1'b0 && U1==1'b0 && D2==1'b0 && D4==1'b0 && D3==1'b0)
eActual <= S2;
else if (D4==1'b1 && D3==1'b0)
eActual <= S3;
else if (D3==1'b1...
tracking img