Lightweight UART core written in VHDL.
Version | Date | Source | Change log |
---|---|---|---|
latest | latest.zip | ||
v0.2.0 | 2021-06-06 | v0.2.0.zip | revised interface and architecture, new debouncer |
v0.1.0 | 2018-09-06 | v0.1.0.zip | initial draft |
- independent RX and TX path
- buffer register on RX and TX
- parameterizable data size
- one or two stop bits
- settable baud rate
- optional parity (odd/even)
Name | Default | Values | Description |
---|---|---|---|
WLS | 8 | 5..8 | word length select; data bits |
CLK | 50_000_000 | positive | master clock frequency in Hz |
BPS | 115200 | positive | baud rate per second |
SBS | 1 | 1..2 | Stop bit select |
PI | true | boolean | Parity inhibit |
EPE | true | boolean | Even parity enable, otherwise odd |
DEBU | 3 | 0..11 | debouncer stages |
TXIMPL | true | boolean | TX path implemented |
RXIMPL | true | boolean | RX path implemented |
Settable at compile time.
Port | Dir | Width | Description |
---|---|---|---|
R | in | 1b | asynchronous reset |
C | in | 1b | clock, rising-edge only |
TXD | out | 1b | serial UART output |
RXD | in | 1b | serial UART input |
RR | out | 5b..8b | Receiver Holding Register Data Output |
PE | out | 1b | Parity error |
FE | out | 1b | Framing error |
DR | out | 1b | Data Received, one clock cycle high |
TR | in | 5b..8b | Transmitter Holding Register Data Input |
THRE | out | 1b | Transmitter Holding Register Empty |
THRL | in | 1b | Transmitter Holding Register Load |
TRE | out | 1b | Transmitter Register Empty |
The block diagram visualizes the simplified tinyUART architecture. Blocks with solid lines are own sub entities. All blocks with dashed lines are implemented in the top level.
Technology | EDA | HDL generics | Logic | Registers | BRAM | Fmax |
---|---|---|---|---|---|---|
Cyclone 10 | Q18.1 | defaults | 89LEs | 79FF | 0 | 89.61MHz |
Cyclone 10 | Q18.1 | defaults, TXIMPL=false | 43LEs | 41FF | 0 | 89.61MHz |
Cyclone 10 | Q18.1 | defaults, RXIMPL=false | 50LEs | 38FF | 0 | 89.67MHz |