00001
00002 --**************************************************************
00003 --* *
00004 --* The source code for the ATLAS BCM "AAA" FPGA is made *
00005 --* available via the GNU General Public License (GPL) *
00006 --* unless otherwise stated below. *
00007 --* *
00008 --* In case of problems/questions/bug reports etc. please *
00009 --* contact michael.niegl@cern.ch *
00010 --* *
00011 --**************************************************************
00012
00013 --**************************************************************
00014 --* *
00015 --* $Source: /local/reps/bcmfpga/bcm_aaa/bcm_aaa/div/proc_data_emul.vhd,v $
00016 --* $Revision: 1.3.2.3 $ *
00017 --* $Name: dev $ *
00018 --* $Author: mniegl $ *
00019 --* $Date: 2008/11/03 17:57:45 $ *
00020
00021
00022 --* *
00023 --**************************************************************
00024
00025 library ieee;
00026
00027 use ieee.std_logic_1164.all;
00028
00029 use ieee.numeric_std.all;
00030
00031
00032
00033
00034 entity proc_data_emul is
00035
00036 port (
00037 CLK : in ;
00038 RESET : in ;
00039 EN : in ;
00040 CH1 : out (23 downto 0);
00041 CH2 : out (23 downto 0);
00042 CH3 : out (23 downto 0);
00043 CH4 : out (23 downto 0);
00044 CH5 : out (23 downto 0);
00045 CH6 : out (23 downto 0);
00046 CH7 : out (23 downto 0);
00047 CH8 : out (23 downto 0)
00048 );
00049
00050 end proc_data_emul;
00051
00052
00053
00054
00055 architecture proc_data_emul_arc of proc_data_emul is
00056
00057 -- component LFSR14_23A3
00058 -- port (
00059 -- clock : in std_logic;
00060 -- en : in std_logic;
00061 -- q : out std_logic_vector(13 downto 0)
00062 -- );
00063 -- end component;
00064
00065
00066 component loop_cnt_sh
00067 port (
00068 CLK : in ;
00069 EN : in ;
00070 RESET : in ;
00071 Y : out (5 downto 0));
00072 end component;
00073
00074 type datarr is array (1 to 8) of (23 downto 0);
00075 type datarr_l is array (1 to 8) of (5 downto 0);
00076 type datarr_s is array (1 to 8) of (4 downto 0);
00077 signal data_i : datarr;
00078 signal data_il : datarr_l;
00079 signal data_is : datarr_s;
00080 signal data_il_n : datarr_l;
00081 signal data_is_n : datarr_s;
00082
00083 begin -- proc_data_emul_arc
00084
00085 CH1 <= data_i(1);
00086 CH2 <= data_i(2);
00087 CH3 <= data_i(3);
00088 CH4 <= data_i(4);
00089 CH5 <= data_i(5);
00090 CH6 <= data_i(6);
00091 CH7 <= data_i(7);
00092 CH8 <= data_i(8);
00093
00094 data_gen : for I in 1 to 8 generate
00095
00096 -- lfsr_data : LFSR14_23A3
00097 -- port map (
00098 -- clock => CLK,
00099 -- en => EN,
00100 -- q(4 downto 0) => data_is(I),
00101 -- q(13 downto 5) => open
00102 -- );
00103
00104 data_is(I) <= "11111";
00105
00106 cnt_data : loop_cnt_sh
00107 port map (
00108 CLK => CLK ,
00109 EN => EN ,
00110 RESET => RESET ,
00111 Y => data_il (I)
00112 );
00113
00114 data_il_n(I) <= not data_il(I);
00115 data_is_n(I) <= not data_is(I);
00116 data_i(I) <= '1' & data_il(I) & data_is(I) & '1' & data_il_n(I) & data_is_n(I);
00117
00118 end generate data_gen;
00119
00120 end proc_data_emul_arc;