92 lines
1.8 KiB
Systemverilog
92 lines
1.8 KiB
Systemverilog
module basys3_toplevel (
|
|
input logic clk,
|
|
input logic btnC,
|
|
input logic btnU,
|
|
input logic btnL,
|
|
input logic btnR,
|
|
input logic btnD,
|
|
input logic [15:0] sw,
|
|
output logic [15:0] led
|
|
);
|
|
|
|
logic clock;
|
|
logic reset;
|
|
assign clock = clk;
|
|
assign reset = sw[0];
|
|
|
|
logic got_strike;
|
|
logic got_ball;
|
|
logic got_foul;
|
|
logic got_hit;
|
|
logic got_out;
|
|
logic [1:0] strike_count;
|
|
logic [2:0] ball_count;
|
|
logic [1:0] out_count;
|
|
logic [3:0] inning_count;
|
|
logic team_active;
|
|
|
|
assign led[15:12] = inning_count;
|
|
assign led[11] = 'b0;
|
|
assign led[10] = team_active;
|
|
assign led[9] = 'b0;
|
|
assign led[8] = (strike_count > 0);
|
|
assign led[7] = (strike_count > 1);
|
|
assign led[6] = 'b0;
|
|
assign led[5] = (ball_count > 0);
|
|
assign led[4] = (ball_count > 1);
|
|
assign led[3] = (ball_count > 2);
|
|
assign led[2] = 'b0;
|
|
assign led[1] = (out_count > 0);
|
|
assign led[0] = (out_count > 1);
|
|
|
|
button_trigger btnC_trigger (
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.raw_button(btnC),
|
|
.trigger_signal(got_out)
|
|
);
|
|
|
|
button_trigger btnU_trigger (
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.raw_button(btnU),
|
|
.trigger_signal(got_hit)
|
|
);
|
|
|
|
button_trigger btnL_trigger (
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.raw_button(btnL),
|
|
.trigger_signal(got_strike)
|
|
);
|
|
|
|
button_trigger btnR_trigger (
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.raw_button(btnR),
|
|
.trigger_signal(got_ball)
|
|
);
|
|
|
|
button_trigger btnD_trigger (
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.raw_button(btnD),
|
|
.trigger_signal(got_foul)
|
|
);
|
|
|
|
baseball_scoreboard baseball(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.got_strike(got_strike),
|
|
.got_ball(got_ball),
|
|
.got_foul(got_foul),
|
|
.got_hit(got_hit),
|
|
.got_out(got_out),
|
|
.strike_count(strike_count),
|
|
.ball_count(ball_count),
|
|
.out_count(out_count),
|
|
.inning_count(inning_count),
|
|
.team_active(team_active)
|
|
);
|
|
|
|
endmodule |