1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2 <block_impl ref_name="demux.xml" ref_md5="">
4 <author firstname="stephane" lastname="Domas" mail="sdomas@univ-fcomte.fr" />
5 <log creation="2018-05-02">
13 <package name="std_logic_1164" use="all"/>
14 <package name="numeric_std" use="all"/>
20 signal sel_s : unsigned(@eval{@val{sel_width}-1} downto 0);
21 signal val_i_dly : std_logic_vector(@eval{@val{val_width}-1} downto 0};
24 signal @{val_o}_enb : std_logic;
31 delay_input : process(@{clk}, @{rst})
34 val_i_dly <= (others => '0');
35 elsif(rising_edge(@{clk})) then
36 val_i_dly <= @{val_i};
38 end process delay_input;
41 demux : process(@{clk}, @{rst})
46 @{val_o}_enb <= '0';
49 elsif(rising_edge(@{clk})) then
52 @{val_o}_enb <= '0';
55 @caseeach{val_o,sel_s,@#:1}
56 @{val_o}_enb <= '1';
63 @{val_o} <= val_i_dly when (@{val_o}_enb = '1') else (others => '0');