]> AND Private Git Repository - blast.git/blob - lib/implementations/clkdomain_convert_1024x8_impl.xml
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
cdab60b298d5619ee5ce3b7cb6497daadaf3dad1
[blast.git] / lib / implementations / clkdomain_convert_1024x8_impl.xml
1 <!DOCTYPE clkdomain_convert_1024x8>
2 <block_impl ref_name="clkdomain_convert_1024x8.xml" ref_md5="">
3   <comments>
4     <author mail="sdomas@univ-fcomte.fr" lastname="domas" firstname="stephane"/>
5     <date creation="2018-04-13"/>
6     <related_files list=""/>
7     <description>This IP allows to pass 8 bits values from a clock domain to another. It uses a FIFO of 1024 entries.
8 </description>
9     <notes>This IP allows to pass 8 bits values from a clock domain to another. It uses a FIFO of 1024 entries.</notes>
10   </comments>
11   <libraries>
12     <library name="ieee">
13       <package use="all" name="std_logic_1164"/>
14       <package use="all" name="numeric_std"/>
15     </library>
16   </libraries>
17   <architecture comp_list="clkdconvert_1024x8">
18 component clkdconvert_1024x8
19 port (
20 rst : in std_logic;
21 wr_clk : in std_logic;
22 rd_clk : in std_logic;
23 din : in std_logic_vector(7 downto 0);
24 wr_en : in std_logic;
25 rd_en : in std_logic;
26 dout : out std_logic_vector(7 downto 0);
27 full : out std_logic;
28 empty : out std_logic
29 );
30 end component;
31
32 signal rd_en : std_logic;
33 signal full : std_logic;
34 signal empty : std_logic;
35
36 begin
37
38 clkdconvert_1024x8_1 : clkdconvert_1024x8
39 port map (
40 rst => @{reset},
41 wr_clk => @{clk_wr},
42 rd_clk => @{clk_rd},
43 din => @{data_in},
44 wr_en => @{data_in_enb},
45 rd_en => rd_en,
46 dout => @{data_out},
47 full => full,
48 empty => empty
49 );
50
51 rd_en &lt;= not empty;
52
53 read_fifo : process(@{clk_rd}, @{reset})
54 begin
55 if @{reset} = '1' then
56 @{data_out_enb} &lt;= '0';
57 elsif rising_edge(@{clk_rd}) then
58 @{data_out_enb} &lt;= '0';
59 if empty = '0' then
60 @{data_out_enb} &lt;= '1';
61 end if;
62 end if;
63 end process read_fifo;
64
65 end architecture clkdomain_convert_1024x8_1;
66 </architecture>
67   <patterns>
68     <delta value="1"/>
69     <consumption>
70       <input name="data_in_enb" pattern="1"/>
71     </consumption>
72     <production counter="1">
73       <output name="data_out_enb" pattern="01"/>
74     </production>
75   </patterns>
76 </block_impl>