Quad I/O SPI Flash memory controller with support for:
Intended to be used with SoCs that have no on-chip flash memory.
The following data is obtained using Sky130 HD library
Configuration | # of Cells (K) | Delay (ns) | Idyn (mA/MHz) | Is (nA) |
---|---|---|---|---|
16x16 | 7.2 | 12 | 0.0625 | 20 |
32x16 | 14.3 | 17 | 0.126 | 39.5 |
AHB-Lite Quad I/O SPI Flash memory controller with direct mapped cache and support for XiP.
The IP comes with an AHBL Wrapper
EF_QSPI_XIP_CTRL_APB INST (
`TB_AHBL_SLAVE_CONN,
.sck(sck),
.ce_n(ce_n),
.din(din),
.dout(dout),
.douten(douten)
);
NOTE: `TB_APB_SLAVE_CONN is a convenient macro provided by BusWrap.
The following table is the result for implementing the EF_QSPI_XIP_CTRL IP with different wrappers using Sky130 PDK and OpenLane2 flow.
Module | Number of cells | Max. freq |
---|---|---|
EF_QSPI_XIP_CTRL | 534 | 384 MHz |
EF_QSPI_XIP_CTRL_AHBL | 13024 | 40 MHz |
Port | Direction | Width | Description |
---|---|---|---|
sck | output | 1 | spi serial clock |
ce_n | output | 1 | slave select signal |
din | input | 4 | spi data in |
dout | output | 4 | spi data out |
douten | output | 4 | spi data out enable |
You can either clone repo or use IPM which is an open-source IPs Package Manager
git clone https://https://github.com/shalan/EF_QSPI_FLASH_CTRL
ipm install EF_QSPI_XIP_CTRL
In IP directory run:
cd verify/uvm-python/
To run all tests:
make run_all_tests BUS_TYPE=APB
To run a certain test:
make run_<test_name> BUS_TYPE=APB
To run all tests with a tag:
make run_all_tests TAG=<new_tag> BUS_TYPE=APB
To run all tests:
make run_all_tests BUS_TYPE=AHB
To run a certain test:
make run_<test_name> BUS_TYPE=AHB
To run all tests with a tag:
make run_all_tests TAG=<new_tag> BUS_TYPE=AHB
EF_QSPI_XIP_CTRL
Vendor
Efabless
Serial communication bus
Free
Open Source
Apache
EF Certified
Integrated