Cocotb--硬件验证中的瑞士军刀

2022-12-17 14:30

李枫

李枫独立开发者

先后就职于摩托罗拉、三星等IT公司,现为独立开发者。在移动平台上积累了十年以上的研发经验,近几年主要专注于云计算/边缘计算基础设施(包括AI、Virtualization、Program Runtime、Network、5G、RISC-V、EDA等软硬件领域)。
是《灰帽黑客 第4版:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术》(ISBN:9787302428671)和《恶意网络环境下的Linux防御之道 》(ISBN: 9787115544384)中文版的主要译者。 对技术创新具有浓厚的兴趣和实践能力,热心参与开源社区的各种活动,多次参加各类IT会议。 过往各种技术分享(皆为第一作者)的链接:https://github.com/XianBeiTuoBaFeng2015/MySlides

由于易学易用的特性和成熟的生态,Python 在 EDA(电子设计自动化)领域已获得越来越多的应用。仿真验证是 IC 设计流程中非常重要的一环,传统上常使用 SystemVerilog 等硬件语言来开发 Testbench,Cocotb 的出现打破了这一常规--它是一个可以使用 Python 来编写VHDL/Verilog Testbench 的框架,基于 Python 的硬件项目测试验证极大简化了 Testbench 的开发,同时使得没有太多硬件开发经验的纯软件开发人员也可以完成相应的硬件验证工作。本议题将包含下列子话题:

  1. 基于 Python 的硬件测试验证综述;
  2. 基于 Cocotb 的 SpinalHDL 的测试验证,并在 ARM 开放硬件平台(如树莓派4)上实践;
  3. 使用 Cocotb 进行测试验证的智能网卡项目 Corundum,并在 ARM 开放硬件平台(如树莓派4)上实践;
  4. 探索 Cocotb 的未来--CocotbD 项目的设想与设计。

议题涉及的主要技术栈参考链接如下:

演示文稿 📑