摘要 — 本文介绍了一种利用 cocotb 和 pyuvm 框架集成已建立的 SystemVerilog 验证 IP (SV-VIP) 来增强 Python 验证生态系统的新策略。基于 Python 的环境在验证社区中逐渐获得认可,人们正在探索其成为未来验证流程主流的潜力。这种方法利用了已建立的 SystemVerilog 生态系统,可以在 Python 设置中有效重用 SV-VIP。通过利用直接编程接口 (DPI-C) 和 ctypes 库,我们的方法可确保 Python 测试台和 SV-VIP 之间的无缝集成。这种集成不仅利用了 Python 的简单性和可读性,还增强了其处理复杂硬件验证任务的能力。本文通过两个实际实现说明了这种方法。它展示了 Python 作为一种强大且适应性强的验证语言不断发展的意义,并弥合了软件灵活性和硬件验证需求之间的当前鸿沟。
长凳由OpenHW开发的基于RISCV的CPU和内部领导的多站点国际验证团队在2008年8月9日成功的录音带上的主要贡献者 - 2014年5月 - 2014年5月•科罗拉多斯普林斯大学的科罗拉多大学,科罗拉多大学的科罗拉多大学大学和指导研究生课程,用于数字设计方法,使用SystemVerilog和uver Quarterigation in SystemVerilog and Indialerkey&digation Exerief-driping Extrey-MAR 2003- Labs/AMI半导体/在半导体上的半导体(多次收购)专门用于医疗市场的低功率ASIC。
在本文中,我们提出了 SystemC 语言中的时序断言。时序断言旨在用于对具有指定延迟的设计属性进行高级验证。这些断言看起来类似于时序 SystemVerilog 断言 (SVA)。每个时序断言都有前置条件表达式、时间参数、后置条件表达式和断言评估时的事件。每次发生事件时,如果前置条件在过去某个时间点为真(由时间参数指定),则检查后置条件是否为真。如果前置条件为真,但后置条件为假,则违反断言并报告错误。断言事件通常是时钟正沿、负沿或两个沿,因此我们可以在断言评估时考虑一个周期。时间参数用此类周期(发生的事件)的确切数量或范围表示。
RISC-V矢量加密扩展(ZVK)在2023年批准并集成到2024年的ISA主要手册中。这些表面支持在矢量寄存器文件上运行的高速对称加密(AES,SHA2,SM3,SM4),并且由于数据并行性而对标量密码扩展(ZK)提供了显着的性能改进。作为批准的扩展名,ZVK由编译器工具链提供支持,并且已经集成到流行的加密中间件(例如OpenSSL)中。我们报告了玛丽安(Marian),这是带有ZVK扩展程序的向量处理器的第一个开源硬件实现。设计基于纸浆“ ARA”矢量单元,该矢量单位本身就是流行的CVA6处理器的扩展。该实现位于SystemVerilog中,并已使用Virtex Ultrascale+ FPGA原型制作进行了测试,其计划的磁带针对22nm的过程节点。我们对矢量密码学对处理器的架构要求进行分析,以及对我们实施的绩效和面积的初步估计。
安全工程。i主要是汇编器,C和Python中的代码,我是Rust的粉丝。我的大多数硬件工作都是在SystemVerilog中完成的。i可以构建全系统FPGA原型。我熟悉正式验证和模型检查。我已经创建了各种功率/排放泄漏模型和侧通道安全工作的工具。我目前是RISC-V International(https://riscv.org)的RISC-V PQC任务组主席。i是2021年11月批准的RISC-V标量密码扩展的主要设计师之一;具体而言,熵源(ZKR),恒定时间执行(ZKT)和32位AES/SM4指令[14、15、17]。i构建了PQShield的第一个商业PQC硬件模块,该模块提供了侧渠道安全的Kyber和Dilithium Services。我在FPGA上设计并原型制作了该系统,设计了掩盖对策,写了许多核心固件,并帮助验证并将实施调整为商业产品(包括ASIC硅)。
摘要。SHA-3 被认为是最安全的标准哈希函数之一。它依赖于 Keccak-f[1 600] 置换,该置换对 1 600 位的内部状态进行操作,主要表示为 5 × 5 × 64 位矩阵。虽然现有实现通常以 32 位或 64 位的块顺序处理状态,但 Keccak-f[1 600] 置换可以通过并行化加速。本文首次通过 32 位和 64 位架构上的自定义向量扩展探索基于 RISC-V 的处理器中 Keccak-f[1 600] 并行化的全部潜力。我们分析了由五个不同步骤映射组成的 Keccak-f[1 600] 置换,并提出了十条自定义向量指令来加速计算。我们在 SystemVerilog 中描述的 SIMD 处理器中实现了这些扩展。我们将我们的设计性能与基于矢量化专用指令集处理器 (ASIP) 的现有架构进行了比较。我们表明,得益于我们精心选择的自定义矢量指令,我们的设计性能优于所有相关工作。
摘要 — 本文重点介绍使用 UVM 对微控制器片上系统 (SoC) 中的 DMA 控制器进行功能验证。DMA 是现代计算机系统不可或缺的一部分,它通过从 CPU 卸载数据传输任务来提高性能。拟议的工作采用通用验证方法 (UVM) 来开发一个全面的验证环境,其中包括驱动程序、监视器、记分板和序列器等基本组件。验证涵盖各种数据传输模式(固定到固定、固定到块、块到固定和块到块)、边界条件和错误情况,以确保 DMA 控制器的功能正确性。获得了不同的代码覆盖率,例如 FSM 覆盖率为 100%,表达式覆盖率为 90.13%,条件覆盖率为 93.33%,语句覆盖率为 99.34%,这使得 DMA 控制器的总体代码覆盖率为 86%。断言、覆盖点和覆盖组等高级 SystemVerilog 功能被纳入测试平台以提高其有效性。拟议的工作还通过详细的测试用例展示了成功的验证,验证了 DMA 控制器的功能并为 SoC 设计的未来增强提供了坚实的基础。
div> dylan Rosser www.dylanrosser.us工作经验高级模拟电路设计师NXP半导体NXP半导体•LED电力管理IP开发新产品介绍•与SOC Architect合作,与SOC Architect合作开发MCU电源架构和规格•建模,设计和模拟的电压参考,调节器和检测技能之间的交易•均衡•调查•调节•杠杆设计•均衡型号•衡量型号,并衡量型号,并在范围内进行衡量•均衡级别的行为•平衡巡回赛•专家•生产的可交付成果,例如示意图,网表,GD,LEF,模型,自由和文档•分析的老化,可靠性,SOA,SOA,DFMEA,可交付成果的质量模拟电路设计器II NXP半导体•模拟,优化和设计了各种用于数据转换器的iP和Power Machine IP的子计数,以实现多种机器学习的•用于机器学习的最佳FLED和DRC•DRC•DRC•DRC•DRC•DRC•DRC•drc•DREC•drc•drc•drc•drc•drc•drc•drc• IP•在SystemVerilog,Veriloga和Python中对SAR和管道ADC建模•脚本验证以自动化数据分析和可视化研究和助教Carnegie Mellon University•设计并布置了高速的两阶段比较器,在65nm CMOS中进行了高速两阶段的比较器•开发的Microelectronic Circen interne internect internement internect internement internect internection•构成了一项自动式的奖励•颁发的均等•验证电气工程师Cosentini Associates
在数字设计上下文中的验证是在释放或部署系统之前测试和验证其行为的过程。这是设计过程的基础部分,由于获得完整覆盖的复杂性,通常需要超过一半的开发时间。传统的验证技术,例如定向测试和约束随机测试,通常无法捕获复杂系统中的关键边缘病例。为了解决这一差距,本论文探讨了钢筋学习(RL)在RISC-V内核的功能验证中的应用,这些核心正在变得越来越流行,特别是通过自动生成的组装代码来增强测试覆盖范围。此调查首先要为RISC-V内核建立一个测试台,旨在使用SystemVerilog(SV)中的通用验证方法(UVM)和Spike指令将模拟器与黄金模型相同。然后将测试台转换为基于Python的环境,使用PYUVM库和Verilator作为模拟器,以启用开源设置。这有助于与流中所需的其余组件的集成,例如自定义指令生成器和覆盖范围集合,为闭环指令生成和核心状态观察提供了灵活的框架。我们此时介绍RL代理,以基于覆盖范围指标和中央处理单元(CPU)状态(例如,注册文件和程序计数器)指导指令生成器。在两种情况下,都进行了不同的状态向量和奖励功能。由于动作空间是如此巨大,并且从未被其他研究作品解决,因此第一代理实施涉及定制的RL代理,依靠体育馆对环境具有标准的API。它使用基于神经网络的深Q学习代理作为函数近似器,分为状态编码器和专业的儿童神经网络(NN),以避免动作空间大小的爆炸。第二种方法使用StableBaseline 3(SB3)库,提供已建立的RL算法,包括近端策略优化和多输入策略。最后,我们将RL代理商获得的训练后结果与通过向指令生成器请求随机指令获得的平均覆盖范围进行了比较。第一代理方法由于NN没有融合而没有显示出任何改进,这是由于