我是靠谱客的博主 专注花瓣,这篇文章主要介绍verilog中不同位数的值之间的异或操作,现在分享给大家,希望可以做个参考。

module top_module(
    input [31:0] a,
    input [31:0] b,
    input sub,
    output [31:0] sum
);
    //内部信号
	wire q1;
    wire [15:0] sum1,sum2;
    wire [31:0] b1;
    //先把少数位数的值进行扩展,然后在进行按位进行异或
    assign b1 = ((b & (~{32{sub}})) | ((~b) & {32{sub}}));
    
    add16 instance1( 
        .a(a[15:0]), 
        .b(b1[15:0]), 
        .cin(sub), 
        .sum(sum1), 
        .cout(q1) 
    );
    
    add16 instance2( 
        .a(a[31:16]), 
        .b(b1[31:16]), 
        .cin(q1), 
        .sum(sum2), 
        .cout() 
    );
    
    assign sum = {sum2,sum1};
    
    
endmodule

 

最后

以上就是专注花瓣最近收集整理的关于verilog中不同位数的值之间的异或操作的全部内容,更多相关verilog中不同位数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部