日常记录(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
  • module 里可以增补额外的变量例化,但是在class里,只能对covergroup类型作为变量进行例化。

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

image

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
posted @ 2022-05-07 19:48  大浪淘沙、  阅读(113)  评论(0)    收藏  举报