add uart interrupt

This commit is contained in:
Byron Lathi
2023-11-21 18:47:16 -08:00
parent 4392a01de8
commit 1714a1e6da
5 changed files with 272 additions and 254 deletions

View File

@@ -159,6 +159,24 @@ rom #(.DATA_WIDTH(8), .ADDR_WIDTH(12)) u_rom(
.data(w_rom_data_out)
);
logic w_irq;
assign cpu_irqb = ~w_irq;
logic [127:0] w_int_in;
assign w_int_in[127:2] = 0;
interrupt_controller u_interrupt_controller(
.clk(clk_cpu),
.reset(~cpu_resb),
.i_data(cpu_data_in),
.o_data(w_irq_data_out),
.addr(w_mapped_addr[0]),
.cs(w_irq_cs),
.rwb(cpu_rwb),
.int_in(w_int_in),
.int_out(w_irq)
);
leds u_leds(
.clk(clk_cpu),
.i_data(cpu_data_in),
@@ -213,7 +231,7 @@ divider_wrapper u_divider(
.addr(w_mapped_addr[2:0])
);
logic w_uart_irqb;
logic w_uart_irq;
uart_wrapper u_uart(
.clk(clk_cpu),
@@ -226,9 +244,11 @@ uart_wrapper u_uart(
.addr(w_mapped_addr[0]),
.rx_i(uart_rx),
.tx_o(uart_tx),
.irqb(w_uart_irqb)
.irq(w_uart_irq)
);
assign w_int_in[1] = w_uart_irq;
spi_controller spi_controller(
.i_clk(clk_cpu),
.i_rst(~cpu_resb),
@@ -275,24 +295,6 @@ sdram_adapter u_sdram_adapter(
.o_sdr_DQM(o_sdr_DQM)
);
logic w_irq;
assign cpu_irqb = ~w_irq;
logic [255:0] w_int_in;
assign w_int_in[255:1] = 0;
interrupt_controller u_interrupt_controller(
.clk(clk_cpu),
.reset(~cpu_resb),
.i_data(cpu_data_in),
.o_data(w_irq_data_out),
.addr(w_mapped_addr[0]),
.cs(w_irq_cs),
.rwb(cpu_rwb),
.int_in(w_int_in),
.int_out(w_irq)
);
rtc u_rtc(
.clk(clk_cpu),
.reset(~cpu_resb),