相关阅读
数字IC基础
https://blog.csdn.net/weixin_45791458/category_12365795.html
Cadence
数字仿真器的历史,很大程度上就是HDL(硬件描述语言)的历史。1985年,Gateway Design Automation推出了Verilog语言及其仿真器Verilog-XL。这是第一个被广泛使用的商业HDL仿真器之一,也是最具有代表性的事件驱动型Verilog仿真器。
在1989年收购Gateway Design Automation后,1988年成立的Cadence在90年代推出NC-Verilog,它可以被看作是面向更大规模工业设计环境的一代高性能仿真器。与Verilog-XL相比,NC-Verilog更强调性能、容量以及与完整设计流程的适配能力,也更符合SoC时代对RTL仿真的要求。
进入2000年代后,芯片验证复杂度急剧上升,仿真器的角色也开始发生变化。Cadence推出的Incisive Unified Simulator以及后续的Incisive Enterprise Simulator,已经不只是传统意义上的HDL仿真器,而是更大验证平台的一部分。它们所对应的时代,正是覆盖率驱动验证、断言、SystemVerilog、验证方法学和平台化流程逐步成熟的阶段。仿真器开始与覆盖率分析、验证管理、形式验证、硬件加速等能力协同工作。
到了2017年,Cadence又以Xcelium取代Incisive,代表其新一代数字仿真平台。Xcelium面向现代SystemVerilog/UVM验证环境,强调多核并行、高性能编译与仿真,以及与更大规模验证基础设施的整合。
从Verilog-XL到Xcelium,Cadence数字仿真器的发展历程,实际上折射出整个数字验证产业近四十年的演进:从语言驱动走向平台驱动,从单一RTL仿真走向复杂SoC的验证闭环。
Synopsys
与Cadence不同,Synopsys并不是从HDL仿真器起家的。Synopsys成立于1986年,官方资料明确将其描述为一家"以综合起家"的公司。这意味着,Synopsys在数字仿真领域的崛起,并不是语言起源式的发展路径,而更像是在既有EDA优势基础上,通过高性能技术路线与并购逐步建立起来的。
Synopsys数字仿真器历史的核心产品是VCS,但VCS的源头并不在Synopsys内部,而是来自Chronologic Simulation。行业历史资料普遍将Chronologic视为VCS的开发者,并强调其主要创新是compiled-code simulation:通过将Verilog编译为C再进行编译执行,以获得明显高于解释式仿真的性能。正因为如此,VCS很早就以"高速Verilog仿真器"的形象进入市场,并与当时依靠解释执行的的Verilog-XL形成鲜明对照。
从公司沿革来看,VCS是经过并购链进入Synopsys体系的。Chronologic于1994年被Viewlogic收购,而Synopsys又在1997年收购了Viewlogic。也就是说,VCS成为Synopsys产品版图一部分的关键节点,是1997年Synopsys对Viewlogic的收购。
如果说VCS奠定了Synopsys在仿真性能方面的地位,那么Synopsys对数字验证领域更深远的影响,还体现在验证语言和方法学上。2001年,Synopsys推动OpenVera走向开放;2002年又将OpenVera assertions捐赠给Accellera。同一时期,SystemVerilog的形成与Superlog技术路线密切相关,而Synopsys也在2002年收购了Co-Design Automation,以加速下一代HDL的发展。到了2005年,Synopsys推出的VMM方法学进一步强化了它在验证平台和方法学上的话语权。
进入现代SoC验证阶段后,VCS逐渐从单纯的HDL仿真器演变为完整功能验证解决方案中的核心执行引擎。Synopsys当前官方页面强调VCS在多核并行、覆盖率分析、约束求解、以及与Verdi和VC Formal等工具的原生集成能力;2016年发布的Cheetah并行仿真技术,则进一步体现了其持续围绕性能和容量进行演进的路线。
总体而言,Synopsys的数字仿真器历史,不只是VCS一个产品的演化史,更是一条从compiled-code simulation延伸到验证语言、方法学和平台整合的技术路线
Siemens EDA
如果要梳理Siemens EDA的数字仿真器历史,真正的起点并不在Siemens,而在其前身Mentor Graphics。Mentor Graphics成立于1981年,长期是EDA行业的核心厂商之一。Siemens于2017年完成对Mentor Graphics的收购,此后Mentor先以"Mentor, a Siemens Business"继续运营,直到2021年进一步统一为Siemens EDA。因此,今天Siemens EDA的数字仿真器产品线,本质上继承自Mentor Graphics的历史积累。
在Mentor这条产品谱系中,最重要的早期数字仿真器是 ModelSim。从公开可见的Mentor文档来看,ModelSim的版权起始年可以追溯到1991年,这也是业界通常采用的首发时间。与同时代其他厂商的产品相比,ModelSim的特点并不只是"能跑 HDL",而是长期在VHDL/Verilog混合仿真、GUI调试和工程易用性上形成了鲜明风格,并在FPGA、教学和通用RTL仿真环境中获得了很高普及度。
进入2000年代后,随着SoC验证复杂度快速上升,Mentor的仿真器路线也开始从传统simulator向更完整的验证平台升级。2005年,Mentor推出了新的Questa验证产品线,这通常被视为QuestaSim的起点。与更偏"经典仿真器"定位的ModelSim相比,Questa/QuestaSim更强调SystemVerilog、assertion、coverage-driven verification以及复杂验证环境下的调试分析能力。这标志着Mentor的数字仿真器已经不再只是HDL执行引擎,而是成为功能验证平台的一部分。
在Siemens收购Mentor之后,这条产品线并没有中断,而是继续沿着Questa品牌演进。今天Siemens EDA官方仍将Questa作为数字仿真与验证的核心品牌,并进一步扩展为Questa One这样的更大平台化形态。
换句话说,Siemens EDA在数字仿真领域的历史,并不是一条从零开始的新路线,而是Mentor Graphics的ModelSim/Questa血统在Siemens体系中的延续与升级。
Aldec
与Cadence、Synopsys、Mentor这些围绕大型ASIC/SoC流程形成主线的EDA厂商相比,Aldec的数字仿真器历史更带有一条鲜明的"PC/Windows设计环境->HDL仿真->高端验证平台"的演进路径。Aldec由Stanley Hyduke于1984年创立,早期公司名称即来自Automated Logic Design Company。从创立之初开始,Aldec就不仅关注单纯的仿真内核,也重视设计输入、调试与验证环境的一体化。
在1990年代,随着HDL设计逐步取代纯原理图/门级输入,Aldec的产品线也发生了转向。公司先后经历了SUSIE、Active-CAD等早期阶段,最终在1997年正式推出Active-HDL。Aldec官方时间线将其定义为"Graphical Design Entry and Mixed Language Simulator",这也准确概括了Active-HDL的历史角色:它不仅是一个HDL仿真器,更是一个强调图形化工作流、混合语言支持以及较强易用性的开发环境。正因如此,Active-HDL长期在FPGA开发、教学和工程入门场景中拥有稳定影响力。
进入2000年代后,Aldec又推出了面向更复杂设计与验证需求的Riviera-PRO。Aldec官方资料显示,Riviera-PRO于2002年发布,其最初定位就是"Common Kernel, Multi-platform Mixed HDL Software Simulator"。这标志着Aldec不再只强调Windows下的图形化仿真环境,而开始将产品扩展到更高性能、更复杂验证流程和更多平台支持的方向。与Active-HDL相比,Riviera-PRO更像Aldec面向大型FPGA与SoC验证任务的高端产品。
随着SystemVerilog、UVM和更复杂验证方法学的普及,Riviera-PRO又逐渐从"混合HDL仿真器"演进为更完整的验证平台。Aldec近年的官方资料仍把它作为复杂FPGA/SoC设计的主力验证产品,而Active-HDL则继续保持其在图形化设计、FPGA流程和较通用HDL仿真环境中的特色。
总体来看,Aldec的数字仿真器历史并不是一条单纯追求"最大ASIC市场份额"的路线,而更像是在FPGA、混合语言仿真、工程易用性和逐步升级的验证能力之间形成了自己的产品风格
Verilator
如果说商业数字仿真器的发展主线长期由Cadence、Synopsys和Mentor/SiemensEDA主导,那么Verilator则代表了另一条非常重要的分支:开源、编译式、偏向可综合RTL的高速仿真路线Verilator官方将自己定义为开源的Verilog/SystemVerilog simulator与lint工具,并强调它会把设计编译成经过优化、可选多线程划分的C++或SystemC模型来执行,而不是走传统解释式仿真路径。
从历史上看,Verilator的源头可以追溯到1995年,当时它已在Digital Equipment Corporation内部用于多媒体和网络处理器开发;到1998年,Digital同意将源码公开发布,这也是通常把Verilator的公开起点写成1998年的主要依据。Verilator官方"Contributors and Origins"页面明确记录了这段历史,因此在"数字仿真器发展史"里,Verilator完全可以被视为1990年代后期开源HDL仿真器的重要代表。
Verilator最核心的技术特征,是它与传统事件驱动商用仿真器在实现思路上的明显差异。按照官方说明,Verilator并不是简单把Verilog文本逐句解释执行,而是将输入代码转换为一个优化后的C++/SystemC模型,再由宿主编译器生成最终可执行程序;官方README甚至直接强调,这种方式在单线程下也能比解释型Verilog仿真器快很多,并且还能通过多线程继续加速。也正因为如此,Verilator更像是"RTL到高性能软件模型的编译器",而不只是传统意义上的通用HDL simulator。
这条技术路线也决定了Verilator的典型适用场景。它尤其适合可综合RTL的快速执行、批量回归、CI集成,以及与C++/SystemC软件环境联动。官方连接文档显示,在C++输出模式下,用户通常需要自己编写一个C++ wrapper和主循环来驱动仿真,实例化生成的模型类并调用eval()等接口完成执行。这种使用方式和传统GUI驱动的商业仿真器非常不同,却也让Verilator天然更适合自动化脚本、软件协同验证和开源硬件工作流。
当然,Verilator的意义不只是"免费替代品"。更准确地说,它代表了数字仿真器历史中一种不同于经典事件驱动仿真器的工程哲学:尽量围绕性能、可集成性和软件化接口来组织仿真流程。官方README既把它定义为simulator,也把lint system作为同等重要的组成部分,这说明Verilator从一开始就不是单纯追求"尽可能完整地模仿传统商用仿真器",而是在高速执行和工程实用性之间做了非常鲜明的取舍。
因此,如果把Verilator放入数字仿真器的大历史中来看,它最合适的定位不是"商用仿真器的廉价开源副本",而是开源硬件时代最有影响力的编译式RTL仿真平台之一。它延续了1990年代以来"通过编译提高仿真性能"的思想,但又把这种思路带入了开源社区和现代软件工程体系之中,使数字仿真器的发展不再只由传统商业EDA公司定义。
Icarus Verilog
如果说Verilator代表了开源世界里偏高性能、偏编译式RTL执行的一条路线,那么Icarus Verilog则代表了另一条更"经典"的开源数字仿真器道路:它面向IEEE 1364 Verilog,长期作为自由软件社区中最普及的Verilog编译与仿真工具之一存在。Icarus Verilog官方仓库将其定义为一个Verilog编译器,目标是编译IEEE 1364标准所描述的Verilog,同时也逐步支持部分SystemVerilog;项目还明确强调,它"并不以传统意义上的simulator为目标",而是一个为后端工具生成代码的编译器。
从历史上看,Icarus Verilog的起点通常可以追溯到1998年。虽然当前官方文档更强调安装与使用,而不是专门写一篇"项目简史",但公开资料普遍把1998年视作其最早可追溯的公开起点;与此同时,今天的官方文档与源代码仓库也表明,这个项目并不是历史遗迹,而是仍在持续维护、发布和演进。安装文档直接说明源码当前托管在GitHub上,并区分开发分支与稳定分支,显示它仍是一个活跃项目。
Icarus Verilog最值得强调的地方,在于它的定位并不是GUI式、重平台化的商业验证环境,而是一个轻量、可脚本化、以编译流程为核心的开源工具链。官方仓库说明中写得很清楚:Icarus Verilog会把源代码编译为供后端工具使用的代码;在常见批处理仿真流程里,它会先生成中间形式,再由后端执行器运行。这种架构使它天然适合命令行工作流、自动化回归、教学实验和开源项目集成。
也正因为这种定位,Icarus Verilog在开源硬件和教学场景中长期很有生命力。它并不试图复制VCS、Xcelium或Questa那样的完整商用验证平台,而是以"免费、可获取、足够实用"的方式,成为很多人接触Verilog仿真的第一站。围绕它形成的典型使用方式,往往是Icarus Verilog+GTKWave:前者负责编译和运行,后者负责波形查看。GTKWave官方手册甚至专门提到,Icarus Verilog原生支持若干GTKWave相关波形格式,这也从侧面说明二者在开源流程中的长期配合关系。
从技术气质上看,Icarus Verilog和Verilator也形成了一个很有意思的对照。Verilator更强调把可综合RTL转换为高性能C++/SystemC模型,以追求速度;而Icarus Verilog则更像一个面向标准Verilog语言本体的开源编译/仿真实现,重点在于可用性、可移植性和自由软件生态中的通用价值。官方项目介绍把"compile ALL of the Verilog HDL"作为目标,这种表述本身就说明,它的历史意义并不在"最快",而在于成为一个长期存在、不断逼近标准实现的开放工具。
因此,如果把Icarus Verilog放入数字仿真器的大历史中来看,它最合适的定位不是"简化版商用仿真器",而是开源Verilog编译与仿真基础设施的代表性项目。它让Verilog仿真不再完全依赖商业EDA许可,也为教学、研究、个人项目和开源硬件社区提供了一条稳定可行的路径。和Verilator一样,Icarus Verilog证明了数字仿真器的发展并不只属于商业巨头,也可以在开源社区中沿着另一种节奏持续演进。