URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
Subversion Repositories neorv32
Compare Revisions
- This comparison shows the changes necessary to convert path
/neorv32/trunk/rtl/system_integration
- from Rev 64 to Rev 65
- ↔ Reverse comparison
Rev 64 → Rev 65
/neorv32_ProcessorTop_stdlogic.vhd
97,7 → 97,11
IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? |
IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? |
IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? |
IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_UART1_EN : boolean := true; -- implement secondary universal asynchronous receiver/transmitter (UART1)? |
IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_SPI_EN : boolean := true; -- implement serial peripheral interface (SPI)? |
IO_TWI_EN : boolean := true; -- implement two-wire interface (TWI)? |
IO_PWM_NUM_CH : natural := 4; -- number of PWM channels to implement (0..60); 0 = disabled |
316,7 → 320,11
IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? |
IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? |
IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? |
IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 |
IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 |
IO_UART1_EN => IO_UART1_EN, -- implement secondary universal asynchronous receiver/transmitter (UART1)? |
IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 |
IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 |
IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? |
IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? |
IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled |
441,8 → 449,12
|
uart0_txd_o <= std_logic(uart0_txd_o_int); |
uart0_rxd_i_int <= std_ulogic(uart0_rxd_i); |
uart0_rts_o <= std_logic(uart0_rts_o_int); |
uart0_cts_i_int <= std_ulogic(uart0_cts_i); |
uart1_txd_o <= std_logic(uart1_txd_o_int); |
uart1_rxd_i_int <= std_ulogic(uart1_rxd_i); |
uart1_rts_o <= std_logic(uart1_rts_o_int); |
uart1_cts_i_int <= std_ulogic(uart1_cts_i); |
|
spi_sck_o <= std_logic(spi_sck_o_int); |
spi_sdo_o <= std_logic(spi_sdo_o_int); |
/neorv32_SystemTop_AvalonMM.vhd
107,7 → 107,11
IO_GPIO_EN : boolean := false; -- implement general purpose input/output port unit (GPIO)? |
IO_MTIME_EN : boolean := false; -- implement machine system timer (MTIME)? |
IO_UART0_EN : boolean := false; -- implement primary universal asynchronous receiver/transmitter (UART0)? |
IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_UART1_EN : boolean := false; -- implement secondary universal asynchronous receiver/transmitter (UART1)? |
IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_SPI_EN : boolean := false; -- implement serial peripheral interface (SPI)? |
IO_TWI_EN : boolean := false; -- implement two-wire interface (TWI)? |
IO_PWM_NUM_CH : natural := 0; -- number of PWM channels to implement (0..60); 0 = disabled |
207,18 → 211,18
|
architecture neorv32_top_avalonmm_rtl of neorv32_top_avalonmm is |
|
-- Wishbone bus interface (available if MEM_EXT_EN = true) -- |
signal wb_tag_o : std_ulogic_vector(02 downto 0); -- request tag |
signal wb_adr_o : std_ulogic_vector(31 downto 0); -- address |
signal wb_dat_i : std_ulogic_vector(31 downto 0) := (others => 'U'); -- read data |
signal wb_dat_o : std_ulogic_vector(31 downto 0); -- write data |
signal wb_we_o : std_ulogic; -- read/write |
signal wb_sel_o : std_ulogic_vector(03 downto 0); -- byte enable |
signal wb_stb_o : std_ulogic; -- strobe |
signal wb_cyc_o : std_ulogic; -- valid cycle |
signal wb_lock_o : std_ulogic; -- exclusive access request |
signal wb_ack_i : std_ulogic := 'L'; -- transfer acknowledge |
signal wb_err_i : std_ulogic := 'L'; -- transfer error |
-- Wishbone bus interface (available if MEM_EXT_EN = true) -- |
signal wb_tag_o : std_ulogic_vector(02 downto 0); -- request tag |
signal wb_adr_o : std_ulogic_vector(31 downto 0); -- address |
signal wb_dat_i : std_ulogic_vector(31 downto 0) := (others => 'U'); -- read data |
signal wb_dat_o : std_ulogic_vector(31 downto 0); -- write data |
signal wb_we_o : std_ulogic; -- read/write |
signal wb_sel_o : std_ulogic_vector(03 downto 0); -- byte enable |
signal wb_stb_o : std_ulogic; -- strobe |
signal wb_cyc_o : std_ulogic; -- valid cycle |
signal wb_lock_o : std_ulogic; -- exclusive access request |
signal wb_ack_i : std_ulogic := 'L'; -- transfer acknowledge |
signal wb_err_i : std_ulogic := 'L'; -- transfer error |
|
begin |
|
294,7 → 298,11
IO_GPIO_EN => IO_GPIO_EN, |
IO_MTIME_EN => IO_MTIME_EN, |
IO_UART0_EN => IO_UART0_EN, |
IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, |
IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, |
IO_UART1_EN => IO_UART1_EN, |
IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, |
IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, |
IO_SPI_EN => IO_SPI_EN, |
IO_TWI_EN => IO_TWI_EN, |
IO_PWM_NUM_CH => IO_PWM_NUM_CH, |
391,9 → 399,10
-- CPU interrupts -- |
mtime_irq_i => mtime_irq_i, |
msw_irq_i => msw_irq_i, |
mext_irq_i => mext_irq_i); |
mext_irq_i => mext_irq_i |
); |
|
-- Wishbone to AvalonMM brdige |
-- Wishbone to AvalonMM bridge |
read_o <= '1' when (wb_stb_o = '1' and wb_we_o = '0') else '0'; |
write_o <= '1' when (wb_stb_o = '1' and wb_we_o = '1') else '0'; |
address_o <= std_logic_vector(wb_adr_o); |
/neorv32_SystemTop_axi4lite.vhd
92,7 → 92,11
IO_GPIO_EN : boolean := true; -- implement general purpose input/output port unit (GPIO)? |
IO_MTIME_EN : boolean := true; -- implement machine system timer (MTIME)? |
IO_UART0_EN : boolean := true; -- implement primary universal asynchronous receiver/transmitter (UART0)? |
IO_UART0_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART0_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_UART1_EN : boolean := true; -- implement secondary universal asynchronous receiver/transmitter (UART1)? |
IO_UART1_RX_FIFO : natural := 1; -- RX fifo depth, has to be a power of two, min 1 |
IO_UART1_TX_FIFO : natural := 1; -- TX fifo depth, has to be a power of two, min 1 |
IO_SPI_EN : boolean := true; -- implement serial peripheral interface (SPI)? |
IO_TWI_EN : boolean := true; -- implement two-wire interface (TWI)? |
IO_PWM_NUM_CH : natural := 4; -- number of PWM channels to implement (0..60); 0 = disabled |
102,7 → 106,8
IO_CFS_CONFIG : std_logic_vector(31 downto 0) := x"00000000"; -- custom CFS configuration generic |
IO_CFS_IN_SIZE : positive := 32; -- size of CFS input conduit in bits |
IO_CFS_OUT_SIZE : positive := 32; -- size of CFS output conduit in bits |
IO_NEOLED_EN : boolean := true -- implement NeoPixel-compatible smart LED interface (NEOLED)? |
IO_NEOLED_EN : boolean := true; -- implement NeoPixel-compatible smart LED interface (NEOLED)? |
IO_NEOLED_TX_FIFO : natural := 1 -- NEOLED TX FIFO depth, 1..32k, has to be a power of two |
); |
port ( |
-- ------------------------------------------------------------ |
317,7 → 322,11
IO_GPIO_EN => IO_GPIO_EN, -- implement general purpose input/output port unit (GPIO)? |
IO_MTIME_EN => IO_MTIME_EN, -- implement machine system timer (MTIME)? |
IO_UART0_EN => IO_UART0_EN, -- implement primary universal asynchronous receiver/transmitter (UART0)? |
IO_UART0_RX_FIFO => IO_UART0_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 |
IO_UART0_TX_FIFO => IO_UART0_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 |
IO_UART1_EN => IO_UART1_EN, -- implement secondary universal asynchronous receiver/transmitter (UART1)? |
IO_UART1_RX_FIFO => IO_UART1_RX_FIFO, -- RX fifo depth, has to be a power of two, min 1 |
IO_UART1_TX_FIFO => IO_UART1_TX_FIFO, -- TX fifo depth, has to be a power of two, min 1 |
IO_SPI_EN => IO_SPI_EN, -- implement serial peripheral interface (SPI)? |
IO_TWI_EN => IO_TWI_EN, -- implement two-wire interface (TWI)? |
IO_PWM_NUM_CH => IO_PWM_NUM_CH, -- number of PWM channels to implement (0..60); 0 = disabled |
327,7 → 336,8
IO_CFS_CONFIG => IO_CFS_CONFIG_INT, -- custom CFS configuration generic |
IO_CFS_IN_SIZE => IO_CFS_IN_SIZE, -- size of CFS input conduit in bits |
IO_CFS_OUT_SIZE => IO_CFS_OUT_SIZE, -- size of CFS output conduit in bits |
IO_NEOLED_EN => IO_NEOLED_EN -- implement NeoPixel-compatible smart LED interface (NEOLED)? |
IO_NEOLED_EN => IO_NEOLED_EN, -- implement NeoPixel-compatible smart LED interface (NEOLED)? |
IO_NEOLED_TX_FIFO => IO_NEOLED_TX_FIFO -- NEOLED TX FIFO depth, 1..32k, has to be a power of two |
) |
port map ( |
-- Global control -- |
405,8 → 415,12
|
uart0_txd_o <= std_logic(uart0_txd_o_int); |
uart0_rxd_i_int <= std_ulogic(uart0_rxd_i); |
uart1_txd_o <= std_logic(uart0_txd_o_int); |
uart1_rxd_i_int <= std_ulogic(uart0_rxd_i); |
uart0_rts_o <= std_logic(uart0_rts_o_int); |
uart0_cts_i_int <= std_ulogic(uart0_cts_i); |
uart1_txd_o <= std_logic(uart1_txd_o_int); |
uart1_rxd_i_int <= std_ulogic(uart1_rxd_i); |
uart1_rts_o <= std_logic(uart1_rts_o_int); |
uart1_cts_i_int <= std_ulogic(uart1_cts_i); |
|
spi_sck_o <= std_logic(spi_sck_o_int); |
spi_sdo_o <= std_logic(spi_sdo_o_int); |