X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/1e26cecc7eb53d2765d7a4d7f21ceca81e165409..ff7fd7f2e78ed70833e58cecc316d5c8d6603349:/7seg.v diff --git a/7seg.v b/7seg.v new file mode 100644 index 0000000..ed4519a --- /dev/null +++ b/7seg.v @@ -0,0 +1,58 @@ +module AddrMon( + input [15:0] addr, + input clk, + output reg [3:0] digit, + output reg [7:0] out, + input freeze + ); + + reg [12:0] clkdv; + reg [1:0] dcount; + + reg [15:0] latch = 0; + + wire [3:0] curval = + (dcount == 2'b00) ? latch[3:0] : + (dcount == 2'b01) ? latch[7:4] : + (dcount == 2'b10) ? latch[11:8] : + latch[15:12]; + + always @ (negedge clk) + begin + clkdv <= clkdv + 1; + if (~freeze) + latch <= addr; + end + + always @ (posedge clkdv[12]) + begin + dcount <= dcount + 1; + + case(dcount) + 2'b00: digit <= 4'b1110; + 2'b01: digit <= 4'b1101; + 2'b10: digit <= 4'b1011; + 2'b11: digit <= 4'b0111; + endcase + + case(curval) + /* ABCDEFGP */ + 4'h0: out <= ~8'b11111100; + 4'h1: out <= ~8'b01100000; + 4'h2: out <= ~8'b11011010; + 4'h3: out <= ~8'b11110010; + 4'h4: out <= ~8'b01100110; + 4'h5: out <= ~8'b10110110; + 4'h6: out <= ~8'b10111110; + 4'h7: out <= ~8'b11100000; + 4'h8: out <= ~8'b11111110; + 4'h9: out <= ~8'b11110110; + 4'hA: out <= ~8'b11101110; + 4'hB: out <= ~8'b00111110; + 4'hC: out <= ~8'b10011100; + 4'hD: out <= ~8'b01111010; + 4'hE: out <= ~8'b10011110; + 4'hF: out <= ~8'b10001110; + endcase + end +endmodule