linux 使用icc运行tcl,Tcl在ICC2中的应用:定义一个proc,实现将一个cell直接替换成另一个功能不等价的cell...

本文介绍了如何在Linux环境下利用icc运行TCL脚本来替换电路设计中的cell。具体步骤包括获取cell信息,断开逻辑连接,删除旧cell,创建新cell并移动,以及恢复连接关系。脚本`change_cell`实现了这一功能,它能够将一个cell替换为功能不等价的cell,同时保持连接关系。
摘要由CSDN通过智能技术生成

7180bbedd9da3bf02c3982db5969a282.png

1脚本

proc change_cell { cell ref }  {

##第一部分:得到这个cell的name和位置

set cell_name [get_attibute  -objects [get_cells $cell] -name full_name]

set location  [get_attibute  -objects [get_cells $cell] -name  origin]

##第二部分:得到这个cell的logic pin和与之连接的pin

set input_pin [get_pins  -of_objects [get_cells $cell] -filter “port_type==signal&&direction==in”]

set output_pin [get_pins  -of_objects [get_cells $cell] -filter “port_type==signal&&direction==out”]

set input_pin_connect_pin [remove_from_collection [all_connected -leaf [get_nets -of_objects $input_pin]] $input_pin_connect_pin]

set output_pin_connect_pin [remove_from_collection [all_connected -leaf [get_nets -of_

以下是一个简单的 Tcl 脚本,用于手动 fix trans 并生成可用于 ICC 运行的脚本: ``` # 手动 fix trans 脚本 # 定义输入文件和输出文件 set input_file "input.v" set output_file "output.v" # 读取输入文件 set fp [open $input_file r] set content [read $fp] close $fp # 替换不合法字符 set content [string map {"\r" "\n" "\n\n" "\n"} $content] # 查找所有的传输语句 set trans_list [regexp -all -inline {\btrans\b.*?;}\n$content] # 遍历传输语句列表,手动 fix trans foreach trans $trans_list { # 分离传输语句的左右部分 set left [lindex [split $trans "="] 0] set right [lindex [split $trans "="] 1] # 查找左部分的所有信号 set signal_list [regexp -all -inline {\b\w+\b} $left] # 遍历信号列表,添加前缀 foreach signal $signal_list { set prefix "i_" set new_signal "${prefix}${signal}" set left [string map {"\b${signal}\b" "${new_signal}"} $left] } # 替换原来的传输语句 set content [string map {"${trans}" "${left}=${right}"} $content] } # 写入输出文件 set fp [open $output_file w] puts $fp $content close $fp # 输出操作完成 puts "操作完成!" ``` 使用方法: 1. 将上面的脚本保存到一个文件,例如 `fix_trans.tcl`。 2. 将需要手动 fix trans 的 Verilog 文件命名为 `input.v`,并将其放置在与 `fix_trans.tcl` 同一目录下。 3. 打开终端,进入到 `fix_trans.tcl` 所在目录,执行以下命令: ``` tclsh fix_trans.tcl ``` 4. 执行完成后,会在同一目录下生成一个名为 `output.v` 的 Verilog 文件,该文件已经手动 fix trans 并可用于 ICC 运行。 注意:该脚本只是一个简单的示例,只适用于简单的 Verilog 文件。在实际使用,需要根据具体情况进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值