您的当前位置:首页代码:动态/固定&截位/拼接
代码:动态/固定&截位/拼接
来源:锐游网
都是使用的以下这个文档的内容,方便我自己学习,我又写了一遍
固定的截位,固定拼接,意思就是截的位数和拼接的位数都是固定的,其中截位使用方括号 [ ],拼接使用大括号{ },如下:
reg [7 :0] a;
reg [3 :0] b;
reg [11:0] c;
assign b = a[3:0];//截位
assign a[7:4] = b;//截位
assign c = {a,b};//拼接
assign c = {a[3:0],b[3:0]};//拼接
接下来动态截位:
语法规则:
vect[base+:width]或[base-:width]
规则讲解:
(1)base是起始位,width是变化的位宽
(2)"+:"增续,“-:”降序
例子:
分别举两个例子,分别是大端和小端
例子:
reg [7:0] vect_1;//大端
reg [0:7] vect_2;//小端
//大端转换
vect_1[4+:3]//表示,起始位为4,宽度为3,**升序**,则vect_1[4+:3] = vect_1[6:4]
vect_1[4-:3]//表示,起始位为4,宽度为3,**降序**,则vect_1[4-:3] = vect_1[4:2]
//小端转换
vect_2[4+:3]//表示,起始位为4,宽度为3,升序,则vect_2[4+:3] = vect_2[4:6]
vect_2[4-:3]//表示,起始位为4,宽度为3,降序,则vect_2[4-:3] = vect_2[2:4]
因篇幅问题不能全部显示,请点此查看更多更全内容