# Current implementation status
Currently peripherals of a nRF52833 and nrf5340 SOCs are modelled at varying degrees:
Notation:
| Mark | Meaning |
|---|---|
| ✅ | Fully completed |
| ✔ | Implemented |
| ☐ | Minimal/stubbed implementation |
| 𐄂 | Missing |
| | | **nRF52833** | **nRF5340** | Notes |
|---|---|---|---|---|
| **AAR** | Accelerated address resolver | ✔ | ✔ | See [NHW_AAR.c](../src/HW_models/NHW_AAR.c) |
| **ACL** | Access control lists | 𐄂 | 𐄂 | |
| **CACHE** | Instruction/data cache | N/A | 𐄂 | |
| **CCM** | AES CCM mode encryption | ✔ | ✔ | See [NHW_AES_CCM.c](../src/HW_models/NHW_AES_CCM.c) |
| **CLOCK** | Clock control | ✔ | ✔ | See [NHW_CLOCK.c](../src/HW_models/NHW_CLOCK.c) |
| **COMP** | Comparator | 𐄂 | 𐄂 | |
| **DPPI** | Distributed programmable peripheral interconnect | N/A | ✅ | |
| **ECB** | AES electronic codebook mode encryption | ✅ | ✅ | |
| **EGU** | Event generator unit | ✅ | ✅ | |
| **FICR** | Factory information configuration registers | ✔ | ✔ | For 52: See [NHW_52_FICR.c](../src/HW_models/NHW_52_FICR.c)
For 53: See [NHW_53_FICR.c](../src/HW_models/NHW_53_FICR.c) |
| **GPIO** | General purpose input/output | ✔ | 𐄂 | For 52: See [NRF_GPIO.c](../src/HW_models/NRF_GPIO.c) |
| **GPIOTE** | GPIO tasks and events | ✅ | 𐄂 | For 52: Complete with very minor differences, see [NRF_GPIOTE.c](../src/HW_models/NRF_GPIOTE.c) |
| **I2S** | Inter-IC sound interface | 𐄂 | 𐄂 | |
| **IPC** | Interprocessor communication | N/A | ✔ | See [NHW_IPC.c](../src/HW_models/NHW_IPC.c) |
| **KMU** | Key management unit | 𐄂 | 𐄂 | |
| **LPCOMP** | Low-power comparator | 𐄂 | 𐄂 | |
| **MUTEX** | Mutual exclusive peripheral | N/A | ✅ | |
| **MWU** | Memory watch unit | 𐄂 | N/A | |
| **NFCT** | Near field communication tag | 𐄂 | 𐄂 | |
| **NVMC** | Non-volatile memory controller | ✔ | ✔ | See [NHW_NVMC.c](../src/HW_models/NHW_NVMC.c) |
| **OSCILLATORS** | Oscillator control | N/A | 𐄂 | |
| **PDM** | Pulse density modulation interface | 𐄂 | 𐄂 | |
| **POWER** | Power supply | ☐ | ☐ | Only register stubs |
| **PPI** | Programmable peripheral interconnect | ✅ | N/A | Complete but some peripheral connections are missing |
| **PWM** | Pulse width modulation | 𐄂 | 𐄂 | |
| **QDEC** | Quadrature decoder | 𐄂 | 𐄂 | |
| **RADIO** | 2.4 GHz radio | ✔ | ✔ | See [NHW_RADIO.c](../src/HW_models/NHW_RADIO.c) |
| **REGULATORS** | Regulator control | N/A | 𐄂 | |
| **RESET** | Reset control | N/A | ☐ | Only register stubs |
| **RNG** | Random number generator | ✔ | ✔ | See [NHW_RNG.c](../src/HW_models/NHW_RNG.c) |
| **RTC** | Real-time counter | ✔ | ✔ | See [NHW_RTC.c](../src/HW_models/NHW_RTC.c) |
| **SAADC** | Successive approximation analog-to-digital converter | 𐄂 | 𐄂 | |
| **[Q]SPI[M/S]** | [Quad] Serial peripheral interface [master/slave] | 𐄂 | 𐄂 | |
| **SPU** | System protection unit | N/A | 𐄂 | |
| **SWI** | Software interrupts | ✅ | ✅ | |
| **TEMP** | Temperature sensor | ✔ | ✔ | See [NHW_TEMP.c](../src/HW_models/NHW_TEMP.c) |
| **TIMER** | Timer/counter | ✅ | ✅ | |
| **TWI[M/S]** | I2C compatible two-wire interface | 𐄂 | 𐄂 | |
| **UART[E]** | Universal asynchronous receiver/transmitter [with EasyDMA] | ✔ | ✔ | For 53: It cannot be used yet w Zephyr as the Zephyr driver requires a working nRF53 GPIO |
| **UICR** | User information configuration registers | ✔ | ✔ | See [NHW_NVMC.c](../src/HW_models/NHW_NVMC.c) |
| **USBD** | Universal serial bus device | 𐄂 | 𐄂 | |
| **USBREG** | Universal serial bus device | N/A | 𐄂 | |
| **VREQCTRL** | Voltage request control | N/A | ☐ | Only register stubs |
| **VMC** | Volatile memory controller | N/A | 𐄂 | |
| **WDT** | Watchdog timer | 𐄂 | 𐄂 | |
ARM processor peripherals or the AHB interconnect are not part of these models