Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wyvernsemi/pcievhost
PCIe (1.0a to 2.0) Virtual Root Complex model for Verilog, with Endpoint capabilities
https://github.com/wyvernsemi/pcievhost
bfm c cosim modelling pcie pli verification verilog virtual
Last synced: about 8 hours ago
JSON representation
PCIe (1.0a to 2.0) Virtual Root Complex model for Verilog, with Endpoint capabilities
- Host: GitHub
- URL: https://github.com/wyvernsemi/pcievhost
- Owner: wyvernSemi
- License: gpl-3.0
- Created: 2016-10-07T14:50:15.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-02-04T15:22:22.000Z (3 days ago)
- Last Synced: 2025-02-04T16:27:29.014Z (3 days ago)
- Topics: bfm, c, cosim, modelling, pcie, pli, verification, verilog, virtual
- Language: C
- Homepage: http://www.anita-simulators.org.uk/wyvernsemi
- Size: 3.92 MB
- Stars: 89
- Watchers: 12
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pcievhost
PCIe (1.0a to 2.0) Virtual host model for Verilog and SystemVerilog logic simulation environments.The _pcievhost_ model generates PCIe Physical, Data Link and Transaction Layer traffic for up to 16 lanes, controlled from a user C program, via a comprehensive API. It has configurable internal memory and configuration space models, and will auto-generate completions (configurably), with flow control, ACKs, and NAKS etc. The protocol itself is modelled in C and is integrated with a logic simulation using the [_VProc_](https://github.com/wyvernSemi/vproc) virtual processor. The diagram below shows the structure of the model which ultimately generates a stream of 8b10b encoded symbols, and processes the returned symbols.
_pcievhost_ is bundled with verilog pcie link traffic display modules and an example test harness. The model has been tested with ModelSim/Questa, Vivado xsim and Verilator at the present time, though easily adpated for other simulators. The _pcievhost_ model can also be configured to act as an _**endpoint**_ via a parameter and with simple running user code—the model itself automatically generating responses to transactions. The diagram below shows the example test bench structure.
More information can be found in the documentation
doc/pcieVHost.pdf