题解 | #位拆分与运算#

位拆分与运算

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***********//

reg [4:0]   out_r;

reg   validout_r;

reg [15:0]  data_temp_r;

always@(*)(1444584)begin

    case(sel)

        'd0:begin

            out_r   =   'b0;

            validout_r    =   1'b0;

            data_temp_r =   d;

        end

        'd1:begin

            out_r   =   data_temp_r[3:0]+ data_temp_r[7:4];

            validout_r    =   1'b1;

        end

        'd2:begin

            out_r   =   data_temp_r[3:0]+ data_temp_r[11:8];

            validout_r    =   1'b1;

        end

        'd3:begin

            out_r   =   data_temp_r[3:0]+ data_temp_r[15:12];

            validout_r    =   1'b1;

        end

        default:begin

            out_r       =   'b0;

            validout_r  =   1'b0;

        end

    endcase

end

assign out  =   out_r;

assign validout = validout_r;

//*************code***********//

endmodule

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务