日常记录(83)vim整理
作者:互联网
断言的onehot
taa:
vcs -sverilog -R taa.sv
代码文件
- onehot、onehot0是断言的语法,不是sv的系统函数,因此只能在property等断言代码中使用。
- property需要添加clk,需要仿真时间,才能测试效果。
- onehot检查是否为只有一位为1,onehot检查是否最多只有一个1.
module taa ();
logic clk;
property p1;
@(posedge clk)
$onehot(8'b0001_0000);
endproperty
property p2;
@(posedge clk)
$onehot(8'b0011_0000);
endproperty
property p3;
@(posedge clk)
$onehot0(8'b1100_0000);
endproperty
property p4;
@(posedge clk)
$onehot0(8'b0000_0000);
endproperty
initial begin
assert property(p1);
assert property(p2);
assert property(p3);
assert property(p4);
end
initial begin
clk = 0;
forever begin
#10 clk = ~clk;
end
end
initial begin
#100;
$finish;
end
endmodule
输出
"taa.sv", 23: taa.unnamed$$_1: started at 10s failed at 10s
Offending '$onehot(8'b00110000)'
"taa.sv", 24: taa.unnamed$$_2: started at 10s failed at 10s
Offending '$onehot0(8'b11000000)'
$finish called from file "taa.sv", line 37.
$finish at simulation time 100
强制转换
使用单引号,静态转换,可综合
https://blog.csdn.net/I_learn_code/article/details/121915477
代码
module tbb ();
initial begin
logic[5:0] a = 4'b1100;
$display("logic a is %p", logic'(a));
a = 4'b1101;
$display("logic a is %p", logic'(a));
end
endmodule
输出
logic a is 0
logic a is 1
git恢复文件
https://blog.csdn.net/qq_39505245/article/details/119877928
文件已经提交(commit)
从库恢复到工作区
git reset --hard <lable>
文件提交到暂存区(add)
从库恢复到工作区
git reset --hard HEAD
文件未提交
- 恢复所有,重置工作区、暂存区
- 单独恢复某一文件(需要高版本的git)
git reset --hard HEAD
git restore <filename>
git查看差异
- 不指定diff的参数,则是和暂存区相比
- 指定diff的HEAD,则是和库相比
- --cached则是默认HEAD和暂存区相比
当前工作区与暂存区
git diff <filename>
暂存区与库
git diff --cached <filename>
工作区与库
- HEAD是提交
git diff HEAD <filename>
https://blog.csdn.net/bianliuzhu/article/details/81907367
如果是新建的文件
则git add
如果是修改的文件
则git add
如果是删除的文件
则 git rm
covergroup带参数
- with function sample固定,只能是sample
covergroup fun_name() with function sample(xxx xxx)
module tcc ();
covergroup cvg() with function sample(logic [3:0] a);
coverpoint a;
endgroup: cvg
initial begin
cvg cvg_inst = new();
cvg_inst.sample(1);
end
endmodule
vim命令
gd命令,查看定义:go define
:help 查看帮助
gq+action格式化行宽,根据textwidth
如gqap,对一个段落格式化
g<ctrl+g>显示统计信息(如可视化模式中的选中行数)
!!变成:.!外部命令执行,并在当前本文输出
:ls查看缓冲区列表
:ls!查看包括未列入的缓冲区列表
:args和:argsdo配合,使得后者在多文本中对args指定的文件执行argsdo
映射模式
omap挂起操作
imap插入模式
cmap命令模式
nmap正常模式
xmap可视模式
nnoremap用于非递归(防止命令连锁,常用)
寄存器
0最近赋值
1-9最近删除
a-zA-Z用户定义
:最近的命令
.添加的文本
%文件名
/需要匹配的文本
如:! cat %,调用外部打印文本内容
:let @/='\<<cword>\>',是*
命令范围(命令模式)
. 当前
1 第一行
$ 最后一行
% 等价于1,$
+n向后n行
-n向前n行
命令范围以,或者;分隔,
正则表达式:
匹配开头:\<
匹配结尾:\>
使用*按键,对寄存器/的内容获取<cword>,并添加匹配开头结尾,用于在当前文本中查找关键字
\s空格
\+一个或多个
$行尾
去掉文本内所有行末尾的空格 :%s/\s\+$//g
在当前段落中的内容被外部命令ls替代。
:?^$?+1,/^$/-1!ls
标记
m标注标记
`或者'跳转标记,前者跳转到标记点,后者是标记行。
a-z文件内标记
A-Z文件间标记
[]、<>、()、{}
分别为修改复制块的头尾、可视化的头尾、句子的头尾、段落的头尾。
将可视化选中的文本替换为外部命令ls的执行结果。
:'<,'>!ls
标签:git,clk,vim,onehot,日常,logic,83,property,taa 来源: https://www.cnblogs.com/bai2022/p/16243940.html