加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

FPGA设计与验证之间的思维冲突

2022/04/24
367
阅读需 3 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

HDL是HardwareDescriptionLanguage(硬件描述语言)。设计FPGA时,就是通过HDL来搭建底层硬件电路,最终实现不同功能的电路。即FPGA设计是设计一个完成某种需求的电路。

而对FPGA验证时,是对FPGA硬件电路输入各种数据,经过电路处理数据后,得到输出数据与参考数据进行比较。在这里,数据输入、处理、输出、比较的过程一般由PC机的CPU软件模拟来完成。即FPGA验证是通过CPU模拟电路的数据输入、处理、输出、比较的过程,软件模拟器设计的过程。

我们可以初略理解为:FPGA设计是电路设计,FPGA验证是软件设计。电路设计是基于时钟脉冲的并行设计,软件设计是基于CPU指令集的串行设计。也就有了2种思维的冲突:硬件与软件的思维冲突、并行与串行的思维冲突。

因为这种思维冲突,在FPGA验证初期编写testbench仿真HDL代码时,就会遇到各种困惑和调试困难,这种初期FPGA验证手写TB验证的方式效率极低,在量级大的代码面前效果也不好,自然需要更好的方案。

 

SV的仿真调度机制能很好地解决这种冲突,它利用时间片time slot的思想,将硬件并行运行的各个任务抽象为独立运行的线程,留给用户上层的应用接口来开发验证工作,再随后,有了UVM等验证框架的加入,让验证开发更便利和高效。整个过程的技术发展都被抽象后封装,用户不用关心,但同时带来FPGA设计到验证入门和理解比较困难的问题。

 

如果我们能够多一些去理解SV的仿真调度机制到UVM的抽象过程,就自然能够很好的理解FPGA设计和仿真之间思维的冲突。

注: 原创不易,未经作者本人授权,禁止转载,转载必究。

相关推荐

电子产业图谱

由点到面,串联各技术思维方式和学习感悟,取长补短,由一个技术开发者迈向一个系统设计开发者。