微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何实现b是a的一半,a、b的数据类型

如何实现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的一半

可以
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) 自己可以琢磨一下这个算法

非常感谢您的帮助

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top