如何实现b是a的一半,a、b的数据类型
时间:10-02
整理:3721RD
点击:
比如说a[1:0] b[1:0] 如果a是10的话 b就是01 也就是说b是a的一半
举个例子
assign b[1:0]=a[1:0]/2;
这样是不可以的 我应该怎么才能实现这个
a和b的值都是不确定的 怎样才可以实现b是a的一半
举个例子
assign b[1:0]=a[1:0]/2;
这样是不可以的 我应该怎么才能实现这个
a和b的值都是不确定的 怎样才可以实现b是a的一半
可以
parameter MSB = 2; //位宽
assign b[MSB-1:0] = {1'b0,a[MSB-1:1]};
这个是什么意思呢 我想做的是a[15:0]是b[15:0]的一半 b[15:0]值是不确定的 这个怎样改
那反过来啊
parameter MSB = 16;
...
assign a[MSB-1:0] = {1'b0,b[MSB-1:1]};
就是,去除b中最低位,把所有b每一位往地位移动,高位补0. 就是b/2了。
1. 这个拼接{} 可以看一下语法:
2. 高位往低位移动1位(最低位去除),相当于除以2. (移动2位相当于除以4、移动3位相当于除以8) 自己可以琢磨一下这个算法
非常感谢您的帮助