我是靠谱客的博主 专注花瓣,最近开发中收集的这篇文章主要介绍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中不同位数的值之间的异或操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部