1 module
top (input pin_clk,
6 output wire [7:0]vga_r,
7 output wire [7:0]vga_g,
8 output wire [7:0]vga_b,
21 localparam ROW_BITS = 5;
22 localparam COL_BITS = 7;
23 localparam ADDR_BITS = 11;
26 wire clk_usb, reset_usb;
27 wire clk_vga, reset_vga;
30 wire [ADDR_BITS-1:0] new_first_char;
31 wire new_first_char_wen;
32 wire [ADDR_BITS-1:0] first_char;
34 wire [ROW_BITS-1:0] new_cursor_y;
35 wire [COL_BITS-1:0] new_cursor_x;
38 wire [ROW_BITS-1:0] cursor_y;
39 wire [COL_BITS-1:0] cursor_x;
42 wire [ADDR_BITS-1:0] new_char_address;
44 wire [ADDR_BITS-1:0] char_address;
47 wire graphic_mode_state;
49 wire [11:0] char_rom_address;
50 wire [7:0] char_rom_data;
55 assign vga_clk = clk_vga;
56 assign vga_blank = ~hblank;
59 wire [7:0] uart_out_data;
63 wire [7:0] uart_in_data;
68 assign pin_led = det_reset;
70 assign uart_rts = 1'b1;
79 assign vga_r = (video) ? 240 : 0;
80 assign vga_g = (video) ? 240 : 0;
81 assign vga_b = (video) ? 0 : 64;
83 assign graphic_mode_state = graphic_mode;
90 .reset_usb(reset_usb),
100 .valid(uart_in_valid),
101 .ready(uart_in_ready)
104 cursor #(.ROW_BITS(ROW_BITS), .COL_BITS(COL_BITS))
110 .blink_on(cursor_blink_on),
111 .new_x(new_cursor_x),
112 .new_y(new_cursor_y),
117 scroll_register(.clk(clk_usb),
119 .idata(new_first_char),
120 .wen(new_first_char_wen),
126 .waddr(new_char_address),
128 .raddr(char_address),
130 .graphic_mode(graphic_mode)
134 .addr(char_rom_address),
135 .dout_(char_rom_data)
143 .ADDR_BITS(ADDR_BITS))
153 .cursor_blink_on(cursor_blink_on),
154 .first_char(first_char),
155 .char_buffer_address(char_address),
156 .char_buffer_data(
char),
157 .char_rom_address(char_rom_address),
158 .char_rom_data(char_rom_data)
195 .pin_usb_p(pin_usb_p),
196 .pin_usb_n(pin_usb_n),
198 .uart_in_data(uart_in_data),
199 .uart_in_valid(uart_in_valid),
200 .uart_in_ready(uart_in_ready),
202 .uart_out_data(uart_out_data),
203 .uart_out_valid(uart_out_valid),
204 .uart_out_ready(uart_out_ready),
205 .det_reset(det_reset)
213 .ADDR_BITS(ADDR_BITS))
216 .data(uart_out_data),
217 .valid(uart_out_valid),
218 .ready(uart_out_ready),
219 .new_first_char(new_first_char),
220 .new_first_char_wen(new_first_char_wen),
222 .new_char_address(new_char_address),
223 .new_char_wen(new_char_wen),
224 .new_cursor_x(new_cursor_x),
225 .new_cursor_y(new_cursor_y),
226 .new_cursor_wen(new_cursor_wen),
227 .graphic_mode(graphic_mode)
module command_handler(input clk, input reset, input[8] data, input valid, output ready, output[ADDR_BITS-1:0] new_first_char, output new_first_char_wen, output[8] new_char, output[ADDR_BITS-1:0] new_char_address, output new_char_wen, output[COL_BITS-1:0] new_cursor_x, output[ROW_BITS-1:0] new_cursor_y, output new_cursor_wen, output graphic_mode)
module usb_uart(input clk_48mhz, input reset, output usb_p_tx, output usb_n_tx, input usb_p_rx, input usb_n_rx, output usb_tx_en, input[8] uart_in_data, input uart_in_valid, output uart_in_ready, output[8] uart_out_data, output uart_out_valid, input uart_out_ready, output[11:0] debug)
module simple_register(input wire clk, input wire reset, input wire< SIZE-1:0 > idata, input wire wen, output reg< SIZE-1:0 > odata)
Basic register with synchronous set & reset.
module top(input pin_clk, output wire vga_clk, output wire vga_blank, output wire hsync, output wire vsync, output wire< 7:0 > vga_r, output wire< 7:0 > vga_g, output wire< 7:0 > vga_b, output wire pin_led, input ps2_data, input ps2_clk, inout pin_usb_p, inout pin_usb_n, output wire pin_pu, input wire uart_rxd, output wire uart_txd)
module cursor(input clk, input reset, input tick, output wire< COL_BITS-1:0 > x, output wire< ROW_BITS-1:0 > y, output wire blink_on, input[COL_BITS-1:0] new_x, input[ROW_BITS-1:0] new_y, input wen)
Cursor (position and blinking)
module uart(parameter DATA_WIDTH=8)(input wire clk
module clock_generator(input clk, output clk_usb, output reset_usb, output clk_vga, output reset_vga)
module char_buffer(input wire clk, input wire< 7:0 > din, input wire< ADDR_BITS-1:0 > waddr, input wire wen, input wire< ADDR_BITS-1:0 > raddr, output reg< 7:0 > dout, input wire graphic_mode)
Char Buffer RAM (1920x8) (24 lines of 80 characters)
module char_rom(input clk, input[11:0] addr, output[8] dout_)
Character Font ROM (4kx8) This could be a RAM to allow font modifications, but not for now latin-1 su...
module video_generator(input clk, input reset, output reg hsync, output reg vsync, output reg video, output reg hblank, output reg vblank, input[COL_BITS-1:0] cursor_x, input[ROW_BITS-1:0] cursor_y, input cursor_blink_on, input[ADDR_BITS-1:0] first_char, output wire< ADDR_BITS-1:0 > char_buffer_address, input[8] char_buffer_data, output wire< 11:0 > char_rom_address, input[8] char_rom_data, input graphic_mode_state)
80x24 char generator (8x16 char size) & sync generator
module keyboard(input clk, input reset, input ps2_data, input ps2_clk, output reg< 7:0 > data, output reg valid, input ready)
module input wire input wire< DATA_WIDTH-1:0 > input wire s_axis_tvalid
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire txd
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > m_axis_tdata
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire output wire output wire output wire output wire input wire< 15:0 > prescale
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire output wire tx_busy
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire s_axis_tready
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire output wire output wire output wire output wire rx_frame_error
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire m_axis_tvalid
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire m_axis_tready
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire output wire output wire rx_busy
module input wire input wire< DATA_WIDTH-1:0 > s_axis_tdata
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire output wire output wire output wire output wire rx_overrun_error
module input wire input wire< DATA_WIDTH-1:0 > input wire output wire output wire< DATA_WIDTH-1:0 > output wire input wire input wire rxd