DC综合的基本流程

DC综合的基本流程(小白的心路历程)

一. 写在最前面

学了这么久的DC,发现还是没有入门,这次参考一下网上各位大神的文章,自己简单的做个小笔记,就当再系统的学习一遍。讲真的,本人比较菜,内容难免有些错误。这次算是记录一下自己的心路历程叭。愿以后的学习一切顺利,祝自己……………………

二. 什么是逻辑综合

synthesis = translation + logic optimization + gate mapping

  • Translation :转换
    把描述RTL级的HDL语言,在约束下转换成DC内部通用的门级描述电路(取决于DC自己的库),以GTECH或者没有映射的ddc形式展现,无任何的逻辑重组和优化。
  • Logic optimization :逻辑优化
    基于所施加的一定时序和面积的约束条件,把通用的门级描述电路进行优化,就是把路径调整一下,门给改一下等等。
  • Gate mapping :门级映射
    把优化了的通用门级描述电路用别家的工艺库把电路给映射出来,来构成实际电路,得到一个.ddc文件。这个.ddc文件可以包含许多丰富的信息,比如映射的门电路信息与网表、.v格式的网表、延时信息(sdf)、工作约束(sdc)等信息。(.ddc不能用文本编辑器打开)。.ddc包含的网表文件是实际意义的网表文件,而.v包含的网表文件是用来做后仿真的。

三. 启动DC

启动DC的方式大概是有三种:

  • GUI:即图形化界面模式。
    启动方式:$design_vision
  • DC Shell:即命令行模式。
    启动方式:$dc_shell
  • Batch mode:即批处理模式(在启动的同时,并告知其需要执行哪些工作脚本)。
    启动方式:$dc_shell -topo -f run.tcl | tee -i run.log

命令行和批处理模式是现在设计的主要操作方式。

四. DC基本流程概述

在这里插入图片描述

a.准备数据

准备设计文件,DC 的设计输入文件一般为 HDL 文件。

b.指定库文件

需要指定的库文件包括:
链接库(link library) 、目标库(target library) 、符号库(symbol library)、综合库(synthetic library)

  • Target library: 在逻辑优化与门级映射的时候提供生成网表的cell。
  • Link library: 提供设计网表中的 cell,可以跟target_library使用同一个库,但是DC不用 link library中的 cell 来综合设计。当 DC 读入设计时,它自动读入由 link library 变量指定的库;Link时,则先自动搜寻其内存(*)中已经有的库,然后在搜寻Link library指定的库。
  • 注:Link library 和Target library统称为technology library,technology library由半导体制造商提供,包含相关 cell 的信息及设计约束标准。
  • Symbol library:提供 Design Vision(GUI)中设计实现的图形符号,若使用脚本模式则此库可不指定。
  • Synthetic library:即为 Designware library,直译是综合库,但却常称之为IP库。默认的标准Designware由 DC软件商提供,无需指定。
  • Create_mw_lib:在DC需要进行物理综合的时候,用以生成物理库。

c.读入设计

设计的读入过程是将设计文件载入内存,并将其转换为 DC 的中间格式,即GTECH 格式,GTECH 格式由“soft macros” 如 adders, comparators 等组成,这些组件来自synopsys的synthetic lib,每种组件具有多种结构。
读入设计有两种实现方法实现方法:read 和 analyze & elaborate。
在这里插入图片描述

d.定义设计环境

定义对象包括PVT(工艺参数、电压、温度),端口属性(负载、驱动、扇出),wire-load 模型,设计环境将影响设计综合及优化结果。

e.定义约束

约束包括设计规则约束和优化约束。设计规则约束(design rule constraint)由工艺库决定,在设计编译过程中是必须要满足的,以使电路可以正常工作;优化约束则定义了 DC 要达到的时序和面积目标,这是由用户自行定义的。DC在不违反设计规则约束的前提下,将会遵循此约束进行综合设计。

f.选择编译策略

对于层次化设计,DC 中有两种编译策略供选择,分别为top down和bottom up。在top down策略中,顶层设计和子设计在一起编译,此种策略不适合与大型设计,因为top down 编译策略中,所有设计必须同时驻内存,硬件资源耗费大。在bottom up策略中,子设计单独进行约束,当子设计成功通过后,将被设为dont_touch属性,防止在之后的综合过程中被修改,同等层次的子设计编译完成后,再编译其上层设计,直至顶层设计编译完成,因此Bottom up更适合大规模设计。

g.编译

用Compile命令执行综合与优化过程,还可以利用一些参数来指导综合和优化过程。

h.分析及解决设计中存在的问题

DC可以生成一些报告以反映其综合结果,如:时序、面积、约束等,这些报告有助于分析和解决设计中存在的问题以改善综合结果。

i.存储设计数据

DC不会自动保存综合后的数据,因而在离开 DC 时需要对这些数据进行手动存储。

j.流程总结

大概的流程为:
准备好文件 —>启动DC —>读入设计前的检查—>读入设计—>约束设计—>综合—>综合后检查与优化—>保存优化后的设计

五. 小结

<更新> 慢慢悠悠的来到青软已经两个月了,这两个月,在这也没学到什么新东西,浪费青春、浪费时间,各种方面,浅而杂。对于后端,整个流程都尚未跑完过,属实有些丧。每日早上八点坐在教室,到晚上十一点多回到宿舍,看似如此紧凑的学习时间,但也只有自己知道,到底学没学进去东西,看似努力了,但好似是些无用功,无奈。今日,难得凑假期机会写上一篇博客,在参考大神文章后,方将这篇博客补充完整,实际上却毫无自己的东西,无非是照本宣科、生搬硬造罢了。哎,暂且当作是在借此机会学习叭。五一假期结束,回校体测,又是一段时间的浑浑噩噩。

以上部分内容来自下面这位大神的博客:https://www.cnblogs.com/IClearner/
自己在上面进行了小修小补,并加上了自己的想法,以方便自己理解,若内容有误,欢迎指正。

### DC综合电力电子直流系统的概述 DC综合电力电子直流系统是一种基于电力电子技术构建的高效能量管理系统,其核心目标在于实现直流电能的有效分配、转换以及优化管理。此类系统通常由多个模块组成,包括但不限于整流器、逆变器、DC/DC变换器以及其他功率调节装置。 #### 整流技术的应用 在实际应用中,三相桥式整流技术作为一项关键技术被广泛应用[^1]。该技术能够有效地将电网中的交流电源转化为稳定的直流输出,为后续的能量处理提供了坚实的基础。通过合理设计和控制策略的选择,可以进一步提升整流效率并降低谐波失真率。 #### 双向DC/DC变换器的作用 对于某些特定场景下的需求而言,仅具备单方向功率流动特性的传统DC-DC转换方案已无法满足日益增长的功能灵活性要求。因此,在现代能源存储与传输架构当中逐渐引入了支持双向功率传递功能的新一代产品——即所谓的“双向DC/DC变换器”。这类器件不仅能够在不同电压等级之间互相转化电量大小关系,而且还能依据负载特性动态调整工作模式以达到最佳性能表现状态[^2]。 以下是使用Python模拟简单PI控制器的一个例子: ```python import numpy as np from scipy import signal def pi_controller(Kp, Ki, dt, u_max=10): num = [Kp * dt + Ki, Kp] den = [dt, 0] sys = signal.TransferFunction(num, den, dt) t_out, y_out, _ = signal.lsim(sys.to_discrete(), U=[u_max]*len(t), T=t) return t_out, y_out ``` 此代码片段展示了如何定义一个离散时间PI控制器,并计算给定输入信号作用下系统的响应曲线数据点集合列表形式返回结果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

___Leo___

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值