在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 373|回复: 3

[求助] 实现根据掩码选择数据输出

[复制链接]
发表于 2024-10-29 16:20:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
16bit的掩码输入,其中4个有效位,同时有128bit输入数据,根据这个4位掩码将输入数据转为32bit输出数据,有比较好的实现方式吗?
发表于 2024-10-29 16:30:18 | 显示全部楼层
一种可能实现方案:

将输入16bit数依次进行4轮前导1检测并消去最高位1,分别将每一轮检测出来的最高位1对应的128bit中的8bit数据提取出来,最后4组8bit数拼出32bit输出数据。

根据需要每轮数据处理可以用寄存器打一拍以提高工作频率。
发表于 2024-10-30 09:49:44 | 显示全部楼层
module test(mask,data_i,data_o);
input [15:0]   mask;
input [127:0] data_i;
output[31:0]  data_o;
wire[31:0]     data_tmp;
integer  bit_shift;
for (bit_shift = 0;bit_shift  < 16;bit_shift = bit_shift + i) begin
    if(mask[bit_shift]) begin
        data_tmp = {data_i[ (bit_shift+1)*8-1 : bit_shift*8 ], data_tmp[31:8]};
    end
end
assign data_o = data_tmp;
endmodule

发表于 2024-10-31 16:36:15 | 显示全部楼层
1.mask按bit扩展后和原始数据与在一起把无效数据抹掉; 2.mask作为vld,配合数据做sort bubble把有效数据移动到一头取出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 00:44 , Processed in 0.016803 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表