OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [rtl/] [core/] [neorv32_top.vhd] - Diff between revs 50 and 51

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 50 Rev 51
Line 133... Line 133...
    gpio_i      : in  std_ulogic_vector(31 downto 0) := (others => '0'); -- parallel input
    gpio_i      : in  std_ulogic_vector(31 downto 0) := (others => '0'); -- parallel input
 
 
    -- primary UART0 (available if IO_UART0_EN = true) --
    -- primary UART0 (available if IO_UART0_EN = true) --
    uart0_txd_o : out std_ulogic; -- UART0 send data
    uart0_txd_o : out std_ulogic; -- UART0 send data
    uart0_rxd_i : in  std_ulogic := '0'; -- UART0 receive data
    uart0_rxd_i : in  std_ulogic := '0'; -- UART0 receive data
 
    uart0_rts_o : out std_ulogic; -- hw flow control: UART0.RX ready to receive ("RTR"), low-active, optional
 
    uart0_cts_i : in  std_ulogic := '0'; -- hw flow control: UART0.TX allowed to transmit, low-active, optional
 
 
    -- secondary UART1 (available if IO_UART1_EN = true) --
    -- secondary UART1 (available if IO_UART1_EN = true) --
    uart1_txd_o : out std_ulogic; -- UART1 send data
    uart1_txd_o : out std_ulogic; -- UART1 send data
    uart1_rxd_i : in  std_ulogic := '0'; -- UART1 receive data
    uart1_rxd_i : in  std_ulogic := '0'; -- UART1 receive data
 
    uart1_rts_o : out std_ulogic; -- hw flow control: UART1.RX ready to receive ("RTR"), low-active, optional
 
    uart1_cts_i : in  std_ulogic := '0'; -- hw flow control: UART1.TX allowed to transmit, low-active, optional
 
 
    -- SPI (available if IO_SPI_EN = true) --
    -- SPI (available if IO_SPI_EN = true) --
    spi_sck_o   : out std_ulogic; -- SPI serial clock
    spi_sck_o   : out std_ulogic; -- SPI serial clock
    spi_sdo_o   : out std_ulogic; -- controller data out, peripheral data in
    spi_sdo_o   : out std_ulogic; -- controller data out, peripheral data in
    spi_sdi_i   : in  std_ulogic := '0'; -- controller data in, peripheral data out
    spi_sdi_i   : in  std_ulogic := '0'; -- controller data in, peripheral data out
Line 477... Line 481...
  fast_irq(12) <= soc_firq_i(2);
  fast_irq(12) <= soc_firq_i(2);
  fast_irq(13) <= soc_firq_i(3);
  fast_irq(13) <= soc_firq_i(3);
  fast_irq(14) <= soc_firq_i(4);
  fast_irq(14) <= soc_firq_i(4);
  fast_irq(15) <= soc_firq_i(5);
  fast_irq(15) <= soc_firq_i(5);
 
 
  -- IRQ acknowledge --
  -- CFS IRQ acknowledge --
  cfs_irq_ack <= fast_irq_ack(2);
  cfs_irq_ack <= fast_irq_ack(1);
 
 
 
 
  -- CPU Instruction Cache ------------------------------------------------------------------
  -- CPU Instruction Cache ------------------------------------------------------------------
  -- -------------------------------------------------------------------------------------------
  -- -------------------------------------------------------------------------------------------
  neorv32_icache_inst_true:
  neorv32_icache_inst_true:
Line 890... Line 894...
    mtime_ack   <= '0';
    mtime_ack   <= '0';
    mtime_irq   <= mtime_irq_i; -- use external machine timer interrupt
    mtime_irq   <= mtime_irq_i; -- use external machine timer interrupt
  end generate;
  end generate;
 
 
 
 
  -- Universal Asynchronous Receiver/Transmitter 0, Primary UART (UART0) --------------------
  -- Primary Universal Asynchronous Receiver/Transmitter (UART0) ----------------------------
  -- -------------------------------------------------------------------------------------------
  -- -------------------------------------------------------------------------------------------
  neorv32_uart0_inst_true:
  neorv32_uart0_inst_true:
  if (IO_UART0_EN = true) generate
  if (IO_UART0_EN = true) generate
    neorv32_uart0_inst: neorv32_uart
    neorv32_uart0_inst: neorv32_uart
    generic map (
    generic map (
Line 913... Line 917...
      clkgen_en_o => uart0_cg_en,  -- enable clock generator
      clkgen_en_o => uart0_cg_en,  -- enable clock generator
      clkgen_i    => clk_gen,
      clkgen_i    => clk_gen,
      -- com lines --
      -- com lines --
      uart_txd_o  => uart0_txd_o,
      uart_txd_o  => uart0_txd_o,
      uart_rxd_i  => uart0_rxd_i,
      uart_rxd_i  => uart0_rxd_i,
 
      -- hardware flow control --
 
      uart_rts_o  => uart0_rts_o,   -- UART.RX ready to receive ("RTR"), low-active, optional
 
      uart_cts_i  => uart0_cts_i,   -- UART.TX allowed to transmit, low-active, optional
      -- interrupts --
      -- interrupts --
      irq_rxd_o   => uart0_rxd_irq, -- uart data received interrupt
      irq_rxd_o   => uart0_rxd_irq, -- uart data received interrupt
      irq_txd_o   => uart0_txd_irq  -- uart transmission done interrupt
      irq_txd_o   => uart0_txd_irq  -- uart transmission done interrupt
    );
    );
  end generate;
  end generate;
Line 924... Line 931...
  neorv32_uart0_inst_false:
  neorv32_uart0_inst_false:
  if (IO_UART0_EN = false) generate
  if (IO_UART0_EN = false) generate
    uart0_rdata   <= (others => '0');
    uart0_rdata   <= (others => '0');
    uart0_ack     <= '0';
    uart0_ack     <= '0';
    uart0_txd_o   <= '0';
    uart0_txd_o   <= '0';
 
    uart0_rts_o   <= '0';
    uart0_cg_en   <= '0';
    uart0_cg_en   <= '0';
    uart0_rxd_irq <= '0';
    uart0_rxd_irq <= '0';
    uart0_txd_irq <= '0';
    uart0_txd_irq <= '0';
  end generate;
  end generate;
 
 
 
 
  -- Universal Asynchronous Receiver/Transmitter 1, Secondary UART (UART1) ------------------
  -- Secondary Universal Asynchronous Receiver/Transmitter (UART1) --------------------------
  -- -------------------------------------------------------------------------------------------
  -- -------------------------------------------------------------------------------------------
  neorv32_uart1_inst_true:
  neorv32_uart1_inst_true:
  if (IO_UART1_EN = true) generate
  if (IO_UART1_EN = true) generate
    neorv32_uart1_inst: neorv32_uart
    neorv32_uart1_inst: neorv32_uart
    generic map (
    generic map (
Line 953... Line 961...
      clkgen_en_o => uart1_cg_en,  -- enable clock generator
      clkgen_en_o => uart1_cg_en,  -- enable clock generator
      clkgen_i    => clk_gen,
      clkgen_i    => clk_gen,
      -- com lines --
      -- com lines --
      uart_txd_o  => uart1_txd_o,
      uart_txd_o  => uart1_txd_o,
      uart_rxd_i  => uart1_rxd_i,
      uart_rxd_i  => uart1_rxd_i,
 
      -- hardware flow control --
 
      uart_rts_o  => uart1_rts_o,   -- UART.RX ready to receive ("RTR"), low-active, optional
 
      uart_cts_i  => uart1_cts_i,   -- UART.TX allowed to transmit, low-active, optional
      -- interrupts --
      -- interrupts --
      irq_rxd_o   => uart1_rxd_irq, -- uart data received interrupt
      irq_rxd_o   => uart1_rxd_irq, -- uart data received interrupt
      irq_txd_o   => uart1_txd_irq  -- uart transmission done interrupt
      irq_txd_o   => uart1_txd_irq  -- uart transmission done interrupt
    );
    );
  end generate;
  end generate;
Line 964... Line 975...
  neorv32_uart1_inst_false:
  neorv32_uart1_inst_false:
  if (IO_UART1_EN = false) generate
  if (IO_UART1_EN = false) generate
    uart1_rdata   <= (others => '0');
    uart1_rdata   <= (others => '0');
    uart1_ack     <= '0';
    uart1_ack     <= '0';
    uart1_txd_o   <= '0';
    uart1_txd_o   <= '0';
 
    uart1_rts_o   <= '0';
    uart1_cg_en   <= '0';
    uart1_cg_en   <= '0';
    uart1_rxd_irq <= '0';
    uart1_rxd_irq <= '0';
    uart1_txd_irq <= '0';
    uart1_txd_irq <= '0';
  end generate;
  end generate;
 
 
Line 1038... Line 1050...
 
 
  neorv32_twi_inst_false:
  neorv32_twi_inst_false:
  if (IO_TWI_EN = false) generate
  if (IO_TWI_EN = false) generate
    twi_rdata  <= (others => '0');
    twi_rdata  <= (others => '0');
    twi_ack    <= '0';
    twi_ack    <= '0';
--  twi_sda_io <= 'Z';
--  twi_sda_io <= 'Z'; -- FIXME?
--  twi_scl_io <= 'Z';
--  twi_scl_io <= 'Z'; -- FIXME?
    twi_cg_en  <= '0';
    twi_cg_en  <= '0';
    twi_irq    <= '0';
    twi_irq    <= '0';
  end generate;
  end generate;
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.