Files
SlugCross_MiSTer/rtl/TopStateMachineLogic.v
2022-03-13 16:28:43 -06:00

55 lines
1.5 KiB
Verilog

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 12/01/2018 06:24:58 PM
// Design Name:
// Module Name: TopStateMachineLogic
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module TopStateMachineLogic(
input clk,
input btnUDLR,
input btnC,
input WinDetect,
input LossDetect,
input [3:0] Q,
output reset,
output btnCenable,
output btnUDLRenable,
output TimerEnable,
output flashSlug,
output flashBorder,
output [3:0] D
);
assign D[0] = (Q[0] & ~WinDetect & ~LossDetect & ~btnC & ~btnUDLR) | (Q[0] & ~WinDetect & ~LossDetect & btnC) | (Q[2] & btnC) |
(Q[3] & btnC) | (Q[0] & ~WinDetect & LossDetect) | (Q[0] & WinDetect & LossDetect) | (Q[0] & WinDetect & ~LossDetect);
assign D[1] = (Q[0] & ~WinDetect & ~LossDetect & ~btnC & btnUDLR) | (Q[1] & ~WinDetect & ~LossDetect);
assign D[2] = (Q[1] & ~WinDetect & LossDetect) | (Q[2] & ~btnC);
assign D[3] = (Q[1] & WinDetect & ~LossDetect) | (Q[3] & ~btnC);
assign reset = Q[0];
assign btnCenable = ~Q[1];
assign btnUDLRenable = Q[0] | Q[1];
assign TimerEnable = Q[1];
assign flashSlug = Q[2];
assign flashBorder = Q[3];
endmodule