@@ -172,26 +172,15 @@ def __repr__(self):
172172 See :meth:`AsyncSerialRX.Signature.check_parameters`.
173173 """
174174 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
189178
190179 def elaborate (self , platform ):
191180 m = Module ()
192181
193182 timer = Signal .like (self .divisor )
194- shreg = Signal (_FrameLayout (self ._data_bits , self ._parity ))
183+ shreg = Signal (_FrameLayout (len ( self .data ) , self .signature . parity ))
195184 bitno = Signal (range (len (shreg .as_value ())))
196185
197186 if self ._pins is not None :
@@ -224,7 +213,7 @@ def elaborate(self, platform):
224213 self .data .eq (shreg .data ),
225214 self .err .frame .eq (~ ((shreg .start == 0 ) & (shreg .stop == 1 ))),
226215 self .err .parity .eq (~ (shreg .parity ==
227- self ._parity ._compute_bit (shreg .data ))),
216+ self .signature . parity ._compute_bit (shreg .data ))),
228217 ]
229218 m .d .sync += self .err .overflow .eq (~ self .ack )
230219 m .next = "IDLE"
@@ -357,26 +346,15 @@ def __repr__(self):
357346 See :class:`AsyncSerialTX.Signature.check_parameters`.
358347 """
359348 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
374352
375353 def elaborate (self , platform ):
376354 m = Module ()
377355
378356 timer = Signal .like (self .divisor )
379- shreg = Signal (_FrameLayout (len (self .data ), self ._parity ))
357+ shreg = Signal (_FrameLayout (len (self .data ), self .signature . parity ))
380358 bitno = Signal (range (len (shreg .as_value ())))
381359
382360 if self ._pins is not None :
@@ -389,7 +367,7 @@ def elaborate(self, platform):
389367 m .d .sync += [
390368 shreg .start .eq (0 ),
391369 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 )),
393371 shreg .stop .eq (1 ),
394372 bitno .eq (len (shreg .as_value ()) - 1 ),
395373 timer .eq (self .divisor - 1 ),
@@ -540,28 +518,21 @@ def __repr__(self):
540518 See :meth:`AsyncSerial.Signature.check_parameters`.
541519 """
542520 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
557524
558525 def elaborate (self , platform ):
559526 m = Module ()
560527
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 )
565536 m .submodules .rx = rx
566537 m .submodules .tx = tx
567538
0 commit comments