Back to Registry

silicon.apb.uart

stable

v1.0.3

Author: Silicon Commons
License: BSD-3-Clause

Compact UART controller with APB interface. Configurable baud rate, parity, and FIFO depth. Ideal for embedded systems.

Interfaces
NameTypeRoleWidth
apbAPBslave32
uart_txUARTmaster1
uart_rxUARTslave1
Parameters
NameTypeDefaultConstraints
FIFO_DEPTHinteger164, 8, 16, 32
DEFAULT_BAUDinteger115200-
CLK_FREQ_HZinteger100000000-
Compatibility

Clock Domains

  • Single clock domain

Reset Semantics

Synchronous active-high reset

Tool Support

Vivado 2021.1+Yosys 0.30+OpenLane 2.0+
Verification

Tests

  • Loopback tests
  • Baud rate accuracy
  • FIFO overflow/underflow

Simulators

VerilatorIcarus VerilogCocotb

Coverage

91% line coverage

Build Proof
TargetToolStatusFmaxResources
Xilinx Artix-7Vivado 2023.2Pass200 MHz312 LUTs
Lattice ECP5YosysPass125 MHz428 LCs
Sky130OpenLanePass50 MHz1,842 cells

Manifest

ip.yaml
name: silicon.apb.uart
version: 1.0.3
license: BSD-3-Clause
author: Silicon Commons

description: >
  Compact UART controller with APB interface.

interfaces:
  apb:
    type: apb
    role: slave
    width: 32
  uart_tx:
    type: uart
    role: master
  uart_rx:
    type: uart
    role: slave

parameters:
  FIFO_DEPTH:
    type: integer
    default: 16
    values: [4, 8, 16, 32]
  DEFAULT_BAUD:
    type: integer
    default: 115200

targets:
  - vivado
  - yosys
  - sky130