15 use IEEE.STD_LOGIC_1164.
all;
17 use ipbus_lib.ipbus.
all;
19 library infrastructure_lib;
20 use infrastructure_lib.all;
35 status : in std_logic_vector(31 downto 0);
39 reconfig_reg : out std_logic_vector(31 downto 0);
42 sda_o : out std_logic;
62 VAUXP, VAUXN : in STD_LOGIC_VECTOR (5 downto 0);
74 signal ipbw : ipb_wbus_array(N_SLAVES-1 downto 0);
75 signal ipbr, ipbr_d : ipb_rbus_array(N_SLAVES-1 downto 0);
76 signal ctrl_pulse_reg : std_logic_vector(31 downto 0);
77 signal pll_spi_in, flash_spi_in : spi_mi;
78 signal pll_spi_out, flash_spi_out : spi_mo;
79 signal flash_select : std_logic_vector(1 downto 0) := (others => '0');
104 fabric :
entity ipbus_lib.ipbus_fabric_sel
105 generic map(NSLV => N_SLAVES,
106 SEL_WIDTH => ipbus_sel_width
)
110 sel => ipbus_sel_efex_cntrl_infrastructure
(ipb_in.ipb_addr
),
111 ipb_to_slaves => ipbw,
112 ipb_from_slaves => ipbr
116 module_control :
entity ipbus_lib.ipbus_ctrlreg_v
123 ipbus_in => ipbw
(N_SLV_MODULE_REG
),
124 ipbus_out => ipbr
(N_SLV_MODULE_REG
),
132 xadc :
entity work.
ipbus_xadc_drp -- accessing the xadc
of the FPGA
143 ipbus_in => ipbw
(N_SLV_XADC
),
144 ipbus_out => ipbr
(N_SLV_XADC
)
148 reconfig :
entity ipbus_lib.ipbus_ctrlreg_v
155 ipbus_in => ipbw
(N_SLV_RECONFIGURE
),
156 ipbus_out => ipbr
(N_SLV_RECONFIGURE
),
157 d =>
(others =>
(others => '0'
)),
158 ctrl_default
(0) => x"00020000",
159 q
(0) =>
(reconfig_reg
),
164 generic map (addr_width =>
4
169 ipb_in => ipbw
(N_SLV_I2C
),
170 ipb_out => ipbr
(N_SLV_I2C
),
177 spi_pll :
entity work.
ipbus_spi32 -- Slave that used
to configure the PLL
and read its status
185 ipb_in => ipbw
(N_SLV_PLL_SPI_RAM
),
186 ipb_out => ipbr
(N_SLV_PLL_SPI_RAM
),
193 spi_flash :
entity work.
ipbus_spi32 --access
to SPI FLASH
for write/read it
201 ipb_in => ipbw
(N_SLV_FLASH_SPI_RAM
),
202 ipb_out => ipbr
(N_SLV_FLASH_SPI_RAM
),
209 RAM :
entity ipbus_lib.ipbus_ram -- internal ram
for testing the iPbus transactions.
216 ipbus_in => ipbw
(N_SLV_RAM
),
217 ipbus_out => ipbr
(N_SLV_RAM
)
control fpga infrastructure slaves
control fpga infrastructure slaves
out pll_le std_logic
spi pll enable enable
out pll_mosi std_logic
spi pll output signals
in ipb_rst std_logic
IPBus Reset input.
out flash_le std_logic
spi flash enable
out control_reg std_logic_vector( 31 downto 0)
module control signals
in flash_miso std_logic
spi flash input signals
in status std_logic_vector( 31 downto 0)
module status signals
out pll_clko std_logic
spi pll clock
in ipb_clk std_logic
IPBus clock.
out flash_clko std_logic
spi flash clock
out scl std_logic
i2c bus signals
out ipb_out ipb_rbus
IPBus output bus going from slaves to master.
in pll_miso std_logic
spi pll input signals
out pll_select std_logic_vector( 1 downto 0)
spi pll select
out flash_mosi std_logic
spi flash output signals
in ipb_in ipb_wbus
IPBus input bus going from master to slaves.
in spi_in spi_mi
spi input signals
out selreg std_logic_vector( 1 downto 0)
select output
out ipb_out ipb_rbus
IPBus output bus going from slaves to master.
out spi_out spi_mo
spi output signals
in ipb_in ipb_wbus
IPBus input bus going from master to slaves.
in ipbus_clk std_logic
ipbus clk of 31.25MHz