我是靠谱客的博主 拼搏花瓣,最近开发中收集的这篇文章主要介绍Verilog篇(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Verilog在行为级建模时常用到的一些函数,变量等。

1:$random(seed),每次根据seed的值产生一个32位的有符号数,seed的数据类型必须是寄存器(reg),整形(integer),时间(time)等类型。变形$dist_uniform(seed,start,end)。

integer a_time;

integer AP_SEED;

a_time = $dist_uniform(AP_SEED,min_time,max_time);

 

2: Driver strength spec,只适用于线网等类型的变量,wire tri wand等。可以在变量声明或连续赋值中使用。一对关键字分别表示(0,1)时的strength. 有supply,strong,pull,weak,highz等,strength按8个level划分。

assign (pull0,pull1) SD1_CLK = 1'b0;

 

3: $display("pc_mon_%d (time: %t): pc_ca7=%h ", PC_NUM,$time,cur_pc);

 

4: tranfif1 gpio_pads_logic0 (gpio_pads[0], tb_gpio_pads[0], select_gpio_driver);表示select_gpio_driver为1时,两个信号双向连接起来。

 

5:bufif1 bf1 (outw, inw, controlw); notif1 bf1(outw, inw, controlw); 表示相应的control为1时,输出会为Z,否则正常logic。只能单向传输。

 

6:buf和not可以有多个输出。 buf b1(out1, out2, in); in输入,out1,out2输出。只能单向传输。

 

7: specify模块用于指定source与destination之间的时延,参数用specparam表示。

 

8:final  begin...end,在$finish之前,会显式调用的procedure。

 

9:NC verilog调试的一些tcl命令:

deposit,与force信号作用类似,但是如果有驱动自然会跟随驱动的情况。

 

verilog中的位运算符,缩位运算符,逻辑操作符。

1)位运算符:操作数几位,结果就有几位,若两个操作数位数不同,位数短的操作数做段补零。

   按位取反:~

   按位与:&

   按位或:|

   按位异或:^

   按位同或:^~或~^

2)缩位运算符:结果只有一位。

   与缩位运算:&

   或缩位运算:|

   异或缩位运算:^

   与,或,异或,和非运算符组成的复合运算符:~&, ~|, ~^

3)逻辑运算符:

   逻辑与:&&

   逻辑或:||

   逻辑非:!

   逻辑与和逻辑非是双目运算符,逻辑非是单目运算符。

转载于:https://www.cnblogs.com/-9-8/p/4377900.html

最后

以上就是拼搏花瓣为你收集整理的Verilog篇(一)的全部内容,希望文章能够帮你解决Verilog篇(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部