tcl常用指令
入门书籍推荐 第二版 语法 变量替换 替换的变量是由$后面的所有字母,数字和下划线组成。故遇到非字母,数字,下划线就会终止。 命令替换 反斜杠替换 引用 指令换行 \ 后面一定不要加空格,否则指令解析会出错 三种匹配 exact匹配 glob匹配 正则表达式 变量 无需进行定义,直接使用set进行创建,unset移除,变量包含变量名和变量值 使用$进行调用 区分大小写 变量名和变量值都可以由任意字符组成,但是建议使用字母开头,使用字母,数字和下划线来命名 常用的变量类型有:string list array directionary,synopsys有collection 变量存储分为字符串表达形式和内部表达式形式(整数,实数,名称,列表以及tcl脚本) string match 使用glob匹配方式进行匹配 例子: equal 例子: compare 例子: length 例子: index 例子: range 例子: replace 例子: ...
MATLAB及Simulink模型与UVM的混合仿真介绍
理论基础 info对于一个纯粹的硬件算法模块, 如果验证工程师得到的是 MATLAB/Simulink 模块,那么他在前期验证过程中就会有需求将算法模块置入UVM环境中进行联合仿真。在多数情况下,验证工程师应避免对算法模型进 行二次转换为C/C++模型或 SV 模型,因为这不但意味着额外的工作量,而且在模型转换过程中可能出现失误。 MATLAB和Simulink 模型在MATLAB软件中独立运行,而与UVM 环境并行运行 UVM与MATLAB之间并没有直接的库实现通信, 但可以使用C接口在它们之间扮演“中转站”的角色,因为SV与C的DPI接口、MATLAB 提供的C库可以直接控制MATLAB的执行引擎 info本质还是C和sv之间通过DPI来进行交互。由于MATLAB提供C的接口库,用户可以通过调用C函数来触发和结束MATLAB、传递和得到数据、向MATLAB发送其他控制命令。 matlab提供的C API包括如下,这些指令在matlab的安装头文件engine.h中 打开和关闭MATLAB的执行引擎 传递和得到变量数据 向Matlab命令窗口传递指令 我们要用c...
uvm中的dpi接口
DPI接口介绍 info为了方便与C、C++等语言的交互,uvm中引入了DPI接口,自定义的函数需要写函数主体,然后再import后声明和使用,验证环境中便可以像调用system verilog中的函数一样使用这些函数。而且,对于C语言中内置的函数,不需要写函数主体,直接声明使用。同理c语言也可以调用sv里面的函数或者task,需要export后申明使用 DPI定义 直接编程接口(Direct Programming Interface, DPI)是用于SystemVerilog与其他外部语言的接口 在SV与外部语言之间除了DPI作为连接双方的接口,再没有其他任何交互的部分 SV编译器既不需要编译外部语言,外部语言也不需要编译SV 例如SV与C之间发生交互,那么仿真器需要编译SV,gcc编译器需要编译C,而在仿真时,SV和C由不同容易执行各自的代码 之所以需要DPI接口,是因为在实际的项目中,在验证环境或者设计中,有的时候一些组件是由于其他语言实现的,例如C/C++等,那么为了让仿真器与这些其他语言构成的模型实现交互,引入了DPI接口 目前DPI接口只支持C/C++,暂时...
