题解 | #位拆分与运算#

位拆分与运算

https://www.nowcoder.com/practice/1649582a755a4fabb9763d07e62a9752

`timescale 1ns/1ns

module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,

output [4:0]out,
output validout
);
//*************code***********//

wire [15:0]d0;

assign validout = (sel == 2'd0) ? 0 : 1;

assign d0 = (validout == 0) ? d : d0;

assign out = (validout == 0) ? 0 : (sel == 2'd1) ? d0[3:0] + d0[7:4] : (sel == 2'd2) ? d0[3:0] +d0[11:8] : d0[3:0] +d0[15:12]; 

//*************code***********//
endmodule

寄存一下输入的d值,随后使用三目运算符进行后续的sel处理

全部评论

相关推荐

小覃1:硕士了还投助理岗位吗,一般不都直接干工程师了吗
点赞 评论 收藏
分享
草稿猫编程:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务