EDA核心工具之IC综合:从EDA三巨头的闭源到Yosys开源

图1、Read The Official Manual 阅读官方手册:

----Yosys is A Free Verilog Synthesis Suite 2013 by C.Wolf and J. Glaster.

----Yosys是一个免费的Verilog综合工具。

图2、Yosys的2013年论文:

----Todays ASIC and FPGA development is competely dominated by commercial tools.  完全由商业工具主导!主导玩家自然就是那三家巨头。

----Yosys has mature support for Verilog HDL and is able to synthesize complex real-world Verilog designs. //Yosys具有成熟的技术支持Verilog HDL,能对实际的Verilog的复杂项目进行综合。这一描述还是很有自信也很给开源社区信心的。

----Example design flows for fine-grain and coarse-grain architectures are presented and discussed. //这里说的细颗粒度架构(fine-grain architectures)和粗颗粒度架构(coarse-grain architectures)分别和ASIC和FPGA对应。因为将Verilog综合为ASIC需要更加细粒度(最终到每一个晶体管以及晶体管级的连接),而综合为FPGA则通常粗颗粒度一些(最终到每一个CLB/LUT并且也不必做实际的物理连线而只需要通过BitStream体现为Configuration Bits)。

图3、开源IC综合工具的艺术(State of the Art)

----还有一些开源的综合工具介绍。这里就不展开了,因为这些工具都没有Yosys好使----all these tools are still in a very early state and are by far not able to handle real-world Verilog synthesys tasks. 只有Yosys相对成熟。

图4、Yosys Data flow通过Yosys Scripts实现。

----第三章The Yosys Data Flow通过图2展示得比较清楚!一切都放在命令行脚本中顺次完成,形成所谓的Flow!

----第4.1节ASIC Cell-based Synthesis就是细粒度的综合!The synthesis shall ultimately map all logic to the cells specified in the library (with standard cells given)!

图5、ASIC综合脚本和FPGA综合脚本

----图4和图5分别列出了ASIC综合脚本和FPGA综合脚本!

----ASIC综合中,使用ABC这个工具将Verilog代码映射到asic_cells.lib,是为细粒度综合。

----FPGA综合中,使用ABC这个工具将Verilog代码映射到LUTs和fpga_cells.v,是为粗粒度综合。

----这里牵涉到另一个关键工具是Berkeley ABC。Yosys和ABC两个工具的项目大概是开源综合工具中的SOTA(State-of-the-art最高水平),他们相互配合而不是相互替代。

图6、粗颗粒综合和细颗粒综合

----The main use-case of coarse-grain synthesis is mapping designs to reconfigurable logic. //粗颗粒综合的的主要用例,就是把设计映射到可重配置逻辑(也就是FPGA)上~!

----While the logic gates targeted in ASIC synthesis are of equal or smaller granularity than the operators available in Verilog,  coarse grain cells often implement functions of larger granularity than the operators available in Verilog.  //ASIC综合就是更小的颗粒度,而粗颗粒度综合则是更大的颗粒度。

图7、比对的方法是IC设计的常用方法也是开源EDA软件的评估方法。

----Yosys逻辑综合也面临着许多的挑战,其中的一个挑战是NP-hard problem。

----Yosy逻辑综合实现到底正确不正确、靠谱不靠谱,在第5章中介绍了一些使用Yosys的实验,其中第2个实验是手机了6000个auto-generated Verilog modules,然后synthesized with Yos as well as with three different commercial synthesis tools,然后进行比对!

----The Yosys netlists were successfully checked for logic equivalence with the netlists generated by the commercial tools using Yosys's built-in solver. 这个是横向的Apple-to-Apple的比对。

----This test has also revealed some bugs in the commercial tools used as reference. 这个没有(也不适合)披露商业软件的具体什么bug,但这个说法写在正式的论文里,对将Yosys作为候选工具的芯片开发者来说是比较有说服力的。

----在芯片开发中通过比对进行芯片测试验证的方法是很很很常见的。比如RISC-V的测试使用的riscv-spike就是作为RISC-V逻辑测试的一个reference进行比对的,也属于同一个层次下的功能结果比对(待测的功能结果vs参考标准所提供的功能结果)。还有一种比对不是Apple-to-Apple的比对,而是将不同阶段的代码进行逻辑等价性比对,以保证综合前和综合后的逻辑等价,或者说综合的过程没有导致逻辑被破坏。

图8、Yosys的官方教程。

----Yosys的官方使用手册!Getting started with Yosys则正是入门上手所需要的。

图9、Yosys的交互式命令行。

----在Linux命令行输入Yosys fifo.v。请注意这时候不要期待像日常简单的命令行一样输出结果然后结束程序的运行!它的实际运行是,读取fifo.v文件,并进入到Yosys自己的交互式命令行环境中!然后可以进一步使用Elaboration中所示的Yosys的交互式命令行(read_verilog, hierarchy, proc等)。

----也可以在命令行中直接敲Yosys,进入Yosys的交互式命令行环境之后再执行read_verilog fifo.v以及Elaboration的中所示的后续命令行。

图10、Yosys的实操体验和总结。

----如图所示是20251209对Yosys的实操体验,把fifo.v的addr_gen模块,综合为电路图(网表)!这个电路图网表是一个.dot格式的文件,这个.dot格式的文件再通过Linux下的dot软件(dot命令行)打开!

----这个dot文件是一个文本文件,里面描述了各个节点名称属性以及节点之间的连接关系。而dot软件则可以把这个文本文件显示为图形。这个图形就是fifo.v模块(通常是behavior-level)所定义的芯片/电路的gate-level netlist。

----可以和PCB进行对比!这个netlist相当于原理图(Schematic),要把这些逻辑上节点和连线,变成物理上的节点和连线也就是PCB,则需要进行Place & Route的操作,包括每个节点多大的尺寸具体放在PCB的哪个位置(Place),连线具怎么走(Route)。

----对IC设计来说,这就需要后续的Place&Route软件了,而后续【挂接】P&R软件等工作,则属于IC设计的Design Flow了。Yosys作为Design Flow上的关键一个环节,Place-and-Route则是Design Flow上的后续关键环节。

----把Yosys和Place-and-Route等等各个环节的工具集合并形成Design Flow的工具,则是OpenROAD和OpenFPGA等更上层的工具了(分别面向ASIC开发和FPGA开发)。这些工具的底层,则是Yosys和Berkeley ABC这样的底层工具。

----至此可以看出Yosys在开源EDA工具链中的核心作用,就是把行为级/寄存器传输级的Verilog HDL程序,综合为代表电路结构的网表!对ASIC来说,这个网表是细粒度的Standard-cell。对FPGA来说,这个网表是粗粒度的CLB/LUT。对于设计人员来说,这个网表是一个可以进行图形化展示的dot文件。

<<<<<<<<完>>>>>>>>

摘要:Yosys是一款开源的Verilog综合工具,支持ASIC和FPGA设计流程。它通过脚本实现细粒度(ASIC)和粗粒度(FPGA)综合,与Berkeley ABC工具配合使用。Yosys能够处理复杂的Verilog设计,并通过与商业工具的对比验证其可靠性。其工作流程包括将行为级Verilog转换为门级网表(.dot格式),后续可结合Place & Route工具完成完整IC设计流程。Yosys在开源EDA工具链中扮演核心角色,为OpenROAD和OpenFPGA等上层工具提供基础支持。

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
<think>好的,用户需要查找与EDA(电子设计自动化)软件相关的信息,特别是关于EDA软件工具和解决方案。首先,我应该明确EDA的基本概念和应用领域。EDA主要用于集成电路设计,涉及从设计到验证的各个环节。接下来,需要分解用户的问题,确定回答的结构。可能需要包括EDA工具的分类、主要厂商、核心技术以及行业趋势等。 根据用户提供的引用内容,引用[2]提到了一些公司如S2C推动了从软硬件仿真到自动化原型设计的转变,这可能在EDA工具的发展中起到关键作用。需要将这些信息整合到回答中,说明EDA工具如何提升效率和精度,促进EDA行业的创新。此外,用户要求生成相关问题,我需要考虑用户可能的后续疑问,比如工具分类、厂商对比、核心技术挑战等。 还要注意系统级指令中的格式要求,确保数学表达式正确使用$...$,独立公式用$$...$$,并正确添加引用标识。虽然当前问题可能不涉及数学公式,但需要保持警惕。同时,使用中文回答,结构清晰,分点说明。 最后,检查是否有遗漏的信息点,比如是否有新兴技术或行业趋势需要补充,确保回答全面且有参考价值。</think>### EDA(电子设计自动化)软件工具与解决方案 EDA(Electronic Design Automation)是集成电路(IC)和系统级芯片(SoC)设计的核心技术,涵盖从电路设计、仿真、验证到物理实现的完整流程。以下是EDA工具的关键分类与典型解决方案: #### 1. **核心工具分类** - **电路设计与仿真** 工具如Cadence的$Virtuoso$和Synopsys的$HSPICE$支持模拟电路设计与仿真,通过求解微分方程$$ \frac{d}{dt}(C \cdot V) + G \cdot V = I $$实现电路行为分析[^1]。 - **逻辑综合与验证** 使用形式化验证工具(如Synopsys $Formality$)确保设计满足功能规范,通过布尔逻辑$$ F(A,B,C) = A \oplus (B \cdot \overline{C}) $$验证等价性。 - **物理实现与优化** 布局布线工具(如Cadence $Innovus$)通过优化算法(如梯度下降)最小化信号延迟$$ \tau = RC \ln(2) $$,提升芯片性能。 - **原型验证与仿真** 自动化原型平台(如S2C的$Prodigy$)支持硬件加速仿真,将验证周期缩短30%以上[^2]。 #### 2. **主要厂商与解决方案** - **巨头**:Synopsys、Cadence、Siemens EDA(原Mentor Graphics)占据全球80%市场份额。 - **新兴企业**:国产厂商如华大九天($Empyrean$)在模拟设计领域突破,支持28nm工艺节点。 - **云端EDA**:Cadence $CloudBurst$和Synopsys $CloudEDA$通过分布式计算降低成本,提升并行仿真效率。 #### 3. **技术趋势** - **AI驱动设计** 机器学习算法用于布局优化(如Google的$Circuit Training$),减少迭代次数。 - **异构集成** 支持Chiplet设计的工具(如Synopsys $3DIC Compiler$)成为先进封装的关键。 - **开源工具链** 项目如$OpenROAD$推动免费EDA工具链,覆盖从RTL到GDSII的全流程。 #### 4. **行业挑战** - **工艺复杂度** 3nm以下工艺需解决量子隧穿效应$$ \Psi(x) \propto e^{-\sqrt{2m(V-E)}x/\hbar} $$带来的漏电问题。 - **验证成本** 千万门级芯片的验证周期仍占总开发时间的60%以上。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipCamp

谢谢支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值