Tcl在Vivado中的应用

  作者:周立娜 时间:2015-04-28来源:电子产品世界

  如图3所示,pins 在 Vivado 数据库中有个独特的存在形式,即 / 。 这里的“ /”不表示层次,而是其名字的一部分, 表示这个 pin 所属的实体。 也就是说,在使用 get_pins配合-hier 来查找 pins 时,“ /”可以作为名字的一部分,出现在搜索条件内(注意与上述get_cells 和 get_nets 的使用区别) 。
    

  2.2 目标之间的关系

  Tcl 在搜索网表中的目标时,除了上述根据名字条件直接搜索的方式,还可以利用目标间的关系,使用-of_objects(在 Tcl 中可以简写为-of)来间接搜索特定目标。 Vivado 中定义的五类目标间的关系如图4(左)图所示。 以图4(右)图的设计来举例。
    

  图5是一个更复杂的示例,涉及跨层次搜索。可以看到在 get_pins 时, 要加上-leaf才能准确定位到门级元件(或 blackbox)的端口 q。另外, 在实际操作中, 使用 get_nets 和get_pins 时,需要视情况而加上其它条件( -filter) 才能准确找到下述例子中的 cells ( i2)。

  2.3 高级查找功能

  在使用 get_*命令查找网表中的目标时,除了名字这一直接条件,往往还需要辅以其它更复杂的条件判断,这就需要用到高级查找功能: -filter 结合 Tcl 支持的各种关系和逻辑运算符( ==, !=, =~, !~, <=, >=, >, <, &&, ||)甚至是正则表达式来操作。
    

  在创建子程序时也常常用到-filter,例如下述 get_p 的子程序/过程就可以用来返回指定管脚的方向属性,告诉用户这是一个输入管脚还是一个输出管脚。
    

  3 Tcl 在 Vivado 中的延伸应用

  Tcl 在 Vivado 中的应用还远不止上述所列,其它常用的功能包括使用预先写好的 Tcl脚本来跑设计实现流程,创建高级约束( XDC 不支持循环等高级 Tcl 语法)以及实现复杂的个性化设计流程等等。 Tcl 所带来的强大的可扩展性决定了其在版本控制、 设计自动化流程等方面具有图形化界面不能比拟的优势。

  Vivado 在不断发展更新的过程中,还有很多新的功能,包括 ECO、 PR、 HD Flow 等等都是从 Tcl 脚本方式开始支持,然后再逐步放入图形化界面中实现。这也解释了为何高端 FPGA 用户和熟练的 Vivado 用户都更偏爱 Tcl 脚本。

1 2 3

关键词: Xilinx VivadoTcl FPGA cells

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版