1 | library IEEE;
|
2 | use IEEE.std_logic_1164.ALL;
|
3 | use IEEE.numeric_std.ALL;
|
4 |
|
5 | --pin assignment
|
6 | --ADC_OEA Location PIN_T25
|
7 | --ADC_OEB Location PIN_T26
|
8 | --CLOCK_50 Location PIN_Y2
|
9 | --DAC_MODE Location PIN_H24
|
10 | --DAC_WRTA Location PIN_H23
|
11 | --DAC_WRTB Location PIN_M25
|
12 | --adcA_outofrange Location Y28
|
13 | --adcB_outofrange Location Y27
|
14 | --PLL_OUT_ADC[0] Location PIN_G23
|
15 | --PLL_OUT_ADC[1] Location PIN_G24
|
16 | --PLL_OUT_DAC[0] Location PIN_V24
|
17 | --PLL_OUT_DAC[1] Location PIN_V23
|
18 | --RESET Location PIN_AB28
|
19 | --PLL_IN_ADC Location PIN_J27
|
20 | --PLL_IN_DAC Location PIN_J28
|
21 | --XIN[0] Location PIN_T22
|
22 | --XIN[1] Location PIN_T21
|
23 | --XIN[2] Location PIN_R23
|
24 | --XIN[3] Location PIN_R22
|
25 | --XIN[4] Location PIN_R21
|
26 | --XIN[5] Location PIN_P21
|
27 | --XIN[6] Location PIN_P26
|
28 | --XIN[7] Location PIN_P25
|
29 | --XIN[8] Location PIN_N26
|
30 | --XIN[9] Location PIN_N25
|
31 | --XIN[10] Location PIN_L22
|
32 | --XIN[11] Location PIN_L21
|
33 | --XIN[12] Location PIN_U26
|
34 | --XIN[13] Location PIN_U25
|
35 | --XOUT[0] Location PIN_D27
|
36 | --XOUT[1] Location PIN_D28
|
37 | --XOUT[2] Location PIN_E27
|
38 | --XOUT[3] Location PIN_E28
|
39 | --XOUT[4] Location PIN_F27
|
40 | --XOUT[5] Location PIN_F28
|
41 | --XOUT[6] Location PIN_G27
|
42 | --XOUT[7] Location PIN_G28
|
43 | --XOUT[8] Location PIN_K27
|
44 | --XOUT[9] Location PIN_K28
|
45 | --XOUT[10] Location PIN_M27
|
46 | --XOUT[11] Location PIN_M28
|
47 | --XOUT[12] Location PIN_K21
|
48 | --XOUT[13] Location PIN_K22
|
49 | --YIN[0] Location PIN_V22
|
50 | --YIN[1] Location PIN_U22
|
51 | --YIN[2] Location PIN_V28
|
52 | --YIN[3] Location PIN_V27
|
53 | --YIN[4] Location PIN_U28
|
54 | --YIN[5] Location PIN_U27
|
55 | --YIN[6] Location PIN_R28
|
56 | --YIN[7] Location PIN_R27
|
57 | --YIN[8] Location PIN_V26
|
58 | --YIN[9] Location PIN_V25
|
59 | --YIN[10] Location PIN_L28
|
60 | --YIN[11] Location PIN_L27
|
61 | --YIN[12] Location PIN_J26
|
62 | --YIN[13] Location PIN_J25
|
63 | --YOUT[0] Location PIN_F24
|
64 | --YOUT[1] Location PIN_F25
|
65 | --YOUT[2] Location PIN_D26
|
66 | --YOUT[3] Location PIN_C27
|
67 | --YOUT[4] Location PIN_F26
|
68 | --YOUT[5] Location PIN_E26
|
69 | --YOUT[6] Location PIN_G25
|
70 | --YOUT[7] Location PIN_G26
|
71 | --YOUT[8] Location PIN_H25
|
72 | --YOUT[9] Location PIN_H26
|
73 | --YOUT[10] Location PIN_K25
|
74 | --YOUT[11] Location PIN_K26
|
75 | --YOUT[12] Location PIN_L23
|
76 | --YOUT[13] Location PIN_L24
|
77 |
|
78 | entity adctest is
|
79 | port(
|
80 | --fastclockin : in std_logic;
|
81 | clock50mhz_in : in std_logic;
|
82 | inputA : in std_logic_vector (13 downto 0);
|
83 | inputB : in std_logic_vector (13 downto 0) ;
|
84 | outputA : out std_logic_vector (13 downto 0) := (others => '0');
|
85 | outputB : out std_logic_vector (13 downto 0) := (others => '0');
|
86 | adcA_out_enable : out std_logic;
|
87 | adcB_out_enable : out std_logic;
|
88 | --adc_power_on : out std_logic;
|
89 | adcA_outofrange : in std_logic;
|
90 | adcB_outofrange : in std_logic;
|
91 | adcA_clockout : out std_logic;
|
92 | adcB_clockout : out std_logic;
|
93 | dacA_clockout : out std_logic;
|
94 | dacB_clockout : out std_logic;
|
95 | adc_externalclockin : in std_logic;
|
96 | dac_externalclockin : in std_logic;
|
97 | dac_wrtA : out std_logic;
|
98 | dac_wrtB : out std_logic;
|
99 | dac_MODE : out std_logic;
|
100 | TestLED : out std_logic_vector(13 downto 0)
|
101 | );
|
102 | end adctest;
|
103 |
|
104 | architecture behave of adctest is
|
105 |
|
106 | component pll
|
107 | PORT
|
108 | (
|
109 | inclk0 : IN STD_LOGIC;
|
110 | c0 : OUT STD_LOGIC
|
111 | );
|
112 | END component;
|
113 |
|
114 | type RAM is array (15 downto 0) of std_logic_vector (13 downto 0);
|
115 | signal fifo : RAM := (others => (others => '0'));
|
116 | signal outvalueA, outvalueB : std_logic_vector(13 downto 0);
|
117 | signal counter : signed (13 downto 0);
|
118 | signal clock50mhz3_5ns : std_logic;
|
119 | signal clock50mhz0ns : std_logic;
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | begin
|
126 | c0 : pll port map
|
127 | (
|
128 | inclk0 => clock50mhz0ns,
|
129 | c0 => clock50mhz3_5ns
|
130 | );
|
131 |
|
132 |
|
133 | -- process (clock50mhz0ns)
|
134 | -- begin --process
|
135 | -- fifo(15 downto 0) <= fifo(14 downto 0) & inputA;
|
136 | -- -- apply here filter
|
137 | -- outvalue <= fifo(15)
|
138 | -- end process;
|
139 |
|
140 |
|
141 | process (clock50mhz3_5ns)
|
142 | begin --process
|
143 | if rising_edge(clock50mhz3_5ns) then
|
144 | counter <= counter + 100;
|
145 | outvalueA <= inputA;
|
146 | outvalueB <= inputB;
|
147 | end if;
|
148 | end process;
|
149 |
|
150 | --configure adc and dac
|
151 | adcA_out_enable <= '0';
|
152 | adcB_out_enable <= '0';
|
153 | dac_MODE <= '1'; --dualmode
|
154 | --timings
|
155 | dac_wrtA <= clock50mhz0ns;
|
156 | dac_wrtB <= clock50mhz0ns;
|
157 | dacA_clockout <= clock50mhz0ns;
|
158 | dacB_clockout <= clock50mhz0ns;
|
159 | adcA_clockout <= clock50mhz0ns;
|
160 | adcB_clockout <=clock50mhz0ns;
|
161 | -- wire clock
|
162 | clock50mhz0ns <= clock50mhz_in;
|
163 | --feedback
|
164 | outputB <= outvalueB;
|
165 | outputA <= outvalueA;
|
166 | TEstLED <= inputB;
|
167 | end behave;
|