python tcl quartus_使用TCL脚本语言操作Quartus(二)

本文的话题:

-其他一些TCL指令

-访问命令行选项

-在Quartus II中使用TCL脚本

-获取帮助

PS:里面提到的命令行和可执行命令实际上一部分指在quartus II软件中,

还有部分在windows cmd命令行中也可以使用,读起来可能会觉得有点乱。

::quartus::misc -杂项指令

-实用和一些杂项的指令:在每一个可执行程序中默认被打开

-一些通常使用到的指令

escape_brackets

post_message

escape_brackets -字符集合区间通配符

-许多Quartus II的TCL脚本允许在指令行中采用正则表达式

-通常采用匹配区间会存在一些问题

address\[10\]

正则表达式匹配address0或者address1

-相等匹配符必须匹配两次

address\\\[10\\\]

PS:这段意思是任何一个元字符都可以通过给它加上一个反斜杠字符(\)作为前缀的方法来转译,

配对的元字符(如[])不能用作元字符时必须被转义,否则正则表达式分析会抛出一个错误。

也就是上述第一个匹配的结果是匹配address*这种形式,但是第二个为相等匹配,匹配目标就是

address\[10\],多余的不进行匹配

-采用通配符更方便的使用命令行

-示例,获取所有总线上的赋值信息

例子:

set address_names "address\[*\]"

set address_locations [get_all_instance_assignments \

-to [escape_brackets $address_names] -name LOCATION]

post_message -打印信息的相关指令

-按照Quartus II中的标准格式打印信息

-特殊信息格式和文本

info,extra_info,warning,critical_warning,error

TCL回收机制

-一些TCL指令返回数据的最大设置值

-回收是包含在大数据设置中

特殊Quartus II的TCL API

-通过foreach_in_collection指令访问回收元素

拥有和foreach类似的功能

-回收指令集返回回收数据,其中包含foreach_in_clooection

不需要独立的加载包

TCL Collection 例子

-打印所有细节部分的设置

set instance_assignments [get_all_instance_assignments -name *]

foreach_in_collection instance $instance_assignments {

set sect_id[lindex $instance 0]

set src[lindex $instance 1]

set dest[lindex $instance 2]

set name[lindex $instance 3]

set value[lindex $instance 4]

puts "Section ID ($sect_id)"

puts "Source ($src)"

puts "Destination ($dest)"

puts "Assignment Name ($name)"

puts "Assignment value ($value)"

}

访问指令选项

-Quartus II4.1版本支持argv,argc,argv0

之前的版本通过args传值

args在4.1版本也支持

4.1版本变量

更早的版本

argv

quartus(args)

argc

llength $quartus(args)

argv0

info nameofexecutable

命令行选项的示例

-命令行包提供了灵活访问命令行选项的方法

在命令行列表中拥有比固化代码更加稳健

包含于Quartus II中

-示例

quartus_sh -t myscript.tcl -project my_project -revision second

-通过选项名打开工程

quartus_sh -t myscript.tcl -project my_project -revision second

-Open Project with Optional Revision Name

package require cmdline

set options {\

{"project.arg""""Project Name"}\

{"revision.arg""""Revision Name"}\

}

array set optshash [::cmdline::getoptions ::argv $options "Options:"]

if{[string equal "" $optshash(revision)]}{

#No revision is specified

project_open $optshash(project)

}else{

project_open $optshash(project) -revision $optshash(revision)

}

#The rest of your script follows here

在Quartus II中使用TCL脚本

-可执行命令行

批处理

交互式shell

快速执行TCL指令行

-TCL命令行在GUI界面中

交互式Shell

在View->Unity windows->Tcl console下

在命令行中使用TCL脚本

-运行脚本

quartus_sh -t

quartus_sh -t myscript.tcl Stratix

-交互式使用

quartus_sh -s

-直接使用

quartus_sh --tcl_eval

quartus_sh --tcl_eval help -pkg flow

-与其他命令行具有相同的功能

运行TCL脚本

-命令行中支持TCL脚本

指令名

一般用途

quartus_sh

Assignments,General Reporting,Compiling,Simple Shell

赋值,一般报告,编译,简单shell

quartus_tan

Timing Reporting,Advanced Timing Analysis

时序报告,时序高级分析

quartus_cdb

Back Annotation,LogicLock Regions,Chip Editor Functions

描述,固定模组优化,芯片优化

quartus_sim

Simulate with Tcl Testbenches

仿真验证

为什么会有这些不同?

-不同的命令行支持不同的功能

不同TCL包允许不同的功能

-例子

quartus_cdb Supports LogicLock Functions,

Not Timing Analysis Functions

Basic Project Functions Supported by All

-可以查询Quartus II中手册查询相关资料

也可以在TCL命令行中使用help指令

Quartus II中TCL脚本

-TCL脚本被包含于Quartus II中

Design Space Explorer(DSE)

QHelp Unility

QFlow Script

-在Tool中的TCL Scripts

-为了需要改变版本

小测试

-列出三种在Quartus II软件中使用TCL脚本的方法

答案

-直接在GUI界面中使用

-交互式TCL命令行中使用

批处理行中使用

直接使用命令行

-TCL工具栏按钮(未必包含于所有的情况)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值