個人資料
歸檔
正文

PCIe-Verilog-UVM

(2022-03-10 07:49:28) 下一個

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/? 

 

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.