当前位置: 首页 > article >正文

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致,我们会在模块io port添加io port buffer(主要是timing,antenna一致性)。实际上在芯片级我们还会给各大子模块Block和IP的接口添加buffer。

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2&Innovus)

在一些数模混合设计中,为了考虑CDM问题,我们会在模块接口处添加Antenna 二极管,具体如下图所示。

接口io port添加Antenna Diode

为了防止CDM,我们需要对这个HDMI IP的所有端口添加antenna diode。如果IP内部已经添加过了则可以跳过。

数字IC后端设计如何从零基础快速入门?(内附数字IC后端学习视频)
在这里插入图片描述

在我们低功耗四核A7 Top项目中,我们也可以对各个cpu子模块接口添加io pin buffer。这样即便子模块a7core的lib文件不准确,在a7top顶层也不会看到跟子模块接口的长线了。

在这里插入图片描述

今天分享下每个项目都会用到的给各种Block添加buffer和antenna的万能脚本。这个又是一个练习脚本的好例子。

proc add_buffer_diode_on_block_pins {args} {
parse_proc_arguments -args a r g s o p t i o n s s e t b u f f e r c e l l " args options set buffer_cell " argsoptionssetbuffercell"options(-buffer)"
set diode_cell “ o p t i o n s ( − d i o d e ) " s e t b u f f i l e " options(-diode)" set buf_file " options(diode)"setbuffile"options(-buffer_eco_file)”
set diode_file “ o p t i o n s ( − d i o d e e c o f i l e ) " s e t p r e f i x " options(-diode_eco_file)" set prefix " options(diodeecofile)"setprefix"options(-prefix)”

set j 0
set file1 [open $buf_file w]
set file [open $diode_file w]

puts $file1 “setEcoMode -updateTiming false -refinePlace false”
puts $file1 "setEcoMode -batchMode true "

foreach pin [dbGet selected.instTerms] {
puts $file1 “ecoAddRepeater -cell $buffer_cell -term [dbGet $pin.name] -name KaTeX parse error: Expected group after '_' at position 13: {prefix}_BUF_̲j -loc [dbGet $pin.pt]”
puts $file “addInst -cell $diode_cell -inst KaTeX parse error: Expected group after '_' at position 15: {prefix}_DIODE_̲j -loc [lindex [dbGet $pin.pt] 0]”
set net [dbGet $pin.net.name]
puts $file “attachTerm KaTeX parse error: Expected group after '_' at position 15: {prefix}_DIODE_̲j MINUS $net”
incr j
}

puts $file1 “setEcoMode -batchMode false "
puts f i l e 1 " r e f i n e P l a c e − i n s t ∗ file1 "refinePlace -inst * file1"refinePlaceinst{prefix}"
puts $file1 "dbSet [dbGet top.insts.name BLOCK_ISO
-p].pStatus fixed"
puts f i l e " r e f i n e P l a c e − i n s t ∗ file "refinePlace -inst * file"refinePlaceinst{prefix}
"
puts $file "dbSet [dbGet top.insts.name ${prefix}_
-p].pStatus fixed”

close $file
close $file1
puts “Created eco files $buf_file and $diode_file”
puts “you need to source these files to implement the ECO”
}

define_proc_arguments add_buffer_diode_on_block_pins
-info “Generate ECO files to add buffers and antenna diodes on the I/Os of the selected block\n”
-define_args {
{-buffer “Buffer libcell to be inserted” “none” string {required}}
{-diode “Diode libcell to be inserted” “none” string {required}}
{-buffer_eco_file “ECO file name for buffer insertion” “none” string {required}}
{-diode_eco_file “ECO file name for diode insertion” “none” string {required}}
{-prefix “Prefix to use for the inserted instances names” “none” string {required}}
}

return

###使用方法
add_buffer_diode_on_block_pins -buffer BUFFD3BWP40P140LVT -diode ANTENNABWP40P140LVT -buffer_eco_file buffer_eco.tcl -diode_eco_file diode_eco.tcl -prefix IP_ISOLATION

###读入上述脚本生成的添加buffer和添加antenna diode脚本

##source eco_buf.tcl
##source eco_diode.tcl

在这里插入图片描述

下图所示为添加好子模块cpu buffer的效果图。
在这里插入图片描述

【思考题】为何这个脚本在执行过程中会报如下所示的ERROR(IMPOPT-616)?
在这里插入图片描述


http://www.kler.cn/news/368297.html

相关文章:

  • 安全见闻(6)
  • Telephony中ITelephony的AIDL调用关系
  • 如何在 Linux 中对 USB 驱动器进行分区
  • Linux中vim的三种主要模式和具体用法
  • 如何预防数据打架?数据仓库如何保持指标数据一致性开发指南(持续更新)
  • 虚拟现实在制造业中的应用
  • 视频编辑的创意工坊,使用视频剪辑软件将视频随机分割成两段并去声进行MP3音频和M3u8文件的生成,让视频制作更高效
  • OpenTelemetry 实际应用
  • C++ (10) 软件工程实践:塑造魔法世界的工匠
  • YOlO系列——yolo v3
  • 构建高效租房平台:Spring Boot租房管理系统详解
  • esp32学习:语音识别教程esp-skainet库的使用
  • 【AIGC】2024-ECCV-ControlNet++:通过有效的一致性反馈改进条件控制
  • LINUX基于多IP访问多网站练习
  • 计算机的错误计算(一百三十六)
  • light-task-scheduler的dockerfile打包配置
  • B+树(B树的改进)
  • (九)Proteus仿真STM32单片机硬件I2C和模拟I2C读写PCF8563时钟
  • 【路径跟踪控制:Pure Pursuit控制与车辆运动学模型】
  • Web应用框架-Django应用基础(3)-Jinja2
  • HTML 基础:构建网页结构的基石
  • Java中的反射(3)——反射的应用场景
  • 微信小程序的日期区间选择组件的封装和使用
  • 重学SpringBoot3-Spring WebFlux之SSE服务器发送事件
  • 【jellyfin】解决Edge 浏览器播放 jellyfin 的 hevc/h265 视频“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”错误
  • Vue.js 把字典类型的数据转化为键值对数据,符合echart格式,key-value键值对