FPGA学习笔记7-Quartus II其余的部分TCL指令(翻译)

议程
-其他一些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版本变量更早的版本
argvquartus(args)
argcllength $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 <script file> [<script arguments>]
quartus_sh -t myscript.tcl Stratix

-交互式使用
quartus_sh -s
-直接使用
quartus_sh --tcl_eval <tcl command>
quartus_sh --tcl_eval help -pkg flow

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

运行TCL脚本

-命令行中支持TCL脚本

指令名一般用途
quartus_shAssignments,General Reporting,Compiling,Simple Shell赋值,一般报告,编译,简单shell
quartus_tanTiming Reporting,Advanced Timing Analysis时序报告,时序高级分析
quartus_cdbBack Annotation,LogicLock Regions,Chip Editor Functions描述,固定模组优化,芯片优化
quartus_simSimulate 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工具栏按钮(未必包含于所有的情况)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA密码锁程序是一种基于FPGA芯片的数字密码锁系统,使用Altera公司的Quartus软件进行程序设计和开发。 FPGA(现场可编程门阵列)是一类可编程逻辑器件,可以根据需要被重新编程以执行特定的功能。密码锁程序使用FPGA芯片作为主控制单元,通过对芯片中的逻辑单元进行重新配置,实现密码输入和验证的功能。 在Quartus软件中,首先需要进行逻辑设计,包括密码输入和密码验证的逻辑电路。可以使用硬件描述语言(HDL)如VHDL或Verilog,或者使用可视化编程工具如SOPC Builder进行设计。设计好的逻辑电路将被翻译FPGA芯片所能理解的位流(bitstream)文件。 接下来,需要进行信号约束和时序分析。信号约束用于规定逻辑电路中各个信号的时间限制和电气约束,确保电路能够在规定的频率下正常工作。时序分析则用于检查逻辑电路的时序性能,发现潜在的时序违规问题。 完成信号约束和时序分析后,就可以进行编译和生成位流文件。编译过程包括逻辑综合、技术映射和布线。逻辑综合将逻辑电路转换成可用的逻辑门级网表,技术映射将逻辑门级网表映射到目标FPGA芯片的资源上,布线则将逻辑电路中的逻辑门和寄存器实际连线。 生成位流文件后,可以将其下载到FPGA开发板上进行验证和测试。通过输入密码,密码锁程序会根据设计好的逻辑电路进行密码验证,并控制开关等外设进行锁的开关操作。 总而言之,FPGA密码锁程序是基于FPGA芯片的数字密码锁系统,在Quartus软件中进行逻辑设计、信号约束、时序分析、编译和生成位流文件等步骤后,在FPGA开发板上进行验证和测试。这种程序设计方法的灵活性和可编程性使得密码锁具有更高的安全性和定制化程度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值