@@ -11,9 +11,8 | |||
|
11 | 11 | # Clocks |
|
12 | 12 | # |
|
13 | 13 | |
|
14 | ||
|
15 |
define_clock |
|
|
16 | define_clock {clk49_152MHz} -name {clk49_152MHz} -freq 49.152 -clockgroup default_clkgroup -route 5 | |
|
14 | define_clock -name {clk100MHz} -freq 100 -clockgroup default_clkgroup_50 -route 5 | |
|
15 | define_clock -name {clk49_152MHz} -freq 49.152 -clockgroup default_clkgroup_49 -route 5 | |
|
17 | 16 | |
|
18 | 17 | # |
|
19 | 18 | # Clock to Clock |
@@ -22,8 +21,6 define_clock {clk49_152MHz} -name {clk4 | |||
|
22 | 21 | # |
|
23 | 22 | # Inputs/Outputs |
|
24 | 23 | # |
|
25 | define_output_delay -disable -default 5.00 -improve 0.00 -route 0.00 -ref {clk:r} | |
|
26 | define_input_delay -disable -default 5.00 -improve 0.00 -route 0.00 -ref {clk:r} | |
|
27 | 24 | |
|
28 | 25 | |
|
29 | 26 | # |
@@ -38,6 +35,8 define_input_delay -disable -defaul | |||
|
38 | 35 | # False Path |
|
39 | 36 | # |
|
40 | 37 | |
|
38 | set_false_path -from reset | |
|
39 | ||
|
41 | 40 | # |
|
42 | 41 | # Path Delay |
|
43 | 42 | # |
@@ -45,9 +44,9 define_input_delay -disable -defaul | |||
|
45 | 44 | # |
|
46 | 45 | # Attributes |
|
47 | 46 | # |
|
47 | ||
|
48 | 48 | define_global_attribute syn_useioff {1} |
|
49 | 49 | define_global_attribute -disable syn_netlist_hierarchy {0} |
|
50 | define_attribute {etx_clk} syn_noclockbuf {1} | |
|
51 | 50 | |
|
52 | 51 | # |
|
53 | 52 | # I/O standards |
@@ -146,7 +146,8 ARCHITECTURE beh OF LFR_EQM IS | |||
|
146 | 146 | SIGNAL observation_reg : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
147 | 147 | |
|
148 | 148 | ----------------------------------------------------------------------------- |
|
149 | SIGNAL rstn : STD_LOGIC; | |
|
149 | SIGNAL rstn_25 : STD_LOGIC; | |
|
150 | SIGNAL rstn_24 : STD_LOGIC; | |
|
150 | 151 | |
|
151 | 152 | SIGNAL LFR_soft_rstn : STD_LOGIC; |
|
152 | 153 | SIGNAL LFR_rstn : STD_LOGIC; |
@@ -160,7 +161,8 BEGIN -- beh | |||
|
160 | 161 | ----------------------------------------------------------------------------- |
|
161 | 162 | -- CLK |
|
162 | 163 | ----------------------------------------------------------------------------- |
|
163 |
rst |
|
|
164 | rst_domain25 : rstgen PORT MAP (reset, clk_25, '1', rstn_25, OPEN); | |
|
165 | rst_domain24 : rstgen PORT MAP (reset, clk_24, '1', rstn_24, OPEN); | |
|
164 | 166 | |
|
165 | 167 | PROCESS(clk50MHz) |
|
166 | 168 | BEGIN |
@@ -204,7 +206,7 BEGIN -- beh | |||
|
204 | 206 | USES_IAP_MEMCTRLR => 1) |
|
205 | 207 | PORT MAP ( |
|
206 | 208 | clk => clk_25, |
|
207 | reset => rstn, | |
|
209 | reset => rstn_25, | |
|
208 | 210 | errorn => OPEN, |
|
209 | 211 | |
|
210 | 212 | ahbrxd => TAG1, |
@@ -247,9 +249,11 BEGIN -- beh | |||
|
247 | 249 | FIRST_DIVISION => 374, -- ((49.152/2) /2^16) - 1 = 375 - 1 = 374 |
|
248 | 250 | NB_SECOND_DESYNC => 60) -- 60 secondes of desynchronization before CoarseTime's MSB is Set |
|
249 | 251 | PORT MAP ( |
|
250 | clk25MHz => clk_25, | |
|
251 | clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
252 | resetn => rstn, | |
|
252 | clk25MHz => clk_25, | |
|
253 | resetn_25MHz => rstn_25, -- TODO | |
|
254 | clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
255 | resetn_24_576MHz => rstn_24, -- TODO | |
|
256 | ||
|
253 | 257 |
|
|
254 | 258 | apbi => apbi_ext, |
|
255 | 259 | apbo => apbo_ext(6), |
@@ -348,7 +352,7 BEGIN -- beh | |||
|
348 | 352 | --output_type => CFG_SPW_OUTPUT, -- not used byt the spw core 1 |
|
349 | 353 | --rxtx_sameclk => CFG_SPW_RTSAME -- not used byt the spw core 1 |
|
350 | 354 | ) |
|
351 | PORT MAP(rstn, clk_25, spw_rxclk(0), | |
|
355 | PORT MAP(rstn_25, clk_25, spw_rxclk(0), | |
|
352 | 356 | spw_rxclk(1), spw_rxtxclk, spw_rxtxclk, |
|
353 | 357 | ahbi_m_ext, ahbo_m_ext(1), apbi_ext, apbo_ext(5), |
|
354 | 358 | swni, swno); |
@@ -364,7 +368,7 BEGIN -- beh | |||
|
364 | 368 | ------------------------------------------------------------------------------- |
|
365 | 369 | -- LFR ------------------------------------------------------------------------ |
|
366 | 370 | ------------------------------------------------------------------------------- |
|
367 | LFR_rstn <= LFR_soft_rstn AND rstn; | |
|
371 | LFR_rstn <= LFR_soft_rstn AND rstn_25; | |
|
368 | 372 | |
|
369 | 373 | lpp_lfr_1 : lpp_lfr |
|
370 | 374 | GENERIC MAP ( |
@@ -380,7 +384,7 BEGIN -- beh | |||
|
380 | 384 | pirq_ms => 6, |
|
381 | 385 | pirq_wfp => 14, |
|
382 | 386 | hindex => 2, |
|
383 |
top_lfr_version => X"0201 |
|
|
387 | top_lfr_version => X"020144") -- aa.bb.cc version | |
|
384 | 388 | -- AA : BOARD NUMBER |
|
385 | 389 | -- 0 => MINI_LFR |
|
386 | 390 | -- 1 => EM |
@@ -421,10 +425,10 BEGIN -- beh | |||
|
421 | 425 | FILTER_ENABLED => 16#FF#) |
|
422 | 426 | PORT MAP ( |
|
423 | 427 | cnv_clk => clk_24, |
|
424 | cnv_rstn => rstn, | |
|
428 | cnv_rstn => rstn_24, | |
|
425 | 429 | cnv => ADC_smpclk_s, |
|
426 | 430 | clk => clk_25, |
|
427 | rstn => rstn, | |
|
431 | rstn => rstn_25, | |
|
428 | 432 | ADC_data => ADC_data, |
|
429 | 433 | ADC_nOE => ADC_OEB_bar_CH_s, |
|
430 | 434 | sample => sample, |
@@ -144,13 +144,14 ARCHITECTURE beh OF LFR_em IS | |||
|
144 | 144 | SIGNAL observation_reg : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
145 | 145 | |
|
146 | 146 | ----------------------------------------------------------------------------- |
|
147 | SIGNAL rstn : STD_LOGIC; | |
|
147 | SIGNAL rstn_25 : STD_LOGIC; | |
|
148 | SIGNAL rstn_24 : STD_LOGIC; | |
|
148 | 149 | |
|
149 | 150 | SIGNAL LFR_soft_rstn : STD_LOGIC; |
|
150 | 151 | SIGNAL LFR_rstn : STD_LOGIC; |
|
151 | 152 | |
|
152 | 153 | SIGNAL ADC_smpclk_s : STD_LOGIC; |
|
153 |
---------------------------------------------------------------------------- |
|
|
154 | ---------------------------------------------------------------------------- | |
|
154 | 155 | SIGNAL nSRAM_CE_s : STD_LOGIC_VECTOR(1 DOWNTO 0); |
|
155 | 156 | |
|
156 | 157 | BEGIN -- beh |
@@ -158,7 +159,8 BEGIN -- beh | |||
|
158 | 159 | ----------------------------------------------------------------------------- |
|
159 | 160 | -- CLK |
|
160 | 161 | ----------------------------------------------------------------------------- |
|
161 |
rst |
|
|
162 | rst_domain25 : rstgen PORT MAP (reset, clk_25, '1', rstn_25, OPEN); | |
|
163 | rst_domain24 : rstgen PORT MAP (reset, clk_24, '1', rstn_24, OPEN); | |
|
162 | 164 | |
|
163 | 165 | PROCESS(clk100MHz) |
|
164 | 166 | BEGIN |
@@ -183,9 +185,9 BEGIN -- beh | |||
|
183 | 185 | |
|
184 | 186 | ----------------------------------------------------------------------------- |
|
185 | 187 | |
|
186 | PROCESS (clk_25, rstn) | |
|
188 | PROCESS (clk_25, rstn_25) | |
|
187 | 189 | BEGIN -- PROCESS |
|
188 | IF rstn = '0' THEN -- asynchronous reset (active low) | |
|
190 | IF rstn_25 = '0' THEN -- asynchronous reset (active low) | |
|
189 | 191 | led(0) <= '0'; |
|
190 | 192 | led(1) <= '0'; |
|
191 | 193 | led(2) <= '0'; |
@@ -223,7 +225,7 BEGIN -- beh | |||
|
223 | 225 | USES_IAP_MEMCTRLR => 0) |
|
224 | 226 | PORT MAP ( |
|
225 | 227 | clk => clk_25, |
|
226 | reset => rstn, | |
|
228 | reset => rstn_25, | |
|
227 | 229 | errorn => OPEN, |
|
228 | 230 | |
|
229 | 231 | ahbrxd => TAG1, |
@@ -265,9 +267,11 BEGIN -- beh | |||
|
265 | 267 | FIRST_DIVISION => 374, -- ((49.152/2) /2^16) - 1 = 375 - 1 = 374 |
|
266 | 268 | NB_SECOND_DESYNC => 60) -- 60 secondes of desynchronization before CoarseTime's MSB is Set |
|
267 | 269 | PORT MAP ( |
|
268 | clk25MHz => clk_25, | |
|
269 | clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
270 | resetn => rstn, | |
|
270 | clk25MHz => clk_25, | |
|
271 | resetn_25MHz => rstn_25, -- TODO | |
|
272 | clk24_576MHz => clk_24, -- 49.152MHz/2 | |
|
273 | resetn_24_576MHz => rstn_24, -- TODO | |
|
274 | ||
|
271 | 275 |
|
|
272 | 276 | apbi => apbi_ext, |
|
273 | 277 | apbo => apbo_ext(6), |
@@ -359,7 +363,7 BEGIN -- beh | |||
|
359 | 363 | --output_type => CFG_SPW_OUTPUT, -- not used byt the spw core 1 |
|
360 | 364 | --rxtx_sameclk => CFG_SPW_RTSAME -- not used byt the spw core 1 |
|
361 | 365 | ) |
|
362 | PORT MAP(rstn, clk_25, spw_rxclk(0), | |
|
366 | PORT MAP(rstn_25, clk_25, spw_rxclk(0), | |
|
363 | 367 | spw_rxclk(1), spw_rxtxclk, spw_rxtxclk, |
|
364 | 368 | ahbi_m_ext, ahbo_m_ext(1), apbi_ext, apbo_ext(5), |
|
365 | 369 | swni, swno); |
@@ -375,7 +379,7 BEGIN -- beh | |||
|
375 | 379 | ------------------------------------------------------------------------------- |
|
376 | 380 | -- LFR ------------------------------------------------------------------------ |
|
377 | 381 | ------------------------------------------------------------------------------- |
|
378 | LFR_rstn <= LFR_soft_rstn AND rstn; | |
|
382 | LFR_rstn <= LFR_soft_rstn AND rstn_25; | |
|
379 | 383 | |
|
380 | 384 | lpp_lfr_1 : lpp_lfr |
|
381 | 385 | GENERIC MAP ( |
@@ -391,7 +395,7 BEGIN -- beh | |||
|
391 | 395 | pirq_ms => 6, |
|
392 | 396 | pirq_wfp => 14, |
|
393 | 397 | hindex => 2, |
|
394 |
top_lfr_version => X"01014 |
|
|
398 | top_lfr_version => X"010144") -- aa.bb.cc version | |
|
395 | 399 | -- AA : BOARD NUMBER |
|
396 | 400 | -- 0 => MINI_LFR |
|
397 | 401 | -- 1 => EM |
@@ -431,10 +435,10 BEGIN -- beh | |||
|
431 | 435 | FILTER_ENABLED => 16#FF#) |
|
432 | 436 | PORT MAP ( |
|
433 | 437 | cnv_clk => clk_24, |
|
434 | cnv_rstn => rstn, | |
|
438 | cnv_rstn => rstn_24, | |
|
435 | 439 | cnv => ADC_smpclk_s, |
|
436 | 440 | clk => clk_25, |
|
437 | rstn => rstn, | |
|
441 | rstn => rstn_25, | |
|
438 | 442 | ADC_data => ADC_data, |
|
439 | 443 | ADC_nOE => ADC_OEB_bar_CH_s, |
|
440 | 444 | sample => sample, |
@@ -20,7 +20,7 VHDLSIMFILES=testbench.vhd | |||
|
20 | 20 | #SDC=$(GRLIB)/boards/$(BOARD)/leon3mp.sdc |
|
21 | 21 | PDC=$(VHDLIB)/boards/$(BOARD)/em-LeonLPP-A3PE3kL_withHK-DAC.pdc |
|
22 | 22 | |
|
23 |
|
|
|
23 | SDCFILE=$(VHDLIB)/boards/$(BOARD)/LFR_EM_synthesis.sdc | |
|
24 | 24 |
|
|
25 | 25 | |
|
26 | 26 | BITGEN=$(VHDLIB)/boards/$(BOARD)/default.ut |
@@ -241,25 +241,14 BEGIN -- beh | |||
|
241 | 241 | |
|
242 | 242 | PROCESS (clk_50, reset) |
|
243 | 243 | BEGIN -- PROCESS |
|
244 | IF reset = '0' THEN -- asynchronous reset (active low) | |
|
245 | clk_50_s <= '0'; | |
|
246 | rstn_50 <= '0'; | |
|
247 | rstn_50_d1 <= '0'; | |
|
248 | rstn_50_d2 <= '0'; | |
|
249 | rstn_50_d3 <= '0'; | |
|
250 | ||
|
251 | ELSIF clk_50'EVENT AND clk_50 = '1' THEN -- rising clock edge | |
|
244 | IF clk_50'EVENT AND clk_50 = '1' THEN -- rising clock edge | |
|
252 | 245 | clk_50_s <= NOT clk_50_s; |
|
253 | rstn_50_d1 <= '1'; | |
|
254 | rstn_50_d2 <= rstn_50_d1; | |
|
255 | rstn_50_d3 <= rstn_50_d2; | |
|
256 | rstn_50 <= rstn_50_d3; | |
|
257 | 246 | END IF; |
|
258 | 247 | END PROCESS; |
|
259 | 248 | |
|
260 |
PROCESS (clk_50_s, rst |
|
|
249 | PROCESS (clk_50_s, reset) | |
|
261 | 250 | BEGIN -- PROCESS |
|
262 |
IF rst |
|
|
251 | IF reset = '0' THEN -- asynchronous reset (active low) | |
|
263 | 252 | clk_25 <= '0'; |
|
264 | 253 | rstn_25 <= '0'; |
|
265 | 254 | rstn_25_d1 <= '0'; |
General Comments 0
You need to be logged in to leave comments.
Login now