一种基于TCL信息传输功能的脚本实现方法技术

技术编号:39128498 阅读:8 留言:0更新日期:2023-10-23 14:49
本发明专利技术公开了一种基于TCL信息传输功能的脚本实现方法,属于芯片设计领域,包括:使用面向对象的方法创建TCL命令,并为所有TCL命令增加默认选项"tclres";使用对象类型改进所有TCL命令的接口函数;统一TCL脚本的翻译器,使交互模式和脚本模式使用同一翻译器;在TCL命令的功能实现函数中,筛选出需要传输的数据;把TCL命令的功能实现函数中筛选出的数据封装成结果对象,然后检测"tclres"选项是否选上,如果选上,则把结果对象赋值给TCL翻译器;修改TCL脚本,根据需要使用TCL命令传输的结果。实现了在芯片设计领域的TCL脚本不同命令行之间发送和接收不同类型的信息和数据,使包含复杂逻辑判断处理功能的TCL脚本控制成为可能。逻辑判断处理功能的TCL脚本控制成为可能。逻辑判断处理功能的TCL脚本控制成为可能。

【技术实现步骤摘要】
一种基于TCL信息传输功能的脚本实现方法


[0001]本专利技术涉及芯片设计领域,尤其涉及一种基于TCL信息传输功能的脚本实现方法。

技术介绍

[0002]在芯片设计领域,经常使用脚本来实现芯片设计的各种功能。比如在FPGA芯片设计中,经常使用TCL脚本来定义工程的引脚配置;在芯片功能的形式化验证中,经常使用TCL脚本来定义验证步骤;在芯片设计的等价性验证中,主要使用TCL脚本来定义验证步骤。上述使用场景在FPGA软件以及EDA软件中都有具体使用。
[0003]目前使用的TCL脚本可以编写已定义的功能代码,并且对每条代码赋予不同的参数,以实现复杂的芯片设计功能,该脚本的优点在于可以节省底层功能代码的重复编写,可以实现不同功能代码的先后顺序排列。例如对于以下指令:
[0004]tcl_command1
[0005]tcl_command2 option1
[0006]tcl_command2 option2
[0007]目前的TCL脚本会依次执行tcl_command1、tcl_command2 option1、tcl_command2 option2。这3行指令在执行的时候相互独立,不会影响其他行。其中第二行和第三行在底层会执行相同的代码块,而该代码块不需要编写2次,所以TCL脚本节省了底层功能代码的重复编写。而第二行和第三行的执行效果是不同的,因为其参数不同,这就实现了通过参数控制代码块的功能,也可以节省底层代码的编写量。但常规的TCL脚本的缺点在于命令行之间缺乏数据、信息的交流,处理命令行之间的信息传递需要额外的工作,例如在底层代码专门编写固定的传输路径,或者手动保存信息来实现,效果比较固定,而且当信息量大或者对多条信息需要分别不同处理方法的时候,极难应对,难以实现特别复杂的芯片设计逻辑。

技术实现思路

[0008]本专利技术的目的在于克服现有TCL脚本用于复杂的芯片设计时存在的问题,提供了一种基于TCL信息传输功能的脚本实现方法。
[0009]本专利技术的目的是通过以下技术方案来实现的:
[0010]主要提供一种基于TCL信息传输功能的脚本实现方法,所述方法包括以下步骤:
[0011]1)使用面向对象的方法创建TCL命令,并为所有TCL命令增加默认选项"tclres";
[0012]2)使用对象类型改进所有TCL命令的接口函数;
[0013]3)统一TCL脚本的翻译器,使交互模式和脚本模式使用同一翻译器;
[0014]4)在TCL命令的功能实现函数中,筛选出需要传输的数据;
[0015]5)把TCL命令的功能实现函数中筛选出的数据封装成结果对象,然后检测"tclres"选项是否选上,如果选上,则把结果对象赋值给TCL翻译器;
[0016]6)修改TCL脚本,根据需要使用TCL命令传输的结果。
[0017]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述使用面向对象的
方法创建TCL命令,包括:
[0018]在向TCL翻译器添加命令时,使用Tcl_CreateObjCommand()函数替代Tcl_CreateCommand()函数。
[0019]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述使用对象类型改进所有TCL命令的接口函数,包括:
[0020]所述Tcl_CreateObjCommand()函数使用的响应函数为ComExec(),TCL命令初始化函数MyCommandInit(),将原始数据类型从const char*改为Tcl_Obj*CONST。
[0021]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,还包括:
[0022]在TCL命令的接口函数中,增加对象数据类型识别功能。
[0023]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,TCL对象的数据类型通过Tcl_Obj

>typePTR

>name来识别。
[0024]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述name中显示的值包括"int","double"以及默认的“char*”类型。
[0025]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述步骤3)具体包括:
[0026]TCL脚本的翻译器通过Tcl_CreateInterp()生成,在程序运行的全周期,使用同一个翻译器,其中,在TCL脚本的交互模式函数Tcl_main()的运行过程中产生一个翻译器,使用了交互模式的TCL脚本使用Tcl_main()产生的翻译器。
[0027]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述筛选出的数据是字符、数字、数组或者自定义类型。
[0028]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,当筛选出的数据是数组时,使用for循环记录数据。
[0029]作为一优选项,一种基于TCL信息传输功能的脚本实现方法,所述根据需要使用TCL命令传输的结果,包括:
[0030]脚本执行某一行输出结果,然后赋值给寄存器ps,接着循环读取寄存器ps中的数据,对每个数据进行show_miter_support处理。
[0031]需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组合或替换构成新的技术方案。
[0032]与现有技术相比,本专利技术有益效果是:
[0033](1)本专利技术通过对现有芯片设计领域TCL脚本的改进,实现了TCL脚本命令行之间的数据传输,兼容多种数据类型,使复杂逻辑处理的芯片设计TCL脚本功能实现成为了可能,也让芯片验证领域应对更庞大的逻辑门验证更为灵活。
[0034](2)在一个示例中,由于使用了"tclres"选项,打开了命令行的信息传输功能,会将命令执行的结果传输给ps变量,该功能完全在脚本内实现,无需底层的代码改动或者是人为的操作。还可以根据具体的结果内容做复杂的逻辑判断和处理。本专利技术极大地丰富了芯片设计中TCL脚本的灵活性和使用场景。
[0035](3)在一个示例中,通过接口函数的对象类型来实现对多种数据类型的兼容。实现了在芯片设计领域的TCL脚本不同命令行之间发送和接收不同类型的信息和数据,使包含复杂逻辑判断处理功能的TCL脚本控制成为可能。本专利技术可以通过专门的设置选项兼容常
规的芯片领域TCL脚本,也可以打开选项支持命令行之间的数据传输。本专利技术支持命令行之间传输的数据类型包括:字符串、整数、浮点数、数组、自定义类型。
附图说明
[0036]图1为本专利技术实施例示出的一种基于TCL信息传输功能的脚本实现方法的流程示意图;
[0037]图2为本专利技术实施例示出的使用常规TCL脚本对文件进行分析的示意图;
[0038]图3为本专利技术实施例示出的使用改进后TCL脚本对文件进行分析的示意图。
具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于TCL信息传输功能的脚本实现方法,其特征在于,所述方法包括以下步骤:1)使用面向对象的方法创建TCL命令,并为所有TCL命令增加默认选项"tclres";2)使用对象类型改进所有TCL命令的接口函数;3)统一TCL脚本的翻译器,使交互模式和脚本模式使用同一翻译器;4)在TCL命令的功能实现函数中,筛选出需要传输的数据;5)把TCL命令的功能实现函数中筛选出的数据封装成结果对象,然后检测"tclres"选项是否选上,如果选上,则把结果对象赋值给TCL翻译器;6)修改TCL脚本,根据需要使用TCL命令传输的结果。2.根据权利要求1所述的一种基于TCL信息传输功能的脚本实现方法,其特征在于,所述使用面向对象的方法创建TCL命令,包括:在向TCL翻译器添加命令时,使用Tcl_CreateObjCommand()函数替代Tcl_CreateCommand()函数。3.根据权利要求2所述的一种基于TCL信息传输功能的脚本实现方法,其特征在于,所述使用对象类型改进所有TCL命令的接口函数,包括:所述Tcl_CreateObjCommand()函数使用的响应函数为ComExec(),TCL命令初始化函数MyCommandInit(),将原始数据类型从const char*改为Tcl_Obj*CONST。4.根据权利要求1所述的一种基于TCL信息传输功能的脚本实现方法,其特征在于,还包括:在TCL命令的接口函数中,增加对象数据类型识别功能。5.根据...

【专利技术属性】
技术研发人员:徐峰
申请(专利权)人:上海阿卡思微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1