工作職責: 1、 驗證策略與規(guī)劃: a) 根據(jù)設計規(guī)范、微架構(gòu)文檔和系統(tǒng)要求,制定全面詳細的驗證計劃(測試計劃),并深入了解 FPGA 的特定考慮因素。 b) 定義復雜 FPGA IP 模塊和系統(tǒng)級集成的驗證方法和策略。 c) 識別 FPGA 設計中的關(guān)鍵驗證場景、特殊情況以及潛在的集成問題(例如,資源利用率、時序收斂影響)。
2、 高級測試環(huán)境開發(fā): a) 主要使用 SystemVerilog/UVM 構(gòu)建、設計、開發(fā)和維護穩(wěn)健、可擴展且可重用的驗證測試平臺和環(huán)境。 b) 開發(fā)復雜的 UVM 組件,例如驅(qū)動程序、監(jiān)視器、記分板、預測器和代理。 c) 集成并配置用于標準協(xié)議(例如 PCIe、以太網(wǎng)、DDR、USB、AXI/APB/AHB)的復雜驗證 IP (VIP) 和通用驗證組件 (UVC)。 d) 實現(xiàn)功能覆蓋模型(覆蓋組、覆蓋點、交叉)并使用 SystemVerilog 斷言 (SVA) 斷言屬性,以增強驗證完整性。
3、 測試用例開發(fā)與執(zhí)行: a) 開發(fā)約束隨機測試用例和序列,以實現(xiàn)高功能和代碼覆蓋率。 b) 針對關(guān)鍵功能和極端情況開發(fā)特定的定向測試。 c) 管理和維護回歸套件,確保高效執(zhí)行和報告。 d) 執(zhí)行各種類型的仿真:RTL 級、門級以及潛在的功耗感知仿真。
4、 調(diào)試和根本原因分析: a) 使用波形查看器和高級調(diào)試技術(shù),熟練地調(diào)試仿真中的復雜測試故障。 b) 與 FPGA 設計工程師有效協(xié)作,識別并解決設計錯誤。 c) 利用 FPGA 供應商特定的調(diào)試工具(例如 Xilinx Vivado 的集成邏輯分析儀 (ILA)、Intel Quartus Prime 的 SignalTap II)進行硬件內(nèi)調(diào)試。
5、 覆蓋率收斂和指標: a) 分析功能覆蓋率和代碼覆蓋率指標,識別差距,并提出覆蓋率收斂策略。 b) 推動實現(xiàn)驗證收斂的流程。
6、 方法論和自動化: a) 應用并倡導現(xiàn)代驗證方法,主要是 UVM。 b) 開發(fā)并維護用于仿真流程、回歸管理、覆蓋率分析、報告生成和構(gòu)建系統(tǒng)的復雜自動化腳本(例如 Python、Perl、Tcl)。 c) 致力于改進驗證流程和工藝。
7、 硬件在環(huán) (HIL) / 在系統(tǒng)驗證: a) 制定在實際硬件上測試 FPGA 設計的策略和測試用例。 b) 具備實驗室環(huán)境下測試設置、啟動和調(diào)試的經(jīng)驗。 c) 了解軟硬件協(xié)同驗證的原理。
8、 協(xié)作與溝通: a) 與 FPGA 設計工程師、系統(tǒng)架構(gòu)師和軟件團隊無縫協(xié)作。 b) 提供清晰簡潔的驗證計劃、測試平臺、測試用例和錯誤報告文檔。 c) 向團隊和利益相關(guān)者展示驗證狀態(tài)、挑戰(zhàn)和結(jié)果。
2、 語言: a) 硬件描述語言 (HDL):精通 SystemVerilog,用于高級測試平臺開發(fā)。精通 Verilog 和/或 VHDL,能夠理解 RTL 代碼。 b) 腳本語言:精通 Python、Perl 和/或 Tcl,能夠進行測試自動化、數(shù)據(jù)處理和工具集成。 c) 編程語言:具備豐富的 C/C++ 技能,能夠開發(fā)驗證模型、測試模式或處理 FPGA 上的嵌入式處理器。
3、 驗證方法: a) 精通通用驗證方法 (UVM),包括高級特性、定制和最佳實踐。 b) 擁有使用 SystemVerilog 斷言 (SVA) 進行基于斷言的驗證 (ABV) 的豐富經(jīng)驗。 c) 了解形式化驗證概念或工具者優(yōu)先。
4、 工具: a) FPGA 供應商工具:擁有使用主流 FPGA 供應商工具鏈進行綜合、布局布線和比特流生成的實踐經(jīng)驗(例如 Xilinx Vivado、Intel Quartus Prime)。 b) EDA 仿真工具:熟練使用行業(yè)標準 EDA 仿真工具(例如 Synopsys VCS、Cadence Xcelium、Siemens Questa/ModelSim)。 c) 調(diào)試工具:精通波形查看器。熟練使用 FPGA 供應商提供的硬件內(nèi)調(diào)試工具(例如 ILA、SignalTap)。具備使用實驗室設備(示波器、邏輯分析儀)進行板級啟動和調(diào)試的經(jīng)驗。
5、 數(shù)字設計與 FPGA 架構(gòu): a) 精通數(shù)字設計原理、RTL 設計、跨時鐘域 (CDC) 問題、復位同步和異步設計。 b) 深入了解 FPGA 架構(gòu)和內(nèi)部資源(查找表 (LUT)、觸發(fā)器 (FF)、塊 RAM、DSP 切片、收發(fā)器)。以及設計約束。 c) 熟悉常見的高速接口和協(xié)議(例如 PCIe、以太網(wǎng)、DDR 內(nèi)存控制器、SerDes、MIPI、USB、AXI/APB/AHB)。 d) 了解 FPGA 設計的高級綜合 (HLS),或了解 FPGA 的功耗分析和低功耗驗證技術(shù)者優(yōu)先。
6、 系統(tǒng): a) 版本控制系統(tǒng):熟練使用 Git、SVN 或其他現(xiàn)代版本控制系統(tǒng)。 b) 操作系統(tǒng):熟練掌握 Linux/Unix 環(huán)境。 c) 具備使用仿真或原型設計平臺(例如 Palladium、Veloce)的經(jīng)驗者優(yōu)先。