You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fs-TrellisBoard/gateware/simple/demo.v

48 lines
1.0 KiB

`default_nettype none
module demo_top(
input clk_12,
input [3:0] btn,
input [7:0] dip_sw,
output [11:0] led
);
reg [35:0] ctr_scroll;
reg [35:0] ctr_scroll_swapped;
reg clk_div = 0;
localparam DIV = 20;
reg [DIV-1:0] div_ctr = 0;
always @(posedge clk_12) begin
{clk_div, div_ctr} <= div_ctr + 1'b1;
if (clk_div) begin
if (!(|ctr_scroll))
ctr_scroll <= {1'b1, {10{1'b0}}, 1'b1, {13{1'b0}}, 1'b1};
else
ctr_scroll <= {ctr_scroll[34:24], ctr_scroll[35],
ctr_scroll[22:12], ctr_scroll[23],
ctr_scroll[10:0], ctr_scroll[11]};
end
end
integer i, j;
always @(posedge clk_12) begin
for (i = 0; i < 36; i = i + 6)
for (j = 0; j < 6; j = j + 1)
if ((i % 12) == 0)
ctr_scroll_swapped[i+j] <= ctr_scroll[i+j];
else
ctr_scroll_swapped[i+j] <= ctr_scroll[i+5-j];
end
led_ctrl led_ctrl_i (
.clk(clk_12),
.led_in_yr({ctr_scroll_swapped[23:12] | ctr_scroll_swapped[35:24]}),
.led_in_bg({ctr_scroll_swapped[11:0] | ctr_scroll_swapped[35:24]}),
.led_pin(led)
);
endmodule