@@ -397,13 +397,13 @@ def __init__(self, platform, refclk):
397
397
p_STARTUP_WAIT = "FALSE" , o_LOCKED = pll_locked ,
398
398
399
399
p_REF_JITTER1 = 0.01 , p_REF_JITTER2 = 0.01 ,
400
- p_CLKIN1_PERIOD = 4.0 , p_CLKIN2_PERIOD = 4.0 ,
400
+ p_CLKIN1_PERIOD = 20 / 3 , p_CLKIN2_PERIOD = 20 / 3 ,
401
401
i_CLKIN1 = 0 , i_CLKIN2 = refclk ,
402
402
# Warning: CLKINSEL=0 means CLKIN2 is selected
403
403
i_CLKINSEL = ~ self ._clock_sel .storage ,
404
404
405
- # VCO @ 1GHz when using 250MHz input
406
- p_CLKFBOUT_MULT = 8 , p_DIVCLK_DIVIDE = 2 ,
405
+ # VCO @ 1.2GHz when using 150MHz input
406
+ p_CLKFBOUT_MULT = 8 , p_DIVCLK_DIVIDE = 1 ,
407
407
i_CLKFBIN = self .cd_rtio .clk ,
408
408
i_RST = self ._pll_reset .storage ,
409
409
@@ -419,17 +419,17 @@ def __init__(self, platform, refclk):
419
419
self ._pll_locked .status )
420
420
]
421
421
self .cd_rtio .clk .attr .add ("keep" )
422
- platform .add_period_constraint (self .cd_rtio .clk , 8. )
422
+ platform .add_period_constraint (self .cd_rtio .clk , 20 / 3 )
423
423
424
424
425
425
class AD9154JESD (Module , AutoCSR ):
426
426
def __init__ (self , platform ):
427
427
ps = JESD204BPhysicalSettings (l = 4 , m = 4 , n = 16 , np = 16 )
428
428
ts = JESD204BTransportSettings (f = 2 , s = 1 , k = 16 , cs = 1 )
429
429
settings = JESD204BSettings (ps , ts , did = 0x5a , bid = 0x5 )
430
- linerate = 10e9
431
- refclk_freq = 250e6
432
- fabric_freq = 250 * 1000 * 1000
430
+ linerate = 6e9
431
+ refclk_freq = 150e6
432
+ fabric_freq = 150 * 1000 * 1000
433
433
434
434
sync_pads = platform .request ("ad9154_sync" )
435
435
self .jsync = Signal ()
@@ -494,16 +494,11 @@ def __init__(self, platform):
494
494
495
495
self .submodules .jesd = AD9154JESD (platform )
496
496
497
- self .sawgs = [sawg .Channel (width = 16 , parallelism = 4 ) for i in range (4 )]
497
+ self .sawgs = [sawg .Channel (width = 16 , parallelism = 2 ) for i in range (4 )]
498
498
self .submodules += self .sawgs
499
499
500
- x = Signal ()
501
- y = Signal ()
502
- z = Signal ()
503
- self .sync .jesd += x .eq (~ x ), z .eq (x == y )
504
- self .sync .rio_phy += y .eq (x )
505
500
for conv , ch in zip (self .jesd .core .sink .flatten (), self .sawgs ):
506
- self .sync .jesd += conv .eq (Mux ( z , Cat (ch .o [: 2 ]), Cat ( ch . o [ 2 :]) ))
501
+ self .sync .jesd += conv .eq (Cat (ch .o ))
507
502
508
503
509
504
class Phaser (MiniSoC , AMPSoC ):