b008b37d49
Add a Tutorial tree that mirrors the roadmap from Phase 0 through Linux bring-up. Each phase and subphase gets a short learning note with consistent sections for context, goals, new concepts, mental model, learning tasks, pitfalls, tooling, testing, and references. The tutorial material is intentionally explanatory rather than implementation code. It gives a systems-oriented learner enough FPGA, SystemVerilog, RISC-V, firmware, and Linux bring-up context to approach each roadmap phase without turning the notes into copy-paste RTL.
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Phase 2.2 - Optional VIO Validation
|
|
|
|
## Context
|
|
|
|
The register file is simple enough that simulation is usually sufficient, but VIO can
|
|
teach practical debug techniques on real FPGA state.
|
|
|
|
## Goals
|
|
|
|
- Practice observing and driving register-file signals in hardware.
|
|
- Confirm reset/write/read expectations after synthesis.
|
|
- Learn when hardware debug is worth the overhead.
|
|
|
|
## New Concepts
|
|
|
|
- Probe: signal connected to debug IP for observation.
|
|
- Debug visibility: whether a net survives optimization and can be inspected.
|
|
- Hardware Manager: Vivado tool for programming and interacting with the FPGA.
|
|
|
|
## How To Think About It
|
|
|
|
Use VIO here only as a learning exercise. Do not make it a habit to replace systematic
|
|
simulation with manual poking.
|
|
|
|
## Learning Tasks
|
|
|
|
- Select a minimal set of probes: addresses, write data, write enable, read outputs.
|
|
- Compare one same-cycle read/write case with the simulator.
|
|
- Observe how a clocked write appears relative to your VIO actions.
|
|
|
|
## Pitfalls
|
|
|
|
- Over-instrumenting and making the debug design harder than the actual module.
|
|
- Forgetting that manual tests rarely cover corner cases.
|
|
- Treating VIO as evidence of complete correctness.
|
|
|
|
## Tooling And Testing
|
|
|
|
- Keep the VIO wrapper separate from the synthesizable register-file module.
|
|
- Remove or isolate debug IP before building later phases.
|
|
- Check resource utilization with and without debug IP.
|
|
|
|
## References
|
|
|
|
- Vivado debug documentation: https://docs.xilinx.com/
|
|
- Digilent Arty A7 reference: https://digilent.com/reference/programmable-logic/arty-a7/reference-manual
|
|
- LowRISC style guide: https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md
|
|
|