verilog学习笔记周总结1(2022/05/16-2022/05/22)

一.语言要素

1.空白符:空格符(\b),制表符(\t),换行符,换页符;

2.注释符:“//”,“/* */”;

Ps:注释全部用英文。

3.标识符:字母,数字,$,"_"的组合;

Ps:区分大小写,第一个字符必须是字母或者下划线,用“\"+非合法标识符也在代码中会看到,但是并不常用。

4.数值

状态含义
0低电平,假或0
1高电平,真或者1
x或X不确定或者未知状态
z或Z高阻态

注:低于0.7V为低电平,高于0.7V为高电平。

5.整数及其表示

数制符号合法标识符
二进制b或B0-1,x,X,z,Z,?,_
八进制 o或O

0-7,x,X,z,Z,?,_

十进制d或D0-9,_
十六进制h或H

0-9,a-f,A-F,a,X,z,Z

注:二进制和十六进制为主

6.实数表示方法:

1)十进制表示法;

2)科学计数法。

二.数据类型 

1.物理数据类型:

①连线型:wire,tri ;wor,trior等等

wire和tri

wire/tri01xz
00xx0
1x1x1
xxxxx
z01xz

wor和trior

wor/trior01xz
001x0
11111
xx1xx
z01xz

②寄存器类型:

  reg型:十数据春初单元的抽象类型,其对应的硬件电路元件具有状态保持作用,能够存储数据,如触发器,锁存器等等。

  reg型变量常用于行为级描述,由过程赋值语句对其进行赋值。

下面来一些简单例子: 

reg a;                    //定义一个一位的名为a的reg变量
reg[3:0]b;                //定义一个4位的名的reg型变量
reg[8:1]c,d,e;            //定义了三个名称分别为c,d,e的八位reg型变量

Ps:reg型变量一般为无符号数,若将一个负数赋给reg型变量,则自动转成二进制补码的形式。

物理数据类型举例说明:

reg rega;                  //定义一个1位的寄存器型变量
reg [7:0]regb;             //定义一个八位的寄存器型变量
tri [7:0]tribus;           //定义一个八位的三态总线
tri0[15:0]busa;            //定义一个16位的连线型,处于三态时为上拉电阻
tri1[31:0]busb;            //定义一个32位的连线型,处于三态时为下拉电位

③存储器型:

存储器型变量可以用来描述RAM型,ROM型存储器以及reg文件。

三.运算符和表达式

1.算术操作符

加法(+);减法(-);乘法(*);除法(/);取模(%)。

位宽:算数表达式的结果长度由最长的操作数来表示。在赋值语句下,算术操作结果的长度由操作左端目标长度决定。

2.关系操作符

举例:

module rela_tb;
reg[3:0]a,b,c,d;
initial
       begin
              a=3;b=6;c=1;d=4'hx;
              $display(a<b);        //结果为真1
              $display(a>b);        //结果为假0
              $display(a<=c);       //结果为假0
              $display(d<=a);       //结果为未知数x
       end
endmodule

3.相等关系操作符

等于“==”,不等于“!=”,全等“===”,非全等“!==”

真1假0,不定值x

“==”运算符真值表
==01xz
010xx
101

x

x

xxxxx
zxxxx

“===”运算符真值表

=== 0 1 x z 0 1 0 0 0 1 0 1 0 0 x 0 0 1 0 z 0 0 0 1

4.逻辑运算符

逻辑与运算符“&&”,逻辑或运算符“||”,逻辑非运算符“!”

ab!a!ba&&ba||b
110011
100101
011001
001100

5.按位操作符

按位取反“~”,按位与“&”,按位或“|”,按位异或"^",按位同或"^~"

按位与真值表
&01x
0000
101

x

x

0

xx

6.移位操作符

左移位运算符''<<",右移位运算符">>";

所移动的位数由右边的操作数来决定,然后用0来填补移出的空位

7.条件运算符

表达形式如下:<条件表达式>?<表达式1>:<表达式2>,结果为真执行表达式1;结果为假执行表达式2。

8.连接和复制运算符

连接运算符“{}”,复制运算符“{{}}”。

另外,本周HDLBits练习截图如下:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值