How mudumanojkumarnaik/spi_nor_flash_controller_sv works
This repository implements an SPI NOR flash controller and documents a class-based verification environment. The principal workflow is a test running the environment, which generates and drives transactions against the controller and checks observed behavior. The controller supports read, page program, sector erase, status-register read, and JEDEC-ID read operations. Relationships below follow the README’s architecture description; source excerpts were unavailable, so internal wiring and less explicit verification data flows are omitted.
Main entry points: spi_flash_env.sv Environment · spi_flash_controller.sv SPI Controller · spi_flash_monitor.sv Monitor · spi_flash_driver.sv Driver
Components 14
Flash Controller
- SPI Controller
RTL/spi_flash_controller.sv - SPI Interface
RTL/spi_flash_if.sv
Verification Environment
- Testbench Top
TB/tb_spi_flash_controller.sv - Test
TB/spi_flash_test.sv - Environment
TB/spi_flash_env.sv - Transaction
TB/spi_flash_transaction.sv - Generator
TB/spi_flash_generator.sv - Driver
TB/spi_flash_driver.sv - Monitor
TB/spi_flash_monitor.sv - Scoreboard
TB/spi_flash_scoreboard.sv - Coverage Collector
TB/spi_flash_coverage.sv - Assertions
TB/spi_flash_assertions.sv
Flash Device
- Flash Model
RTL/spi_flash_model.sv
Other components
- Host System
Connections 17
- Host System → SPI Controller: requests operations
- SPI Controller → SPI Interface: uses signals
- SPI Controller → Flash Model: communicates via SPI
- Testbench Top → Test: runs
- Test → Environment: starts
- Environment → Generator: coordinates
- Environment → Driver: coordinates
- Environment → Monitor: coordinates
- Environment → Scoreboard: coordinates
- Environment → Coverage Collector: coordinates
- Generator → Transaction: creates
- Driver → Transaction: uses
- Driver → SPI Interface: drives
- Monitor → SPI Interface: observes
- Scoreboard → Monitor: checks observations
- Coverage Collector → Monitor: collects coverage
- Assertions → SPI Controller: checks behavior