El hacedor
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...
Regístrate para leer el documento completo.