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 |