You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*`divisor_init` is a positive integer used as initial value for `Divisor`. It is a 16-bit value, where the lower 13 bits are assigned to `Divisor.cnt`, and the upper 3 bits are assigned to `Divisor.psc`as a log2.
241
+
*`divisor_init` is a tuple of two positive integers used as initial values for `Divisor.cnt` and `Divisor.psc`respectively.
242
242
*`addr_width`, `data_width` and `name` are passed to a `csr.Builder`.
243
243
*`data_bits` is a non-negative integer passed to `Data` and `ReceiverPHYSignature`.
244
244
- a `.signature` property, that returns a `wiring.Signature` with the following members:
@@ -254,7 +254,7 @@ The `uart.ReceiverPeripheral` class is a `wiring.Component` implementing the rec
254
254
255
255
The `uart.TransmitterPeripheral` class is a `wiring.Component` implementing the transmitter of an UART peripheral, with:
*`divisor_init` is a positive integer used as initial value for `Divisor`. It is a 16-bit value, where the lower 13 bits are assigned to `Divisor.cnt`, and the upper 3 bits are assigned to `Divisor.psc`as a log2.
257
+
*`divisor_init` is a tuple of two positive integers used as initial values for `Divisor.cnt` and `Divisor.psc`respectively.
258
258
*`addr_width`, `data_width` and `name` are passed to a `csr.Builder`.
259
259
*`data_bits` is a non-negative integer passed to `Data` and `TransmitterPHYSignature`.
260
260
- a `.signature` property, that returns a `wiring.Signature` with the following members:
@@ -270,7 +270,7 @@ The `uart.TransmitterPeripheral` class is a `wiring.Component` implementing the
270
270
271
271
The `uart.Peripheral` class is a `wiring.Component` implementing an UART peripheral, with:
*`divisor_init` is a positive integer used as initial value for `Divisor`. It is a 16-bit value, where the lower 13 bits are assigned to `Divisor.cnt`, and the upper 3 bits are assigned to `Divisor.psc`as a log2.
273
+
*`divisor_init` is a tuple of two positive integers used as initial values for `Divisor.cnt` and `Divisor.psc`respectively.
274
274
*`addr_width`, `data_width` and `name` are passed to a `csr.Builder`. `addr_width` must be at least 1. The peripheral address space is split in two, with the lower half occupied by a `ReceiverPeripheral` and the upper by a `TransmitterPeripheral`.
275
275
*`data_bits` is a non-negative integer passed to `ReceiverPeripheral`, `TransmitterPeripheral`, `ReceiverPHYSignature` and `TransmitterPHYSignature`.
276
276
@@ -290,7 +290,7 @@ The `uart.Peripheral` class is a `wiring.Component` implementing an UART periphe
290
290
- This design decouples the UART peripheral from its PHY, which must be provided by the user.
291
291
- The receiver and transmitter have separate `Divider` registers, despite using identical values
292
292
in most cases.
293
-
- Configuring the baudrate through the `Divider` register requires knowledge of the clock frequency used by the peripheral.
293
+
- Configuring the baudrate through the `Divisor` register requires knowledge of the clock frequency used by the peripheral.
@@ -299,7 +299,7 @@ The `uart.Peripheral` class is a `wiring.Component` implementing an UART periphe
299
299
- Decoupling the peripheral from the PHY allows flexibility in implementations. For example, it is easy to add FIFOs between the PHYs and the peripheral.
300
300
- A standalone `ReceiverPeripheral` or `TransmitterPeripheral` can be instantiated.
301
301
302
-
- The choice of a 16-bit `Divisor` register with a 3-bit prescaler covers the most common frequency/baudrate combinations with an error rate (due to quantization) below 1%.
302
+
- The choice of a 13-bit divisor with a 3-bit prescaler covers the most common frequency/baudrate combinations with an error rate (due to quantization) below 1%.
303
303
304
304
*TODO: a table showing frequency/baudrate combinations*
0 commit comments