《各类脚本工具语言记录》
《各类脚本工具语言记录》
时序图工具WaveDrom Hitchhiker’s Guide to the WaveDrom
vitis_user_guide: User Managed Mode in Vitis Unified Embedded IDE • Vitis Tutorials: Embedded Software • 阅读器 • AMD 技术信息门户
verilog在tb中的一些操作
仿真的一些数据
//-------------------- example1 --------------------// 只需要通过修改txt,不用重新编译来仿真
file = $fopen("AAA.csv", "r");
cnt = 0;
while (!$feof(file)) begin
$fscanf(file, "%f,%f", timeBai[cnt], dat_vector[cnt]); //读取所有行,匹配格式为%f,%f
cnt ++;
end
$fclose(file);
//-------------------- example2 --------------------// 这个很有意思啊
看下面代码,这里通过txt来控制cmd及对应数据
SVA
sva写在rtl(设计)里面 不要写在tb里面
`ifdef SVA
Bis0: assert property(Evt_b0)
else
$error("b is not 0 @ %t", $time);
Bis1: assert property(Evt_b1)
else
$display("b is not 1 @ %t", $time);
property Evt_b0;
@(posedge clk) a |-> ##1 ~b;
endproperty
property Evt_b1;
@(posedge clk) (rst_n && ~a) |-> ##1 b;
endproperty
`endif
//下图展示了在verdi中查看SVA
scala语法
参数声明格式
1
virtualChannelParams: Seq[UserVirtualChannelParams] = Seq(UserVirtualChannelParams())
在这里,Seq[UserVirtualChannelParams]
是类型注解,用于指定参数 virtualChannelParams
的类型。它不是返回类型的定义。
在 Scala 中,参数的声明格式通常是:参数名: 参数类型 = 默认值
1
channelGen: Parameters => ChannelOutwardNode => ChannelOutwardNode = p => u => u
在这里也是,参数类型为Parameters => ChannelOutwardNode => ChannelOutwardNode
,该类型为一个函数。接受Parameters
并返回一个xx函数,xx函数接受一个类型为 ChannelOutwardNode
的参数,最终返回一个类型为 ChannelOutwardNode
的值。
tcl
- 变量置换:
set y [expr $x+100]
- 赋值:
set b ${a.1}
- List:
list 1 2 {3 4}
Makefile
- 关于部分makefile的路径管理
- \$(abspath ./sim_c/include)
:
abspath
函数会将给定的相对路径转换为绝对路径。在这个例子中,./sim_c/include
是一个相对路径,$(abspath ./sim_c/include)
会将其转换为绝对路径 - \$(addprefix -I, $(INC_PATH))
:函数会将指定的前缀
-I
添加到INC_PATH
变量中的每个路径前面 - $@
:
1 2 3 4
target: dependency1 dependency2 echo "Target is $@" # target echo "First dependency is $<" # dependency1 echo "All dependencies are $^" # dependency1 dependency2
- \$(abspath ./sim_c/include)
python
官方帮助: https://docs.python.org/zh-cn/3/
python正则表达匹配规则
r'/\*.*$ r'^.*\*/'
^
表示行的开始,.*
表示任何字符(除了换行符)0次或多次re.sub('//.*$','',lines[i])
替换re.findall(r'/\*',lines[i])
找到所有匹配模式,返回元组列表re.search(pattern, string, flags)
描整个字符串并返回第一个成功的匹配。
This post is licensed under CC BY 4.0 by the author.