题解 | #位拆分与运算#

位拆分与运算

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处理

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
11-15 18:39
已编辑
西安交通大学 Java
全村最靓的仔仔:卧槽,佬啥bg呢,本也是西交么
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务