blob: dbc6a84ccc28523ebba8d69961cd55d73e6f0b91 [file] [log] [blame]
`default_nettype none
// Keep I/O fixed for TinyTapeout
module user_module_339898704941023827(
input [7:0] io_in,
output [7:0] io_out
);
// using io_in[0] as clk, io_in[1] as reset
wire clk;
assign clk = io_in[0];
wire reset;
assign reset = io_in[1];
reg [21:0] counter = 0; // XXX: What is the clk freq for TT?
reg [4:0] state = 5'b00000;
//reg led = 0;
// XXX: Are we using CA/CC 7seg for TT board?
// patterns for common anode wiring
//76543210
//xGFEDCBA
reg[7:0] letter_h = 8'b10001001;
reg[7:0] letter_e = 8'b10000110;
reg[7:0] letter_l = 8'b11000111;
reg[7:0] letter_o = 8'b11000000;
reg[7:0] letter_a = 8'b10001000;
reg[7:0] letter_s = 8'b10010010;
reg[7:0] letter_i = 8'b11001111;
reg[7:0] letter_c = 8'b11000110;
reg[7:0] letter_blank = 8'b11111111;
reg [7:0] led_out = 0;
always @(posedge clk) begin
if (reset) begin
counter <= 0;
state <= 0;
led_out <= letter_blank;
end else begin
if (counter == 0) begin // overflow
state <= state + 5'b00001;
//led <= ~led;
end
counter <= counter + 1;
end
case(state)
5'b00000 : led_out <= letter_h;
5'b00001 : led_out <= letter_blank;
5'b00010 : led_out <= letter_e;
5'b00011 : led_out <= letter_blank;
5'b00100 : led_out <= letter_l;
5'b00101 : led_out <= letter_blank;
5'b00110 : led_out <= letter_l;
5'b00111 : led_out <= letter_blank;
5'b01000 : led_out <= letter_o;
5'b01001 : led_out <= letter_blank;
5'b01010 : led_out <= letter_blank;
5'b01011 : led_out <= letter_a;
5'b01100 : led_out <= letter_blank;
5'b01101 : led_out <= letter_s;
5'b01110 : led_out <= letter_blank;
5'b01111 : led_out <= letter_i;
5'b10000 : led_out <= letter_blank;
5'b10001 : led_out <= letter_c;
5'b10010 : led_out <= letter_blank;
5'b10011 : led_out <= letter_blank;
5'b10100 : led_out <= letter_blank;
5'b10101 : state <= 0; // reset
default : led_out <= letter_blank;
endcase
end
assign io_out = led_out;
//assign io_out[6] = led;
endmodule