前言
视频语法学习:B站链接
笔记原地址:https://github.com/Tan-YiFan/DigitalLogic-Autumn2020/tree/syntax/syntax网络不好,可能打不开。
运算符分为两种,一种是基本运算符,一种是缩位运算符。
一、基本运算符
基本运算符,同C语言一样。[x-1:0]是x位的向量。
&,|,~,^ 都是两个x位的向量运算,结果也是一个x位的向量。
! 逻辑非,一位0;是否有效。
+/- 两个x位的向量运算,虽然结果可能进位,但是一般结果取x位。
? : 三目运算,选择
>>,<<,>>> 移位
x,/,% 很少使用,一般用上面基础的语法去运算,用该符号表示在一个周期内算完x、/、%。
<,<=,!=,>,>=,== 比较运算,需要声明有符号,还是无符号比较,输出0/1。
二、缩位运算符
一位运算符,放在左边
运算符不能视作向量:
(a + b)[3:0] is illegal!
a[3:0]
三、赋值语句
variable = expression//变量=表达式
等号左边的variable,可以是单个变量,也可以是{a, b}, 但不能有常量或运算符
等号右边的expression,可以是单个变量或常量,也可以是{a + b, 1’b1},要注意位数
等号左右两边位数不同,会发生什么?
a = 1;//未标明位宽,系统默认为32位,a=32'b1;
b = a;
c = {a, b, a + b};//注意位宽
{d, e} = {{16{a}}, b, c};
四、电路语句(To be continued)
电路是由电路语句构成的,上述例子都不是电路语句!