我想实现一个一路输入,8路输出位宽为32位的数据分配器,3位计数器作为分配到哪一路的条件,结果波形中只能把输入的低4位值传到输出,无论输入值多少,输出高28位一直为0.
比如:counter=0,datain=ffff_fffe,得到的dataout1=0000_000e而不是ffff_fffe
最开始代码如下:
assign dataout1 = {counter==3'd0}?datain:32'd0;
assign dataout2 = {counter==3'd1}?datain:32'd0;
assign dataout3 = {counter==3'd2}?datain:32'd0;
assign dataout4 = {counter==3'd3}?datain:32'd0;
assign dataout5 = {counter==3'd4}?datain:32'd0;
assign dataout6 = {counter==3'd5}?datain:32'd0;
assign dataout7 = {counter==3'd6}?datain:32'd0;
assign dataout8 = {counter==3'd7}?datain:32'd0;
其中counter和datain都是与时钟同步的。
后来我改为了好几种写法都存在同样的问题,不知道怎么写才能实现我想要的功能?
需求补充: 括号打错了,应该是小括号