@@ -172,26 +172,15 @@ def __repr__(self):
172
172
See :meth:`AsyncSerialRX.Signature.check_parameters`.
173
173
"""
174
174
def __init__ (self , * , divisor , divisor_bits = None , data_bits = 8 , parity = "none" , pins = None ):
175
- self .Signature .check_parameters (divisor = divisor , divisor_bits = divisor_bits ,
176
- data_bits = data_bits , parity = parity )
177
- self ._divisor = divisor
178
- self ._divisor_bits = divisor_bits if divisor_bits is not None else bits_for (divisor )
179
- self ._data_bits = data_bits
180
- self ._parity = Parity (parity )
181
- self ._pins = pins
182
-
183
- super ().__init__ ()
184
-
185
- @property
186
- def signature (self ):
187
- return self .Signature (divisor = self ._divisor , divisor_bits = self ._divisor_bits ,
188
- data_bits = self ._data_bits , parity = self ._parity )
175
+ super ().__init__ (self .Signature (divisor = divisor , divisor_bits = divisor_bits ,
176
+ data_bits = data_bits , parity = parity ))
177
+ self ._pins = pins
189
178
190
179
def elaborate (self , platform ):
191
180
m = Module ()
192
181
193
182
timer = Signal .like (self .divisor )
194
- shreg = Signal (_FrameLayout (self ._data_bits , self ._parity ))
183
+ shreg = Signal (_FrameLayout (len ( self .data ) , self .signature . parity ))
195
184
bitno = Signal (range (len (shreg .as_value ())))
196
185
197
186
if self ._pins is not None :
@@ -224,7 +213,7 @@ def elaborate(self, platform):
224
213
self .data .eq (shreg .data ),
225
214
self .err .frame .eq (~ ((shreg .start == 0 ) & (shreg .stop == 1 ))),
226
215
self .err .parity .eq (~ (shreg .parity ==
227
- self ._parity ._compute_bit (shreg .data ))),
216
+ self .signature . parity ._compute_bit (shreg .data ))),
228
217
]
229
218
m .d .sync += self .err .overflow .eq (~ self .ack )
230
219
m .next = "IDLE"
@@ -357,26 +346,15 @@ def __repr__(self):
357
346
See :class:`AsyncSerialTX.Signature.check_parameters`.
358
347
"""
359
348
def __init__ (self , * , divisor , divisor_bits = None , data_bits = 8 , parity = "none" , pins = None ):
360
- self .Signature .check_parameters (divisor = divisor , divisor_bits = divisor_bits ,
361
- data_bits = data_bits , parity = parity )
362
- self ._divisor = divisor
363
- self ._divisor_bits = divisor_bits if divisor_bits is not None else bits_for (divisor )
364
- self ._data_bits = data_bits
365
- self ._parity = Parity (parity )
366
- self ._pins = pins
367
-
368
- super ().__init__ ()
369
-
370
- @property
371
- def signature (self ):
372
- return self .Signature (divisor = self ._divisor , divisor_bits = self ._divisor_bits ,
373
- data_bits = self ._data_bits , parity = self ._parity )
349
+ super ().__init__ (signature = self .Signature (divisor = divisor , divisor_bits = divisor_bits ,
350
+ data_bits = data_bits , parity = parity ))
351
+ self ._pins = pins
374
352
375
353
def elaborate (self , platform ):
376
354
m = Module ()
377
355
378
356
timer = Signal .like (self .divisor )
379
- shreg = Signal (_FrameLayout (len (self .data ), self ._parity ))
357
+ shreg = Signal (_FrameLayout (len (self .data ), self .signature . parity ))
380
358
bitno = Signal (range (len (shreg .as_value ())))
381
359
382
360
if self ._pins is not None :
@@ -389,7 +367,7 @@ def elaborate(self, platform):
389
367
m .d .sync += [
390
368
shreg .start .eq (0 ),
391
369
shreg .data .eq (self .data ),
392
- shreg .parity .eq (self ._parity ._compute_bit (self .data )),
370
+ shreg .parity .eq (self .signature . parity ._compute_bit (self .data )),
393
371
shreg .stop .eq (1 ),
394
372
bitno .eq (len (shreg .as_value ()) - 1 ),
395
373
timer .eq (self .divisor - 1 ),
@@ -540,28 +518,21 @@ def __repr__(self):
540
518
See :meth:`AsyncSerial.Signature.check_parameters`.
541
519
"""
542
520
def __init__ (self , * , divisor , divisor_bits = None , data_bits = 8 , parity = "none" , pins = None ):
543
- self .Signature .check_parameters (divisor = divisor , divisor_bits = divisor_bits ,
544
- data_bits = data_bits , parity = parity )
545
- self ._divisor = divisor
546
- self ._divisor_bits = divisor_bits if divisor_bits is not None else bits_for (divisor )
547
- self ._data_bits = data_bits
548
- self ._parity = Parity (parity )
549
- self ._pins = pins
550
-
551
- super ().__init__ ()
552
-
553
- @property
554
- def signature (self ):
555
- return self .Signature (divisor = self ._divisor , divisor_bits = self ._divisor_bits ,
556
- data_bits = self ._data_bits , parity = self ._parity )
521
+ super ().__init__ (self .Signature (divisor = divisor , divisor_bits = divisor_bits ,
522
+ data_bits = data_bits , parity = parity ))
523
+ self ._pins = pins
557
524
558
525
def elaborate (self , platform ):
559
526
m = Module ()
560
527
561
- rx = AsyncSerialRX (divisor = self ._divisor , divisor_bits = self ._divisor_bits ,
562
- data_bits = self ._data_bits , parity = self ._parity )
563
- tx = AsyncSerialTX (divisor = self ._divisor , divisor_bits = self ._divisor_bits ,
564
- data_bits = self ._data_bits , parity = self ._parity )
528
+ rx = AsyncSerialRX (divisor = self .signature .divisor ,
529
+ divisor_bits = self .signature .divisor_bits ,
530
+ data_bits = self .signature .data_bits ,
531
+ parity = self .signature .parity )
532
+ tx = AsyncSerialTX (divisor = self .signature .divisor ,
533
+ divisor_bits = self .signature .divisor_bits ,
534
+ data_bits = self .signature .data_bits ,
535
+ parity = self .signature .parity )
565
536
m .submodules .rx = rx
566
537
m .submodules .tx = tx
567
538
0 commit comments