@@ -312,13 +312,15 @@ def get_ineg(i):
312
312
return get_ineg (pin .i )
313
313
elif pin .xdr == 1 :
314
314
i_sdr = Signal (pin .width , name = "{}_i_sdr" )
315
- m .submodules += Instance ("$dff" ,
316
- p_CLK_POLARITY = 1 ,
317
- p_WIDTH = pin .width ,
318
- i_CLK = pin .i_clk ,
319
- i_D = i_sdr ,
320
- o_Q = get_ineg (pin .i ),
321
- )
315
+ i_neg = get_ineg (pin .i )
316
+ for bit in range (pin .width ):
317
+ m .submodules += Instance ("dff" ,
318
+ i_clk = pin .i_clk ,
319
+ i_d = i_sdr [bit ],
320
+ o_q = i_neg [bit ],
321
+ o_clrn = Const (1 ),
322
+ o_prn = Const (1 ),
323
+ )
322
324
return i_sdr
323
325
elif pin .xdr == 2 :
324
326
i_ddr = Signal (pin .width , name = f"{ pin .name } _i_ddr" )
@@ -346,13 +348,15 @@ def get_oneg(o):
346
348
return get_oneg (pin .o )
347
349
elif pin .xdr == 1 :
348
350
o_sdr = Signal (pin .width , name = f"{ pin .name } _o_sdr" )
349
- m .submodules += Instance ("$dff" ,
350
- p_CLK_POLARITY = 1 ,
351
- p_WIDTH = pin .width ,
352
- i_CLK = pin .o_clk ,
353
- i_D = get_oneg (pin .o ),
354
- o_Q = o_sdr ,
355
- )
351
+ for bit in range (pin .width ):
352
+ o_neg = get_oneg (pin .o )
353
+ m .submodules += Instance ("dff" ,
354
+ i_clk = pin .o_clk ,
355
+ i_d = o_neg [bit ],
356
+ o_q = o_sdr [bit ],
357
+ o_clrn = Const (1 ),
358
+ o_prn = Const (1 ),
359
+ )
356
360
return o_sdr
357
361
elif pin .xdr == 2 :
358
362
o_ddr = Signal (pin .width , name = f"{ pin .name } _o_ddr" )
@@ -374,13 +378,14 @@ def _get_oereg(m, pin):
374
378
elif pin .xdr in (1 , 2 ):
375
379
oe_reg = Signal (pin .width , name = f"{ pin .name } _oe_reg" )
376
380
oe_reg .attrs ["useioff" ] = "1"
377
- m .submodules += Instance ("$dff" ,
378
- p_CLK_POLARITY = 1 ,
379
- p_WIDTH = pin .width ,
380
- i_CLK = pin .o_clk ,
381
- i_D = pin .oe ,
382
- o_Q = oe_reg ,
383
- )
381
+ for bit in range (pin .width ):
382
+ m .submodules += Instance ("dff" ,
383
+ i_clk = pin .o_clk ,
384
+ i_d = pin .oe ,
385
+ o_q = oe_reg [bit ],
386
+ o_clrn = Const (1 ),
387
+ o_prn = Const (1 ),
388
+ )
384
389
return oe_reg
385
390
assert False
386
391
0 commit comments