GNU General Public License v3.0

项目介绍

wyvernSemi/pcievhost 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前获得 155 个 Star、35 次 Fork。

仓库全名
wyvernSemi/pcievhost
开源许可证
GNU General Public License v3.0
Star 数
155
Fork 数
35
未关闭 Issue
1

README 摘要

pcievhost PCIe (1.0a to 2.0) Virtual host model for VHDL, 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,…

完整内容见 GitHub 原始 README 或本页 。

常见问题

pcievhost 用什么语言开发?

主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前有 155 个 Star。

pcievhost 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 pcievhost 的源码?

可以直接克隆仓库:git clone https://github.com/wyvernSemi/pcievhost.git,默认分支为 master;安装与运行步骤见仓库 README。

pcievhost 最近还在维护吗?

仓库最近一次更新为 6月16日,当前有 1 个未关闭 Issue;Star 数为 155,可作为社区活跃度的参考。

关于

PCIe (1.0a to 2.0) Virtual Root Complex model, in C, co-simulating with Verilog, SystemVerilog and VHDL, with Endpoint capabilities

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
239
价值分
104
活跃状态
活跃

语言占比

Batchfile
C
C++
Makefile
Stata
SystemVerilog
Tcl
VHDL
Verilog

贡献者

README

pcievhost

PCIe (1.0a to 2.0) Virtual host model for VHDL, 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 virtual processor. Below is a list of features of the model:

  • All lane widths up to 16
  • Internal memory space accessed with incoming write/read requests (can be disabled)
  • Auto-generation of read completions (can be disabled)
  • Auto-generation of ‘unsupported’ completions (can be disabled)
  • Auto-generation of Acks/Naks (can be disabled)
  • Auto-generation of Flow control (can be disabled)
  • Auto-generation of Skip OS (can be disabled)
  • User generation of all TLP types
    • Memory Reads/Writes
    • Read completions
    • Config Reads/Writes
    • IO Reads/Writes
    • Messages
  • User generation of all DLLP types
    • Acks/Naks
    • Flow control
    • Power management
    • Vendor
  • User generation of all training sequences
  • User generation of all ordered sets
  • User generation of idle
  • 8b10b encoding and decoding (can be disabled)
  • Scrambling and Descrambling (can be disabled)
  • Proper throttling on received flow control
  • Lane reversal
  • Lane Inversion
  • Serial input/output support
  • Programmable FC delay (via Rx packet consumption rates)
  • Programmable Ack/Nak delay
  • LTSSM (partial implementation)

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 Questa (Verilog and VHDL), Vivado xsim, Verilator, NVC and GHDL 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

评论

暂无评论