1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <block_impl ref_name="apf27-wb-master.xml" ref_md5="">
4 <author firstname="stephane" lastname="Domas" mail="sdomas@univ-fcomte.fr" />
5 <log creation="2018-05-02">
6 <modification id="1" date="2018-05-02">
7 changed to comply with new structure
11 On i.MX<->FPGA connection : the WEIM part of i.MX has a 16 bits bus address
12 but only [1:12] bits are connected to FPGA pins. From the i.MX point of view
13 it means that reading in memory mapped address 0x0002 or 0x0003 gives the same
14 result since the LSB bit of the address is not transmited.
16 These 12 bits are forwarded to the interconnector which is responsible to
17 determine for what IP the data and addr signals must be routed.
23 <package name="std_logic_1164" use="all"/>
24 <package name="numeric_std" use="all"/>
30 signal write : std_logic;
31 signal read : std_logic;
32 signal strobe : std_logic;
33 signal writedata : std_logic_vector(@{wb_data_width}-1 downto 0);
34 signal address : std_logic_vector(@{wb_addr_width}-1 downto 0);
38 -- ----------------------------------------------------------------------------
39 -- External signals synchronization process
40 -- ----------------------------------------------------------------------------
41 process(@{clk}, @{reset})
47 writedata <= (others => '0');
48 address <= (others => '0');
49 elsif(rising_edge(@{clk})) then
50 strobe <= not (@{imx_cs_n}) and not(@{imx_oe_n} and @{imx_eb3_n});
51 write <= not (@{imx_cs_n} or @{imx_eb3_n});
52 read <= not (@{imx_cs_n} or @{imx_oe_n});
53 address <= @{imx_addr};
54 writedata <= @{imx_data};
58 @{addr_o} <= address when (strobe = '1') else (others => '0');
59 @{dat_o} <= writedata when (write = '1') else (others => '0');
60 @{stb_o} <= strobe;
62 @{cyc_o} <= strobe;
64 @{imx_data} <= @{dat_i} when(read = '1' ) else (others => 'Z');