@@ -0,0 +1,73 | |||
|
1 | LIBRARY IEEE; | |
|
2 | USE IEEE.STD_LOGIC_1164.ALL; | |
|
3 | USE IEEE.NUMERIC_STD.ALL; | |
|
4 | ||
|
5 | ENTITY fine_time_max_value_gen IS | |
|
6 | ||
|
7 | PORT ( | |
|
8 | clk : IN STD_LOGIC; | |
|
9 | rstn : IN STD_LOGIC; | |
|
10 | tick : IN STD_LOGIC; | |
|
11 | fine_time_add : IN STD_LOGIC; | |
|
12 | fine_time_max_value : OUT STD_LOGIC_VECTOR(8 DOWNTO 0) | |
|
13 | ); | |
|
14 | ||
|
15 | END fine_time_max_value_gen; | |
|
16 | ||
|
17 | ARCHITECTURE beh OF fine_time_max_value_gen IS | |
|
18 | ||
|
19 | SIGNAL count_even : STD_LOGIC; | |
|
20 | SIGNAL count_first : STD_LOGIC; | |
|
21 | SIGNAL count_modulo_33 : STD_LOGIC; | |
|
22 | ||
|
23 | ||
|
24 | SIGNAL count_33 : INTEGER range 0 TO 32; | |
|
25 | ||
|
26 | BEGIN -- beh | |
|
27 | ||
|
28 | fine_time_max_value <= STD_LOGIC_VECTOR(to_unsigned(381,9)) WHEN count_first = '1' ELSE | |
|
29 | STD_LOGIC_VECTOR(to_unsigned(380,9)) WHEN count_even = count_modulo_33 ELSE | |
|
30 | STD_LOGIC_VECTOR(to_unsigned(381,9)) WHEN count_even = '1' ELSE | |
|
31 | STD_LOGIC_VECTOR(to_unsigned(379,9)) WHEN count_modulo_33 = '1' ELSE | |
|
32 | STD_LOGIC_VECTOR(to_unsigned(380,9)); | |
|
33 | ||
|
34 | ||
|
35 | ||
|
36 | PROCESS (clk, rstn) | |
|
37 | BEGIN -- PROCESS | |
|
38 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
39 | count_first <= '1'; | |
|
40 | count_even <= '0'; | |
|
41 | count_modulo_33 <= '0'; | |
|
42 | count_33 <= 0; | |
|
43 | ELSIF clk'event AND clk = '1' THEN -- rising clock edge | |
|
44 | IF tick = '1' THEN | |
|
45 | count_even <= '0'; | |
|
46 | count_first <= '1'; | |
|
47 | count_modulo_33 <= '0'; | |
|
48 | count_33 <= 0; | |
|
49 | ELSE | |
|
50 | IF fine_time_add = '1' THEN | |
|
51 | count_first <= '0'; | |
|
52 | IF count_even = '1' THEN | |
|
53 | count_even <= '0'; | |
|
54 | ELSE | |
|
55 | count_even <= '1'; | |
|
56 | END IF; | |
|
57 | IF count_33 = 31 THEN | |
|
58 | count_modulo_33 <= '1'; | |
|
59 | ELSE | |
|
60 | count_modulo_33 <= '0'; | |
|
61 | END IF; | |
|
62 | ||
|
63 | IF count_33 = 32 THEN | |
|
64 | count_33 <= 0; | |
|
65 | ELSE | |
|
66 | count_33 <= count_33 + 1; | |
|
67 | END IF; | |
|
68 | END IF; | |
|
69 | END IF; | |
|
70 | END IF; | |
|
71 | END PROCESS; | |
|
72 | ||
|
73 | END beh; |
@@ -35,4 +35,7 fftDp.vhd | |||
|
35 | 35 | fft_components.vhd |
|
36 | 36 | CoreFFT.vhd |
|
37 | 37 | actram.vhd |
|
38 | actar.vhd No newline at end of file | |
|
38 | actar.vhd | |
|
39 | *.bak | |
|
40 | *.pdc.ce | |
|
41 | *.zip |
@@ -80,8 +80,8 set_io TAG2 -pinname K12 -fixed yes -D | |||
|
80 | 80 | set_io TAG3 -pinname K13 -fixed yes -DIRECTION Inout |
|
81 | 81 | set_io TAG4 -pinname L16 -fixed yes -DIRECTION Inout |
|
82 | 82 | #set_io TAG5 -pinname L15 -fixed yes -DIRECTION Inout |
|
83 |
|
|
|
84 |
|
|
|
83 | set_io TAG6 -pinname M16 -fixed yes -DIRECTION Inout | |
|
84 | set_io TAG7 -pinname J14 -fixed yes -DIRECTION Inout | |
|
85 | 85 | set_io TAG8 -pinname K15 -fixed yes -DIRECTION Inout |
|
86 | 86 | #set_io TAG9 -pinname J17 -fixed yes -DIRECTION Inout |
|
87 | 87 |
@@ -3,11 +3,12 | |||
|
3 | 3 | # Clocks |
|
4 | 4 | |
|
5 | 5 | create_clock -period 20.000000 -waveform {0.000000 10.000000} clk50MHz |
|
6 |
create_clock -period |
|
|
6 | create_clock -period 20.344999 -waveform {0.000000 10.172500} clk49_152MHz | |
|
7 | ||
|
7 | 8 | |
|
9 | ||
|
10 | #create_clock -period 40.000000 -waveform {0.000000 20.000000} clk_25 | |
|
8 | 11 | #create_generated_clock -name{clk_domain_25} -divide_by 2 -source{clk_25_int:CLK}{clk_25_int:Q} |
|
9 | ||
|
10 | #create_clock -period 20.344999 -waveform {0.000000 10.172500} clk49_152MHz | |
|
11 | 12 | #create_clock -period 40.690000 -waveform {0.000000 20.345100} clk_24:Q |
|
12 | 13 | #create_clock -name SPW_CLOCK -period 100.000000 -waveform {0.000000 50.000000} {spw1_din spw1_sin spw2_din spw2_sin} |
|
13 | 14 |
@@ -49,6 +49,8 library proasic3l; | |||
|
49 | 49 | use proasic3l.all; |
|
50 | 50 | |
|
51 | 51 | ENTITY LFR_EQM IS |
|
52 | GENERIC ( | |
|
53 | Mem_use : INTEGER := use_RAM); | |
|
52 | 54 | |
|
53 | 55 | PORT ( |
|
54 | 56 | clk50MHz : IN STD_ULOGIC; |
@@ -216,7 +218,8 BEGIN -- beh | |||
|
216 | 218 | NB_AHB_SLAVE => NB_AHB_SLAVE, |
|
217 | 219 | NB_APB_SLAVE => NB_APB_SLAVE, |
|
218 | 220 | ADDRESS_SIZE => 19, |
|
219 |
USES_IAP_MEMCTRLR => 1 |
|
|
221 | USES_IAP_MEMCTRLR => 1, | |
|
222 | BYPASS_EDAC_MEMCTRLR => '1') | |
|
220 | 223 | PORT MAP ( |
|
221 | 224 | clk => clk_25, |
|
222 | 225 | reset => rstn_25, |
@@ -259,13 +262,13 BEGIN -- beh | |||
|
259 | 262 | pindex => 6, |
|
260 | 263 | paddr => 6, |
|
261 | 264 | pmask => 16#fff#, |
|
262 | FIRST_DIVISION => 374, -- ((49.152/2) /2^16) - 1 = 375 - 1 = 374 | |
|
265 | --FIRST_DIVISION => 374, -- ((49.152/2) /2^16) - 1 = 375 - 1 = 374 | |
|
263 | 266 | NB_SECOND_DESYNC => 60) -- 60 secondes of desynchronization before CoarseTime's MSB is Set |
|
264 | 267 | PORT MAP ( |
|
265 | 268 | clk25MHz => clk_25, |
|
266 | 269 | resetn_25MHz => rstn_25, -- TODO |
|
267 | clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
268 | resetn_24_576MHz => rstn_24, -- TODO | |
|
270 | --clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
271 | --resetn_24_576MHz => rstn_24, -- TODO | |
|
269 | 272 | |
|
270 | 273 | grspw_tick => swno.tickout, |
|
271 | 274 | apbi => apbi_ext, |
@@ -388,7 +391,7 BEGIN -- beh | |||
|
388 | 391 | |
|
389 | 392 | lpp_lfr_1 : lpp_lfr |
|
390 | 393 | GENERIC MAP ( |
|
391 |
Mem_use => use |
|
|
394 | Mem_use => Mem_use, | |
|
392 | 395 | nb_data_by_buffer_size => 32, |
|
393 | 396 | --nb_word_by_buffer_size => 30, |
|
394 | 397 | nb_snapshot_param_size => 32, |
@@ -23,7 +23,7 SDC=$(VHDLIB)/boards/$(BOARD)/LFR_EQM_pl | |||
|
23 | 23 | BITGEN=$(VHDLIB)/boards/$(BOARD)/default.ut |
|
24 | 24 | CLEAN=soft-clean |
|
25 | 25 | |
|
26 |
TECHLIBS = proasic3 |
|
|
26 | TECHLIBS = proasic3l | |
|
27 | 27 | |
|
28 | 28 | LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ |
|
29 | 29 | tmtc openchip hynix ihp gleichmann micron usbhc |
@@ -113,6 +113,16 END MINI_LFR_top; | |||
|
113 | 113 | |
|
114 | 114 | |
|
115 | 115 | ARCHITECTURE beh OF MINI_LFR_top IS |
|
116 | ||
|
117 | --========================================================================== | |
|
118 | -- USE_IAP_MEMCTRL allow to use the srctrle-0ws on MINILFR board | |
|
119 | -- when enabled, chip enable polarity should be reversed and bank size also | |
|
120 | -- MINILFR -> 1 bank of 4MBytes -> SRBANKSZ=9 | |
|
121 | -- LFR EQM & FM -> 2 banks of 2MBytes -> SRBANKSZ=8 | |
|
122 | --========================================================================== | |
|
123 | CONSTANT USE_IAP_MEMCTRL : integer := 1; | |
|
124 | --========================================================================== | |
|
125 | ||
|
116 | 126 | SIGNAL clk_50_s : STD_LOGIC := '0'; |
|
117 | 127 | SIGNAL clk_25 : STD_LOGIC := '0'; |
|
118 | 128 | SIGNAL clk_24 : STD_LOGIC := '0'; |
@@ -357,7 +367,8 BEGIN -- beh | |||
|
357 | 367 | NB_AHB_SLAVE => NB_AHB_SLAVE, |
|
358 | 368 | NB_APB_SLAVE => NB_APB_SLAVE, |
|
359 | 369 | ADDRESS_SIZE => 20, |
|
360 |
USES_IAP_MEMCTRLR => |
|
|
370 | USES_IAP_MEMCTRLR => USE_IAP_MEMCTRL, | |
|
371 | SRBANKSZ => 9) | |
|
361 | 372 | PORT MAP ( |
|
362 | 373 | clk => clk_25, |
|
363 | 374 | reset => rstn_25, |
@@ -375,7 +386,7 BEGIN -- beh | |||
|
375 | 386 | nSRAM_WE => SRAM_nWE, |
|
376 | 387 | nSRAM_CE => SRAM_CE_s, |
|
377 | 388 | nSRAM_OE => SRAM_nOE, |
|
378 |
nSRAM_READY => ' |
|
|
389 | nSRAM_READY => '1', | |
|
379 | 390 | SRAM_MBE => OPEN, |
|
380 | 391 | apbi_ext => apbi_ext, |
|
381 | 392 | apbo_ext => apbo_ext, |
@@ -384,7 +395,13 BEGIN -- beh | |||
|
384 | 395 | ahbi_m_ext => ahbi_m_ext, |
|
385 | 396 | ahbo_m_ext => ahbo_m_ext); |
|
386 | 397 | |
|
387 | SRAM_CE <= SRAM_CE_s(0); | |
|
398 | IAP:if USE_IAP_MEMCTRL = 1 GENERATE | |
|
399 | SRAM_CE <= not SRAM_CE_s(0); | |
|
400 | END GENERATE; | |
|
401 | ||
|
402 | NOIAP:if USE_IAP_MEMCTRL = 0 GENERATE | |
|
403 | SRAM_CE <= SRAM_CE_s(0); | |
|
404 | END GENERATE; | |
|
388 | 405 | ------------------------------------------------------------------------------- |
|
389 | 406 | -- APB_LFR_MANAGEMENT --------------------------------------------------------- |
|
390 | 407 | ------------------------------------------------------------------------------- |
@@ -41,15 +41,15 ENTITY apb_lfr_management IS | |||
|
41 | 41 | pindex : INTEGER := 0; --! APB slave index |
|
42 | 42 | paddr : INTEGER := 0; --! ADDR field of the APB BAR |
|
43 | 43 | pmask : INTEGER := 16#fff#; --! MASK field of the APB BAR |
|
44 | FIRST_DIVISION : INTEGER := 374; | |
|
44 | -- FIRST_DIVISION : INTEGER := 374; | |
|
45 | 45 | NB_SECOND_DESYNC : INTEGER := 60 |
|
46 | 46 | ); |
|
47 | 47 | |
|
48 | 48 | PORT ( |
|
49 | 49 | clk25MHz : IN STD_LOGIC; --! Clock |
|
50 | 50 | resetn_25MHz : IN STD_LOGIC; --! Reset |
|
51 | clk24_576MHz : IN STD_LOGIC; --! secondary clock | |
|
52 | resetn_24_576MHz : IN STD_LOGIC; --! Reset | |
|
51 | -- clk24_576MHz : IN STD_LOGIC; --! secondary clock | |
|
52 | -- resetn_24_576MHz : IN STD_LOGIC; --! Reset | |
|
53 | 53 | |
|
54 | 54 | grspw_tick : IN STD_LOGIC; --! grspw signal asserted when a valid time-code is received |
|
55 | 55 | |
@@ -304,6 +304,19 BEGIN | |||
|
304 | 304 | apbo.pconfig <= pconfig; |
|
305 | 305 | apbo.pindex <= pindex; |
|
306 | 306 | |
|
307 | ||
|
308 | ||
|
309 | ||
|
310 | ||
|
311 | ||
|
312 | ||
|
313 | ||
|
314 | ||
|
315 | ||
|
316 | ||
|
317 | ||
|
318 | ||
|
319 | ||
|
307 | 320 |
|
|
308 | 321 | -- IN |
|
309 | 322 | coarse_time <= r.coarse_time; |
@@ -320,109 +333,87 BEGIN | |||
|
320 | 333 | ----------------------------------------------------------------------------- |
|
321 | 334 | tick <= grspw_tick OR soft_tick; |
|
322 | 335 | |
|
323 | SYNC_VALID_BIT_1 : SYNC_VALID_BIT | |
|
324 | GENERIC MAP ( | |
|
325 | NB_FF_OF_SYNC => 2) | |
|
326 | PORT MAP ( | |
|
327 |
|
|
|
328 | rstn_in => resetn_25MHz, | |
|
329 | clk_out => clk24_576MHz, | |
|
330 | rstn_out => resetn_24_576MHz, | |
|
331 | sin => tick, | |
|
332 | sout => new_timecode); | |
|
336 | --SYNC_VALID_BIT_1 : SYNC_VALID_BIT | |
|
337 | -- GENERIC MAP ( | |
|
338 | -- NB_FF_OF_SYNC => 2) | |
|
339 | -- PORT MAP ( | |
|
340 | -- clk_in => clk25MHz, | |
|
341 | -- rstn_in => resetn_25MHz, | |
|
342 | -- clk_out => clk24_576MHz, | |
|
343 | -- rstn_out => resetn_24_576MHz, | |
|
344 | -- sin => tick, | |
|
345 | -- sout => new_timecode); | |
|
346 | new_timecode <= tick; | |
|
333 | 347 | |
|
334 | SYNC_VALID_BIT_2 : SYNC_VALID_BIT | |
|
335 | GENERIC MAP ( | |
|
336 | NB_FF_OF_SYNC => 2) | |
|
337 | PORT MAP ( | |
|
338 | clk_in => clk25MHz, | |
|
339 | rstn_in => resetn_25MHz, | |
|
340 | clk_out => clk24_576MHz, | |
|
341 | rstn_out => resetn_24_576MHz, | |
|
342 | sin => coarsetime_reg_updated, | |
|
343 | sout => new_coarsetime); | |
|
344 | ||
|
345 | SYNC_VALID_BIT_3 : SYNC_VALID_BIT | |
|
346 | GENERIC MAP ( | |
|
347 | NB_FF_OF_SYNC => 2) | |
|
348 | PORT MAP ( | |
|
349 | clk_in => clk25MHz, | |
|
350 | rstn_in => resetn_25MHz, | |
|
351 | clk_out => clk24_576MHz, | |
|
352 | rstn_out => resetn_24_576MHz, | |
|
353 | sin => soft_reset, | |
|
354 | sout => soft_reset_sync); | |
|
355 | ||
|
356 | ----------------------------------------------------------------------------- | |
|
357 | --SYNC_FF_1 : SYNC_FF | |
|
348 | --SYNC_VALID_BIT_2 : SYNC_VALID_BIT | |
|
358 | 349 | -- GENERIC MAP ( |
|
359 | 350 | -- NB_FF_OF_SYNC => 2) |
|
360 | 351 | -- PORT MAP ( |
|
361 |
-- clk |
|
|
362 | -- rstn => resetn, | |
|
363 | -- A => fine_time_new_49, | |
|
364 | -- A_sync => fine_time_new_temp); | |
|
352 | -- clk_in => clk25MHz, | |
|
353 | -- rstn_in => resetn_25MHz, | |
|
354 | -- clk_out => clk24_576MHz, | |
|
355 | -- rstn_out => resetn_24_576MHz, | |
|
356 | -- sin => coarsetime_reg_updated, | |
|
357 | -- sout => new_coarsetime); | |
|
358 | ||
|
359 | new_coarsetime <= coarsetime_reg_updated; | |
|
360 | ||
|
361 | --SYNC_VALID_BIT_3 : SYNC_VALID_BIT | |
|
362 | -- GENERIC MAP ( | |
|
363 | -- NB_FF_OF_SYNC => 2) | |
|
364 | -- PORT MAP ( | |
|
365 | -- clk_in => clk25MHz, | |
|
366 | -- rstn_in => resetn_25MHz, | |
|
367 | -- clk_out => clk24_576MHz, | |
|
368 | -- rstn_out => resetn_24_576MHz, | |
|
369 | -- sin => soft_reset, | |
|
370 | -- sout => soft_reset_sync); | |
|
371 | ||
|
365 | 372 |
|
|
366 | --lpp_front_detection_1 : lpp_front_detection | |
|
367 | -- PORT MAP ( | |
|
368 | -- clk => clk25MHz, | |
|
369 | -- rstn => resetn, | |
|
370 | -- sin => fine_time_new_temp, | |
|
371 | -- sout => fine_time_new); | |
|
373 | ----------------------------------------------------------------------------- | |
|
374 | time_new_49 <= coarse_time_new_49 OR fine_time_new_49; | |
|
372 | 375 | |
|
373 | 376 | --SYNC_VALID_BIT_4 : SYNC_VALID_BIT |
|
374 | 377 | -- GENERIC MAP ( |
|
375 | 378 | -- NB_FF_OF_SYNC => 2) |
|
376 | 379 | -- PORT MAP ( |
|
377 | 380 | -- clk_in => clk24_576MHz, |
|
381 | -- rstn_in => resetn_24_576MHz, | |
|
378 | 382 | -- clk_out => clk25MHz, |
|
379 |
-- rstn |
|
|
380 |
-- sin => |
|
|
381 |
-- sout => |
|
|
382 | ||
|
383 | time_new_49 <= coarse_time_new_49 OR fine_time_new_49; | |
|
383 | -- rstn_out => resetn_25MHz, | |
|
384 | -- sin => time_new_49, | |
|
385 | -- sout => time_new); | |
|
384 | 386 | |
|
385 | SYNC_VALID_BIT_4 : SYNC_VALID_BIT | |
|
386 | GENERIC MAP ( | |
|
387 | NB_FF_OF_SYNC => 2) | |
|
388 | PORT MAP ( | |
|
389 | clk_in => clk24_576MHz, | |
|
390 | rstn_in => resetn_24_576MHz, | |
|
391 | clk_out => clk25MHz, | |
|
392 | rstn_out => resetn_25MHz, | |
|
393 | sin => time_new_49, | |
|
394 | sout => time_new); | |
|
395 | ||
|
396 | ||
|
387 | time_new <= time_new_49; | |
|
397 | 388 | |
|
398 | PROCESS (clk25MHz, resetn_25MHz) | |
|
399 | BEGIN -- PROCESS | |
|
400 | IF resetn_25MHz = '0' THEN -- asynchronous reset (active low) | |
|
401 | fine_time_s <= (OTHERS => '0'); | |
|
402 | coarse_time_s <= (OTHERS => '0'); | |
|
403 |
|
|
|
404 | IF time_new = '1' THEN | |
|
405 | fine_time_s <= fine_time_49; | |
|
406 | coarse_time_s <= coarse_time_49; | |
|
407 | END IF; | |
|
408 | END IF; | |
|
409 | END PROCESS; | |
|
389 | --PROCESS (clk25MHz, resetn_25MHz) | |
|
390 | --BEGIN -- PROCESS | |
|
391 | -- IF resetn_25MHz = '0' THEN -- asynchronous reset (active low) | |
|
392 | -- fine_time_s <= (OTHERS => '0'); | |
|
393 | -- coarse_time_s <= (OTHERS => '0'); | |
|
394 | -- ELSIF clk25MHz'EVENT AND clk25MHz = '1' THEN -- rising clock edge | |
|
395 | -- IF time_new = '1' THEN | |
|
396 | -- END IF; | |
|
397 | -- END IF; | |
|
398 | --END PROCESS; | |
|
399 | ||
|
400 | fine_time_s <= fine_time_49; | |
|
401 | coarse_time_s <= coarse_time_49; | |
|
402 | ||
|
410 | 403 |
|
|
411 | ||
|
412 | rstn_LFR_TM <= '0' WHEN resetn_24_576MHz = '0' ELSE | |
|
413 | '0' WHEN soft_reset_sync = '1' ELSE | |
|
404 | rstn_LFR_TM <= '0' WHEN resetn_25MHz = '0' ELSE | |
|
405 | '0' WHEN soft_reset = '1' ELSE | |
|
414 | 406 | '1'; |
|
415 | ||
|
416 | ||
|
407 | ||
|
417 | 408 |
|
|
418 | 409 | -- LFR_TIME_MANAGMENT |
|
419 | 410 | ----------------------------------------------------------------------------- |
|
420 | 411 | lfr_time_management_1 : lfr_time_management |
|
421 | 412 | GENERIC MAP ( |
|
422 | FIRST_DIVISION => FIRST_DIVISION, | |
|
413 | --FIRST_DIVISION => FIRST_DIVISION, | |
|
423 | 414 | NB_SECOND_DESYNC => NB_SECOND_DESYNC) |
|
424 | 415 | PORT MAP ( |
|
425 |
clk => clk2 |
|
|
416 | clk => clk25MHz, | |
|
426 | 417 | rstn => rstn_LFR_TM, |
|
427 | 418 | |
|
428 | 419 | tick => new_timecode, |
@@ -434,6 +425,8 BEGIN | |||
|
434 | 425 | coarse_time => coarse_time_49, |
|
435 | 426 | coarse_time_new => coarse_time_new_49); |
|
436 | 427 | |
|
428 | ||
|
429 | ||
|
437 | 430 |
|
|
438 | 431 | -- HK |
|
439 | 432 | ----------------------------------------------------------------------------- |
@@ -481,6 +474,19 BEGIN | |||
|
481 | 474 | |
|
482 | 475 | HK_sel <= HK_sel_s; |
|
483 | 476 | |
|
477 | ||
|
478 | ||
|
479 | ||
|
480 | ||
|
481 | ||
|
482 | ||
|
483 | ||
|
484 | ||
|
485 | ||
|
486 | ||
|
487 | ||
|
488 | ||
|
489 | ||
|
484 | 490 |
|
|
485 | 491 | -- DAC |
|
486 | 492 | ----------------------------------------------------------------------------- |
@@ -514,4 +520,4 BEGIN | |||
|
514 | 520 | ); |
|
515 | 521 | |
|
516 | 522 | DAC_CAL_EN <= DAC_CAL_EN_s; |
|
517 | END Behavioral; No newline at end of file | |
|
523 | END Behavioral; |
@@ -110,14 +110,15 BEGIN -- beh | |||
|
110 | 110 | |
|
111 | 111 | ----------------------------------------------------------------------------- |
|
112 | 112 | -- Just to try to limit the constraint |
|
113 | PROCESS (clk, rstn) | |
|
114 | BEGIN -- PROCESS | |
|
115 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
116 | set_TCU_reg <= '0'; | |
|
117 |
|
|
|
118 | set_TCU_reg <= set_TCU; | |
|
119 | END IF; | |
|
120 | END PROCESS; | |
|
113 | --PROCESS (clk, rstn) | |
|
114 | --BEGIN -- PROCESS | |
|
115 | -- IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
116 | -- set_TCU_reg <= '0'; | |
|
117 | -- ELSIF clk'event AND clk = '1' THEN -- rising clock edge | |
|
118 | -- set_TCU_reg <= set_TCU; | |
|
119 | -- END IF; | |
|
120 | --END PROCESS; | |
|
121 | 121 | ----------------------------------------------------------------------------- |
|
122 | ||
|
123 | END beh; No newline at end of file | |
|
122 | set_TCU_reg <= set_TCU; | |
|
123 | ||
|
124 | END beh; |
@@ -4,12 +4,12 USE IEEE.NUMERIC_STD.ALL; | |||
|
4 | 4 | |
|
5 | 5 | LIBRARY lpp; |
|
6 | 6 | USE lpp.general_purpose.ALL; |
|
7 | USE lpp.lpp_lfr_management.ALL; | |
|
7 | 8 | |
|
8 | 9 | ENTITY fine_time_counter IS |
|
9 | 10 | |
|
10 | 11 | GENERIC ( |
|
11 |
WAITING_TIME : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"0040" |
|
|
12 | FIRST_DIVISION : INTEGER := 374 | |
|
12 | WAITING_TIME : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"0040" | |
|
13 | 13 | ); |
|
14 | 14 | |
|
15 | 15 | PORT ( |
@@ -33,12 +33,22 ARCHITECTURE beh OF fine_time_counter IS | |||
|
33 | 33 | SIGNAL new_ft_counter : STD_LOGIC_VECTOR(8 DOWNTO 0); |
|
34 | 34 | SIGNAL new_ft : STD_LOGIC; |
|
35 | 35 | SIGNAL fine_time_counter : STD_LOGIC_VECTOR(15 DOWNTO 0); |
|
36 | ||
|
37 | SIGNAL fine_time_max_value : STD_LOGIC_VECTOR(8 DOWNTO 0); | |
|
38 | SIGNAL tick_value_gen : STD_LOGIC; | |
|
39 | SIGNAL FT_max_s : STD_LOGIC; | |
|
36 | 40 | |
|
37 | -- CONSTANT FIRST_DIVISION : INTEGER := 20; -- TODO : 374 | |
|
38 | ||
|
39 | 41 | BEGIN -- beh |
|
40 | 42 | |
|
43 | tick_value_gen <= tick OR FT_max_s; | |
|
41 | 44 | |
|
45 | fine_time_max_value_gen_1: fine_time_max_value_gen | |
|
46 | PORT MAP ( | |
|
47 | clk => clk, | |
|
48 | rstn => rstn, | |
|
49 | tick => tick_value_gen, | |
|
50 | fine_time_add => new_ft, | |
|
51 | fine_time_max_value => fine_time_max_value); | |
|
42 | 52 | |
|
43 | 53 | counter_1 : general_counter |
|
44 | 54 | GENERIC MAP ( |
@@ -49,13 +59,13 BEGIN -- beh | |||
|
49 | 59 | PORT MAP ( |
|
50 | 60 | clk => clk, |
|
51 | 61 | rstn => rstn, |
|
52 | MAX_VALUE => STD_LOGIC_VECTOR(to_unsigned(FIRST_DIVISION, 9)), | |
|
62 | MAX_VALUE => fine_time_max_value, | |
|
53 | 63 | set => tick, |
|
54 | 64 | set_value => (OTHERS => '0'), |
|
55 | 65 | add1 => '1', |
|
56 | 66 | counter => new_ft_counter); |
|
57 | 67 | |
|
58 |
new_ft <= '1' WHEN new_ft_counter = |
|
|
68 | new_ft <= '1' WHEN new_ft_counter = fine_time_max_value ELSE '0'; | |
|
59 | 69 | |
|
60 | 70 | counter_2 : general_counter |
|
61 | 71 | GENERIC MAP ( |
@@ -72,7 +82,9 BEGIN -- beh | |||
|
72 | 82 | add1 => new_ft, |
|
73 | 83 | counter => fine_time_counter); |
|
74 | 84 | |
|
75 |
FT_max |
|
|
85 | FT_max_s <= '1' WHEN new_ft = '1' AND fine_time_counter = X"FFFF" ELSE '0'; | |
|
86 | ||
|
87 | FT_max <= FT_max_s; | |
|
76 | 88 | FT_half <= '1' WHEN fine_time_counter > X"7FFF" ELSE '0'; |
|
77 | 89 | FT_wait <= '1' WHEN fine_time_counter > WAITING_TIME ELSE '0'; |
|
78 | 90 |
@@ -25,7 +25,6 USE lpp.lpp_lfr_management.ALL; | |||
|
25 | 25 | |
|
26 | 26 | ENTITY lfr_time_management IS |
|
27 | 27 | GENERIC ( |
|
28 | FIRST_DIVISION : INTEGER := 374; | |
|
29 | 28 | NB_SECOND_DESYNC : INTEGER := 60); |
|
30 | 29 | PORT ( |
|
31 | 30 | clk : IN STD_LOGIC; |
@@ -83,8 +82,7 BEGIN | |||
|
83 | 82 | ----------------------------------------------------------------------------- |
|
84 | 83 | fine_time_counter_1: fine_time_counter |
|
85 | 84 | GENERIC MAP ( |
|
86 |
WAITING_TIME => X"0040" |
|
|
87 | FIRST_DIVISION => FIRST_DIVISION) | |
|
85 | WAITING_TIME => X"0040") | |
|
88 | 86 | PORT MAP ( |
|
89 | 87 | clk => clk, |
|
90 | 88 | rstn => rstn, |
@@ -1,111 +1,119 | |||
|
1 | ---------------------------------------------------------------------------------- | |
|
2 | -- Company: | |
|
3 | -- Engineer: | |
|
4 | -- | |
|
5 | -- Create Date: 13:04:01 07/02/2012 | |
|
6 | -- Design Name: | |
|
7 | -- Module Name: lpp_lfr_time_management - Behavioral | |
|
8 | -- Project Name: | |
|
9 | -- Target Devices: | |
|
10 | -- Tool versions: | |
|
11 | -- Description: | |
|
12 | -- | |
|
13 | -- Dependencies: | |
|
14 | -- | |
|
15 | -- Revision: | |
|
16 | -- Revision 0.01 - File Created | |
|
17 | -- Additional Comments: | |
|
18 | -- | |
|
19 | ---------------------------------------------------------------------------------- | |
|
20 | LIBRARY IEEE; | |
|
21 | USE IEEE.STD_LOGIC_1164.ALL; | |
|
22 | LIBRARY grlib; | |
|
23 | USE grlib.amba.ALL; | |
|
24 | USE grlib.stdlib.ALL; | |
|
25 | USE grlib.devices.ALL; | |
|
26 | ||
|
27 | PACKAGE lpp_lfr_management IS | |
|
28 | ||
|
29 | --*************************** | |
|
30 | -- APB_LFR_MANAGEMENT | |
|
31 | ||
|
32 | COMPONENT apb_lfr_management | |
|
33 | GENERIC ( | |
|
34 | tech : INTEGER; | |
|
35 | pindex : INTEGER; | |
|
36 | paddr : INTEGER; | |
|
37 | pmask : INTEGER; | |
|
38 | FIRST_DIVISION : INTEGER; | |
|
39 | NB_SECOND_DESYNC : INTEGER); | |
|
40 | PORT ( | |
|
41 | clk25MHz : IN STD_LOGIC; | |
|
42 | resetn_25MHz : IN STD_LOGIC; | |
|
43 | clk24_576MHz : IN STD_LOGIC; | |
|
44 | resetn_24_576MHz : IN STD_LOGIC; | |
|
45 | grspw_tick : IN STD_LOGIC; | |
|
46 | apbi : IN apb_slv_in_type; | |
|
47 | apbo : OUT apb_slv_out_type; | |
|
48 | HK_sample : IN STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
49 | HK_val : IN STD_LOGIC; | |
|
50 | HK_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
51 | DAC_SDO : OUT STD_LOGIC; | |
|
52 | DAC_SCK : OUT STD_LOGIC; | |
|
53 | DAC_SYNC : OUT STD_LOGIC; | |
|
54 | DAC_CAL_EN : OUT STD_LOGIC; | |
|
55 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
56 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
57 | LFR_soft_rstn : OUT STD_LOGIC); | |
|
58 | END COMPONENT; | |
|
59 | ||
|
60 | COMPONENT lfr_time_management | |
|
61 | GENERIC ( | |
|
62 | FIRST_DIVISION : INTEGER; | |
|
63 | NB_SECOND_DESYNC : INTEGER); | |
|
64 | PORT ( | |
|
65 | clk : IN STD_LOGIC; | |
|
66 | rstn : IN STD_LOGIC; | |
|
67 | tick : IN STD_LOGIC; | |
|
68 | new_coarsetime : IN STD_LOGIC; | |
|
69 | coarsetime_reg : IN STD_LOGIC_VECTOR(30 DOWNTO 0); | |
|
70 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
71 | fine_time_new : OUT STD_LOGIC; | |
|
72 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
73 | coarse_time_new : OUT STD_LOGIC); | |
|
74 | END COMPONENT; | |
|
75 | ||
|
76 | COMPONENT coarse_time_counter | |
|
77 | GENERIC ( | |
|
78 | NB_SECOND_DESYNC : INTEGER); | |
|
79 | PORT ( | |
|
80 | clk : IN STD_LOGIC; | |
|
81 | rstn : IN STD_LOGIC; | |
|
82 | tick : IN STD_LOGIC; | |
|
83 | set_TCU : IN STD_LOGIC; | |
|
84 | new_TCU : IN STD_LOGIC; | |
|
85 | set_TCU_value : IN STD_LOGIC_VECTOR(30 DOWNTO 0); | |
|
86 | CT_add1 : IN STD_LOGIC; | |
|
87 | fsm_desync : IN STD_LOGIC; | |
|
88 | FT_max : IN STD_LOGIC; | |
|
89 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
90 | coarse_time_new : OUT STD_LOGIC); | |
|
91 | END COMPONENT; | |
|
92 | ||
|
93 | COMPONENT fine_time_counter | |
|
94 | GENERIC ( | |
|
95 | WAITING_TIME : STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
96 | FIRST_DIVISION : INTEGER); | |
|
97 | PORT ( | |
|
98 | clk : IN STD_LOGIC; | |
|
99 | rstn : IN STD_LOGIC; | |
|
100 | tick : IN STD_LOGIC; | |
|
101 | fsm_transition : IN STD_LOGIC; | |
|
102 | FT_max : OUT STD_LOGIC; | |
|
103 | FT_half : OUT STD_LOGIC; | |
|
104 | FT_wait : OUT STD_LOGIC; | |
|
105 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
106 | fine_time_new : OUT STD_LOGIC); | |
|
107 | END COMPONENT; | |
|
108 | ||
|
109 | ||
|
110 | END lpp_lfr_management; | |
|
111 | ||
|
1 | ---------------------------------------------------------------------------------- | |
|
2 | -- Company: | |
|
3 | -- Engineer: | |
|
4 | -- | |
|
5 | -- Create Date: 13:04:01 07/02/2012 | |
|
6 | -- Design Name: | |
|
7 | -- Module Name: lpp_lfr_time_management - Behavioral | |
|
8 | -- Project Name: | |
|
9 | -- Target Devices: | |
|
10 | -- Tool versions: | |
|
11 | -- Description: | |
|
12 | -- | |
|
13 | -- Dependencies: | |
|
14 | -- | |
|
15 | -- Revision: | |
|
16 | -- Revision 0.01 - File Created | |
|
17 | -- Additional Comments: | |
|
18 | -- | |
|
19 | ---------------------------------------------------------------------------------- | |
|
20 | LIBRARY IEEE; | |
|
21 | USE IEEE.STD_LOGIC_1164.ALL; | |
|
22 | LIBRARY grlib; | |
|
23 | USE grlib.amba.ALL; | |
|
24 | USE grlib.stdlib.ALL; | |
|
25 | USE grlib.devices.ALL; | |
|
26 | ||
|
27 | PACKAGE lpp_lfr_management IS | |
|
28 | ||
|
29 | --*************************** | |
|
30 | -- APB_LFR_MANAGEMENT | |
|
31 | ||
|
32 | COMPONENT apb_lfr_management | |
|
33 | GENERIC ( | |
|
34 | tech : INTEGER; | |
|
35 | pindex : INTEGER; | |
|
36 | paddr : INTEGER; | |
|
37 | pmask : INTEGER; | |
|
38 | -- FIRST_DIVISION : INTEGER; | |
|
39 | NB_SECOND_DESYNC : INTEGER); | |
|
40 | PORT ( | |
|
41 | clk25MHz : IN STD_LOGIC; | |
|
42 | resetn_25MHz : IN STD_LOGIC; | |
|
43 | -- clk24_576MHz : IN STD_LOGIC; | |
|
44 | -- resetn_24_576MHz : IN STD_LOGIC; | |
|
45 | grspw_tick : IN STD_LOGIC; | |
|
46 | apbi : IN apb_slv_in_type; | |
|
47 | apbo : OUT apb_slv_out_type; | |
|
48 | HK_sample : IN STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
49 | HK_val : IN STD_LOGIC; | |
|
50 | HK_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
51 | DAC_SDO : OUT STD_LOGIC; | |
|
52 | DAC_SCK : OUT STD_LOGIC; | |
|
53 | DAC_SYNC : OUT STD_LOGIC; | |
|
54 | DAC_CAL_EN : OUT STD_LOGIC; | |
|
55 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
56 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
57 | LFR_soft_rstn : OUT STD_LOGIC); | |
|
58 | END COMPONENT; | |
|
59 | ||
|
60 | COMPONENT lfr_time_management | |
|
61 | GENERIC ( | |
|
62 | --FIRST_DIVISION : INTEGER; | |
|
63 | NB_SECOND_DESYNC : INTEGER); | |
|
64 | PORT ( | |
|
65 | clk : IN STD_LOGIC; | |
|
66 | rstn : IN STD_LOGIC; | |
|
67 | tick : IN STD_LOGIC; | |
|
68 | new_coarsetime : IN STD_LOGIC; | |
|
69 | coarsetime_reg : IN STD_LOGIC_VECTOR(30 DOWNTO 0); | |
|
70 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
71 | fine_time_new : OUT STD_LOGIC; | |
|
72 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
73 | coarse_time_new : OUT STD_LOGIC); | |
|
74 | END COMPONENT; | |
|
75 | ||
|
76 | COMPONENT coarse_time_counter | |
|
77 | GENERIC ( | |
|
78 | NB_SECOND_DESYNC : INTEGER); | |
|
79 | PORT ( | |
|
80 | clk : IN STD_LOGIC; | |
|
81 | rstn : IN STD_LOGIC; | |
|
82 | tick : IN STD_LOGIC; | |
|
83 | set_TCU : IN STD_LOGIC; | |
|
84 | new_TCU : IN STD_LOGIC; | |
|
85 | set_TCU_value : IN STD_LOGIC_VECTOR(30 DOWNTO 0); | |
|
86 | CT_add1 : IN STD_LOGIC; | |
|
87 | fsm_desync : IN STD_LOGIC; | |
|
88 | FT_max : IN STD_LOGIC; | |
|
89 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
90 | coarse_time_new : OUT STD_LOGIC); | |
|
91 | END COMPONENT; | |
|
92 | ||
|
93 | COMPONENT fine_time_counter | |
|
94 | GENERIC ( | |
|
95 | WAITING_TIME : STD_LOGIC_VECTOR(15 DOWNTO 0));--; | |
|
96 | -- FIRST_DIVISION : INTEGER); | |
|
97 | PORT ( | |
|
98 | clk : IN STD_LOGIC; | |
|
99 | rstn : IN STD_LOGIC; | |
|
100 | tick : IN STD_LOGIC; | |
|
101 | fsm_transition : IN STD_LOGIC; | |
|
102 | FT_max : OUT STD_LOGIC; | |
|
103 | FT_half : OUT STD_LOGIC; | |
|
104 | FT_wait : OUT STD_LOGIC; | |
|
105 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); | |
|
106 | fine_time_new : OUT STD_LOGIC); | |
|
107 | END COMPONENT; | |
|
108 | ||
|
109 | COMPONENT fine_time_max_value_gen | |
|
110 | PORT ( | |
|
111 | clk : IN STD_LOGIC; | |
|
112 | rstn : IN STD_LOGIC; | |
|
113 | tick : IN STD_LOGIC; | |
|
114 | fine_time_add : IN STD_LOGIC; | |
|
115 | fine_time_max_value : OUT STD_LOGIC_VECTOR(8 DOWNTO 0)); | |
|
116 | END COMPONENT; | |
|
117 | ||
|
118 | END lpp_lfr_management; | |
|
119 |
@@ -4,3 +4,4 apb_lfr_management.vhd | |||
|
4 | 4 | lfr_time_management.vhd |
|
5 | 5 | fine_time_counter.vhd |
|
6 | 6 | coarse_time_counter.vhd |
|
7 | fine_time_max_value_gen.vhd |
@@ -54,7 +54,7 ENTITY lpp_dma_send_16word IS | |||
|
54 | 54 | -- |
|
55 | 55 | send_ok : OUT STD_LOGIC; |
|
56 | 56 | send_ko : OUT STD_LOGIC |
|
57 | ||
|
57 | ||
|
58 | 58 | ); |
|
59 | 59 | END lpp_dma_send_16word; |
|
60 | 60 | |
@@ -88,8 +88,8 BEGIN -- beh | |||
|
88 | 88 | grant_counter <= 0; |
|
89 | 89 | ELSIF HCLK'EVENT AND HCLK = '1' THEN -- rising clock edge |
|
90 | 90 | |
|
91 |
DMAIn.Reset |
|
|
92 | ||
|
91 | DMAIn.Reset <= '0'; | |
|
92 | ||
|
93 | 93 | CASE state IS |
|
94 | 94 | WHEN IDLE => |
|
95 | 95 | DMAIn.Store <= '1'; |
@@ -98,11 +98,11 BEGIN -- beh | |||
|
98 | 98 | send_ko <= '0'; |
|
99 | 99 | DMAIn.Address <= address; |
|
100 | 100 | data_counter <= 0; |
|
101 |
DMAIn.Lock <= '0'; |
|
|
101 | DMAIn.Lock <= '0'; | |
|
102 | 102 | IF send = '1' THEN |
|
103 | 103 | state <= REQUEST_BUS; |
|
104 | 104 | DMAIn.Request <= '1'; |
|
105 |
DMAIn.Lock <= '1'; |
|
|
105 | DMAIn.Lock <= '1'; | |
|
106 | 106 | DMAIn.Store <= '1'; |
|
107 | 107 | END IF; |
|
108 | 108 | WHEN REQUEST_BUS => |
@@ -124,10 +124,10 BEGIN -- beh | |||
|
124 | 124 | |
|
125 | 125 | IF DMAOut.Grant = '1' THEN |
|
126 | 126 | IF grant_counter = 15 THEN |
|
127 |
DMAIn.Reset |
|
|
127 | DMAIn.Reset <= '0'; | |
|
128 | 128 | DMAIn.Request <= '0'; |
|
129 |
DMAIn.Store |
|
|
130 |
DMAIn.Burst |
|
|
129 | DMAIn.Store <= '0'; | |
|
130 | DMAIn.Burst <= '0'; | |
|
131 | 131 | ELSE |
|
132 | 132 | grant_counter <= grant_counter+1; |
|
133 | 133 | END IF; |
@@ -135,6 +135,7 BEGIN -- beh | |||
|
135 | 135 | |
|
136 | 136 | IF DMAOut.OKAY = '1' THEN |
|
137 | 137 | IF data_counter = 15 THEN |
|
138 | --DMAIn.Request <= '0'; -- FIX Test 31/03/2014 to handle burst interruption | |
|
138 | 139 | DMAIn.Address <= (OTHERS => '0'); |
|
139 | 140 | state <= WAIT_LAST_READY; |
|
140 | 141 | ELSE |
@@ -167,7 +168,7 BEGIN -- beh | |||
|
167 | 168 | END PROCESS; |
|
168 | 169 | |
|
169 | 170 | DMAIn.Data <= data; |
|
170 | ||
|
171 | ||
|
171 | 172 | ren <= NOT (DMAOut.OKAY OR DMAOut.GRANT) WHEN state = SEND_DATA ELSE |
|
172 | 173 | '1'; |
|
173 | 174 | |
@@ -175,7 +176,7 BEGIN -- beh | |||
|
175 | 176 | --ren <= '0' WHEN DMAOut.OKAY = '1' ELSE --AND (state = SEND_DATA OR state = WAIT_LAST_READY) ELSE |
|
176 | 177 | -- '1'; |
|
177 | 178 | -- /\ JC - 20/01/2014 /\ |
|
178 | ||
|
179 | ||
|
179 | 180 | -- \/ JC - 11/12/2013 \/ |
|
180 | 181 | --ren <= '0' WHEN DMAOut.OKAY = '1' AND state = SEND_DATA ELSE |
|
181 | 182 | -- '1'; |
@@ -191,5 +192,5 BEGIN -- beh | |||
|
191 | 192 | --ren <= '0' WHEN state = SEND_DATA ELSE |
|
192 | 193 | -- '1'; |
|
193 | 194 | -- /\ JC - 09/12/2013 /\ |
|
194 |
|
|
|
195 | ||
|
195 | 196 | END beh; |
@@ -72,7 +72,9 ENTITY leon3_soc IS | |||
|
72 | 72 | NB_APB_SLAVE : INTEGER := 1; |
|
73 | 73 | -- |
|
74 | 74 | ADDRESS_SIZE : INTEGER := 20; |
|
75 | USES_IAP_MEMCTRLR : INTEGER := 0 | |
|
75 | USES_IAP_MEMCTRLR : INTEGER := 0; | |
|
76 | BYPASS_EDAC_MEMCTRLR : STD_LOGIC := '0'; | |
|
77 | SRBANKSZ : INTEGER := 8 | |
|
76 | 78 | |
|
77 | 79 | ); |
|
78 | 80 | PORT ( |
@@ -412,9 +414,10 BEGIN | |||
|
412 | 414 | pindex => 0, |
|
413 | 415 | paddr => 0, |
|
414 | 416 | srbanks => 2, |
|
415 |
banksz => |
|
|
417 | banksz => SRBANKSZ, --512k * 32 | |
|
416 | 418 | rmw => 1, |
|
417 | 419 | --Aeroflex memory generics: |
|
420 | mbpbusy => BYPASS_EDAC_MEMCTRLR, | |
|
418 | 421 | mprog => 1, -- program memory by default values after reset |
|
419 | 422 | mpsrate => 15, -- default scrub rate period |
|
420 | 423 | mpb2s => 14, -- default busy to scrub delay |
@@ -440,7 +443,7 BEGIN | |||
|
440 | 443 | memi.brdyn <= nSRAM_READY; |
|
441 | 444 | |
|
442 | 445 | mbe_pad : iopad |
|
443 | GENERIC MAP(tech => padtech) | |
|
446 | GENERIC MAP(tech => padtech, oepol => USES_IAP_MEMCTRLR) | |
|
444 | 447 | PORT MAP(pad => SRAM_MBE, |
|
445 | 448 | i => mbe, |
|
446 | 449 | en => mbe_drive, |
@@ -54,7 +54,9 PACKAGE lpp_leon3_soc_pkg IS | |||
|
54 | 54 | NB_AHB_SLAVE : INTEGER; |
|
55 | 55 | NB_APB_SLAVE : INTEGER; |
|
56 | 56 | ADDRESS_SIZE : INTEGER; |
|
57 | USES_IAP_MEMCTRLR : INTEGER | |
|
57 | USES_IAP_MEMCTRLR : INTEGER; | |
|
58 | BYPASS_EDAC_MEMCTRLR : STD_LOGIC; | |
|
59 | SRBANKSZ : INTEGER := 8 | |
|
58 | 60 | ); |
|
59 | 61 | PORT ( |
|
60 | 62 | clk : IN STD_ULOGIC; |
General Comments 0
You need to be logged in to leave comments.
Login now