use work.extension_7seg_pkg.all;
use work.extension_imp_pkg.all;
use work.extension_timer_pkg.all;
+use work.extension_lcd_pkg.all;
architecture behav of writeback_stage is
signal wb_reg, wb_reg_nxt : writeback_rec;
-signal ext_uart,ext_timer,ext_gpmp,ext_7seg,ext_int,ext_imp : extmod_rec;
-signal ext_uart_out, ext_timer_out, ext_gpmp_out, ext_int_out,ext_imp_out : gp_register_t;
+signal ext_uart,ext_timer,ext_gpmp,ext_7seg,ext_int,ext_imp, ext_lcd : extmod_rec;
+signal ext_uart_out, ext_timer_out, ext_gpmp_out, ext_int_out,ext_imp_out, ext_lcd_out : gp_register_t;
--signal int_req : interrupt_t;
signal uart_int : std_logic;
timer : extension_timer
generic map(RESET_VALUE)
port map(clk, reset, ext_timer, ext_timer_out);
+
+lcd : extension_lcd
+ generic map(RESET_VALUE)
+ port map(clk, reset, ext_lcd, ext_lcd_out, lcd_data);
syn: process(clk, reset)
ext_uart.sel <='0';
ext_7seg.sel <='0';
ext_timer.sel <='0';
+ ext_lcd.sel <='0';
ext_gpmp.sel <='0';
ext_int.sel <= '0';
ext_imp.sel <= '0';
ext_uart.wr_en <= wr_en;
ext_7seg.wr_en <= wr_en;
ext_timer.wr_en <= wr_en;
+ ext_lcd.wr_en <= wr_en;
ext_gpmp.wr_en <= wr_en;
ext_int.wr_en <= wr_en;
ext_imp.wr_en <= wr_en;
ext_uart.byte_en <= byte_en;
ext_7seg.byte_en <= byte_en;
ext_timer.byte_en <= byte_en;
+ ext_lcd.byte_en <= byte_en;
ext_gpmp.byte_en <= byte_en;
ext_int.byte_en <= byte_en;
ext_imp.byte_en <= byte_en;
ext_uart.addr <= addr;
ext_7seg.addr <= addr;
ext_timer.addr <= addr;
+ ext_lcd.addr <= addr;
ext_gpmp.addr <= addr;
ext_int.addr <= addr;
ext_imp.addr <= addr;
ext_uart.data <= data;
ext_7seg.data <= data;
ext_timer.data <= data;
+ ext_lcd.data <= data;
ext_gpmp.data <= data;
ext_int.data <= data;
ext_imp.data <= data;
-- when "11" => ext_timer.byte_en <= "1000";
-- when others => null;
-- end case;
+ when EXT_LCD_ADDR =>
+ ext_lcd.sel <= enable;
+ ext_anysel <= enable;
-- when EXT_GPMP_ADDR =>
-- ext_gpmp.sel <= enable;
-- ext_anysel <= enable;
when others => ext_anysel <= '0';
end case;
- data_ram_read_ext <= ext_uart_out or ext_gpmp_out or ext_timer_out;
+ data_ram_read_ext <= ext_uart_out or ext_gpmp_out or ext_timer_out or ext_lcd_out;
end process;
end behav;