位拆分与运算

 

`timescale 1ns/1ns
module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,
output reg[4:0]out,
output reg validout
);
//*************code***********//
    reg [15:0]d_reg;
    always@(posedge clk or negedge rst)
        if(!rst)begin
            out<=5'b0;
            validout<=1'b0;    //owing validout is an output
            d_reg<=0;           //owing the input must the wire mode
        end
        else case(sel)
                0:begin
                    d_reg<=d;
                    validout<=0;
                    out<=0;
                end
                1:begin
                    validout<=1;
                    out=d_reg[3:0]+d_reg[7:4];
                 end
                2:begin
                    validout<=1;
                    out=d_reg[3:0]+d_reg[11:8];
                end
                3:begin
                    validout<=1;
                    out=d_reg[3:0]+d_reg[15:12];
                end
                default:;
        endcase          
//*************code***********//
endmodule

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值