Verilog 表达式宽度32与逻辑门阵列端口1的宽度1不匹配

Verilog 表达式宽度32与逻辑门阵列端口1的宽度1不匹配,verilog,Verilog,我有两个问题 无输出 表达式宽度32与逻辑门阵列端口1的宽度1不匹配 当我写和(OutAnd,a,b),它显示一个错误 Expression width 32 does not match width 1 of logic gate array port 1. 我怎样才能修好它 顺便说一下。我禁止使用&运算符、过程分配和始终阻塞 这是我的密码: 铝钒 和门的输出被定义为1位,并且您希望在其中放入32位,这可能会导致错误或警告。要解决此问题,您有两种方法:使用以下语法实例化32和门 and u1

我有两个问题

  • 无输出
  • 表达式宽度32与逻辑门阵列端口1的宽度1不匹配
  • 当我写
    和(OutAnd,a,b),它显示一个错误

    Expression width 32 does not match width 1 of logic gate array port 1.
    
    我怎样才能修好它

    顺便说一下。我禁止使用
    &
    运算符、过程分配和始终阻塞

    这是我的密码:

    铝钒


    门的输出被定义为1位,并且您希望在其中放入32位,这可能会导致错误或警告。要解决此问题,您有两种方法:使用以下语法实例化32和门

    and u1 (OutAnd[0], a[0], b[0]);
    and u1 (OutAnd[1], a[1], b[1]);
    and u1 (OutAnd[2], a[2], b[2]);
    .
    .
    .
    and u1 (OutAnd[31], a[31], b[31]);
    
    或者使用generate语句,这里是一个示例代码

    genvar i;
    
    generate 
    
    for(i = 0;i < 32;i = i + 1) begin 
    
    and u1(OutAnd[i], a[i], b[i]);
    
    
    end
    
    endgenerate
    
    
    genvari;
    生成
    对于(i=0;i<32;i=i+1)开始
    和u1(OutAnd[i],a[i],b[i]);
    结束
    最终生成
    
    and u1 (OutAnd[0], a[0], b[0]);
    and u1 (OutAnd[1], a[1], b[1]);
    and u1 (OutAnd[2], a[2], b[2]);
    .
    .
    .
    and u1 (OutAnd[31], a[31], b[31]);
    
    genvar i;
    
    generate 
    
    for(i = 0;i < 32;i = i + 1) begin 
    
    and u1(OutAnd[i], a[i], b[i]);
    
    
    end
    
    endgenerate