##// END OF EJS Templates
Simulation without RAM_CEL
pellion -
r582:3fed66e2161d simu_with_Leon3
parent child
Show More
@@ -85,6 +85,8 ARCHITECTURE Behavioral OF lpp_dma_SEND1
85 85
86 86 SIGNAL bus_request : STD_LOGIC;
87 87 SIGNAL bus_lock : STD_LOGIC;
88
89 SIGNAL data_reg : STD_LOGIC_VECTOR(31 DOWNTO 0);
88 90
89 91 BEGIN
90 92
@@ -111,8 +113,8 BEGIN
111 113
112 114 -----------------------------------------------------------------------------
113 115 AHB_Master_Out.HADDR <= address(31 DOWNTO 6) & address_counter_reg & "00";
114 AHB_Master_Out.HWDATA <= ahbdrivedata(data);
115
116 AHB_Master_Out.HWDATA <= ahbdrivedata(data) WHEN AHB_Master_In.HREADY = '1' ELSE ahbdrivedata(data_reg);
117
116 118 -----------------------------------------------------------------------------
117 119 --ren <= NOT ((AHB_Master_In.HGRANT(hindex) OR LAST_READ ) AND AHB_Master_In.HREADY );
118 120 --ren <= NOT beat;
@@ -122,12 +124,21 BEGIN
122 124 IF rstn = '0' THEN -- asynchronous reset (active low)
123 125 state <= IDLE;
124 126 done <= '0';
127 ren <= '1';
125 128 address_counter_reg <= (OTHERS => '0');
126 129 AHB_Master_Out.HTRANS <= HTRANS_IDLE;
127 130 AHB_Master_Out.HBUSREQ <= '0';
128 131 AHB_Master_Out.HLOCK <= '0';
132
133 data_reg <= (OTHERS => '0');
129 134 ELSIF clk'event AND clk = '1' THEN -- rising clock edge
135
136 IF AHB_Master_In.HREADY = '1' AND AHB_Master_In.HGRANT(hindex) = '1' THEN
137 data_reg <= data;
138 END IF;
139
130 140 done <= '0';
141 ren <= '1';
131 142 CASE state IS
132 143 WHEN IDLE =>
133 144 AHB_Master_Out.HBUSREQ <= '0';
@@ -159,6 +170,7 BEGIN
159 170 IF AHB_Master_In.HREADY = '1' AND AHB_Master_In.HGRANT(hindex) = '1' THEN
160 171 AHB_Master_Out.HTRANS <= HTRANS_SEQ;
161 172 state <= s_CTRL_DATA;
173 ren <= '0';
162 174 END IF;
163 175
164 176 WHEN s_CTRL_DATA =>
@@ -176,6 +188,11 BEGIN
176 188 state <= s_DATA;
177 189 END IF;
178 190
191 IF AHB_Master_In.HREADY = '1' AND AHB_Master_In.HGRANT(hindex) = '1' AND address_counter_reg /= "1111" THEN
192 ren <= '0';
193 END IF;
194
195
179 196 WHEN s_DATA =>
180 197 AHB_Master_Out.HBUSREQ <= '0';
181 198 --AHB_Master_Out.HLOCK <= '0';
@@ -194,7 +211,9 BEGIN
194 211 ctrl_window <= '1' WHEN state = s_CTRL OR state = s_CTRL_DATA ELSE '0';
195 212 data_window <= '1' WHEN state = s_CTRL_DATA OR state = s_DATA ELSE '0';
196 213 -----------------------------------------------------------------------------
197 ren <= NOT(AHB_Master_In.HREADY) WHEN state = s_CTRL_DATA ELSE '1';
214
215
216 --ren <= NOT(AHB_Master_In.HREADY) WHEN state = s_CTRL_DATA ELSE '1';
198 217
199 218 -----------------------------------------------------------------------------
200 219 --PROCESS (clk, rstn)
@@ -422,7 +422,7 BEGIN
422 422 --Aeroflex memory generics:
423 423 mbpedac => BYPASS_EDAC_MEMCTRLR,
424 424 mprog => 1, -- program memory by default values after reset
425 mpsrate => 15, -- default scrub rate period
425 mpsrate => 5, -- default scrub rate period
426 426 mpb2s => 14, -- default busy to scrub delay
427 427 mpapb => 1, -- instantiate apb register
428 428 mchipcnt => 2,
@@ -83,6 +83,9 ARCHITECTURE beh OF lpp_lfr IS
83 83 SIGNAL sample_f2_val : STD_LOGIC;
84 84 SIGNAL sample_f3_val : STD_LOGIC;
85 85 --
86 SIGNAL sample_f_val : STD_LOGIC_VECTOR(3 DOWNTO 0);
87 SIGNAL sample_f_data : STD_LOGIC_VECTOR((6*16)*4-1 DOWNTO 0);
88 --
86 89 SIGNAL sample_f0_data : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0);
87 90 SIGNAL sample_f1_data : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0);
88 91 SIGNAL sample_f2_data : STD_LOGIC_VECTOR((6*16)-1 DOWNTO 0);
@@ -262,20 +265,66 BEGIN
262 265 data_shaping_R0 => data_shaping_R0,
263 266 data_shaping_R1 => data_shaping_R1,
264 267 data_shaping_R2 => data_shaping_R2,
265 sample_f0_val => sample_f0_val,
266 sample_f1_val => sample_f1_val,
267 sample_f2_val => sample_f2_val,
268 sample_f3_val => sample_f3_val,
269 sample_f0_wdata => sample_f0_data,
270 sample_f1_wdata => sample_f1_data,
271 sample_f2_wdata => sample_f2_data,
272 sample_f3_wdata => sample_f3_data,
268 sample_f0_val => sample_f_val(0),
269 sample_f1_val => sample_f_val(1),
270 sample_f2_val => sample_f_val(2),
271 sample_f3_val => sample_f_val(3),
272 sample_f0_wdata => OPEN,
273 sample_f1_wdata => OPEN,
274 sample_f2_wdata => OPEN,
275 sample_f3_wdata => OPEN,
273 276 sample_f0_time => sample_f0_time,
274 277 sample_f1_time => sample_f1_time,
275 278 sample_f2_time => sample_f2_time,
276 279 sample_f3_time => sample_f3_time
277 280 );
281 -----------------------------------------------------------------------------
282 ALL_lane: FOR J IN 0 TO 3 GENERATE
283 ALL_channel: FOR I IN 0 TO 5 GENERATE
284 sample_f_data(15 + I*16 + J*6*16 DOWNTO 14 + I*16 + J*6*16) <= STD_LOGIC_VECTOR(to_unsigned(J,2));
285 sample_f_data(13 + I*16 + J*6*16 DOWNTO 11 + I*16 + J*6*16) <= STD_LOGIC_VECTOR(to_unsigned(I,3));
278 286
287 PROCESS (clk, rstn)
288 BEGIN -- PROCESS
289 IF rstn = '0' THEN -- asynchronous reset (active low)
290 sample_f_data(10 + I*16 + J*6*16 DOWNTO 0 + I*16 + J*6*16 ) <= STD_LOGIC_VECTOR(to_unsigned(2**11/6*I,11));
291 ELSIF clk'event AND clk = '1' THEN -- rising clock edge
292 IF sample_f_val(J) = '1' THEN
293 sample_f_data(10 + I*16 + J*6*16 DOWNTO 0 + I*16 + J*6*16) <= STD_LOGIC_VECTOR(to_unsigned(
294 to_integer(UNSIGNED(sample_f_data(10 + I*16 + J*6*16 DOWNTO 0 + I*16 + J*6*16))) + 1,
295 11));
296 END IF;
297 END IF;
298 END PROCESS;
299
300 END GENERATE ALL_channel;
301 END GENERATE ALL_lane;
302
303 PROCESS (clk, rstn)
304 BEGIN -- PROCESS
305 IF rstn = '0' THEN -- asynchronous reset (active low)
306 sample_f0_val <= '0';
307 sample_f1_val <= '0';
308 sample_f2_val <= '0';
309 sample_f3_val <= '0';
310 ELSIF clk'event AND clk = '1' THEN -- rising clock edge
311 sample_f0_val <= sample_f_val(0);
312 sample_f1_val <= sample_f_val(1);
313 sample_f2_val <= sample_f_val(2);
314 sample_f3_val <= sample_f_val(3);
315 END IF;
316 END PROCESS;
317
318
319 sample_f0_data <= sample_f_data(1*6*16-1 DOWNTO 0*6*16);
320 sample_f1_data <= sample_f_data(2*6*16-1 DOWNTO 1*6*16);
321 sample_f2_data <= sample_f_data(3*6*16-1 DOWNTO 2*6*16);
322 sample_f3_data <= sample_f_data(4*6*16-1 DOWNTO 3*6*16);
323
324 --sample_f0_data <= X"0020" & X"0010" & X"0008" & X"0004" & X"0002" & X"0001";
325 --sample_f1_data <= X"1020" & X"1010" & X"1008" & X"1004" & X"1002" & X"1001";
326 --sample_f2_data <= X"2020" & X"2010" & X"2008" & X"2004" & X"2002" & X"2001";
327 --sample_f3_data <= X"4020" & X"4010" & X"4008" & X"4004" & X"4002" & X"4001";
279 328 -----------------------------------------------------------------------------
280 329 lpp_lfr_apbreg_1 : lpp_lfr_apbreg
281 330 GENERIC MAP (
@@ -539,4 +588,4 BEGIN
539 588 buffer_full_err => dma_buffer_full_err, --buffer_full_err,
540 589 grant_error => dma_grant_error); --grant_error);
541 590
542 END beh; No newline at end of file
591 END beh;
General Comments 0
You need to be logged in to leave comments. Login now