IC后端设计——后端设计过程

导读:本篇文章讲解 IC后端设计——后端设计过程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、综合

对芯片工作状态和环境做一些定义,并综合、映射门电路,根据结果进行优化

1.1 综合相关概念

  1. 时序约束
    设置输入输出延迟,则寄存器与寄存器间的延迟会确定下来(设计中的所有端口都需添加约束,否则EDA软件无法匹配合适的library)
  2. 环境约束
    芯片面积,线负载模型,驱动单元,负载大小

1.2 用于综合的EDA工具

Design Compiler

  • 一些重要命令:
list_designs    #显示verilog设计文件
remove_design -hierarchy      #移除工作区的verilog文件
analyse -format verilog [ list top.v file1.v file2.v ]       #读取并编译三个设计文件
elaborate -architecture verilog top                             #指定top文件并netlist
check_design                      #综合前检查设计文件的语法错误;若返回0,则要检查设计文件
reset_design                       #清楚以前所有的约束
create_clock -period 2 [ get_ports CLK ]     #创建时钟线端口CLK,输入周期为2ns,占空比默认为0.5
set_input_delya -max 0.8 -clock CLK [ get_ports C ]     #设置输入端口C相对于时钟线CLK端口输入延迟最大为0.8ns
remove _input_delay [ get_ports CLK ]   #移除CLK端口的输入延迟
set_output_delay -max 0.5 -clock CLK  [ all_outputs ]     #设置所有输出端口相对于时钟线CLK端口输出延迟0.5ns
remove_from_collection [ all_port ] [ get_ports CLK ]     #设置排除掉CLK端口的所有其他端口

compile   -map_effort high  -area_effort high  -boundary_optimization   #综合

report_constraint -all_violators         #检查有无违规

set_false_path -from [get_clocks CLK1] -to [gets_clocks CLK2]         #告诉DC不要在这条路径进行约束
set_clock_groups -logically_exclusive -group CLK1 -group CLK2      #逻辑互斥,作用上同

set_clock_groups -asynchronous -group CLK1 -group CLK2                #异步时钟,无需做优化

## timing
check_timing                   #检查设计中有无port没有约束
report_timing                   #报告时序问题,设计中的最差路径。寄存器间的时间差要小于路径时间
report_timing   -max_path 2         #报告slack最长的分别指向两个寄存器的路径
report_timing   -nworst_path 2     #报告slack最长的两个路径
report_timing_requirements -ignored       #报告set_false_path等异常约束

##  retiming优化
##    修复时序违规
## 非pipline结构的时序优化可使用adaptive retiming;
## pipline结构时序优化可采用register retiming 

二、STA基本知识

1.1 相关概念

静态时序分析

1.2 相关EDA工具

虽然synopsys的Design compiler内部集成了时序分析工具,但是全面的静态时序分析需由primetime等专用的时序分析工具进行

Tempus

PT

  1. timing path
    STA会把电路分解成一条条timing path,也可称为data path,本质就是信号传播的途径。每条timing path都有一个起始点(电路中信号被时钟沿锁存的点,即寄存器时钟端口和输入pin)和终止点(信号经过一系列的组合逻辑的通道或者走线后被另一时钟沿捕获的点,即寄存器输入端口和输出pin)。其中时延最长的path为critical path。
    slack = required time – arrival time,表示是否满足设计要求(若为负则不满足)
  2. 建立时间 setup time
    触发器在时钟信号上升沿到来以前,要求输入数据保持稳定不变一段时间,该时间即为建立时间。
    如不满足setup time,该数据将不能被这一时钟打入触发器。
  3. 保持时间 hold time
    触发器在时钟信号上升沿到来以前,要求数据保持稳定不变一段时间,以便能够稳定读取,该时间即为保持时间。
    如不满足数据同样不能被打入触发器。
  4. slew rate
    表征上升或下降的波形跳变的快慢,可理解成上升或下降的坡度。transition time表示电平转换时间
  5. 扇入扇出 fan-in / fan-out
    扇入:表示一个逻辑门能够处理的外部输入的能力。扇入越大,输入电容就要变大,因此逻辑门的反应速度会变慢。因此可用多级逻辑门代替高扇入的设计。
    扇出:表示逻辑门的驱动能力的大小,即可驱动同类逻辑门的最大数
    延迟类别
    单元延迟(cell):取决于输入信号转换时间(斜坡)和输出负载
    线延迟(net):线负载模型或电路拓扑结构

三、后端引脚处理

  • 管脚处理
  1. 数字信号出管脚的信号要接IO PAD
  2. 输入管脚最好接上拉电阻
  3. 模拟信号出管脚一般接有IP的PHY的harden,由fountry提供
  • 数字IOpad电压由设计需求来确定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82467.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!