You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCL文件解析需求:将电源头作为键存储对应列值

我来帮你搞定这个TCL解析+PST命令生成的需求!下面是针对你需求的详细实现方案:

TCL脚本实现电源列解析与PST命令生成

核心思路

先明确目标:读取目标文件中的电源列数据,把每个电源名称(vdd、vddpll等)作为键,对应列的所有状态值作为列表存储;同时自动生成create_pst和add_pst_state系列命令。

完整TCL脚本示例

# 1. 指定要解析的输入文件路径
set input_file "power_config.txt"

# 2. 打开文件并读取表头(电源名称行)
set fh [open $input_file r]
set header_line [string trim [gets $fh]]
set supply_names [split $header_line] ;# 拆分得到所有电源名称

# 3. 初始化数组存储每个电源的状态序列
array set power_state_map {}
foreach supply $supply_names {
    set power_state_map($supply) [list]
}

# 4. 逐行读取状态数据,填充数组并生成PST命令
set state_index 1
puts "create_pst top_pst -supplies [list {*}$supply_names]"
puts ""

while {[gets $fh line] != -1} {
    set line [string trim $line]
    if {$line eq ""} continue ;# 跳过空行
    
    set state_values [split $line]
    # 把当前行的状态对应到每个电源的序列中
    foreach supply $supply_names val $state_values {
        lappend power_state_map($supply) $val
    }
    
    # 生成当前状态对应的add_pst_state命令
    puts "add_pst_state state$state_index -pst top_pst -state [list {*}$state_values]"
    incr state_index
}
close $fh

# 可选:打印解析后的电源-状态映射,用于验证
puts "\n=== 解析完成的电源状态映射 ==="
foreach supply $supply_names {
    puts "* $supply: [join $power_state_map($supply) " "]"
}

脚本细节说明

  • 文件读取逻辑:先读取表头行拆分出所有电源名称,用数组power_state_map来存储每个电源对应的状态序列,键是电源名,值是状态列表。
  • PST命令生成:先输出create_pst命令(直接用表头的电源列表),然后逐行读取状态数据时,即时生成对应的add_pst_state命令,自动给状态编号(state1、state2...)。
  • 验证输出:最后会打印每个电源对应的完整状态序列,方便你确认解析结果是否符合预期。

示例输入与输出效果

假设你的输入文件内容是:

vdd vddpll vdd_NWELL vdd33 gnd gnd_PWELL
ON ON ON ON gnd_on gnd_on
ON OFF ON ON gnd_on gnd_on
OFF OFF ON OFF gnd_on gnd_on

脚本运行后会输出:

create_pst top_pst -supplies {vdd vddpll vdd_NWELL vdd33 gnd gnd_PWELL}

add_pst_state state1 -pst top_pst -state {ON ON ON ON gnd_on gnd_on}
add_pst_state state2 -pst top_pst -state {ON OFF ON ON gnd_on gnd_on}
add_pst_state state3 -pst top_pst -state {OFF OFF ON OFF gnd_on gnd_on}

=== 解析完成的电源状态映射 ===
* vdd: ON ON OFF
* vddpll: ON OFF OFF
* vdd_NWELL: ON ON ON
* vdd33: ON ON OFF
* gnd: gnd_on gnd_on gnd_on
* gnd_PWELL: gnd_on gnd_on gnd_on

这样就同时实现了电源状态的键值存储和PST命令的自动生成,完全匹配你的需求~

内容的提问来源于stack exchange,提问作者Sri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:25:08