PCIe-Verilog-UVM

打印 被阅读次数

1.PCIe

https://olegkutkov.me/2021/01/07/writing-a-pci-device-driver-for-linux/ 
https://wiki-osdev-org.translate.goog/PCI?_x_tr_sl=en&_x_tr_tl=zh-CN&_x_tr_hl=en&_x_tr_pto=wapp#Class_Codes 
https://blog.csdn.net/u010872301/article/details/78519371 
https://blog.csdn.net/qq_39815222/article/details/122128036?spm=1001.2101.3001.6650.1
https://www.kernel.org/doc/html/latest/PCI/
Synopsis driver: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/pci/controller/dwc/pcie-designware.c 
■PCI Express Base Specification, Revision 5.0, Version 1.0Access to this specification requires membership in PCI-SIG.Download site: http://pcisig.com/specifications ■PIPE Specification for PCI Express, Version 4.4.1, Version 5.1.1Download site:http://www.intel.com/technology/pciexpress/devnet/resources.htm 
PCIe教程:http://blog.chinaaet.com/justlxy/p/5100053251 
CXL 2.0: https://www.youtube.com/watch?v=FaIK_SFe_i8 

2. System Verilog

SystemVerilog 开始合并许多不相交的验证语言,例如 Vera 和,它们被构建为 Verilog 和 VHDL 之上的一个层。这些语言中的每一种都有自己的专有方法(RVM 和 eRM),它们提供了一个可重用的框架来构建、配置和执行测试。

SystemVerilog 成立后,它需要自己的方法论,Mentor 在 2006 年创建了源自 SystemC 概念的 AVM(高级验证方法)。Synopsys 将其基于 Vera 的 RVM(重用验证方法)库转换为 SystemVerilog,并将其称为 VMM(验证方法手册),但并未公开发布。Mentor 和 Cadence 于 2008 年联合创建了 OVM(开放验证方法),这是现有 AVM 与RM 概念的合并。

最终到 2011 年,Mentor、Cadence 和 Synopsys 通过 Accellera 联合起来,创建了 UVM(通用验证方法)。寄存器抽象层源自 VMM。

人们可以整天争论不同方法之间的差异以及谁先做了什么,但它们都有相同的目的 - 提供基于软件编程中常见设计模式的标准方法。采用最简单的概念之一——报告。这些方法为您提供了致命、错误、警告和信息报告的标准以及过滤这些消息的方法。任何查看代码的人都将能够理解报告是如何生成和控制的,并且每个项目都是一样的。

2.1 System verilog

https://www.asic-world.com/systemverilog/tutorial.html 

interface chip_bus; // Systemverilog interface (container)
wire read_request, read_grant;
wire [7:0]address, data;
endinterface: chip_bus  //end interface
 
module RAM(chip_bus io, inputclk);  //module can use signal in interface 
...
endmodule
 
module CPU(chip_bus io, input clk);
...
endmodule
 
module top; //app top module, note Systemverilog has a hidden $root as top module or gloabal var space
reg clk = 0;
chip_bus a; // instantiate interface
 
RAM mem(a,clk); // connect interface with module
CPU cpu(a,clk);
endmodule

//SystemVerilog语言简介: https://blog.51cto.com/u_15346322/4931766
//always_ff:表示时序逻辑的过程;always_comb:表示组合逻辑的过程;always_latch:表示锁存逻辑的过程。fork-join, process, macro(`), unique/requires, break/continue/return. 

Altera Quartus or Xilinx ISE/Vivado。Xilinx+Modelsim:https://cseweb.ucsd.edu/classes/fa05/cse140L/Xilinx_install/XilinxInstall.html Altera的官网也可下载适合fpga的modelsim ,在安装时选择starter edition就免费。

2.2 System C

4 UVM

https://www.verifasttech.com/learn-systemverilog-uvm/? 

 

登录后才可评论.