HDLbits练习
Vector
1.vectors
功能:
收获:
wire [99:0]data; 意思是指定义100个一比特的数据
wire data[99:0]; 意思是指定义一个100比特的数据
代码:
2.Vector in more detail
功能:
收获:
赋值位宽不相等的时候,适当截断和赋零。
z[-1:-2] 代表的意思是取数组z的最低两位
刚开始可以声明 `default_nettype none 用来减少类型bug 关掉
代码:
3.Vector part select
功能:
颠倒顺序,练习截断。
收获:截断与拼接
代码:
4.Bitwise operators
功能:输出逻辑或的结果,输出按位或的结果,并将两个输入取反,拼接。
收获:
区别逻辑与和按位与,逻辑与(logic operators)是将操作数看作一个整体,真就是非零,假就是非零。逻辑运算只输出一位,按位操作输出N位。
代码:
5.Four-input gates
功能:按位做与、或和异或
收获:可以直接对一个多位数使用运算符代替各个位进行运算。
代码:
6.Vector concatenation operator
功能:
连接操作,将六个五比特的数据连接起来,后面再加上两个1,然后将其分成四个八比特的数据输出。
收获:
连接操作可以在右边也可以在左边,比如assign {out[7:0], out[15:8]} = in[15:0];
代码:
7.Vector reversal 1
功能;
逆转位顺序
收获:
代码:
8.Replication operator
功能:
为了减轻一些乏味的工作,将一些小的向量拼接到一起,使用重复操作符,或者是拓展宽度,复制最高位。
{3'd5, {2{3'd6}}}
收获:
重复拼接符号
代码:
9.More replication
功能:
收获:
重复拼接的符号容易搞错,{num{data}}
代码: