@@ -1,188 +1,140 | |||
|
1 | LIBRARY ieee; | |
|
2 | USE ieee.std_logic_1164.ALL; | |
|
3 | LIBRARY lpp; | |
|
4 | USE lpp.lpp_ad_conv.ALL; | |
|
5 | ||
|
6 | ------------------------------------------------------------------------------- | |
|
7 | ||
|
8 | ENTITY TB_Data_Acquisition IS | |
|
9 | ||
|
10 | END TB_Data_Acquisition; | |
|
11 | ||
|
12 | ------------------------------------------------------------------------------- | |
|
13 | ||
|
14 | ARCHITECTURE tb OF TB_Data_Acquisition IS | |
|
15 | ||
|
16 | COMPONENT TestModule_ADS7886 | |
|
17 | GENERIC ( | |
|
18 | freq : INTEGER; | |
|
19 |
|
|
|
20 |
|
|
|
21 | PORT ( | |
|
22 | cnv_run : IN STD_LOGIC; | |
|
23 |
cnv : IN |
|
|
24 |
|
|
|
25 |
s |
|
|
26 | END COMPONENT; | |
|
27 | ||
|
28 | COMPONENT Top_Data_Acquisition | |
|
29 | PORT ( | |
|
30 |
|
|
|
31 |
|
|
|
32 |
|
|
|
33 | sdo : IN STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
34 | cnv_clk : IN STD_LOGIC; | |
|
35 |
|
|
|
36 | clk : IN STD_LOGIC; | |
|
37 | rstn : IN STD_LOGIC; | |
|
38 | -- | |
|
39 | sample_f0_0_ren : IN STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
40 | sample_f0_0_rdata : OUT STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
41 | sample_f0_0_full : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
42 | sample_f0_0_empty : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
43 | -- | |
|
44 |
|
|
|
45 | sample_f0_1_rdata : OUT STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
46 |
|
|
|
47 |
|
|
|
48 | -- | |
|
49 |
|
|
|
50 |
|
|
|
51 | sample_f1_full : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
52 |
|
|
|
53 | -- | |
|
54 | sample_f3_ren : IN STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
55 | sample_f3_rdata : OUT STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
56 | sample_f3_full : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
57 | sample_f3_empty : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); | |
|
58 | END COMPONENT; | |
|
59 | ||
|
60 | -- component ports | |
|
61 | SIGNAL cnv_rstn : STD_LOGIC; | |
|
62 | SIGNAL cnv : STD_LOGIC; | |
|
63 | SIGNAL rstn : STD_LOGIC; | |
|
64 | SIGNAL sck : STD_LOGIC; | |
|
65 | SIGNAL sdo : STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
66 | SIGNAL run_cnv : STD_LOGIC; | |
|
67 | ||
|
68 | ||
|
69 | -- clock | |
|
70 | signal Clk : STD_LOGIC := '1'; | |
|
71 | SIGNAL cnv_clk : STD_LOGIC := '1'; | |
|
72 | ||
|
73 | ----------------------------------------------------------------------------- | |
|
74 | SIGNAL sample_f0_0_ren : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
75 | SIGNAL sample_f0_0_rdata : STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
76 | SIGNAL sample_f0_0_full : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
77 | SIGNAL sample_f0_0_empty : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
78 | ----------------------------------------------------------------------------- | |
|
79 | SIGNAL sample_f0_1_ren : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
80 | SIGNAL sample_f0_1_rdata : STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
81 | SIGNAL sample_f0_1_full : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
82 | SIGNAL sample_f0_1_empty : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
83 | ----------------------------------------------------------------------------- | |
|
84 | SIGNAL sample_f1_ren : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
85 | SIGNAL sample_f1_rdata : STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
86 | SIGNAL sample_f1_full : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
87 | SIGNAL sample_f1_empty : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
88 | ----------------------------------------------------------------------------- | |
|
89 | SIGNAL sample_f3_ren : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
90 | SIGNAL sample_f3_rdata : STD_LOGIC_VECTOR((5*18)-1 DOWNTO 0); | |
|
91 | SIGNAL sample_f3_full : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
92 | SIGNAL sample_f3_empty : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
93 | ||
|
94 | ||
|
95 | BEGIN -- tb | |
|
96 | ||
|
97 | MODULE_ADS7886: FOR I IN 0 TO 6 GENERATE | |
|
98 | TestModule_ADS7886_u: TestModule_ADS7886 | |
|
99 | GENERIC MAP ( | |
|
100 | freq => 24*(I+1), | |
|
101 | amplitude => 30000/(I+1), | |
|
102 | impulsion => 0) | |
|
103 | PORT MAP ( | |
|
104 | cnv_run => run_cnv, | |
|
105 | cnv => cnv, | |
|
106 | sck => sck, | |
|
107 | sdo => sdo(I)); | |
|
108 | END GENERATE MODULE_ADS7886; | |
|
109 | ||
|
110 | TestModule_ADS7886_u: TestModule_ADS7886 | |
|
111 | GENERIC MAP ( | |
|
112 | freq => 0, | |
|
113 | amplitude => 30000, | |
|
114 | impulsion => 1) | |
|
115 | PORT MAP ( | |
|
116 |
|
|
|
117 |
|
|
|
118 |
|
|
|
119 | sdo => sdo(7)); | |
|
120 | ||
|
121 | ||
|
122 | -- clock generation | |
|
123 | Clk <= not Clk after 20 ns; -- 25 Mhz | |
|
124 | cnv_clk <= not cnv_clk after 10173 ps; -- 49.152 MHz | |
|
125 | ||
|
126 | -- waveform generation | |
|
127 | WaveGen_Proc: process | |
|
128 | begin | |
|
129 | -- insert signal assignments here | |
|
130 | wait until Clk = '1'; | |
|
131 | rstn <= '0'; | |
|
132 | cnv_rstn <= '0'; | |
|
133 | run_cnv <= '0'; | |
|
134 | wait until Clk = '1'; | |
|
135 | wait until Clk = '1'; | |
|
136 | wait until Clk = '1'; | |
|
137 | rstn <= '1'; | |
|
138 | cnv_rstn <= '1'; | |
|
139 | wait until Clk = '1'; | |
|
140 | wait until Clk = '1'; | |
|
141 | wait until Clk = '1'; | |
|
142 | wait until Clk = '1'; | |
|
143 | wait until Clk = '1'; | |
|
144 | wait until Clk = '1'; | |
|
145 | run_cnv <= '1'; | |
|
146 | wait; | |
|
147 | ||
|
148 | end process WaveGen_Proc; | |
|
149 | ||
|
150 | ----------------------------------------------------------------------------- | |
|
151 | ||
|
152 | Top_Data_Acquisition_1: Top_Data_Acquisition | |
|
153 | PORT MAP ( | |
|
154 | cnv_run => run_cnv, | |
|
155 | cnv => cnv, | |
|
156 | sck => sck, | |
|
157 | sdo => sdo, | |
|
158 | cnv_clk => cnv_clk, | |
|
159 | cnv_rstn => cnv_rstn, | |
|
160 | clk => clk, | |
|
161 | rstn => rstn, | |
|
162 | -- | |
|
163 | sample_f0_0_ren => sample_f0_0_ren, | |
|
164 | sample_f0_0_rdata => sample_f0_0_rdata, | |
|
165 | sample_f0_0_full => sample_f0_0_full, | |
|
166 | sample_f0_0_empty => sample_f0_0_empty, | |
|
167 | -- | |
|
168 | sample_f0_1_ren => sample_f0_1_ren, | |
|
169 | sample_f0_1_rdata => sample_f0_1_rdata, | |
|
170 | sample_f0_1_full => sample_f0_1_full, | |
|
171 | sample_f0_1_empty => sample_f0_1_empty, | |
|
172 | -- | |
|
173 | sample_f1_ren => sample_f1_ren, | |
|
174 | sample_f1_rdata => sample_f1_rdata, | |
|
175 | sample_f1_full => sample_f1_full, | |
|
176 | sample_f1_empty => sample_f1_empty, | |
|
177 | -- | |
|
178 | sample_f3_ren => sample_f3_ren, | |
|
179 | sample_f3_rdata => sample_f3_rdata, | |
|
180 | sample_f3_full => sample_f3_full, | |
|
181 | sample_f3_empty => sample_f3_empty | |
|
182 | ); | |
|
183 | sample_f0_0_ren <= (OTHERS => '1'); | |
|
184 | sample_f0_1_ren <= (OTHERS => '1'); | |
|
185 | sample_f1_ren <= (OTHERS => '1'); | |
|
186 | sample_f3_ren <= (OTHERS => '1'); | |
|
187 | ||
|
188 | END tb; | |
|
1 | LIBRARY ieee; | |
|
2 | USE ieee.std_logic_1164.ALL; | |
|
3 | LIBRARY lpp; | |
|
4 | USE lpp.lpp_ad_conv.ALL; | |
|
5 | USE lpp.lpp_top_lfr_pkg.ALL; | |
|
6 | ||
|
7 | ------------------------------------------------------------------------------- | |
|
8 | ||
|
9 | ENTITY TB_Data_Acquisition IS | |
|
10 | ||
|
11 | END TB_Data_Acquisition; | |
|
12 | ||
|
13 | ------------------------------------------------------------------------------- | |
|
14 | ||
|
15 | ARCHITECTURE tb OF TB_Data_Acquisition IS | |
|
16 | ||
|
17 | COMPONENT TestModule_ADS7886 | |
|
18 | GENERIC ( | |
|
19 | freq : INTEGER; | |
|
20 | amplitude : INTEGER; | |
|
21 | impulsion : INTEGER); | |
|
22 | PORT ( | |
|
23 | cnv_run : IN STD_LOGIC; | |
|
24 | cnv : IN STD_LOGIC; | |
|
25 | sck : IN STD_LOGIC; | |
|
26 | sdo : OUT STD_LOGIC); | |
|
27 | END COMPONENT; | |
|
28 | ||
|
29 | -- component ports | |
|
30 | SIGNAL cnv_rstn : STD_LOGIC; | |
|
31 | SIGNAL cnv : STD_LOGIC; | |
|
32 | SIGNAL rstn : STD_LOGIC; | |
|
33 | SIGNAL sck : STD_LOGIC; | |
|
34 | SIGNAL sdo : STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
35 | SIGNAL run_cnv : STD_LOGIC; | |
|
36 | ||
|
37 | ||
|
38 | -- clock | |
|
39 | signal Clk : STD_LOGIC := '1'; | |
|
40 | SIGNAL cnv_clk : STD_LOGIC := '1'; | |
|
41 | ||
|
42 | ----------------------------------------------------------------------------- | |
|
43 | SIGNAL sample_f0_wen : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
44 | SIGNAL sample_f0_wdata : STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
45 | ----------------------------------------------------------------------------- | |
|
46 | SIGNAL sample_f1_wen : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
47 | SIGNAL sample_f1_wdata : STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
48 | ----------------------------------------------------------------------------- | |
|
49 | SIGNAL sample_f2_wen : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
50 | SIGNAL sample_f2_wdata : STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
51 | ----------------------------------------------------------------------------- | |
|
52 | SIGNAL sample_f3_wen : STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
53 | SIGNAL sample_f3_wdata : STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
54 | ||
|
55 | BEGIN -- tb | |
|
56 | ||
|
57 | MODULE_ADS7886: FOR I IN 0 TO 6 GENERATE | |
|
58 | TestModule_ADS7886_u: TestModule_ADS7886 | |
|
59 | GENERIC MAP ( | |
|
60 | freq => 24*(I+1), | |
|
61 | amplitude => 30000/(I+1), | |
|
62 | impulsion => 0) | |
|
63 | PORT MAP ( | |
|
64 | cnv_run => run_cnv, | |
|
65 | cnv => cnv, | |
|
66 | sck => sck, | |
|
67 | sdo => sdo(I)); | |
|
68 | END GENERATE MODULE_ADS7886; | |
|
69 | ||
|
70 | TestModule_ADS7886_u: TestModule_ADS7886 | |
|
71 | GENERIC MAP ( | |
|
72 | freq => 0, | |
|
73 | amplitude => 30000, | |
|
74 | impulsion => 1) | |
|
75 | PORT MAP ( | |
|
76 | cnv_run => run_cnv, | |
|
77 | cnv => cnv, | |
|
78 | sck => sck, | |
|
79 | sdo => sdo(7)); | |
|
80 | ||
|
81 | ||
|
82 | -- clock generation | |
|
83 | Clk <= not Clk after 20 ns; -- 25 Mhz | |
|
84 | cnv_clk <= not cnv_clk after 10173 ps; -- 49.152 MHz | |
|
85 | ||
|
86 | -- waveform generation | |
|
87 | WaveGen_Proc: process | |
|
88 | begin | |
|
89 | -- insert signal assignments here | |
|
90 | wait until Clk = '1'; | |
|
91 | rstn <= '0'; | |
|
92 | cnv_rstn <= '0'; | |
|
93 | run_cnv <= '0'; | |
|
94 | wait until Clk = '1'; | |
|
95 | wait until Clk = '1'; | |
|
96 | wait until Clk = '1'; | |
|
97 | rstn <= '1'; | |
|
98 | cnv_rstn <= '1'; | |
|
99 | wait until Clk = '1'; | |
|
100 | wait until Clk = '1'; | |
|
101 | wait until Clk = '1'; | |
|
102 | wait until Clk = '1'; | |
|
103 | wait until Clk = '1'; | |
|
104 | wait until Clk = '1'; | |
|
105 | run_cnv <= '1'; | |
|
106 | wait; | |
|
107 | ||
|
108 | end process WaveGen_Proc; | |
|
109 | ||
|
110 | ----------------------------------------------------------------------------- | |
|
111 | ||
|
112 | Top_Data_Acquisition_1: lpp_top_acq | |
|
113 | PORT MAP ( | |
|
114 | cnv_run => run_cnv, | |
|
115 | cnv => cnv, | |
|
116 | sck => sck, | |
|
117 | sdo => sdo, | |
|
118 | cnv_clk => cnv_clk, | |
|
119 | cnv_rstn => cnv_rstn, | |
|
120 | clk => clk, | |
|
121 | rstn => rstn, | |
|
122 | -- | |
|
123 | sample_f0_wen => sample_f0_wen, | |
|
124 | sample_f0_wdata => sample_f0_wdata, | |
|
125 | -- | |
|
126 | sample_f1_wen => sample_f1_wen, | |
|
127 | sample_f1_wdata => sample_f1_wdata, | |
|
128 | -- | |
|
129 | sample_f2_wen => sample_f2_wen, | |
|
130 | sample_f2_wdata => sample_f2_wdata, | |
|
131 | -- | |
|
132 | sample_f3_wen => sample_f3_wen, | |
|
133 | sample_f3_wdata => sample_f3_wdata | |
|
134 | ); | |
|
135 | ||
|
136 | ||
|
137 | ||
|
138 | ||
|
139 | ||
|
140 | END tb; |
@@ -1,49 +1,54 | |||
|
1 | ||
|
2 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/general_purpose.vhd | |
|
3 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/SYNC_FF.vhd | |
|
4 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MUXN.vhd | |
|
5 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MUX2.vhd | |
|
6 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/REG.vhd | |
|
7 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC.vhd | |
|
8 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_CONTROLER.vhd | |
|
9 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_REG.vhd | |
|
10 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_MUX.vhd | |
|
11 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_MUX2.vhd | |
|
12 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/Shifter.vhd | |
|
13 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MULTIPLIER.vhd | |
|
14 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ADDER.vhd | |
|
15 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ALU.vhd | |
|
16 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ADDRcntr.vhd | |
|
17 | ||
|
18 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/iir_filter.vhd | |
|
19 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/FILTERcfg.vhd | |
|
20 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CEL.vhd | |
|
21 |
vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_C |
|
|
22 |
|
|
|
23 | ||
|
24 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CTRLR_v2.vhd | |
|
25 |
vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/ |
|
|
26 |
vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR_v2_ |
|
|
27 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR_v2.vhd | |
|
28 | ||
|
29 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lpp_memory.vhd | |
|
30 |
vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lpp_ |
|
|
31 |
vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lppFIFO |
|
|
32 | ||
|
33 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/lpp_downsampling/Downsampling.vhd | |
|
34 | ||
|
35 | vcom -quiet -93 -work lpp e:/opt/tortoiseHG_vhdlib/lib/lpp/lpp_top_lfr/lpp_top_lfr_pkg.vhd | |
|
36 |
vcom -quiet -93 -work lpp e:/opt/tortoiseHG_vhdlib/lib/lpp/lpp_top_lfr/lpp_top_ |
|
|
37 | ||
|
38 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/lpp_ad_conv.vhd | |
|
39 |
vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/ |
|
|
40 |
vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/ |
|
|
41 | ||
|
42 | vcom -quiet -93 -work work Top_Data_Acquisition.vhd | |
|
43 | vcom -quiet -93 -work work TB_Data_Acquisition.vhd | |
|
44 | ||
|
45 | #vsim work.TB_Data_Acquisition | |
|
46 | ||
|
47 | #log -r * | |
|
48 | #do wave_data_acquisition.do | |
|
1 | ||
|
2 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/general_purpose.vhd | |
|
3 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/SYNC_FF.vhd | |
|
4 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MUXN.vhd | |
|
5 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MUX2.vhd | |
|
6 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/REG.vhd | |
|
7 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC.vhd | |
|
8 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_CONTROLER.vhd | |
|
9 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_REG.vhd | |
|
10 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_MUX.vhd | |
|
11 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MAC_MUX2.vhd | |
|
12 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/Shifter.vhd | |
|
13 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/MULTIPLIER.vhd | |
|
14 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ADDER.vhd | |
|
15 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ALU.vhd | |
|
16 | vcom -quiet -93 -work lpp ../../lib/lpp/general_purpose/ADDRcntr.vhd | |
|
17 | ||
|
18 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/iir_filter.vhd | |
|
19 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/FILTERcfg.vhd | |
|
20 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CEL.vhd | |
|
21 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CEL_N.vhd | |
|
22 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CTRLR2.vhd | |
|
23 | #vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR.vhd | |
|
24 | ||
|
25 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/RAM_CTRLR_v2.vhd | |
|
26 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR_v2_DATAFLOW.vhd | |
|
27 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR_v2_CONTROL.vhd | |
|
28 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/iir_filter/IIR_CEL_CTRLR_v2.vhd | |
|
29 | ||
|
30 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lpp_memory.vhd | |
|
31 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lpp_FIFO.vhd | |
|
32 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_memory/lppFIFOxN.vhd | |
|
33 | ||
|
34 | vcom -quiet -93 -work lpp ../../lib/lpp/dsp/lpp_downsampling/Downsampling.vhd | |
|
35 | ||
|
36 | vcom -quiet -93 -work lpp e:/opt/tortoiseHG_vhdlib/lib/lpp/lpp_top_lfr/lpp_top_lfr_pkg.vhd | |
|
37 | vcom -quiet -93 -work lpp e:/opt/tortoiseHG_vhdlib/lib/lpp/lpp_top_lfr/lpp_top_acq.vhd | |
|
38 | ||
|
39 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/lpp_ad_conv.vhd | |
|
40 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/AD7688_drvr.vhd | |
|
41 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_ad_Conv/TestModule_ADS7886.vhd | |
|
42 | ||
|
43 | ||
|
44 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_top_lfr/lpp_top_lfr_pkg.vhd | |
|
45 | vcom -quiet -93 -work lpp ../../lib/lpp/lpp_top_lfr/lpp_top_acq.vhd | |
|
46 | #vcom -quiet -93 -work lpp ../../lib/lpp/lpp_top_lfr/lpp_top_lfr.vhd | |
|
47 | ||
|
48 | vcom -quiet -93 -work work TB_Data_Acquisition.vhd | |
|
49 | ||
|
50 | vsim work.TB_Data_Acquisition | |
|
51 | ||
|
52 | #log -r * | |
|
53 | #do wave_data_acquisition.do | |
|
49 | 54 | #run 5 ms No newline at end of file |
@@ -1,242 +1,49 | |||
|
1 | 1 | onerror {resume} |
|
2 | 2 | quietly WaveActivateNextPane {} 0 |
|
3 |
add wave -noupdate -group { |
|
|
4 |
add wave -noupdate -group { |
|
|
5 |
add wave -noupdate -group { |
|
|
6 |
add wave -noupdate -group { |
|
|
7 |
add wave -noupdate -group { |
|
|
8 |
add wave -noupdate -group { |
|
|
9 |
add wave -noupdate -group { |
|
|
10 |
add wave -noupdate -group { |
|
|
11 |
add wave -noupdate -group { |
|
|
12 |
add wave -noupdate -group { |
|
|
13 |
add wave -noupdate -group { |
|
|
14 |
add wave -noupdate -group { |
|
|
15 |
add wave -noupdate -group { |
|
|
16 |
add wave -noupdate -group { |
|
|
17 |
add wave -noupdate -group { |
|
|
18 |
add wave -noupdate -group { |
|
|
19 |
add wave -noupdate -group { |
|
|
20 |
add wave -noupdate -group { |
|
|
21 |
add wave -noupdate -group { |
|
|
22 |
add wave -noupdate -group { |
|
|
23 |
add wave -noupdate -group { |
|
|
24 |
add wave -noupdate -group F |
|
|
25 |
add wave -noupdate -group FI |
|
|
26 |
add wave -noupdate -group FI |
|
|
27 |
add wave -noupdate -group FI |
|
|
28 |
add wave -noupdate -group FI |
|
|
29 |
add wave -noupdate -group FI |
|
|
30 |
add wave -noupdate -group FI |
|
|
31 |
add wave -noupdate -group FI |
|
|
32 |
add wave -noupdate -group FI |
|
|
33 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/sample_clk | |
|
34 | add wave -noupdate -group FILTER -radix decimal -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/filter/sample_in(7) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(6) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(5) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(4) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(3) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(2) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(1) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in(0) {-height 15 -radix decimal}} /tb_data_acquisition/top_data_acquisition_1/filter/sample_in | |
|
35 | add wave -noupdate -group FILTER -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/filter/sample_out(7) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(6) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(5) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(4) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(3) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(2) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(1) {-height 15 -radix unsigned} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out(0) {-height 15 -radix unsigned}} /tb_data_acquisition/top_data_acquisition_1/filter/sample_out | |
|
36 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/virg_pos | |
|
37 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/gotest | |
|
38 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/coefs | |
|
39 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/smpl_clk_old | |
|
40 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/wd_sel | |
|
41 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/read | |
|
42 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/svg_addr | |
|
43 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/count | |
|
44 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/write | |
|
45 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/waddr_sel | |
|
46 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/go_0 | |
|
47 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/ram_sample_in | |
|
48 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/ram_sample_in_bk | |
|
49 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/ram_sample_out | |
|
50 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/alu_ctrl | |
|
51 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/alu_sample_in | |
|
52 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/alu_coef_in | |
|
53 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/alu_out | |
|
54 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/curentcel | |
|
55 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/curentchan | |
|
56 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/sample_in_buff | |
|
57 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/sample_out_buff | |
|
58 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/coefsreg | |
|
59 | add wave -noupdate -group FILTER /tb_data_acquisition/top_data_acquisition_1/filter/iir_cel_state | |
|
60 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/cnv_run | |
|
61 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/cnv | |
|
62 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/sck | |
|
63 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/sdo | |
|
64 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/cnv_clk | |
|
65 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/cnv_rstn | |
|
66 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/clk | |
|
67 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/rstn | |
|
68 | add wave -noupdate -expand -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/sample(7) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(6) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(5) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(4) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(3) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(2) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(1) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/sample(0) {-height 15 -radix decimal}} /tb_data_acquisition/top_data_acquisition_1/sample | |
|
69 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/sample_val | |
|
70 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/coefs | |
|
71 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/sample_filter_in | |
|
72 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/sample_filter_out | |
|
73 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/iir_cel_state | |
|
74 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/alu_selected_coeff | |
|
75 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/chanel_ongoing | |
|
76 | add wave -noupdate /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/cel_ongoing | |
|
77 | add wave -noupdate -expand -group ALU /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/clk | |
|
78 | add wave -noupdate -expand -group ALU /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/reset | |
|
79 | add wave -noupdate -expand -group ALU /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/ctrl | |
|
80 | add wave -noupdate -expand -group ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/op1 | |
|
81 | add wave -noupdate -expand -group ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/op2 | |
|
82 | add wave -noupdate -expand -group ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/res | |
|
83 | add wave -noupdate -group ALU_MUX_INPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sel_input | |
|
84 | add wave -noupdate -group ALU_MUX_INPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/reg_sample_in | |
|
85 | add wave -noupdate -group ALU_MUX_INPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
86 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/rstn | |
|
87 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/clk | |
|
88 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/virg_pos | |
|
89 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/coefs | |
|
90 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/in_sel_src | |
|
91 | add wave -noupdate -group DATA_FLOW -radix hexadecimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_sel_wdata | |
|
92 | add wave -noupdate -group DATA_FLOW -radix unsigned /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_input | |
|
93 | add wave -noupdate -group DATA_FLOW -radix hexadecimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_write | |
|
94 | add wave -noupdate -group DATA_FLOW -radix hexadecimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_read | |
|
95 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/raddr_rst | |
|
96 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/raddr_add1 | |
|
97 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/waddr_previous | |
|
98 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sel_input | |
|
99 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sel_coeff | |
|
100 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_ctrl | |
|
101 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/sample_in | |
|
102 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/sample_out | |
|
103 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/reg_sample_in | |
|
104 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
105 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output | |
|
106 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sample | |
|
107 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output_s | |
|
108 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/arraycoeff | |
|
109 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_coef_s | |
|
110 | add wave -noupdate -group DATA_FLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_coef | |
|
111 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/rstn | |
|
112 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/clk | |
|
113 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/virg_pos | |
|
114 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/coefs | |
|
115 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_val | |
|
116 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in | |
|
117 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val | |
|
118 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out | |
|
119 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/in_sel_src | |
|
120 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/ram_sel_wdata | |
|
121 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/ram_write | |
|
122 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/ram_read | |
|
123 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/raddr_rst | |
|
124 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/raddr_add1 | |
|
125 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/waddr_previous | |
|
126 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/alu_sel_input | |
|
127 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/alu_sel_coeff | |
|
128 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/alu_ctrl | |
|
129 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_buf | |
|
130 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_rotate | |
|
131 | add wave -noupdate -group IIR_CEL_FILTER_v2 /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_s | |
|
132 | add wave -noupdate -group IIR_CEL_FILTER_v2 -radix unsigned /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val_s | |
|
133 | add wave -noupdate -group IIR_CEL_FILTER_v2 -radix unsigned /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val_s2 | |
|
134 | add wave -noupdate -group IIR_CEL_FILTER_v2 -radix unsigned /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_rot_s | |
|
135 | add wave -noupdate -group IIR_CEL_FILTER_v2 -radix unsigned -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(17) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(16) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(15) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(14) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(13) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(12) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(11) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(10) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(9) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(8) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(7) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(6) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(5) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(4) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(3) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(2) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(1) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s(0) {-radix unsigned}} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s | |
|
136 | add wave -noupdate -group IIR_CEL_FILTER_v2 -radix unsigned -expand -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(7) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(6) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(5) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(4) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(3) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(2) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(1) {-radix unsigned} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2(0) {-radix unsigned}} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2 | |
|
137 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_INPUT_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/in_sel_src | |
|
138 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_INPUT_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output | |
|
139 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_INPUT_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
140 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_INPUT_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/sample_in | |
|
141 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_INPUT_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/reg_sample_in | |
|
142 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/waddr_previous | |
|
143 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_write | |
|
144 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM -radix hexadecimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_sel_wdata | |
|
145 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/reg_sample_in | |
|
146 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output | |
|
147 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
148 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_RAM -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_input | |
|
149 | add wave -noupdate -group DATAFLOW -group DATAFLOW_OUTPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_read | |
|
150 | add wave -noupdate -group DATAFLOW -group DATAFLOW_OUTPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/raddr_rst | |
|
151 | add wave -noupdate -group DATAFLOW -group DATAFLOW_OUTPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/raddr_add1 | |
|
152 | add wave -noupdate -group DATAFLOW -group DATAFLOW_OUTPUT_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
153 | add wave -noupdate -group DATAFLOW -group DATAFLOW_SELECT_COEFF /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/arraycoeff | |
|
154 | add wave -noupdate -group DATAFLOW -group DATAFLOW_SELECT_COEFF /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_coef_s | |
|
155 | add wave -noupdate -group DATAFLOW -group DATAFLOW_SELECT_COEFF -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_coef | |
|
156 | add wave -noupdate -group DATAFLOW -group DATAFLOW_SELECT_COEFF -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sel_coeff | |
|
157 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_ALU_MUX /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sel_input | |
|
158 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_ALU_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/reg_sample_in | |
|
159 | add wave -noupdate -group DATAFLOW -group DATAFLOW_INPUT_ALU_MUX -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_output | |
|
160 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_ctrl | |
|
161 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_coef | |
|
162 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_sample | |
|
163 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output_s | |
|
164 | add wave -noupdate -group DATAFLOW -expand -group DATAFLOW_ALU -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_output | |
|
165 | add wave -noupdate -group DATAFLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/iir_cel_state | |
|
166 | add wave -noupdate -group DATAFLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/chanel_ongoing | |
|
167 | add wave -noupdate -group DATAFLOW /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/cel_ongoing | |
|
168 | add wave -noupdate -group DATAFLOW -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/sample_out | |
|
169 | add wave -noupdate -group DATAFLOW_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/rstn | |
|
170 | add wave -noupdate -group DATAFLOW_RAM /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/clk | |
|
171 | add wave -noupdate -group DATAFLOW_RAM -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(0) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(1) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(2) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(3) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(4) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(5) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(6) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(7) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(8) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(9) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(10) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(11) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(12) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(13) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(14) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(15) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(16) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(17) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(18) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(19) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(20) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(21) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(22) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(23) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(24) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(25) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(26) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(27) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(28) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(29) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(30) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(31) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(32) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(33) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(34) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(35) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(36) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(37) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(38) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(39) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(40) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(41) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(42) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(43) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(44) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(45) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(46) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(47) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(48) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(49) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(50) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(51) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(52) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(53) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(54) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(55) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(56) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(57) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(58) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(59) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(60) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(61) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(62) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(63) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(64) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(65) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(66) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(67) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(68) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(69) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(70) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(71) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(72) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(73) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(74) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(75) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(76) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(77) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(78) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(79) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(80) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(81) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(82) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(83) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(84) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(85) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(86) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(87) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(88) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(89) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(90) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(91) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(92) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(93) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(94) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(95) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(96) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(97) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(98) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(99) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(100) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(101) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(102) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(103) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(104) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(105) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(106) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(107) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(108) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(109) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(110) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(111) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(112) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(113) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(114) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(115) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(116) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(117) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(118) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(119) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(120) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(121) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(122) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(123) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(124) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(125) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(126) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(127) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(128) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(129) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(130) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(131) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(132) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(133) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(134) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(135) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(136) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(137) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(138) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(139) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(140) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(141) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(142) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(143) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(144) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(145) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(146) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(147) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(148) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(149) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(150) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(151) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(152) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(153) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(154) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(155) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(156) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(157) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(158) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(159) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(160) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(161) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(162) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(163) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(164) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(165) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(166) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(167) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(168) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(169) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(170) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(171) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(172) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(173) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(174) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(175) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(176) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(177) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(178) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(179) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(180) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(181) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(182) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(183) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(184) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(185) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(186) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(187) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(188) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(189) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(190) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(191) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(192) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(193) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(194) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(195) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(196) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(197) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(198) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(199) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(200) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(201) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(202) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(203) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(204) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(205) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(206) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(207) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(208) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(209) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(210) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(211) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(212) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(213) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(214) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(215) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(216) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(217) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(218) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(219) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(220) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(221) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(222) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(223) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(224) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(225) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(226) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(227) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(228) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(229) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(230) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(231) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(232) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(233) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(234) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(235) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(236) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(237) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(238) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(239) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(240) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(241) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(242) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(243) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(244) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(245) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(246) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(247) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(248) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(249) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(250) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(251) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(252) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(253) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(254) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray(255) {-height 15 -radix decimal}} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/memcel/ramblk/ramarray | |
|
172 | add wave -noupdate -group DATAFLOW_RAM -group COUNTER -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/counter | |
|
173 | add wave -noupdate -group DATAFLOW_RAM -group COUNTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/raddr_rst | |
|
174 | add wave -noupdate -group DATAFLOW_RAM -group COUNTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/raddr_add1 | |
|
175 | add wave -noupdate -group DATAFLOW_RAM -group COUNTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/waddr_previous | |
|
176 | add wave -noupdate -group DATAFLOW_RAM -group WRITE /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/ram_write | |
|
177 | add wave -noupdate -group DATAFLOW_RAM -group WRITE /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/wen | |
|
178 | add wave -noupdate -group DATAFLOW_RAM -group WRITE -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/waddr | |
|
179 | add wave -noupdate -group DATAFLOW_RAM -group WRITE -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/wd | |
|
180 | add wave -noupdate -group DATAFLOW_RAM -group WRITE -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/sample_in | |
|
181 | add wave -noupdate -group DATAFLOW_RAM -group READ /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/ram_read | |
|
182 | add wave -noupdate -group DATAFLOW_RAM -group READ /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/ren | |
|
183 | add wave -noupdate -group DATAFLOW_RAM -group READ -radix unsigned /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/raddr | |
|
184 | add wave -noupdate -group DATAFLOW_RAM -group READ /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/rd | |
|
185 | add wave -noupdate -group DATAFLOW_RAM -group READ /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/ram_ctrlr_v2_1/sample_out | |
|
186 | add wave -noupdate -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_val | |
|
187 | add wave -noupdate -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in | |
|
188 | add wave -noupdate -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val | |
|
189 | add wave -noupdate -radix decimal -subitemconfig {/tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(7) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(6) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(5) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(4) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(3) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(2) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(1) {-height 15 -radix decimal} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(0) {-height 15 -radix decimal}} /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out | |
|
190 | add wave -noupdate -height 15 -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out(4) | |
|
191 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/clk | |
|
192 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/reset | |
|
193 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/clr_mac | |
|
194 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/mac_mul_add | |
|
195 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op1 | |
|
196 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op2 | |
|
197 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/res | |
|
198 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/add | |
|
199 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/mult | |
|
200 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/multout | |
|
201 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/adderina | |
|
202 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/adderinb | |
|
203 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/adderout | |
|
204 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/macmuxsel | |
|
205 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op1_d_resz | |
|
206 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op2_d_resz | |
|
207 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/macmux2sel | |
|
208 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/add_d | |
|
209 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op1_d | |
|
210 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/op2_d | |
|
211 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/multout_d | |
|
212 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/macmuxsel_d | |
|
213 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/macmux2sel_d | |
|
214 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/macmux2sel_d_d | |
|
215 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/clr_mac_d | |
|
216 | add wave -noupdate -group MAC -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/alu_1/arith/macinst/clr_mac_d_d | |
|
217 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/sample_out_val | |
|
218 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/sample_out_rot | |
|
219 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_control_1/iir_cel_state | |
|
220 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/iir_cel_ctrlr_v2_dataflow_1/sample_out | |
|
221 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val_s | |
|
222 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val_s2 | |
|
223 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_rot_s | |
|
224 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s | |
|
225 | add wave -noupdate -expand -group OUTPUT -radix decimal /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_s2 | |
|
3 | add wave -noupdate -expand -group {Data Acq & Filter} -expand -group DIGITAL_ACQ /tb_data_acquisition/top_data_acquisition_1/digital_acquisition/sample | |
|
4 | add wave -noupdate -expand -group {Data Acq & Filter} -expand -group DIGITAL_ACQ /tb_data_acquisition/top_data_acquisition_1/digital_acquisition/sample_val | |
|
5 | add wave -noupdate -expand -group {Data Acq & Filter} -group FILTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in_val | |
|
6 | add wave -noupdate -expand -group {Data Acq & Filter} -group FILTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_in | |
|
7 | add wave -noupdate -expand -group {Data Acq & Filter} -group FILTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out_val | |
|
8 | add wave -noupdate -expand -group {Data Acq & Filter} -group FILTER /tb_data_acquisition/top_data_acquisition_1/iir_cel_ctrlr_v2_1/sample_out | |
|
9 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f0} /tb_data_acquisition/top_data_acquisition_1/downsampling_f0/sample_in_val | |
|
10 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f0} /tb_data_acquisition/top_data_acquisition_1/downsampling_f0/sample_in | |
|
11 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f0} /tb_data_acquisition/top_data_acquisition_1/downsampling_f0/sample_out_val | |
|
12 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f0} /tb_data_acquisition/top_data_acquisition_1/downsampling_f0/sample_out | |
|
13 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f1} /tb_data_acquisition/top_data_acquisition_1/downsampling_f1/sample_in_val | |
|
14 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f1} /tb_data_acquisition/top_data_acquisition_1/downsampling_f1/sample_in | |
|
15 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f1} /tb_data_acquisition/top_data_acquisition_1/downsampling_f1/sample_out_val | |
|
16 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f1} /tb_data_acquisition/top_data_acquisition_1/downsampling_f1/sample_out | |
|
17 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f2} /tb_data_acquisition/top_data_acquisition_1/downsampling_f2/sample_in_val | |
|
18 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f2} /tb_data_acquisition/top_data_acquisition_1/downsampling_f2/sample_in | |
|
19 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f2} /tb_data_acquisition/top_data_acquisition_1/downsampling_f2/sample_out_val | |
|
20 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f2} /tb_data_acquisition/top_data_acquisition_1/downsampling_f2/sample_out | |
|
21 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f3} /tb_data_acquisition/top_data_acquisition_1/downsampling_f3/sample_in_val | |
|
22 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f3} /tb_data_acquisition/top_data_acquisition_1/downsampling_f3/sample_in | |
|
23 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f3} /tb_data_acquisition/top_data_acquisition_1/downsampling_f3/sample_out_val | |
|
24 | add wave -noupdate -expand -group {Data Acq & Filter} -group {Down f3} /tb_data_acquisition/top_data_acquisition_1/downsampling_f3/sample_out | |
|
25 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f0_wen | |
|
26 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f0_wdata | |
|
27 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f1_wen | |
|
28 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f1_wdata | |
|
29 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f2_wen | |
|
30 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f2_wdata | |
|
31 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f3_wen | |
|
32 | add wave -noupdate -expand -group {OUTPUT to FIFO} /tb_data_acquisition/top_data_acquisition_1/sample_f3_wdata | |
|
226 | 33 | TreeUpdate [SetDefaultTree] |
|
227 |
WaveRestoreCursors {{Cursor 1} { |
|
|
228 |
configure wave -namecolwidth |
|
|
34 | WaveRestoreCursors {{Cursor 1} {0 ps} 0} | |
|
35 | configure wave -namecolwidth 430 | |
|
229 | 36 | configure wave -valuecolwidth 100 |
|
230 | 37 | configure wave -justifyvalue left |
|
231 | 38 | configure wave -signalnamewidth 0 |
|
232 | 39 | configure wave -snapdistance 10 |
|
233 | 40 | configure wave -datasetprefix 0 |
|
234 | 41 | configure wave -rowmargin 4 |
|
235 | 42 | configure wave -childrowmargin 2 |
|
236 | 43 | configure wave -gridoffset 0 |
|
237 | 44 | configure wave -gridperiod 1 |
|
238 | 45 | configure wave -griddelta 40 |
|
239 | 46 | configure wave -timeline 0 |
|
240 | 47 | configure wave -timelineunits ns |
|
241 | 48 | update |
|
242 |
WaveRestoreZoom { |
|
|
49 | WaveRestoreZoom {0 ps} {754717 ps} |
@@ -1,250 +1,251 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Jean-christophe PELLION |
|
20 | 20 | -- Mail : jean-christophe.pellion@lpp.polytechnique.fr |
|
21 | 21 | ------------------------------------------------------------------------------- |
|
22 | 22 | LIBRARY IEEE; |
|
23 | 23 | USE IEEE.numeric_std.ALL; |
|
24 | 24 | USE IEEE.std_logic_1164.ALL; |
|
25 | 25 | LIBRARY lpp; |
|
26 | 26 | USE lpp.iir_filter.ALL; |
|
27 | 27 | USE lpp.general_purpose.ALL; |
|
28 | 28 | |
|
29 | 29 | |
|
30 | 30 | |
|
31 | 31 | ENTITY IIR_CEL_CTRLR_v2_DATAFLOW IS |
|
32 | 32 | GENERIC( |
|
33 | 33 | tech : INTEGER := 0; |
|
34 | 34 | Mem_use : INTEGER := use_RAM; |
|
35 | 35 | Sample_SZ : INTEGER := 16; |
|
36 | 36 | Coef_SZ : INTEGER := 9; |
|
37 | 37 | Coef_Nb : INTEGER := 30; |
|
38 | 38 | Coef_sel_SZ : INTEGER := 5 |
|
39 | 39 | ); |
|
40 | 40 | PORT( |
|
41 | 41 | rstn : IN STD_LOGIC; |
|
42 | 42 | clk : IN STD_LOGIC; |
|
43 | 43 | -- PARAMETER |
|
44 | 44 | virg_pos : IN INTEGER; |
|
45 | 45 | coefs : IN STD_LOGIC_VECTOR((Coef_SZ*Coef_Nb)-1 DOWNTO 0); |
|
46 | 46 | -- CONTROL |
|
47 | 47 | in_sel_src : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
48 | 48 | -- |
|
49 | 49 | ram_sel_Wdata : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
50 | 50 | ram_write : IN STD_LOGIC; |
|
51 | 51 | ram_read : IN STD_LOGIC; |
|
52 | 52 | raddr_rst : IN STD_LOGIC; |
|
53 | 53 | raddr_add1 : IN STD_LOGIC; |
|
54 | 54 | waddr_previous : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
55 | 55 | -- |
|
56 | 56 | alu_sel_input : IN STD_LOGIC; |
|
57 | 57 | alu_sel_coeff : IN STD_LOGIC_VECTOR(Coef_sel_SZ-1 DOWNTO 0); |
|
58 | 58 | alu_ctrl : IN STD_LOGIC_VECTOR(2 DOWNTO 0);--(MAC_op, MULT_with_clear_ADD, IDLE) |
|
59 | 59 | alu_comp : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
60 | 60 | -- DATA |
|
61 | 61 | sample_in : IN STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
62 | 62 | sample_out : OUT STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0) |
|
63 | 63 | ); |
|
64 | 64 | END IIR_CEL_CTRLR_v2_DATAFLOW; |
|
65 | 65 | |
|
66 | 66 | ARCHITECTURE ar_IIR_CEL_CTRLR_v2_DATAFLOW OF IIR_CEL_CTRLR_v2_DATAFLOW IS |
|
67 | 67 | |
|
68 | 68 | COMPONENT RAM_CTRLR_v2 |
|
69 | 69 | GENERIC ( |
|
70 | 70 | tech : INTEGER; |
|
71 | 71 | Input_SZ_1 : INTEGER; |
|
72 | 72 | Mem_use : INTEGER); |
|
73 | 73 | PORT ( |
|
74 | 74 | rstn : IN STD_LOGIC; |
|
75 | 75 | clk : IN STD_LOGIC; |
|
76 | 76 | ram_write : IN STD_LOGIC; |
|
77 | 77 | ram_read : IN STD_LOGIC; |
|
78 | 78 | raddr_rst : IN STD_LOGIC; |
|
79 | 79 | raddr_add1 : IN STD_LOGIC; |
|
80 | 80 | waddr_previous : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
81 | 81 | sample_in : IN STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
82 | 82 | sample_out : OUT STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0)); |
|
83 | 83 | END COMPONENT; |
|
84 | 84 | |
|
85 | 85 | SIGNAL reg_sample_in : STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
86 | 86 | SIGNAL ram_output : STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
87 | 87 | SIGNAL alu_output : STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
88 | 88 | SIGNAL ram_input : STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
89 | 89 | SIGNAL alu_sample : STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
90 | 90 | SIGNAL alu_output_s : STD_LOGIC_VECTOR(Sample_SZ+Coef_SZ-1 DOWNTO 0); |
|
91 | 91 | |
|
92 | 92 | SIGNAL arrayCoeff : MUX_INPUT_TYPE(0 TO (2**Coef_sel_SZ)-1,Coef_SZ-1 DOWNTO 0); |
|
93 | 93 | SIGNAL alu_coef_s : MUX_OUTPUT_TYPE(Coef_SZ-1 DOWNTO 0); |
|
94 | 94 | |
|
95 | 95 | SIGNAL alu_coef : STD_LOGIC_VECTOR(Coef_SZ-1 DOWNTO 0); |
|
96 | 96 | |
|
97 | 97 | BEGIN |
|
98 | 98 | |
|
99 | 99 | ----------------------------------------------------------------------------- |
|
100 | 100 | -- INPUT |
|
101 | 101 | ----------------------------------------------------------------------------- |
|
102 | 102 | PROCESS (clk, rstn) |
|
103 | 103 | BEGIN -- PROCESS |
|
104 | 104 | IF rstn = '0' THEN -- asynchronous reset (active low) |
|
105 | 105 | reg_sample_in <= (OTHERS => '0'); |
|
106 | 106 | ELSIF clk'event AND clk = '1' THEN -- rising clock edge |
|
107 | 107 | CASE in_sel_src IS |
|
108 | 108 | WHEN "00" => reg_sample_in <= reg_sample_in; |
|
109 | 109 | WHEN "01" => reg_sample_in <= sample_in; |
|
110 | 110 | WHEN "10" => reg_sample_in <= ram_output; |
|
111 | 111 | WHEN "11" => reg_sample_in <= alu_output; |
|
112 | 112 | WHEN OTHERS => NULL; |
|
113 | 113 | END CASE; |
|
114 | 114 | END IF; |
|
115 | 115 | END PROCESS; |
|
116 | 116 | |
|
117 | 117 | |
|
118 | 118 | ----------------------------------------------------------------------------- |
|
119 | 119 | -- RAM + CTRL |
|
120 | 120 | ----------------------------------------------------------------------------- |
|
121 | 121 | |
|
122 | 122 | ram_input <= reg_sample_in WHEN ram_sel_Wdata = "00" ELSE |
|
123 | 123 | alu_output WHEN ram_sel_Wdata = "01" ELSE |
|
124 | 124 | ram_output; |
|
125 | 125 | |
|
126 | 126 | RAM_CTRLR_v2_1: RAM_CTRLR_v2 |
|
127 | 127 | GENERIC MAP ( |
|
128 | 128 | tech => tech, |
|
129 | 129 | Input_SZ_1 => Sample_SZ, |
|
130 | 130 | Mem_use => Mem_use) |
|
131 | 131 | PORT MAP ( |
|
132 | 132 | clk => clk, |
|
133 | 133 | rstn => rstn, |
|
134 | 134 | ram_write => ram_write, |
|
135 | 135 | ram_read => ram_read, |
|
136 | 136 | raddr_rst => raddr_rst, |
|
137 | 137 | raddr_add1 => raddr_add1, |
|
138 | 138 | waddr_previous => waddr_previous, |
|
139 | 139 | sample_in => ram_input, |
|
140 | 140 | sample_out => ram_output); |
|
141 | 141 | |
|
142 | 142 | ----------------------------------------------------------------------------- |
|
143 | 143 | -- MAC_ACC |
|
144 | 144 | ----------------------------------------------------------------------------- |
|
145 | 145 | -- Control : mac_ctrl (MAC_op, MULT_with_clear_ADD, IDLE) |
|
146 | 146 | -- Data In : mac_sample, mac_coef |
|
147 | 147 | -- Data Out: mac_output |
|
148 | 148 | |
|
149 | 149 | alu_sample <= reg_sample_in WHEN alu_sel_input = '0' ELSE ram_output; |
|
150 | 150 | |
|
151 | 151 | coefftable: FOR I IN 0 TO (2**Coef_sel_SZ)-1 GENERATE |
|
152 | 152 | coeff_in: IF I < Coef_Nb GENERATE |
|
153 | 153 | all_bit: FOR J IN Coef_SZ-1 DOWNTO 0 GENERATE |
|
154 | 154 | arrayCoeff(I,J) <= coefs(Coef_SZ*I+J); |
|
155 | 155 | END GENERATE all_bit; |
|
156 | 156 | END GENERATE coeff_in; |
|
157 | 157 | coeff_null: IF I > (Coef_Nb -1) GENERATE |
|
158 | 158 | all_bit: FOR J IN Coef_SZ-1 DOWNTO 0 GENERATE |
|
159 | 159 | arrayCoeff(I,J) <= '0'; |
|
160 | 160 | END GENERATE all_bit; |
|
161 | 161 | END GENERATE coeff_null; |
|
162 | 162 | END GENERATE coefftable; |
|
163 | 163 | |
|
164 | 164 | Coeff_Mux : MUXN |
|
165 | 165 | GENERIC MAP ( |
|
166 | 166 | Input_SZ => Coef_SZ, |
|
167 | 167 | NbStage => Coef_sel_SZ) |
|
168 | 168 | PORT MAP ( |
|
169 | 169 | sel => alu_sel_coeff, |
|
170 | 170 | INPUT => arrayCoeff, |
|
171 | 171 | RES => alu_coef_s); |
|
172 | 172 | |
|
173 | 173 | |
|
174 | 174 | all_bit: FOR J IN Coef_SZ-1 DOWNTO 0 GENERATE |
|
175 | 175 | alu_coef(J) <= alu_coef_s(J); |
|
176 | 176 | END GENERATE all_bit; |
|
177 | 177 | |
|
178 | 178 | ----------------------------------------------------------------------------- |
|
179 | 179 | -- TODO : just for Synthesis test |
|
180 | 180 | |
|
181 | 181 | --PROCESS (clk, rstn) |
|
182 | 182 | --BEGIN |
|
183 | 183 | -- IF rstn = '0' THEN |
|
184 | 184 | -- alu_coef <= (OTHERS => '0'); |
|
185 | 185 | -- ELSIF clk'event AND clk = '1' THEN |
|
186 | 186 | -- all_bit: FOR J IN Coef_SZ-1 DOWNTO 0 LOOP |
|
187 | 187 | -- alu_coef(J) <= alu_coef_s(J); |
|
188 | 188 | -- END LOOP all_bit; |
|
189 | 189 | -- END IF; |
|
190 | 190 | --END PROCESS; |
|
191 | 191 | |
|
192 | 192 | ----------------------------------------------------------------------------- |
|
193 | 193 | |
|
194 | 194 | |
|
195 | 195 | ALU_1: ALU |
|
196 | 196 | GENERIC MAP ( |
|
197 | 197 | Arith_en => 1, |
|
198 | 198 | Input_SZ_1 => Sample_SZ, |
|
199 |
Input_SZ_2 => Coef_SZ |
|
|
199 | Input_SZ_2 => Coef_SZ, | |
|
200 | COMP_EN => 1) | |
|
200 | 201 | PORT MAP ( |
|
201 | 202 | clk => clk, |
|
202 | 203 | reset => rstn, |
|
203 | 204 | ctrl => alu_ctrl, |
|
204 | 205 | comp => alu_comp, |
|
205 | 206 | OP1 => alu_sample, |
|
206 | 207 | OP2 => alu_coef, |
|
207 | 208 | RES => alu_output_s); |
|
208 | 209 | |
|
209 | 210 | alu_output <= alu_output_s(Sample_SZ+virg_pos-1 DOWNTO virg_pos); |
|
210 | 211 | |
|
211 | 212 | sample_out <= alu_output; |
|
212 | 213 | |
|
213 | 214 | END ar_IIR_CEL_CTRLR_v2_DATAFLOW; |
|
214 | 215 | |
|
215 | 216 | |
|
216 | 217 | |
|
217 | 218 | |
|
218 | 219 | |
|
219 | 220 | |
|
220 | 221 | |
|
221 | 222 | |
|
222 | 223 | |
|
223 | 224 | |
|
224 | 225 | |
|
225 | 226 | |
|
226 | 227 | |
|
227 | 228 | |
|
228 | 229 | |
|
229 | 230 | |
|
230 | 231 | |
|
231 | 232 | |
|
232 | 233 | |
|
233 | 234 | |
|
234 | 235 | |
|
235 | 236 | |
|
236 | 237 | |
|
237 | 238 | |
|
238 | 239 | |
|
239 | 240 | |
|
240 | 241 | |
|
241 | 242 | |
|
242 | 243 | |
|
243 | 244 | |
|
244 | 245 | |
|
245 | 246 | |
|
246 | 247 | |
|
247 | 248 | |
|
248 | 249 | |
|
249 | 250 | |
|
250 | 251 |
@@ -1,120 +1,120 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Alexis Jeandet |
|
20 | 20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr |
|
21 | 21 | ---------------------------------------------------------------------------- |
|
22 | 22 | LIBRARY IEEE; |
|
23 | 23 | USE IEEE.numeric_std.ALL; |
|
24 | 24 | USE IEEE.std_logic_1164.ALL; |
|
25 | 25 | LIBRARY lpp; |
|
26 | 26 | USE lpp.iir_filter.ALL; |
|
27 | 27 | USE lpp.FILTERcfg.ALL; |
|
28 | 28 | USE lpp.general_purpose.ALL; |
|
29 | 29 | LIBRARY techmap; |
|
30 | 30 | USE techmap.gencomp.ALL; |
|
31 | 31 | |
|
32 | 32 | ENTITY RAM_CTRLR_v2 IS |
|
33 | 33 | GENERIC( |
|
34 | 34 | tech : INTEGER := 0; |
|
35 | 35 | Input_SZ_1 : INTEGER := 16; |
|
36 | 36 | Mem_use : INTEGER := use_RAM |
|
37 | 37 | ); |
|
38 | 38 | PORT( |
|
39 | 39 | rstn : IN STD_LOGIC; |
|
40 | 40 | clk : IN STD_LOGIC; |
|
41 | 41 | -- R/W Ctrl |
|
42 | 42 | ram_write : IN STD_LOGIC; |
|
43 | 43 | ram_read : IN STD_LOGIC; |
|
44 | 44 | -- ADDR Ctrl |
|
45 | 45 | raddr_rst : IN STD_LOGIC; |
|
46 | 46 | raddr_add1 : IN STD_LOGIC; |
|
47 | 47 | waddr_previous : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
48 | 48 | -- Data |
|
49 | 49 | sample_in : IN STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
50 | 50 | sample_out : OUT STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0) |
|
51 | 51 | ); |
|
52 | 52 | END RAM_CTRLR_v2; |
|
53 | 53 | |
|
54 | 54 | |
|
55 | 55 | ARCHITECTURE ar_RAM_CTRLR_v2 OF RAM_CTRLR_v2 IS |
|
56 | 56 | |
|
57 | 57 | SIGNAL WD : STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
58 | 58 | SIGNAL RD : STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
59 | 59 | SIGNAL WEN, REN : STD_LOGIC; |
|
60 | 60 | SIGNAL RADDR : STD_LOGIC_VECTOR(7 DOWNTO 0); |
|
61 | 61 | SIGNAL WADDR : STD_LOGIC_VECTOR(7 DOWNTO 0); |
|
62 | 62 | SIGNAL counter : STD_LOGIC_VECTOR(7 DOWNTO 0); |
|
63 | 63 | |
|
64 | 64 | BEGIN |
|
65 | 65 | |
|
66 | 66 | sample_out <= RD(Input_SZ_1-1 DOWNTO 0); |
|
67 | 67 | WD(Input_SZ_1-1 DOWNTO 0) <= sample_in; |
|
68 | 68 | ----------------------------------------------------------------------------- |
|
69 | 69 | -- RAM |
|
70 | 70 | ----------------------------------------------------------------------------- |
|
71 | 71 | |
|
72 | 72 | memCEL : IF Mem_use = use_CEL GENERATE |
|
73 | 73 | WEN <= NOT ram_write; |
|
74 | 74 | REN <= NOT ram_read; |
|
75 | RAMblk : RAM_CEL | |
|
75 | RAMblk : RAM_CEL_N | |
|
76 | 76 | GENERIC MAP(Input_SZ_1) |
|
77 | 77 | PORT MAP( |
|
78 | 78 | WD => WD, |
|
79 | 79 | RD => RD, |
|
80 | 80 | WEN => WEN, |
|
81 | 81 | REN => REN, |
|
82 | 82 | WADDR => WADDR, |
|
83 | 83 | RADDR => RADDR, |
|
84 | 84 | RWCLK => clk, |
|
85 | 85 | RESET => rstn |
|
86 | 86 | ) ; |
|
87 | 87 | END GENERATE; |
|
88 | 88 | |
|
89 | 89 | memRAM : IF Mem_use = use_RAM GENERATE |
|
90 | 90 | SRAM : syncram_2p |
|
91 | 91 | GENERIC MAP(tech, 8, Input_SZ_1) |
|
92 | 92 | PORT MAP(clk, ram_read, RADDR, RD, clk, ram_write, WADDR, WD); |
|
93 | 93 | END GENERATE; |
|
94 | 94 | |
|
95 | 95 | ----------------------------------------------------------------------------- |
|
96 | 96 | -- RADDR |
|
97 | 97 | ----------------------------------------------------------------------------- |
|
98 | 98 | PROCESS (clk, rstn) |
|
99 | 99 | BEGIN -- PROCESS |
|
100 | 100 | IF rstn = '0' THEN -- asynchronous reset (active low) |
|
101 | 101 | counter <= (OTHERS => '0'); |
|
102 | 102 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge |
|
103 | 103 | IF raddr_rst = '1' THEN |
|
104 | 104 | counter <= (OTHERS => '0'); |
|
105 | 105 | ELSIF raddr_add1 = '1' THEN |
|
106 | 106 | counter <= STD_LOGIC_VECTOR(UNSIGNED(counter)+1); |
|
107 | 107 | END IF; |
|
108 | 108 | END IF; |
|
109 | 109 | END PROCESS; |
|
110 | 110 | RADDR <= counter; |
|
111 | 111 | |
|
112 | 112 | ----------------------------------------------------------------------------- |
|
113 | 113 | -- WADDR |
|
114 | 114 | ----------------------------------------------------------------------------- |
|
115 | 115 | WADDR <= STD_LOGIC_VECTOR(UNSIGNED(counter)-2) WHEN waddr_previous = "10" ELSE |
|
116 | 116 | STD_LOGIC_VECTOR(UNSIGNED(counter)-1) WHEN waddr_previous = "01" ELSE |
|
117 | 117 | STD_LOGIC_VECTOR(UNSIGNED(counter)); |
|
118 | 118 | |
|
119 | 119 | |
|
120 | 120 | END ar_RAM_CTRLR_v2; |
@@ -1,290 +1,302 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Alexis Jeandet |
|
20 | 20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr |
|
21 | 21 | ---------------------------------------------------------------------------- |
|
22 | 22 | LIBRARY ieee; |
|
23 | 23 | USE ieee.std_logic_1164.ALL; |
|
24 | 24 | LIBRARY grlib; |
|
25 | 25 | USE grlib.amba.ALL; |
|
26 | 26 | USE grlib.stdlib.ALL; |
|
27 | 27 | USE grlib.devices.ALL; |
|
28 | 28 | LIBRARY lpp; |
|
29 | 29 | |
|
30 | 30 | |
|
31 | 31 | |
|
32 | 32 | |
|
33 | 33 | PACKAGE iir_filter IS |
|
34 | 34 | |
|
35 | 35 | |
|
36 | 36 | --===========================================================| |
|
37 | 37 | --================A L U C O N T R O L======================| |
|
38 | 38 | --===========================================================| |
|
39 | 39 | CONSTANT IDLE : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0000"; |
|
40 | 40 | CONSTANT MAC_op : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0001"; |
|
41 | 41 | CONSTANT MULT : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0010"; |
|
42 | 42 | CONSTANT ADD : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0011"; |
|
43 | 43 | CONSTANT clr_mac : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0100"; |
|
44 | 44 | CONSTANT MULT_with_clear_ADD : STD_LOGIC_VECTOR(3 DOWNTO 0) := "0101"; |
|
45 | 45 | |
|
46 | 46 | --____ |
|
47 | 47 | --RAM | |
|
48 | 48 | --____| |
|
49 | 49 | CONSTANT use_RAM : INTEGER := 1; |
|
50 | 50 | CONSTANT use_CEL : INTEGER := 0; |
|
51 | 51 | |
|
52 | 52 | |
|
53 | 53 | --===========================================================| |
|
54 | 54 | --=============C O E F S ====================================| |
|
55 | 55 | --===========================================================| |
|
56 | 56 | -- create a specific type of data for coefs to avoid errors | |
|
57 | 57 | --===========================================================| |
|
58 | 58 | |
|
59 | 59 | TYPE scaleValT IS ARRAY(NATURAL RANGE <>) OF INTEGER; |
|
60 | 60 | |
|
61 | 61 | TYPE samplT IS ARRAY(NATURAL RANGE <>, NATURAL RANGE <>) OF STD_LOGIC; |
|
62 | 62 | |
|
63 | 63 | TYPE in_IIR_CEL_reg IS RECORD |
|
64 | 64 | config : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
65 | 65 | virgPos : STD_LOGIC_VECTOR(4 DOWNTO 0); |
|
66 | 66 | END RECORD; |
|
67 | 67 | |
|
68 | 68 | TYPE out_IIR_CEL_reg IS RECORD |
|
69 | 69 | config : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
70 | 70 | status : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
71 | 71 | END RECORD; |
|
72 | 72 | |
|
73 | 73 | |
|
74 | 74 | COMPONENT APB_IIR_CEL IS |
|
75 | 75 | GENERIC ( |
|
76 | 76 | tech : INTEGER := 0; |
|
77 | 77 | pindex : INTEGER := 0; |
|
78 | 78 | paddr : INTEGER := 0; |
|
79 | 79 | pmask : INTEGER := 16#fff#; |
|
80 | 80 | pirq : INTEGER := 0; |
|
81 | 81 | abits : INTEGER := 8; |
|
82 | 82 | Sample_SZ : INTEGER := 16; |
|
83 | 83 | ChanelsCount : INTEGER := 6; |
|
84 | 84 | Coef_SZ : INTEGER := 9; |
|
85 | 85 | CoefCntPerCel : INTEGER := 6; |
|
86 | 86 | Cels_count : INTEGER := 5; |
|
87 | 87 | virgPos : INTEGER := 7; |
|
88 | 88 | Mem_use : INTEGER := use_RAM |
|
89 | 89 | ); |
|
90 | 90 | PORT ( |
|
91 | 91 | rst : IN STD_LOGIC; |
|
92 | 92 | clk : IN STD_LOGIC; |
|
93 | 93 | apbi : IN apb_slv_in_type; |
|
94 | 94 | apbo : OUT apb_slv_out_type; |
|
95 | 95 | sample_clk : IN STD_LOGIC; |
|
96 | 96 | sample_clk_out : OUT STD_LOGIC; |
|
97 | 97 | sample_in : IN samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
98 | 98 | sample_out : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
99 | 99 | CoefsInitVal : IN STD_LOGIC_VECTOR((Cels_count*CoefCntPerCel*Coef_SZ)-1 DOWNTO 0) := (OTHERS => '1') |
|
100 | 100 | ); |
|
101 | 101 | END COMPONENT; |
|
102 | 102 | |
|
103 | 103 | |
|
104 | 104 | COMPONENT Top_IIR IS |
|
105 | 105 | GENERIC( |
|
106 | 106 | Sample_SZ : INTEGER := 18; |
|
107 | 107 | ChanelsCount : INTEGER := 1; |
|
108 | 108 | Coef_SZ : INTEGER := 9; |
|
109 | 109 | CoefCntPerCel : INTEGER := 6; |
|
110 | 110 | Cels_count : INTEGER := 5); |
|
111 | 111 | PORT( |
|
112 | 112 | reset : IN STD_LOGIC; |
|
113 | 113 | clk : IN STD_LOGIC; |
|
114 | 114 | sample_clk : IN STD_LOGIC; |
|
115 | 115 | -- BP : in std_logic; |
|
116 | 116 | -- BPinput : in std_logic_vector(3 downto 0); |
|
117 | 117 | LVLinput : IN STD_LOGIC_VECTOR(15 DOWNTO 0); |
|
118 | 118 | INsample : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
119 | 119 | OUTsample : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0) |
|
120 | 120 | ); |
|
121 | 121 | END COMPONENT; |
|
122 | 122 | |
|
123 | 123 | COMPONENT IIR_CEL_CTRLR_v2 |
|
124 | 124 | GENERIC ( |
|
125 | 125 | tech : INTEGER; |
|
126 | 126 | Mem_use : INTEGER; |
|
127 | 127 | Sample_SZ : INTEGER; |
|
128 | 128 | Coef_SZ : INTEGER; |
|
129 | 129 | Coef_Nb : INTEGER; |
|
130 | 130 | Coef_sel_SZ : INTEGER; |
|
131 | 131 | Cels_count : INTEGER; |
|
132 | 132 | ChanelsCount : INTEGER); |
|
133 | 133 | PORT ( |
|
134 | 134 | rstn : IN STD_LOGIC; |
|
135 | 135 | clk : IN STD_LOGIC; |
|
136 | 136 | virg_pos : IN INTEGER; |
|
137 | 137 | coefs : IN STD_LOGIC_VECTOR((Coef_SZ*Coef_Nb)-1 DOWNTO 0); |
|
138 | 138 | sample_in_val : IN STD_LOGIC; |
|
139 | 139 | sample_in : IN samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
140 | 140 | sample_out_val : OUT STD_LOGIC; |
|
141 | 141 | sample_out : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0)); |
|
142 | 142 | END COMPONENT; |
|
143 | 143 | |
|
144 | 144 | |
|
145 | 145 | --component FilterCTRLR is |
|
146 | 146 | --port( |
|
147 | 147 | -- reset : in std_logic; |
|
148 | 148 | -- clk : in std_logic; |
|
149 | 149 | -- sample_clk : in std_logic; |
|
150 | 150 | -- ALU_Ctrl : out std_logic_vector(3 downto 0); |
|
151 | 151 | -- sample_in : in samplT; |
|
152 | 152 | -- coef : out std_logic_vector(Coef_SZ-1 downto 0); |
|
153 | 153 | -- sample : out std_logic_vector(Smpl_SZ-1 downto 0) |
|
154 | 154 | --); |
|
155 | 155 | --end component; |
|
156 | 156 | |
|
157 | 157 | |
|
158 | 158 | --component FILTER_RAM_CTRLR is |
|
159 | 159 | --port( |
|
160 | 160 | -- reset : in std_logic; |
|
161 | 161 | -- clk : in std_logic; |
|
162 | 162 | -- run : in std_logic; |
|
163 | 163 | -- GO_0 : in std_logic; |
|
164 | 164 | -- B_A : in std_logic; |
|
165 | 165 | -- writeForce : in std_logic; |
|
166 | 166 | -- next_blk : in std_logic; |
|
167 | 167 | -- sample_in : in std_logic_vector(Smpl_SZ-1 downto 0); |
|
168 | 168 | -- sample_out : out std_logic_vector(Smpl_SZ-1 downto 0) |
|
169 | 169 | --); |
|
170 | 170 | --end component; |
|
171 | 171 | |
|
172 | 172 | |
|
173 | 173 | COMPONENT IIR_CEL_CTRLR IS |
|
174 | 174 | GENERIC( |
|
175 | 175 | tech : INTEGER := 0; |
|
176 | 176 | Sample_SZ : INTEGER := 16; |
|
177 | 177 | ChanelsCount : INTEGER := 1; |
|
178 | 178 | Coef_SZ : INTEGER := 9; |
|
179 | 179 | CoefCntPerCel : INTEGER := 3; |
|
180 | 180 | Cels_count : INTEGER := 5; |
|
181 | 181 | Mem_use : INTEGER := use_RAM |
|
182 | 182 | ); |
|
183 | 183 | PORT( |
|
184 | 184 | reset : IN STD_LOGIC; |
|
185 | 185 | clk : IN STD_LOGIC; |
|
186 | 186 | sample_clk : IN STD_LOGIC; |
|
187 | 187 | sample_in : IN samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
188 | 188 | sample_out : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
189 | 189 | virg_pos : IN INTEGER; |
|
190 | 190 | GOtest : OUT STD_LOGIC; |
|
191 | 191 | coefs : IN STD_LOGIC_VECTOR(Coef_SZ*CoefCntPerCel*Cels_count-1 DOWNTO 0) |
|
192 | 192 | ); |
|
193 | 193 | END COMPONENT; |
|
194 | 194 | |
|
195 | 195 | |
|
196 | 196 | COMPONENT RAM IS |
|
197 | 197 | GENERIC( |
|
198 | 198 | Input_SZ_1 : INTEGER := 8 |
|
199 | 199 | ); |
|
200 | 200 | PORT(WD : IN STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); RD : OUT |
|
201 | 201 | STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); WEN, REN : IN STD_LOGIC; |
|
202 | 202 | WADDR : IN STD_LOGIC_VECTOR(7 DOWNTO 0); RADDR : IN |
|
203 | 203 | STD_LOGIC_VECTOR(7 DOWNTO 0); RWCLK, RESET : IN STD_LOGIC |
|
204 | 204 | ) ; |
|
205 | 205 | END COMPONENT; |
|
206 | 206 | |
|
207 | 207 | COMPONENT RAM_CEL |
|
208 | 208 | GENERIC ( |
|
209 | 209 | Sample_SZ : INTEGER); |
|
210 | 210 | PORT ( |
|
211 | 211 | WD : IN STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
212 | 212 | RD : OUT STD_LOGIC_VECTOR(Sample_SZ-1 DOWNTO 0); |
|
213 | 213 | WEN, REN : IN STD_LOGIC; |
|
214 | 214 | WADDR : IN STD_LOGIC_VECTOR(7 DOWNTO 0); |
|
215 | 215 | RADDR : IN STD_LOGIC_VECTOR(7 DOWNTO 0); |
|
216 | 216 | RWCLK, RESET : IN STD_LOGIC); |
|
217 | 217 | END COMPONENT; |
|
218 | 218 | |
|
219 | COMPONENT RAM_CEL_N | |
|
220 | GENERIC ( | |
|
221 | size : INTEGER); | |
|
222 | PORT ( | |
|
223 | WD : IN STD_LOGIC_VECTOR(size-1 DOWNTO 0); | |
|
224 | RD : OUT STD_LOGIC_VECTOR(size-1 DOWNTO 0); | |
|
225 | WEN, REN : IN STD_LOGIC; | |
|
226 | WADDR : IN STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
227 | RADDR : IN STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
228 | RWCLK, RESET : IN STD_LOGIC); | |
|
229 | END COMPONENT; | |
|
230 | ||
|
219 | 231 | COMPONENT IIR_CEL_FILTER IS |
|
220 | 232 | GENERIC( |
|
221 | 233 | tech : INTEGER := 0; |
|
222 | 234 | Sample_SZ : INTEGER := 16; |
|
223 | 235 | ChanelsCount : INTEGER := 1; |
|
224 | 236 | Coef_SZ : INTEGER := 9; |
|
225 | 237 | CoefCntPerCel : INTEGER := 3; |
|
226 | 238 | Cels_count : INTEGER := 5; |
|
227 | 239 | Mem_use : INTEGER := use_RAM); |
|
228 | 240 | PORT( |
|
229 | 241 | reset : IN STD_LOGIC; |
|
230 | 242 | clk : IN STD_LOGIC; |
|
231 | 243 | sample_clk : IN STD_LOGIC; |
|
232 | 244 | regs_in : IN in_IIR_CEL_reg; |
|
233 | 245 | regs_out : IN out_IIR_CEL_reg; |
|
234 | 246 | sample_in : IN samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
235 | 247 | sample_out : OUT samplT(ChanelsCount-1 DOWNTO 0, Sample_SZ-1 DOWNTO 0); |
|
236 | 248 | GOtest : OUT STD_LOGIC; |
|
237 | 249 | coefs : IN STD_LOGIC_VECTOR(Coef_SZ*CoefCntPerCel*Cels_count-1 DOWNTO 0) |
|
238 | 250 | |
|
239 | 251 | ); |
|
240 | 252 | END COMPONENT; |
|
241 | 253 | |
|
242 | 254 | |
|
243 | 255 | COMPONENT RAM_CTRLR2 IS |
|
244 | 256 | GENERIC( |
|
245 | 257 | tech : INTEGER := 0; |
|
246 | 258 | Input_SZ_1 : INTEGER := 16; |
|
247 | 259 | Mem_use : INTEGER := use_RAM |
|
248 | 260 | ); |
|
249 | 261 | PORT( |
|
250 | 262 | reset : IN STD_LOGIC; |
|
251 | 263 | clk : IN STD_LOGIC; |
|
252 | 264 | WD_sel : IN STD_LOGIC; |
|
253 | 265 | Read : IN STD_LOGIC; |
|
254 | 266 | WADDR_sel : IN STD_LOGIC; |
|
255 | 267 | count : IN STD_LOGIC; |
|
256 | 268 | SVG_ADDR : IN STD_LOGIC; |
|
257 | 269 | Write : IN STD_LOGIC; |
|
258 | 270 | GO_0 : IN STD_LOGIC; |
|
259 | 271 | sample_in : IN STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
260 | 272 | sample_out : OUT STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0) |
|
261 | 273 | ); |
|
262 | 274 | END COMPONENT; |
|
263 | 275 | |
|
264 | 276 | COMPONENT APB_IIR_Filter IS |
|
265 | 277 | GENERIC ( |
|
266 | 278 | tech : INTEGER := 0; |
|
267 | 279 | pindex : INTEGER := 0; |
|
268 | 280 | paddr : INTEGER := 0; |
|
269 | 281 | pmask : INTEGER := 16#fff#; |
|
270 | 282 | pirq : INTEGER := 0; |
|
271 | 283 | abits : INTEGER := 8; |
|
272 | 284 | Sample_SZ : INTEGER := 16; |
|
273 | 285 | ChanelsCount : INTEGER := 1; |
|
274 | 286 | Coef_SZ : INTEGER := 9; |
|
275 | 287 | CoefCntPerCel : INTEGER := 6; |
|
276 | 288 | Cels_count : INTEGER := 5; |
|
277 | 289 | virgPos : INTEGER := 3; |
|
278 | 290 | Mem_use : INTEGER := use_RAM |
|
279 | 291 | ); |
|
280 | 292 | PORT ( |
|
281 | 293 | rst : IN STD_LOGIC; |
|
282 | 294 | clk : IN STD_LOGIC; |
|
283 | 295 | apbi : IN apb_slv_in_type; |
|
284 | 296 | apbo : OUT apb_slv_out_type; |
|
285 | 297 | sample_clk_out : OUT STD_LOGIC; |
|
286 | 298 | GOtest : OUT STD_LOGIC; |
|
287 | 299 | CoefsInitVal : IN STD_LOGIC_VECTOR((Cels_count*CoefCntPerCel*Coef_SZ)-1 DOWNTO 0) := (OTHERS => '1') |
|
288 | 300 | ); |
|
289 | 301 | END COMPONENT; |
|
290 | 302 | END; |
@@ -1,63 +1,65 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Martin Morlot |
|
20 | 20 | -- Mail : martin.morlot@lpp.polytechnique.fr |
|
21 | 21 | ------------------------------------------------------------------------------- |
|
22 | 22 | library IEEE; |
|
23 | 23 | use IEEE.numeric_std.all; |
|
24 | 24 | use IEEE.std_logic_1164.all; |
|
25 | 25 | library lpp; |
|
26 | 26 | use lpp.general_purpose.all; |
|
27 | 27 | |
|
28 | 28 | --! Une ALU : Arithmetic and logical unit, permettant de rοΏ½aliser une ou plusieurs opοΏ½ration |
|
29 | 29 | |
|
30 | 30 | entity ALU is |
|
31 | 31 | generic( |
|
32 | 32 | Arith_en : integer := 1; |
|
33 | 33 | Logic_en : integer := 1; |
|
34 | 34 | Input_SZ_1 : integer := 16; |
|
35 |
Input_SZ_2 : integer := 16 |
|
|
35 | Input_SZ_2 : integer := 16; | |
|
36 | COMP_EN : INTEGER := 0 -- 1 => No Comp | |
|
37 | ); | |
|
36 | 38 | port( |
|
37 | 39 | clk : in std_logic; --! Horloge du composant |
|
38 | 40 | reset : in std_logic; --! Reset general du composant |
|
39 | 41 | ctrl : in std_logic_vector(2 downto 0); --! Permet de sοΏ½lectionner la/les opοΏ½ration dοΏ½sirοΏ½e |
|
40 | 42 | comp : in std_logic_vector(1 downto 0); --! (set) Permet de complοΏ½menter les opοΏ½randes |
|
41 | 43 | OP1 : in std_logic_vector(Input_SZ_1-1 downto 0); --! Premier OpοΏ½rande |
|
42 | 44 | OP2 : in std_logic_vector(Input_SZ_2-1 downto 0); --! Second OpοΏ½rande |
|
43 | 45 | RES : out std_logic_vector(Input_SZ_1+Input_SZ_2-1 downto 0) --! RοΏ½sultat de l'opοΏ½ration |
|
44 | 46 | ); |
|
45 | 47 | end ALU; |
|
46 | 48 | |
|
47 | 49 | --! @details SοΏ½lection grace a l'entrοΏ½e "ctrl" : |
|
48 | 50 | --! Pause : IDLE = 000 |
|
49 | 51 | --! Multiplieur/Accumulateur : MAC = 001 |
|
50 | 52 | --! Multiplication : MULT = 010 |
|
51 | 53 | --! Addition : ADD = 011 |
|
52 | 54 | --! Reset du MAC : CLRMAC = 100 |
|
53 | 55 | architecture ar_ALU of ALU is |
|
54 | 56 | |
|
55 | 57 | begin |
|
56 | 58 | |
|
57 | 59 | arith : if Arith_en = 1 generate |
|
58 | 60 | MACinst : MAC |
|
59 | generic map(Input_SZ_1,Input_SZ_2) | |
|
61 | generic map(Input_SZ_1,Input_SZ_2,COMP_EN) | |
|
60 | 62 | port map(clk,reset,ctrl(2),ctrl(1 downto 0),comp,OP1,OP2,RES); |
|
61 | 63 | end generate; |
|
62 | 64 | |
|
63 | end architecture; No newline at end of file | |
|
65 | end architecture; |
@@ -1,294 +1,301 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Alexis Jeandet |
|
20 | 20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr |
|
21 | 21 | ---------------------------------------------------------------------------- |
|
22 | 22 | LIBRARY IEEE; |
|
23 | 23 | USE IEEE.numeric_std.ALL; |
|
24 | 24 | USE IEEE.std_logic_1164.ALL; |
|
25 | 25 | LIBRARY lpp; |
|
26 | 26 | USE lpp.general_purpose.ALL; |
|
27 | 27 | --TODO |
|
28 | 28 | --terminer le testbensh puis changer le resize dans les instanciations |
|
29 | 29 | --par un resize sur un vecteur en combi |
|
30 | 30 | |
|
31 | 31 | |
|
32 | 32 | ENTITY MAC IS |
|
33 | 33 | GENERIC( |
|
34 | 34 | Input_SZ_A : INTEGER := 8; |
|
35 | Input_SZ_B : INTEGER := 8 | |
|
35 | Input_SZ_B : INTEGER := 8; | |
|
36 | COMP_EN : INTEGER := 0 -- 1 => No Comp | |
|
36 | 37 | |
|
37 | 38 | ); |
|
38 | 39 | PORT( |
|
39 | 40 | clk : IN STD_LOGIC; |
|
40 | 41 | reset : IN STD_LOGIC; |
|
41 | 42 | clr_MAC : IN STD_LOGIC; |
|
42 | 43 | MAC_MUL_ADD : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
43 | 44 | Comp_2C : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
44 | 45 | OP1 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
45 | 46 | OP2 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
46 | 47 | RES : OUT STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0) |
|
47 | 48 | ); |
|
48 | 49 | END MAC; |
|
49 | 50 | |
|
50 | 51 | |
|
51 | 52 | |
|
52 | 53 | |
|
53 | 54 | ARCHITECTURE ar_MAC OF MAC IS |
|
54 | 55 | |
|
55 | signal add,mult : std_logic; | |
|
56 |
|
|
|
56 | SIGNAL add, mult : STD_LOGIC; | |
|
57 | SIGNAL MULTout : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
57 | 58 | |
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
|
59 | SIGNAL ADDERinA : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
60 | SIGNAL ADDERinB : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
61 | SIGNAL ADDERout : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
61 | 62 | |
|
62 | signal MACMUXsel : std_logic; | |
|
63 |
|
|
|
64 |
|
|
|
63 | SIGNAL MACMUXsel : STD_LOGIC; | |
|
64 | SIGNAL OP1_2C_D_Resz : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
65 | SIGNAL OP2_2C_D_Resz : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
65 | 66 | |
|
66 | signal OP1_2C : std_logic_vector(Input_SZ_A-1 downto 0); | |
|
67 | signal OP2_2C : std_logic_vector(Input_SZ_B-1 downto 0); | |
|
67 | SIGNAL OP1_2C : STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); | |
|
68 | SIGNAL OP2_2C : STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); | |
|
68 | 69 | |
|
69 | signal MACMUX2sel : std_logic; | |
|
70 | SIGNAL MACMUX2sel : STD_LOGIC; | |
|
70 | 71 | |
|
71 | signal add_D : std_logic; | |
|
72 | signal OP1_2C_D : std_logic_vector(Input_SZ_A-1 downto 0); | |
|
73 | signal OP2_2C_D : std_logic_vector(Input_SZ_B-1 downto 0); | |
|
74 |
|
|
|
75 | signal MACMUXsel_D : std_logic; | |
|
76 | signal MACMUX2sel_D : std_logic; | |
|
77 | signal MACMUX2sel_D_D : std_logic; | |
|
78 | signal clr_MAC_D : std_logic; | |
|
79 | signal clr_MAC_D_D : std_logic; | |
|
80 | signal MAC_MUL_ADD_2C_D : std_logic_vector(1 downto 0); | |
|
72 | SIGNAL add_D : STD_LOGIC; | |
|
73 | SIGNAL OP1_2C_D : STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); | |
|
74 | SIGNAL OP2_2C_D : STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); | |
|
75 | SIGNAL MULTout_D : STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0); | |
|
76 | SIGNAL MACMUXsel_D : STD_LOGIC; | |
|
77 | SIGNAL MACMUX2sel_D : STD_LOGIC; | |
|
78 | SIGNAL MACMUX2sel_D_D : STD_LOGIC; | |
|
79 | SIGNAL clr_MAC_D : STD_LOGIC; | |
|
80 | SIGNAL clr_MAC_D_D : STD_LOGIC; | |
|
81 | SIGNAL MAC_MUL_ADD_2C_D : STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
81 | 82 | |
|
82 | SIGNAL load_mult_result : STD_LOGIC; | |
|
83 | SIGNAL load_mult_result_D : STD_LOGIC; | |
|
83 | SIGNAL load_mult_result : STD_LOGIC; | |
|
84 | SIGNAL load_mult_result_D : STD_LOGIC; | |
|
84 | 85 | |
|
85 | 86 | BEGIN |
|
86 | 87 | |
|
87 | 88 | |
|
88 | 89 | |
|
89 | 90 | |
|
90 | 91 | --============================================================== |
|
91 | 92 | --=============M A C C O N T R O L E R========================= |
|
92 | 93 | --============================================================== |
|
93 | 94 | MAC_CONTROLER1 : MAC_CONTROLER |
|
94 | 95 | PORT MAP( |
|
95 | 96 | ctrl => MAC_MUL_ADD, |
|
96 | 97 | MULT => mult, |
|
97 | 98 | ADD => add, |
|
98 | 99 | LOAD_ADDER => load_mult_result, |
|
99 | 100 | MACMUX_sel => MACMUXsel, |
|
100 | 101 | MACMUX2_sel => MACMUX2sel |
|
101 | 102 | |
|
102 | 103 | ); |
|
103 | 104 | --============================================================== |
|
104 | 105 | |
|
105 | 106 | |
|
106 | 107 | |
|
107 | 108 | |
|
108 | 109 | --============================================================== |
|
109 | 110 | --=============M U L T I P L I E R============================== |
|
110 | 111 | --============================================================== |
|
111 | 112 | Multiplieri_nst : Multiplier |
|
112 | 113 | GENERIC MAP( |
|
113 | 114 | Input_SZ_A => Input_SZ_A, |
|
114 | 115 | Input_SZ_B => Input_SZ_B |
|
115 | 116 | ) |
|
116 | port map( | |
|
117 |
clk |
|
|
118 |
reset |
|
|
119 |
mult |
|
|
120 |
OP1 |
|
|
121 |
OP2 |
|
|
122 |
RES |
|
|
123 | ); | |
|
117 | PORT MAP( | |
|
118 | clk => clk, | |
|
119 | reset => reset, | |
|
120 | mult => mult, | |
|
121 | OP1 => OP1_2C, | |
|
122 | OP2 => OP2_2C, | |
|
123 | RES => MULTout | |
|
124 | ); | |
|
124 | 125 | --============================================================== |
|
125 | 126 | |
|
126 | 127 | PROCESS (clk, reset) |
|
127 | 128 | BEGIN -- PROCESS |
|
128 | 129 | IF reset = '0' THEN -- asynchronous reset (active low) |
|
129 | 130 | load_mult_result_D <= '0'; |
|
130 |
ELSIF clk' |
|
|
131 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
|
131 | 132 | load_mult_result_D <= load_mult_result; |
|
132 | 133 | END IF; |
|
133 | 134 | END PROCESS; |
|
134 | ||
|
135 | ||
|
135 | 136 | --============================================================== |
|
136 | 137 | --======================A D D E R ============================== |
|
137 | 138 | --============================================================== |
|
138 | 139 | adder_inst : Adder |
|
139 | 140 | GENERIC MAP( |
|
140 | 141 | Input_SZ_A => Input_SZ_A+Input_SZ_B, |
|
141 | 142 | Input_SZ_B => Input_SZ_A+Input_SZ_B |
|
142 | 143 | ) |
|
143 | 144 | PORT MAP( |
|
144 | 145 | clk => clk, |
|
145 | 146 | reset => reset, |
|
146 | 147 | clr => clr_MAC_D, |
|
147 | 148 | load => load_mult_result_D, |
|
148 | 149 | add => add_D, |
|
149 | 150 | OP1 => ADDERinA, |
|
150 | 151 | OP2 => ADDERinB, |
|
151 | 152 | RES => ADDERout |
|
152 | 153 | ); |
|
153 | 154 | |
|
154 | 155 | --============================================================== |
|
155 | 156 | --===================TWO COMPLEMENTERS========================== |
|
156 | 157 | --============================================================== |
|
157 | TWO_COMPLEMENTER1 : TwoComplementer | |
|
158 | generic map( | |
|
159 | Input_SZ => Input_SZ_A | |
|
160 | ) | |
|
161 | port map( | |
|
162 | clk => clk, | |
|
163 |
|
|
|
164 | clr => clr_MAC, | |
|
165 | TwoComp => Comp_2C(0), | |
|
166 | OP => OP1, | |
|
167 |
|
|
|
168 | ); | |
|
158 | gen_comp : IF COMP_EN = 0 GENERATE | |
|
159 | TWO_COMPLEMENTER1 : TwoComplementer | |
|
160 | GENERIC MAP( | |
|
161 | Input_SZ => Input_SZ_A | |
|
162 | ) | |
|
163 | PORT MAP( | |
|
164 | clk => clk, | |
|
165 | reset => reset, | |
|
166 | clr => clr_MAC, | |
|
167 | TwoComp => Comp_2C(0), | |
|
168 | OP => OP1, | |
|
169 | RES => OP1_2C | |
|
170 | ); | |
|
169 | 171 | |
|
170 | ||
|
171 | TWO_COMPLEMENTER2 : TwoComplementer | |
|
172 | generic map( | |
|
173 | Input_SZ => Input_SZ_B | |
|
174 | ) | |
|
175 | port map( | |
|
176 | clk => clk, | |
|
177 |
|
|
|
178 | clr => clr_MAC, | |
|
179 | TwoComp => Comp_2C(1), | |
|
180 |
|
|
|
181 | RES => OP2_2C | |
|
182 | ); | |
|
172 | TWO_COMPLEMENTER2 : TwoComplementer | |
|
173 | GENERIC MAP( | |
|
174 | Input_SZ => Input_SZ_B | |
|
175 | ) | |
|
176 | PORT MAP( | |
|
177 | clk => clk, | |
|
178 | reset => reset, | |
|
179 | clr => clr_MAC, | |
|
180 | TwoComp => Comp_2C(1), | |
|
181 | OP => OP2, | |
|
182 | RES => OP2_2C | |
|
183 | ); | |
|
184 | END GENERATE gen_comp; | |
|
185 | ||
|
186 | no_gen_comp : IF COMP_EN = 1 GENERATE | |
|
187 | OP2_2C <= OP2; | |
|
188 | OP1_2C <= OP1; | |
|
189 | END GENERATE no_gen_comp; | |
|
183 | 190 | --============================================================== |
|
184 | 191 | |
|
185 | 192 | clr_MACREG1 : MAC_REG |
|
186 | 193 | GENERIC MAP(size => 1) |
|
187 | 194 | PORT MAP( |
|
188 | 195 | reset => reset, |
|
189 | 196 | clk => clk, |
|
190 | 197 | D(0) => clr_MAC, |
|
191 | 198 | Q(0) => clr_MAC_D |
|
192 | 199 | ); |
|
193 | 200 | |
|
194 | 201 | addREG : MAC_REG |
|
195 | 202 | GENERIC MAP(size => 1) |
|
196 | 203 | PORT MAP( |
|
197 | 204 | reset => reset, |
|
198 | 205 | clk => clk, |
|
199 | 206 | D(0) => add, |
|
200 | 207 | Q(0) => add_D |
|
201 | 208 | ); |
|
202 | 209 | |
|
203 | OP1REG : MAC_REG | |
|
204 |
|
|
|
205 | port map( | |
|
206 |
reset |
|
|
207 |
clk |
|
|
208 |
D |
|
|
209 |
Q |
|
|
210 | ); | |
|
210 | OP1REG : MAC_REG | |
|
211 | GENERIC MAP(size => Input_SZ_A) | |
|
212 | PORT MAP( | |
|
213 | reset => reset, | |
|
214 | clk => clk, | |
|
215 | D => OP1_2C, | |
|
216 | Q => OP1_2C_D | |
|
217 | ); | |
|
211 | 218 | |
|
212 | 219 | |
|
213 | OP2REG : MAC_REG | |
|
214 |
|
|
|
215 | port map( | |
|
216 |
reset |
|
|
217 |
clk |
|
|
218 |
D |
|
|
219 |
Q |
|
|
220 | ); | |
|
220 | OP2REG : MAC_REG | |
|
221 | GENERIC MAP(size => Input_SZ_B) | |
|
222 | PORT MAP( | |
|
223 | reset => reset, | |
|
224 | clk => clk, | |
|
225 | D => OP2_2C, | |
|
226 | Q => OP2_2C_D | |
|
227 | ); | |
|
221 | 228 | |
|
222 | 229 | MULToutREG : MAC_REG |
|
223 | 230 | GENERIC MAP(size => Input_SZ_A+Input_SZ_B) |
|
224 | 231 | PORT MAP( |
|
225 | 232 | reset => reset, |
|
226 | 233 | clk => clk, |
|
227 | 234 | D => MULTout, |
|
228 | 235 | Q => MULTout_D |
|
229 | 236 | ); |
|
230 | 237 | |
|
231 | 238 | MACMUXselREG : MAC_REG |
|
232 | 239 | GENERIC MAP(size => 1) |
|
233 | 240 | PORT MAP( |
|
234 | 241 | reset => reset, |
|
235 | 242 | clk => clk, |
|
236 | 243 | D(0) => MACMUXsel, |
|
237 | 244 | Q(0) => MACMUXsel_D |
|
238 | 245 | ); |
|
239 | 246 | |
|
240 | 247 | MACMUX2selREG : MAC_REG |
|
241 | 248 | GENERIC MAP(size => 1) |
|
242 | 249 | PORT MAP( |
|
243 | 250 | reset => reset, |
|
244 | 251 | clk => clk, |
|
245 | 252 | D(0) => MACMUX2sel, |
|
246 | 253 | Q(0) => MACMUX2sel_D |
|
247 | 254 | ); |
|
248 | 255 | |
|
249 | 256 | MACMUX2selREG2 : MAC_REG |
|
250 | 257 | GENERIC MAP(size => 1) |
|
251 | 258 | PORT MAP( |
|
252 | 259 | reset => reset, |
|
253 | 260 | clk => clk, |
|
254 | 261 | D(0) => MACMUX2sel_D, |
|
255 | 262 | Q(0) => MACMUX2sel_D_D |
|
256 | 263 | ); |
|
257 | 264 | |
|
258 | 265 | --============================================================== |
|
259 | 266 | --======================M A C M U X =========================== |
|
260 | 267 | --============================================================== |
|
261 | 268 | MACMUX_inst : MAC_MUX |
|
262 | 269 | GENERIC MAP( |
|
263 | 270 | Input_SZ_A => Input_SZ_A+Input_SZ_B, |
|
264 | 271 | Input_SZ_B => Input_SZ_A+Input_SZ_B |
|
265 | 272 | |
|
266 | 273 | ) |
|
267 | 274 | PORT MAP( |
|
268 | 275 | sel => MACMUXsel_D, |
|
269 | 276 | INA1 => ADDERout, |
|
270 | 277 | INA2 => OP2_2C_D_Resz, |
|
271 | 278 | INB1 => MULTout, |
|
272 | 279 | INB2 => OP1_2C_D_Resz, |
|
273 | 280 | OUTA => ADDERinA, |
|
274 | 281 | OUTB => ADDERinB |
|
275 | 282 | ); |
|
276 | 283 | OP1_2C_D_Resz <= STD_LOGIC_VECTOR(resize(SIGNED(OP1_2C_D), Input_SZ_A+Input_SZ_B)); |
|
277 | 284 | OP2_2C_D_Resz <= STD_LOGIC_VECTOR(resize(SIGNED(OP2_2C_D), Input_SZ_A+Input_SZ_B)); |
|
278 | 285 | --============================================================== |
|
279 | 286 | |
|
280 | 287 | |
|
281 | 288 | --============================================================== |
|
282 | 289 | --======================M A C M U X2 ========================== |
|
283 | 290 | --============================================================== |
|
284 | 291 | MAC_MUX2_inst : MAC_MUX2 |
|
285 | 292 | GENERIC MAP(Input_SZ => Input_SZ_A+Input_SZ_B) |
|
286 | 293 | PORT MAP( |
|
287 | 294 | sel => MACMUX2sel_D_D, |
|
288 | 295 | RES2 => MULTout_D, |
|
289 | 296 | RES1 => ADDERout, |
|
290 | 297 | RES => RES |
|
291 | 298 | ); |
|
292 | 299 | --============================================================== |
|
293 | 300 | |
|
294 | 301 | END ar_MAC; |
@@ -1,270 +1,272 | |||
|
1 | 1 | ------------------------------------------------------------------------------ |
|
2 | 2 | -- This file is a part of the LPP VHDL IP LIBRARY |
|
3 | 3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS |
|
4 | 4 | -- |
|
5 | 5 | -- This program is free software; you can redistribute it and/or modify |
|
6 | 6 | -- it under the terms of the GNU General Public License as published by |
|
7 | 7 | -- the Free Software Foundation; either version 3 of the License, or |
|
8 | 8 | -- (at your option) any later version. |
|
9 | 9 | -- |
|
10 | 10 | -- This program is distributed in the hope that it will be useful, |
|
11 | 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 | 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 | 13 | -- GNU General Public License for more details. |
|
14 | 14 | -- |
|
15 | 15 | -- You should have received a copy of the GNU General Public License |
|
16 | 16 | -- along with this program; if not, write to the Free Software |
|
17 | 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
18 | 18 | ------------------------------------------------------------------------------- |
|
19 | 19 | -- Author : Alexis Jeandet |
|
20 | 20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr |
|
21 | 21 | ---------------------------------------------------------------------------- |
|
22 | 22 | --UPDATE |
|
23 | 23 | ------------------------------------------------------------------------------- |
|
24 | 24 | -- 14-03-2013 - Jean-christophe Pellion |
|
25 | 25 | -- ADD MUXN (a parametric multiplexor (N stage of MUX2)) |
|
26 | 26 | ------------------------------------------------------------------------------- |
|
27 | 27 | |
|
28 | 28 | LIBRARY ieee; |
|
29 | 29 | USE ieee.std_logic_1164.ALL; |
|
30 | 30 | |
|
31 | 31 | |
|
32 | 32 | |
|
33 | 33 | PACKAGE general_purpose IS |
|
34 | 34 | |
|
35 | 35 | |
|
36 | 36 | |
|
37 | 37 | COMPONENT Clk_divider IS |
|
38 | 38 | GENERIC(OSC_freqHz : INTEGER := 50000000; |
|
39 | 39 | TargetFreq_Hz : INTEGER := 50000); |
|
40 | 40 | PORT (clk : IN STD_LOGIC; |
|
41 | 41 | reset : IN STD_LOGIC; |
|
42 | 42 | clk_divided : OUT STD_LOGIC); |
|
43 | 43 | END COMPONENT; |
|
44 | 44 | |
|
45 | 45 | |
|
46 | 46 | COMPONENT Clk_divider2 IS |
|
47 | 47 | generic(N : integer := 16); |
|
48 | 48 | port( |
|
49 | 49 | clk_in : in std_logic; |
|
50 | 50 | clk_out : out std_logic); |
|
51 | 51 | END COMPONENT; |
|
52 | 52 | |
|
53 | 53 | COMPONENT Adder IS |
|
54 | 54 | GENERIC( |
|
55 | 55 | Input_SZ_A : INTEGER := 16; |
|
56 | 56 | Input_SZ_B : INTEGER := 16 |
|
57 | 57 | |
|
58 | 58 | ); |
|
59 | 59 | PORT( |
|
60 | 60 | clk : IN STD_LOGIC; |
|
61 | 61 | reset : IN STD_LOGIC; |
|
62 | 62 | clr : IN STD_LOGIC; |
|
63 | 63 | load : IN STD_LOGIC; |
|
64 | 64 | add : IN STD_LOGIC; |
|
65 | 65 | OP1 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
66 | 66 | OP2 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
67 | 67 | RES : OUT STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0) |
|
68 | 68 | ); |
|
69 | 69 | END COMPONENT; |
|
70 | 70 | |
|
71 | 71 | COMPONENT ADDRcntr IS |
|
72 | 72 | PORT( |
|
73 | 73 | clk : IN STD_LOGIC; |
|
74 | 74 | reset : IN STD_LOGIC; |
|
75 | 75 | count : IN STD_LOGIC; |
|
76 | 76 | clr : IN STD_LOGIC; |
|
77 | 77 | Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) |
|
78 | 78 | ); |
|
79 | 79 | END COMPONENT; |
|
80 | 80 | |
|
81 | 81 | COMPONENT ALU IS |
|
82 | 82 | GENERIC( |
|
83 | 83 | Arith_en : INTEGER := 1; |
|
84 | 84 | Logic_en : INTEGER := 1; |
|
85 | 85 | Input_SZ_1 : INTEGER := 16; |
|
86 | Input_SZ_2 : INTEGER := 9 | |
|
86 | Input_SZ_2 : INTEGER := 9; | |
|
87 | COMP_EN : INTEGER := 0 -- 1 => No Comp | |
|
87 | 88 | |
|
88 | 89 | ); |
|
89 | 90 | PORT( |
|
90 | 91 | clk : IN STD_LOGIC; |
|
91 | 92 | reset : IN STD_LOGIC; |
|
92 | 93 | ctrl : IN STD_LOGIC_VECTOR(2 downto 0); |
|
93 | 94 | comp : IN STD_LOGIC_VECTOR(1 downto 0); |
|
94 | 95 | OP1 : IN STD_LOGIC_VECTOR(Input_SZ_1-1 DOWNTO 0); |
|
95 | 96 | OP2 : IN STD_LOGIC_VECTOR(Input_SZ_2-1 DOWNTO 0); |
|
96 | 97 | RES : OUT STD_LOGIC_VECTOR(Input_SZ_1+Input_SZ_2-1 DOWNTO 0) |
|
97 | 98 | ); |
|
98 | 99 | END COMPONENT; |
|
99 | 100 | |
|
100 | 101 | --------------------------------------------------------- |
|
101 | 102 | -------- // SοΏ½lection grace a l'entrοΏ½e "ctrl" \\ -------- |
|
102 | 103 | --------------------------------------------------------- |
|
103 | 104 | Constant ctrl_IDLE : std_logic_vector(2 downto 0) := "000"; |
|
104 | 105 | Constant ctrl_MAC : std_logic_vector(2 downto 0) := "001"; |
|
105 | 106 | Constant ctrl_MULT : std_logic_vector(2 downto 0) := "010"; |
|
106 | 107 | Constant ctrl_ADD : std_logic_vector(2 downto 0) := "011"; |
|
107 | 108 | Constant ctrl_CLRMAC : std_logic_vector(2 downto 0) := "100"; |
|
108 | 109 | --------------------------------------------------------- |
|
109 | 110 | |
|
110 | 111 | COMPONENT MAC IS |
|
111 | 112 | GENERIC( |
|
112 | 113 | Input_SZ_A : INTEGER := 8; |
|
113 | Input_SZ_B : INTEGER := 8 | |
|
114 | Input_SZ_B : INTEGER := 8; | |
|
115 | COMP_EN : INTEGER := 0 -- 1 => No Comp | |
|
114 | 116 | ); |
|
115 | 117 | PORT( |
|
116 | 118 | clk : IN STD_LOGIC; |
|
117 | 119 | reset : IN STD_LOGIC; |
|
118 | 120 | clr_MAC : IN STD_LOGIC; |
|
119 | 121 | MAC_MUL_ADD : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
120 | 122 | Comp_2C : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
121 | 123 | OP1 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
122 | 124 | OP2 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
123 | 125 | RES : OUT STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0) |
|
124 | 126 | ); |
|
125 | 127 | END COMPONENT; |
|
126 | 128 | |
|
127 | 129 | COMPONENT TwoComplementer is |
|
128 | 130 | generic( |
|
129 | 131 | Input_SZ : integer := 16); |
|
130 | 132 | port( |
|
131 | 133 | clk : in std_logic; --! Horloge du composant |
|
132 | 134 | reset : in std_logic; --! Reset general du composant |
|
133 | 135 | clr : in std_logic; --! Un reset spοΏ½cifique au programme |
|
134 | 136 | TwoComp : in std_logic; --! Autorise l'utilisation du complοΏ½ment |
|
135 | 137 | OP : in std_logic_vector(Input_SZ-1 downto 0); --! OpοΏ½rande d'entrοΏ½e |
|
136 | 138 | RES : out std_logic_vector(Input_SZ-1 downto 0) --! RοΏ½sultat, opοΏ½rande complοΏ½mentοΏ½ ou non |
|
137 | 139 | ); |
|
138 | 140 | end COMPONENT; |
|
139 | 141 | |
|
140 | 142 | COMPONENT MAC_CONTROLER IS |
|
141 | 143 | PORT( |
|
142 | 144 | ctrl : IN STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
143 | 145 | MULT : OUT STD_LOGIC; |
|
144 | 146 | ADD : OUT STD_LOGIC; |
|
145 | 147 | LOAD_ADDER : out std_logic; |
|
146 | 148 | MACMUX_sel : OUT STD_LOGIC; |
|
147 | 149 | MACMUX2_sel : OUT STD_LOGIC |
|
148 | 150 | ); |
|
149 | 151 | END COMPONENT; |
|
150 | 152 | |
|
151 | 153 | COMPONENT MAC_MUX IS |
|
152 | 154 | GENERIC( |
|
153 | 155 | Input_SZ_A : INTEGER := 16; |
|
154 | 156 | Input_SZ_B : INTEGER := 16 |
|
155 | 157 | |
|
156 | 158 | ); |
|
157 | 159 | PORT( |
|
158 | 160 | sel : IN STD_LOGIC; |
|
159 | 161 | INA1 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
160 | 162 | INA2 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
161 | 163 | INB1 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
162 | 164 | INB2 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
163 | 165 | OUTA : OUT STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
164 | 166 | OUTB : OUT STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0) |
|
165 | 167 | ); |
|
166 | 168 | END COMPONENT; |
|
167 | 169 | |
|
168 | 170 | |
|
169 | 171 | COMPONENT MAC_MUX2 IS |
|
170 | 172 | GENERIC(Input_SZ : INTEGER := 16); |
|
171 | 173 | PORT( |
|
172 | 174 | sel : IN STD_LOGIC; |
|
173 | 175 | RES1 : IN STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
174 | 176 | RES2 : IN STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
175 | 177 | RES : OUT STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0) |
|
176 | 178 | ); |
|
177 | 179 | END COMPONENT; |
|
178 | 180 | |
|
179 | 181 | |
|
180 | 182 | COMPONENT MAC_REG IS |
|
181 | 183 | GENERIC(size : INTEGER := 16); |
|
182 | 184 | PORT( |
|
183 | 185 | reset : IN STD_LOGIC; |
|
184 | 186 | clk : IN STD_LOGIC; |
|
185 | 187 | D : IN STD_LOGIC_VECTOR(size-1 DOWNTO 0); |
|
186 | 188 | Q : OUT STD_LOGIC_VECTOR(size-1 DOWNTO 0) |
|
187 | 189 | ); |
|
188 | 190 | END COMPONENT; |
|
189 | 191 | |
|
190 | 192 | |
|
191 | 193 | COMPONENT MUX2 IS |
|
192 | 194 | GENERIC(Input_SZ : INTEGER := 16); |
|
193 | 195 | PORT( |
|
194 | 196 | sel : IN STD_LOGIC; |
|
195 | 197 | IN1 : IN STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
196 | 198 | IN2 : IN STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
197 | 199 | RES : OUT STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0) |
|
198 | 200 | ); |
|
199 | 201 | END COMPONENT; |
|
200 | 202 | |
|
201 | 203 | TYPE MUX_INPUT_TYPE IS ARRAY (NATURAL RANGE <>, NATURAL RANGE <>) OF STD_LOGIC; |
|
202 | 204 | TYPE MUX_OUTPUT_TYPE IS ARRAY (NATURAL RANGE <>) OF STD_LOGIC; |
|
203 | 205 | |
|
204 | 206 | COMPONENT MUXN |
|
205 | 207 | GENERIC ( |
|
206 | 208 | Input_SZ : INTEGER; |
|
207 | 209 | NbStage : INTEGER); |
|
208 | 210 | PORT ( |
|
209 | 211 | sel : IN STD_LOGIC_VECTOR(NbStage-1 DOWNTO 0); |
|
210 | 212 | INPUT : IN MUX_INPUT_TYPE(0 TO (2**NbStage)-1,Input_SZ-1 DOWNTO 0); |
|
211 | 213 | --INPUT : IN ARRAY (0 TO (2**NbStage)-1) OF STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
212 | 214 | RES : OUT MUX_OUTPUT_TYPE(Input_SZ-1 DOWNTO 0)); |
|
213 | 215 | END COMPONENT; |
|
214 | 216 | |
|
215 | 217 | |
|
216 | 218 | |
|
217 | 219 | COMPONENT Multiplier IS |
|
218 | 220 | GENERIC( |
|
219 | 221 | Input_SZ_A : INTEGER := 16; |
|
220 | 222 | Input_SZ_B : INTEGER := 16 |
|
221 | 223 | |
|
222 | 224 | ); |
|
223 | 225 | PORT( |
|
224 | 226 | clk : IN STD_LOGIC; |
|
225 | 227 | reset : IN STD_LOGIC; |
|
226 | 228 | mult : IN STD_LOGIC; |
|
227 | 229 | OP1 : IN STD_LOGIC_VECTOR(Input_SZ_A-1 DOWNTO 0); |
|
228 | 230 | OP2 : IN STD_LOGIC_VECTOR(Input_SZ_B-1 DOWNTO 0); |
|
229 | 231 | RES : OUT STD_LOGIC_VECTOR(Input_SZ_A+Input_SZ_B-1 DOWNTO 0) |
|
230 | 232 | ); |
|
231 | 233 | END COMPONENT; |
|
232 | 234 | |
|
233 | 235 | COMPONENT REG IS |
|
234 | 236 | GENERIC(size : INTEGER := 16; initial_VALUE : INTEGER := 0); |
|
235 | 237 | PORT( |
|
236 | 238 | reset : IN STD_LOGIC; |
|
237 | 239 | clk : IN STD_LOGIC; |
|
238 | 240 | D : IN STD_LOGIC_VECTOR(size-1 DOWNTO 0); |
|
239 | 241 | Q : OUT STD_LOGIC_VECTOR(size-1 DOWNTO 0) |
|
240 | 242 | ); |
|
241 | 243 | END COMPONENT; |
|
242 | 244 | |
|
243 | 245 | |
|
244 | 246 | |
|
245 | 247 | COMPONENT RShifter IS |
|
246 | 248 | GENERIC( |
|
247 | 249 | Input_SZ : INTEGER := 16; |
|
248 | 250 | shift_SZ : INTEGER := 4 |
|
249 | 251 | ); |
|
250 | 252 | PORT( |
|
251 | 253 | clk : IN STD_LOGIC; |
|
252 | 254 | reset : IN STD_LOGIC; |
|
253 | 255 | shift : IN STD_LOGIC; |
|
254 | 256 | OP : IN STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0); |
|
255 | 257 | cnt : IN STD_LOGIC_VECTOR(shift_SZ-1 DOWNTO 0); |
|
256 | 258 | RES : OUT STD_LOGIC_VECTOR(Input_SZ-1 DOWNTO 0) |
|
257 | 259 | ); |
|
258 | 260 | END COMPONENT; |
|
259 | 261 | |
|
260 | 262 | COMPONENT SYNC_FF |
|
261 | 263 | GENERIC ( |
|
262 | 264 | NB_FF_OF_SYNC : INTEGER); |
|
263 | 265 | PORT ( |
|
264 | 266 | clk : IN STD_LOGIC; |
|
265 | 267 | rstn : IN STD_LOGIC; |
|
266 | 268 | A : IN STD_LOGIC; |
|
267 | 269 | A_sync : OUT STD_LOGIC); |
|
268 | 270 | END COMPONENT; |
|
269 | 271 | |
|
270 | 272 | END; |
This diff has been collapsed as it changes many lines, (606 lines changed) Show them Hide them | |||
@@ -1,303 +1,303 | |||
|
1 | LIBRARY ieee; | |
|
2 | USE ieee.std_logic_1164.ALL; | |
|
3 | LIBRARY lpp; | |
|
4 | USE lpp.lpp_ad_conv.ALL; | |
|
5 | USE lpp.iir_filter.ALL; | |
|
6 | USE lpp.FILTERcfg.ALL; | |
|
7 | USE lpp.lpp_memory.ALL; | |
|
8 | USE lpp.lpp_top_lfr_pkg.ALL; | |
|
9 | LIBRARY techmap; | |
|
10 | USE techmap.gencomp.ALL; | |
|
11 | ||
|
12 | ENTITY lpp_top_acq IS | |
|
13 | GENERIC( | |
|
14 | tech : INTEGER := 0 | |
|
15 | ); | |
|
16 | PORT ( | |
|
17 | -- ADS7886 | |
|
18 | cnv_run : IN STD_LOGIC; | |
|
19 | cnv : OUT STD_LOGIC; | |
|
20 | sck : OUT STD_LOGIC; | |
|
21 | sdo : IN STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
22 | -- | |
|
23 | cnv_clk : IN STD_LOGIC; -- 49 MHz | |
|
24 | cnv_rstn : IN STD_LOGIC; | |
|
25 | -- | |
|
26 | clk : IN STD_LOGIC; -- 25 MHz | |
|
27 | rstn : IN STD_LOGIC; | |
|
28 | -- | |
|
29 | sample_f0_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
30 | sample_f0_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
31 | -- | |
|
32 | sample_f1_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
33 | sample_f1_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
34 | -- | |
|
35 | sample_f2_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
36 | sample_f2_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
37 | -- | |
|
38 | sample_f3_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
39 | sample_f3_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0) | |
|
40 | ); | |
|
41 | END lpp_top_acq; | |
|
42 | ||
|
43 | ARCHITECTURE tb OF lpp_top_acq IS | |
|
44 | ||
|
45 | COMPONENT Downsampling | |
|
46 | GENERIC ( | |
|
47 | ChanelCount : INTEGER; | |
|
48 | SampleSize : INTEGER; | |
|
49 | DivideParam : INTEGER); | |
|
50 | PORT ( | |
|
51 | clk : IN STD_LOGIC; | |
|
52 | rstn : IN STD_LOGIC; | |
|
53 | sample_in_val : IN STD_LOGIC; | |
|
54 | sample_in : IN samplT(ChanelCount-1 DOWNTO 0, SampleSize-1 DOWNTO 0); | |
|
55 | sample_out_val : OUT STD_LOGIC; | |
|
56 | sample_out : OUT samplT(ChanelCount-1 DOWNTO 0, SampleSize-1 DOWNTO 0)); | |
|
57 | END COMPONENT; | |
|
58 | ||
|
59 | ----------------------------------------------------------------------------- | |
|
60 | CONSTANT ChanelCount : INTEGER := 8; | |
|
61 | CONSTANT ncycle_cnv_high : INTEGER := 79; | |
|
62 | CONSTANT ncycle_cnv : INTEGER := 500; | |
|
63 | ||
|
64 | ----------------------------------------------------------------------------- | |
|
65 | SIGNAL sample : Samples(ChanelCount-1 DOWNTO 0); | |
|
66 | SIGNAL sample_val : STD_LOGIC; | |
|
67 | SIGNAL sample_val_delay : STD_LOGIC; | |
|
68 | ----------------------------------------------------------------------------- | |
|
69 | CONSTANT Coef_SZ : INTEGER := 9; | |
|
70 | CONSTANT CoefCntPerCel : INTEGER := 6; | |
|
71 | CONSTANT CoefPerCel : INTEGER := 5; | |
|
72 | CONSTANT Cels_count : INTEGER := 5; | |
|
73 | ||
|
74 | SIGNAL coefs_v2 : STD_LOGIC_VECTOR((Coef_SZ*CoefPerCel*Cels_count)-1 DOWNTO 0); | |
|
75 | SIGNAL sample_filter_in : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
76 | -- | |
|
77 | SIGNAL sample_filter_v2_out_val : STD_LOGIC; | |
|
78 | SIGNAL sample_filter_v2_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
79 | -- | |
|
80 | SIGNAL sample_filter_v2_out_r_val : STD_LOGIC; | |
|
81 | SIGNAL sample_filter_v2_out_r : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
82 | ----------------------------------------------------------------------------- | |
|
83 | SIGNAL downsampling_cnt : STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
84 | SIGNAL sample_downsampling_out_val : STD_LOGIC; | |
|
85 | SIGNAL sample_downsampling_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
86 | -- | |
|
87 | SIGNAL sample_f0_val : STD_LOGIC; | |
|
88 | SIGNAL sample_f0 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
89 | ----------------------------------------------------------------------------- | |
|
90 | SIGNAL sample_f1_val : STD_LOGIC; | |
|
91 | SIGNAL sample_f1 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
92 | -- | |
|
93 | SIGNAL sample_f2_val : STD_LOGIC; | |
|
94 | SIGNAL sample_f2 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
95 | -- | |
|
96 | SIGNAL sample_f3_val : STD_LOGIC; | |
|
97 | SIGNAL sample_f3 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
98 | ||
|
99 | BEGIN | |
|
100 | ||
|
101 | -- component instantiation | |
|
102 | ----------------------------------------------------------------------------- | |
|
103 |
DIGITAL_acquisition : AD |
|
|
104 | GENERIC MAP ( | |
|
105 | ChanelCount => ChanelCount, | |
|
106 | ncycle_cnv_high => ncycle_cnv_high, | |
|
107 | ncycle_cnv => ncycle_cnv) | |
|
108 | PORT MAP ( | |
|
109 | cnv_clk => cnv_clk, -- | |
|
110 | cnv_rstn => cnv_rstn, -- | |
|
111 | cnv_run => cnv_run, -- | |
|
112 | cnv => cnv, -- | |
|
113 | clk => clk, -- | |
|
114 | rstn => rstn, -- | |
|
115 | sck => sck, -- | |
|
116 | sdo => sdo(ChanelCount-1 DOWNTO 0), -- | |
|
117 | sample => sample, | |
|
118 | sample_val => sample_val); | |
|
119 | ||
|
120 | ----------------------------------------------------------------------------- | |
|
121 | ||
|
122 | PROCESS (clk, rstn) | |
|
123 | BEGIN -- PROCESS | |
|
124 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
125 | sample_val_delay <= '0'; | |
|
126 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
|
127 | sample_val_delay <= sample_val; | |
|
128 | END IF; | |
|
129 | END PROCESS; | |
|
130 | ||
|
131 | ----------------------------------------------------------------------------- | |
|
132 | ChanelLoop : FOR i IN 0 TO ChanelCount-1 GENERATE | |
|
133 | SampleLoop : FOR j IN 0 TO 15 GENERATE | |
|
134 | sample_filter_in(i, j) <= sample(i)(j); | |
|
135 | END GENERATE; | |
|
136 | ||
|
137 | sample_filter_in(i, 16) <= sample(i)(15); | |
|
138 | sample_filter_in(i, 17) <= sample(i)(15); | |
|
139 | END GENERATE; | |
|
140 | ||
|
141 | coefs_v2 <= CoefsInitValCst_v2; | |
|
142 | ||
|
143 | IIR_CEL_CTRLR_v2_1 : IIR_CEL_CTRLR_v2 | |
|
144 | GENERIC MAP ( | |
|
145 | tech => 0, | |
|
146 |
Mem_use => use_ |
|
|
147 | Sample_SZ => 18, | |
|
148 | Coef_SZ => Coef_SZ, | |
|
149 | Coef_Nb => 25, -- TODO | |
|
150 | Coef_sel_SZ => 5, -- TODO | |
|
151 | Cels_count => Cels_count, | |
|
152 | ChanelsCount => ChanelCount) | |
|
153 | PORT MAP ( | |
|
154 | rstn => rstn, | |
|
155 | clk => clk, | |
|
156 | virg_pos => 7, | |
|
157 | coefs => coefs_v2, | |
|
158 | sample_in_val => sample_val_delay, | |
|
159 | sample_in => sample_filter_in, | |
|
160 | sample_out_val => sample_filter_v2_out_val, | |
|
161 | sample_out => sample_filter_v2_out); | |
|
162 | ||
|
163 | ----------------------------------------------------------------------------- | |
|
164 | PROCESS (clk, rstn) | |
|
165 | BEGIN -- PROCESS | |
|
166 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
167 | sample_filter_v2_out_r_val <= '0'; | |
|
168 | rst_all_chanel : FOR I IN ChanelCount-1 DOWNTO 0 LOOP | |
|
169 | rst_all_bits : FOR J IN 17 DOWNTO 0 LOOP | |
|
170 | sample_filter_v2_out_r(I, J) <= '0'; | |
|
171 | END LOOP rst_all_bits; | |
|
172 | END LOOP rst_all_chanel; | |
|
173 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
|
174 | sample_filter_v2_out_r_val <= sample_filter_v2_out_val; | |
|
175 | IF sample_filter_v2_out_val = '1' THEN | |
|
176 | sample_filter_v2_out_r <= sample_filter_v2_out; | |
|
177 | END IF; | |
|
178 | END IF; | |
|
179 | END PROCESS; | |
|
180 | ||
|
181 | ----------------------------------------------------------------------------- | |
|
182 | -- F0 -- @24.576 kHz | |
|
183 | ----------------------------------------------------------------------------- | |
|
184 | Downsampling_f0 : Downsampling | |
|
185 | GENERIC MAP ( | |
|
186 | ChanelCount => ChanelCount, | |
|
187 | SampleSize => 18, | |
|
188 | DivideParam => 4) | |
|
189 | PORT MAP ( | |
|
190 | clk => clk, | |
|
191 | rstn => rstn, | |
|
192 | sample_in_val => sample_filter_v2_out_val , | |
|
193 | sample_in => sample_filter_v2_out, | |
|
194 | sample_out_val => sample_f0_val, | |
|
195 | sample_out => sample_f0); | |
|
196 | ||
|
197 | all_bit_sample_f0 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
198 | sample_f0_wdata(I) <= sample_f0(0, I); | |
|
199 | sample_f0_wdata(16*1+I) <= sample_f0(1, I); | |
|
200 | sample_f0_wdata(16*2+I) <= sample_f0(2, I); | |
|
201 | sample_f0_wdata(16*3+I) <= sample_f0(6, I); | |
|
202 | sample_f0_wdata(16*4+I) <= sample_f0(7, I); | |
|
203 | END GENERATE all_bit_sample_f0; | |
|
204 | ||
|
205 | sample_f0_wen <= NOT(sample_f0_val) & | |
|
206 | NOT(sample_f0_val) & | |
|
207 | NOT(sample_f0_val) & | |
|
208 | NOT(sample_f0_val) & | |
|
209 | NOT(sample_f0_val); | |
|
210 | ||
|
211 | ----------------------------------------------------------------------------- | |
|
212 | -- F1 -- @4096 Hz | |
|
213 | ----------------------------------------------------------------------------- | |
|
214 | Downsampling_f1 : Downsampling | |
|
215 | GENERIC MAP ( | |
|
216 | ChanelCount => ChanelCount, | |
|
217 | SampleSize => 18, | |
|
218 | DivideParam => 6) | |
|
219 | PORT MAP ( | |
|
220 | clk => clk, | |
|
221 | rstn => rstn, | |
|
222 | sample_in_val => sample_f0_val , | |
|
223 | sample_in => sample_f0, | |
|
224 | sample_out_val => sample_f1_val, | |
|
225 | sample_out => sample_f1); | |
|
226 | ||
|
227 | sample_f1_wen <= NOT(sample_f1_val) & | |
|
228 | NOT(sample_f1_val) & | |
|
229 | NOT(sample_f1_val) & | |
|
230 | NOT(sample_f1_val) & | |
|
231 | NOT(sample_f1_val); | |
|
232 | ||
|
233 | all_bit_sample_f1 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
234 | sample_f1_wdata(I) <= sample_f1(0, I); | |
|
235 | sample_f1_wdata(16*1+I) <= sample_f1(1, I); | |
|
236 | sample_f1_wdata(16*2+I) <= sample_f1(2, I); | |
|
237 | sample_f1_wdata(16*3+I) <= sample_f1(6, I); | |
|
238 | sample_f1_wdata(16*4+I) <= sample_f1(7, I); | |
|
239 | END GENERATE all_bit_sample_f1; | |
|
240 | ||
|
241 | ----------------------------------------------------------------------------- | |
|
242 | -- F2 -- @16 Hz | |
|
243 | ----------------------------------------------------------------------------- | |
|
244 | Downsampling_f2 : Downsampling | |
|
245 | GENERIC MAP ( | |
|
246 | ChanelCount => ChanelCount, | |
|
247 | SampleSize => 18, | |
|
248 | DivideParam => 256) | |
|
249 | PORT MAP ( | |
|
250 | clk => clk, | |
|
251 | rstn => rstn, | |
|
252 | sample_in_val => sample_f1_val , | |
|
253 | sample_in => sample_f1, | |
|
254 | sample_out_val => sample_f2_val, | |
|
255 | sample_out => sample_f2); | |
|
256 | ||
|
257 | sample_f2_wen <= NOT(sample_f2_val) & | |
|
258 | NOT(sample_f2_val) & | |
|
259 | NOT(sample_f2_val) & | |
|
260 | NOT(sample_f2_val) & | |
|
261 | NOT(sample_f2_val); | |
|
262 | ||
|
263 | all_bit_sample_f2 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
264 | sample_f2_wdata(I) <= sample_f2(0, I); | |
|
265 | sample_f2_wdata(16*1+I) <= sample_f2(1, I); | |
|
266 | sample_f2_wdata(16*2+I) <= sample_f2(2, I); | |
|
267 | sample_f2_wdata(16*3+I) <= sample_f2(6, I); | |
|
268 | sample_f2_wdata(16*4+I) <= sample_f2(7, I); | |
|
269 | END GENERATE all_bit_sample_f2; | |
|
270 | ||
|
271 | ----------------------------------------------------------------------------- | |
|
272 | -- F3 -- @256 Hz | |
|
273 | ----------------------------------------------------------------------------- | |
|
274 | Downsampling_f3 : Downsampling | |
|
275 | GENERIC MAP ( | |
|
276 | ChanelCount => ChanelCount, | |
|
277 | SampleSize => 18, | |
|
278 | DivideParam => 96) | |
|
279 | PORT MAP ( | |
|
280 | clk => clk, | |
|
281 | rstn => rstn, | |
|
282 | sample_in_val => sample_f0_val , | |
|
283 | sample_in => sample_f0, | |
|
284 | sample_out_val => sample_f3_val, | |
|
285 | sample_out => sample_f3); | |
|
286 | ||
|
287 | sample_f3_wen <= (NOT sample_f3_val) & | |
|
288 | (NOT sample_f3_val) & | |
|
289 | (NOT sample_f3_val) & | |
|
290 | (NOT sample_f3_val) & | |
|
291 | (NOT sample_f3_val); | |
|
292 | ||
|
293 | all_bit_sample_f3 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
294 | sample_f3_wdata(I) <= sample_f3(0, I); | |
|
295 | sample_f3_wdata(16*1+I) <= sample_f3(1, I); | |
|
296 | sample_f3_wdata(16*2+I) <= sample_f3(2, I); | |
|
297 | sample_f3_wdata(16*3+I) <= sample_f3(6, I); | |
|
298 | sample_f3_wdata(16*4+I) <= sample_f3(7, I); | |
|
299 | END GENERATE all_bit_sample_f3; | |
|
300 | ||
|
301 | ||
|
302 | ||
|
303 | END tb; | |
|
1 | LIBRARY ieee; | |
|
2 | USE ieee.std_logic_1164.ALL; | |
|
3 | LIBRARY lpp; | |
|
4 | USE lpp.lpp_ad_conv.ALL; | |
|
5 | USE lpp.iir_filter.ALL; | |
|
6 | USE lpp.FILTERcfg.ALL; | |
|
7 | USE lpp.lpp_memory.ALL; | |
|
8 | USE lpp.lpp_top_lfr_pkg.ALL; | |
|
9 | LIBRARY techmap; | |
|
10 | USE techmap.gencomp.ALL; | |
|
11 | ||
|
12 | ENTITY lpp_top_acq IS | |
|
13 | GENERIC( | |
|
14 | tech : INTEGER := 0 | |
|
15 | ); | |
|
16 | PORT ( | |
|
17 | -- ADS7886 | |
|
18 | cnv_run : IN STD_LOGIC; | |
|
19 | cnv : OUT STD_LOGIC; | |
|
20 | sck : OUT STD_LOGIC; | |
|
21 | sdo : IN STD_LOGIC_VECTOR(7 DOWNTO 0); | |
|
22 | -- | |
|
23 | cnv_clk : IN STD_LOGIC; -- 49 MHz | |
|
24 | cnv_rstn : IN STD_LOGIC; | |
|
25 | -- | |
|
26 | clk : IN STD_LOGIC; -- 25 MHz | |
|
27 | rstn : IN STD_LOGIC; | |
|
28 | -- | |
|
29 | sample_f0_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
30 | sample_f0_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
31 | -- | |
|
32 | sample_f1_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
33 | sample_f1_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
34 | -- | |
|
35 | sample_f2_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
36 | sample_f2_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0); | |
|
37 | -- | |
|
38 | sample_f3_wen : OUT STD_LOGIC_VECTOR(4 DOWNTO 0); | |
|
39 | sample_f3_wdata : OUT STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0) | |
|
40 | ); | |
|
41 | END lpp_top_acq; | |
|
42 | ||
|
43 | ARCHITECTURE tb OF lpp_top_acq IS | |
|
44 | ||
|
45 | COMPONENT Downsampling | |
|
46 | GENERIC ( | |
|
47 | ChanelCount : INTEGER; | |
|
48 | SampleSize : INTEGER; | |
|
49 | DivideParam : INTEGER); | |
|
50 | PORT ( | |
|
51 | clk : IN STD_LOGIC; | |
|
52 | rstn : IN STD_LOGIC; | |
|
53 | sample_in_val : IN STD_LOGIC; | |
|
54 | sample_in : IN samplT(ChanelCount-1 DOWNTO 0, SampleSize-1 DOWNTO 0); | |
|
55 | sample_out_val : OUT STD_LOGIC; | |
|
56 | sample_out : OUT samplT(ChanelCount-1 DOWNTO 0, SampleSize-1 DOWNTO 0)); | |
|
57 | END COMPONENT; | |
|
58 | ||
|
59 | ----------------------------------------------------------------------------- | |
|
60 | CONSTANT ChanelCount : INTEGER := 8; | |
|
61 | CONSTANT ncycle_cnv_high : INTEGER := 79; | |
|
62 | CONSTANT ncycle_cnv : INTEGER := 500; | |
|
63 | ||
|
64 | ----------------------------------------------------------------------------- | |
|
65 | SIGNAL sample : Samples(ChanelCount-1 DOWNTO 0); | |
|
66 | SIGNAL sample_val : STD_LOGIC; | |
|
67 | SIGNAL sample_val_delay : STD_LOGIC; | |
|
68 | ----------------------------------------------------------------------------- | |
|
69 | CONSTANT Coef_SZ : INTEGER := 9; | |
|
70 | CONSTANT CoefCntPerCel : INTEGER := 6; | |
|
71 | CONSTANT CoefPerCel : INTEGER := 5; | |
|
72 | CONSTANT Cels_count : INTEGER := 5; | |
|
73 | ||
|
74 | SIGNAL coefs_v2 : STD_LOGIC_VECTOR((Coef_SZ*CoefPerCel*Cels_count)-1 DOWNTO 0); | |
|
75 | SIGNAL sample_filter_in : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
76 | -- | |
|
77 | SIGNAL sample_filter_v2_out_val : STD_LOGIC; | |
|
78 | SIGNAL sample_filter_v2_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
79 | -- | |
|
80 | SIGNAL sample_filter_v2_out_r_val : STD_LOGIC; | |
|
81 | SIGNAL sample_filter_v2_out_r : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
82 | ----------------------------------------------------------------------------- | |
|
83 | SIGNAL downsampling_cnt : STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
84 | SIGNAL sample_downsampling_out_val : STD_LOGIC; | |
|
85 | SIGNAL sample_downsampling_out : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
86 | -- | |
|
87 | SIGNAL sample_f0_val : STD_LOGIC; | |
|
88 | SIGNAL sample_f0 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
89 | ----------------------------------------------------------------------------- | |
|
90 | SIGNAL sample_f1_val : STD_LOGIC; | |
|
91 | SIGNAL sample_f1 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
92 | -- | |
|
93 | SIGNAL sample_f2_val : STD_LOGIC; | |
|
94 | SIGNAL sample_f2 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
95 | -- | |
|
96 | SIGNAL sample_f3_val : STD_LOGIC; | |
|
97 | SIGNAL sample_f3 : samplT(ChanelCount-1 DOWNTO 0, 17 DOWNTO 0); | |
|
98 | ||
|
99 | BEGIN | |
|
100 | ||
|
101 | -- component instantiation | |
|
102 | ----------------------------------------------------------------------------- | |
|
103 | DIGITAL_acquisition : AD7688_drvr | |
|
104 | GENERIC MAP ( | |
|
105 | ChanelCount => ChanelCount, | |
|
106 | ncycle_cnv_high => ncycle_cnv_high, | |
|
107 | ncycle_cnv => ncycle_cnv) | |
|
108 | PORT MAP ( | |
|
109 | cnv_clk => cnv_clk, -- | |
|
110 | cnv_rstn => cnv_rstn, -- | |
|
111 | cnv_run => cnv_run, -- | |
|
112 | cnv => cnv, -- | |
|
113 | clk => clk, -- | |
|
114 | rstn => rstn, -- | |
|
115 | sck => sck, -- | |
|
116 | sdo => sdo(ChanelCount-1 DOWNTO 0), -- | |
|
117 | sample => sample, | |
|
118 | sample_val => sample_val); | |
|
119 | ||
|
120 | ----------------------------------------------------------------------------- | |
|
121 | ||
|
122 | PROCESS (clk, rstn) | |
|
123 | BEGIN -- PROCESS | |
|
124 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
125 | sample_val_delay <= '0'; | |
|
126 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
|
127 | sample_val_delay <= sample_val; | |
|
128 | END IF; | |
|
129 | END PROCESS; | |
|
130 | ||
|
131 | ----------------------------------------------------------------------------- | |
|
132 | ChanelLoop : FOR i IN 0 TO ChanelCount-1 GENERATE | |
|
133 | SampleLoop : FOR j IN 0 TO 15 GENERATE | |
|
134 | sample_filter_in(i, j) <= sample(i)(j); | |
|
135 | END GENERATE; | |
|
136 | ||
|
137 | sample_filter_in(i, 16) <= sample(i)(15); | |
|
138 | sample_filter_in(i, 17) <= sample(i)(15); | |
|
139 | END GENERATE; | |
|
140 | ||
|
141 | coefs_v2 <= CoefsInitValCst_v2; | |
|
142 | ||
|
143 | IIR_CEL_CTRLR_v2_1 : IIR_CEL_CTRLR_v2 | |
|
144 | GENERIC MAP ( | |
|
145 | tech => 0, | |
|
146 | Mem_use => use_CEL, | |
|
147 | Sample_SZ => 18, | |
|
148 | Coef_SZ => Coef_SZ, | |
|
149 | Coef_Nb => 25, -- TODO | |
|
150 | Coef_sel_SZ => 5, -- TODO | |
|
151 | Cels_count => Cels_count, | |
|
152 | ChanelsCount => ChanelCount) | |
|
153 | PORT MAP ( | |
|
154 | rstn => rstn, | |
|
155 | clk => clk, | |
|
156 | virg_pos => 7, | |
|
157 | coefs => coefs_v2, | |
|
158 | sample_in_val => sample_val_delay, | |
|
159 | sample_in => sample_filter_in, | |
|
160 | sample_out_val => sample_filter_v2_out_val, | |
|
161 | sample_out => sample_filter_v2_out); | |
|
162 | ||
|
163 | ----------------------------------------------------------------------------- | |
|
164 | PROCESS (clk, rstn) | |
|
165 | BEGIN -- PROCESS | |
|
166 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
167 | sample_filter_v2_out_r_val <= '0'; | |
|
168 | rst_all_chanel : FOR I IN ChanelCount-1 DOWNTO 0 LOOP | |
|
169 | rst_all_bits : FOR J IN 17 DOWNTO 0 LOOP | |
|
170 | sample_filter_v2_out_r(I, J) <= '0'; | |
|
171 | END LOOP rst_all_bits; | |
|
172 | END LOOP rst_all_chanel; | |
|
173 | ELSIF clk'EVENT AND clk = '1' THEN -- rising clock edge | |
|
174 | sample_filter_v2_out_r_val <= sample_filter_v2_out_val; | |
|
175 | IF sample_filter_v2_out_val = '1' THEN | |
|
176 | sample_filter_v2_out_r <= sample_filter_v2_out; | |
|
177 | END IF; | |
|
178 | END IF; | |
|
179 | END PROCESS; | |
|
180 | ||
|
181 | ----------------------------------------------------------------------------- | |
|
182 | -- F0 -- @24.576 kHz | |
|
183 | ----------------------------------------------------------------------------- | |
|
184 | Downsampling_f0 : Downsampling | |
|
185 | GENERIC MAP ( | |
|
186 | ChanelCount => ChanelCount, | |
|
187 | SampleSize => 18, | |
|
188 | DivideParam => 4) | |
|
189 | PORT MAP ( | |
|
190 | clk => clk, | |
|
191 | rstn => rstn, | |
|
192 | sample_in_val => sample_filter_v2_out_val , | |
|
193 | sample_in => sample_filter_v2_out, | |
|
194 | sample_out_val => sample_f0_val, | |
|
195 | sample_out => sample_f0); | |
|
196 | ||
|
197 | all_bit_sample_f0 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
198 | sample_f0_wdata(I) <= sample_f0(0, I); | |
|
199 | sample_f0_wdata(16*1+I) <= sample_f0(1, I); | |
|
200 | sample_f0_wdata(16*2+I) <= sample_f0(2, I); | |
|
201 | sample_f0_wdata(16*3+I) <= sample_f0(6, I); | |
|
202 | sample_f0_wdata(16*4+I) <= sample_f0(7, I); | |
|
203 | END GENERATE all_bit_sample_f0; | |
|
204 | ||
|
205 | sample_f0_wen <= NOT(sample_f0_val) & | |
|
206 | NOT(sample_f0_val) & | |
|
207 | NOT(sample_f0_val) & | |
|
208 | NOT(sample_f0_val) & | |
|
209 | NOT(sample_f0_val); | |
|
210 | ||
|
211 | ----------------------------------------------------------------------------- | |
|
212 | -- F1 -- @4096 Hz | |
|
213 | ----------------------------------------------------------------------------- | |
|
214 | Downsampling_f1 : Downsampling | |
|
215 | GENERIC MAP ( | |
|
216 | ChanelCount => ChanelCount, | |
|
217 | SampleSize => 18, | |
|
218 | DivideParam => 6) | |
|
219 | PORT MAP ( | |
|
220 | clk => clk, | |
|
221 | rstn => rstn, | |
|
222 | sample_in_val => sample_f0_val , | |
|
223 | sample_in => sample_f0, | |
|
224 | sample_out_val => sample_f1_val, | |
|
225 | sample_out => sample_f1); | |
|
226 | ||
|
227 | sample_f1_wen <= NOT(sample_f1_val) & | |
|
228 | NOT(sample_f1_val) & | |
|
229 | NOT(sample_f1_val) & | |
|
230 | NOT(sample_f1_val) & | |
|
231 | NOT(sample_f1_val); | |
|
232 | ||
|
233 | all_bit_sample_f1 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
234 | sample_f1_wdata(I) <= sample_f1(0, I); | |
|
235 | sample_f1_wdata(16*1+I) <= sample_f1(1, I); | |
|
236 | sample_f1_wdata(16*2+I) <= sample_f1(2, I); | |
|
237 | sample_f1_wdata(16*3+I) <= sample_f1(6, I); | |
|
238 | sample_f1_wdata(16*4+I) <= sample_f1(7, I); | |
|
239 | END GENERATE all_bit_sample_f1; | |
|
240 | ||
|
241 | ----------------------------------------------------------------------------- | |
|
242 | -- F2 -- @16 Hz | |
|
243 | ----------------------------------------------------------------------------- | |
|
244 | Downsampling_f2 : Downsampling | |
|
245 | GENERIC MAP ( | |
|
246 | ChanelCount => ChanelCount, | |
|
247 | SampleSize => 18, | |
|
248 | DivideParam => 256) | |
|
249 | PORT MAP ( | |
|
250 | clk => clk, | |
|
251 | rstn => rstn, | |
|
252 | sample_in_val => sample_f1_val , | |
|
253 | sample_in => sample_f1, | |
|
254 | sample_out_val => sample_f2_val, | |
|
255 | sample_out => sample_f2); | |
|
256 | ||
|
257 | sample_f2_wen <= NOT(sample_f2_val) & | |
|
258 | NOT(sample_f2_val) & | |
|
259 | NOT(sample_f2_val) & | |
|
260 | NOT(sample_f2_val) & | |
|
261 | NOT(sample_f2_val); | |
|
262 | ||
|
263 | all_bit_sample_f2 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
264 | sample_f2_wdata(I) <= sample_f2(0, I); | |
|
265 | sample_f2_wdata(16*1+I) <= sample_f2(1, I); | |
|
266 | sample_f2_wdata(16*2+I) <= sample_f2(2, I); | |
|
267 | sample_f2_wdata(16*3+I) <= sample_f2(6, I); | |
|
268 | sample_f2_wdata(16*4+I) <= sample_f2(7, I); | |
|
269 | END GENERATE all_bit_sample_f2; | |
|
270 | ||
|
271 | ----------------------------------------------------------------------------- | |
|
272 | -- F3 -- @256 Hz | |
|
273 | ----------------------------------------------------------------------------- | |
|
274 | Downsampling_f3 : Downsampling | |
|
275 | GENERIC MAP ( | |
|
276 | ChanelCount => ChanelCount, | |
|
277 | SampleSize => 18, | |
|
278 | DivideParam => 96) | |
|
279 | PORT MAP ( | |
|
280 | clk => clk, | |
|
281 | rstn => rstn, | |
|
282 | sample_in_val => sample_f0_val , | |
|
283 | sample_in => sample_f0, | |
|
284 | sample_out_val => sample_f3_val, | |
|
285 | sample_out => sample_f3); | |
|
286 | ||
|
287 | sample_f3_wen <= (NOT sample_f3_val) & | |
|
288 | (NOT sample_f3_val) & | |
|
289 | (NOT sample_f3_val) & | |
|
290 | (NOT sample_f3_val) & | |
|
291 | (NOT sample_f3_val); | |
|
292 | ||
|
293 | all_bit_sample_f3 : FOR I IN 15 DOWNTO 0 GENERATE | |
|
294 | sample_f3_wdata(I) <= sample_f3(0, I); | |
|
295 | sample_f3_wdata(16*1+I) <= sample_f3(1, I); | |
|
296 | sample_f3_wdata(16*2+I) <= sample_f3(2, I); | |
|
297 | sample_f3_wdata(16*3+I) <= sample_f3(6, I); | |
|
298 | sample_f3_wdata(16*4+I) <= sample_f3(7, I); | |
|
299 | END GENERATE all_bit_sample_f3; | |
|
300 | ||
|
301 | ||
|
302 | ||
|
303 | END tb; |
General Comments 0
You need to be logged in to leave comments.
Login now