The idea of using Accelerated VIP is to push the synthesizable part of the testbench into the separate top module along with the interface and it is named as HDL TOP and the unsynthesizable part is pushed into the HVL TOP. This setup provides the ability to run the longer tests quickly. This particular testbench can be used for the simulation as well as the emulation based on mode of operation.
- Supports Full Duplex SPI System
- Configurable shift register, basically of multiple of 2 bits (depends on character length).
- Programmable SPI clock frequency range
- Programmable character length (multiples of 8 bits)
- Programmable clock phase (delay or no delay)
- Programmable clock polarity (high or low)
- Supports Single Master, Multiple Slaves configuration.
- Supports Simple SPI mode
- Configurable shift directions (LSB first or MSB first)
- Delay of chip select low to posedge of sclk, last edge of sclk to raising edge of cs and chip select assert to deassert.
- Continuous and discontinuous transfer
We believe in growing together and if you'd like to contribute, please do check out the contributing guide below:
https://github.com/mbits-mirafra/spi_avip/blob/main/contribution_guidelines.md
# Checking for git software, open the terminal type the command
git version
# Get the VIP collateral
git clone git@github.com:mbits-mirafra/spi_avip.git
cd spi_avip/sim/questasim
# Compilation:
make compile
# Simulation:
make simulate test=<test_name> uvm_verbosity=<VERBOSITY_LEVEL>
ex: make simulate test=spi_simple_fd_8b_test uvm_verbosity=UVM_HIGH
# Note: You can find all the test case names in the path given below
spi_avip/src/hvl_top/testlists/spi_simple_fd_regression.list
# Wavefrom:
vsim -view <test_name>/waveform.wlf &
ex: vsim -view spi_simple_fd_8b_test/waveform.wlf &
# Regression:
make regression testlist_name=<regression_testlist_name.list>
ex: make regression testlist_name=spi_simple_fd_regression.list
# Coverage:
## Individual test:
firefox <test_name>/html_cov_report/index.html &
ex: firefox spi_simple_fd_8b_test/html_cov_report/index.html &
## Regression:
firefox merged_cov_html_report/index.html &
cd spi_avip/sim/cadence_sim
# Compilation:
make compile
# Simulation:
make simulate test=<test_name> uvm_verbosity=<VERBOSITY_LEVEL>
ex: make simulate test=spi_simple_fd_8b_test uvm_verbosity=UVM_HIGH
# Note: You can find all the test case names in the path given below
spi_avip/src/hvl_top/testlists/spi_simple_fd_regression.list
# Wavefrom:
simvision waves.shm/ &
# Regression:
make regression testlist_name=<regression_testlist_name.list>
ex: make regression testlist_name=spi_simple_fd_regression.list
# Coverage:
imc -load cov_work/scope/test/ &
https://github.com/mbits-mirafra/spi_avip/blob/main/doc/spi_avip_architectural_document.pdf
https://github.com/mbits-mirafra/spi_avip/blob/main/doc/spi_avip_user_guide.pdf
You can reach out to us over mbits@mirafra.com
For more information regarding Mirafra Technologies please do checkout our officail website:
https://mirafra.com/