Verilog 错误:(vsim-3389),

Verilog 错误:(vsim-3389),,verilog,modelsim,test-bench,Verilog,Modelsim,Test Bench,我不明白为什么我在使用model sim卡时会出现这个错误,我已经尝试了很多修复方法,但似乎没有解决这个问题 这是我的modelsim成绩单上说的: **错误:(vsim-3389)C:/Users/VRN/Desktop/sha256/t_processing.v(31):在连接的模块(第5次连接)中找不到端口“a_in” #时间:0 ps迭代:0实例:/t_处理/uut文件:C:/Users/VRN/Desktop/sha256/interactive_处理.v 7输入端口出现类似错误 `t

我不明白为什么我在使用model sim卡时会出现这个错误,我已经尝试了很多修复方法,但似乎没有解决这个问题

这是我的modelsim成绩单上说的:

**错误:(vsim-3389)C:/Users/VRN/Desktop/sha256/t_processing.v(31):在连接的模块(第5次连接)中找不到端口“a_in”

#时间:0 ps迭代:0实例:/t_处理/uut文件:C:/Users/VRN/Desktop/sha256/interactive_处理.v

7输入端口出现类似错误

`timescale 1ns / 1ps


module interative_processing(clk,rst,w,k,counter_iteration,padding_done,a_out,b_out,c_out,d_out,e_out,f_out,g_out,h_out

    );

     input clk,rst,padding_done;
     input [6:0] counter_iteration;
     input [31:0] w,k;

     output reg [31:0] a_out,b_out,c_out,d_out,e_out,f_out,g_out,h_out;

     reg temp_case,temp_if;
     reg [31:0] a_temp,b_temp,c_temp,d_temp,e_temp,f_temp,g_temp,h_temp;
     reg [31:0] semation_0,semation_1,ch,maj;

     always@(posedge clk)
     begin
     if(rst==0)
     begin
            temp_case=1'b0;
            a_out=32'h6a09e667;
            b_out=32'hbb67ae85;
            c_out=32'h3c6ef372;
            d_out=32'ha54ff53a;
            e_out=32'h510e527f;
            f_out=32'h9b05688c;
            g_out=32'h1f83d9ab;
            h_out=32'h5be0cd19;
     end
     else
     begin

            semation_0=({a_out[1:0],a_out[31:2]}) ^ ({a_out[12:0],a_out[31:13]}) ^ ({a_out[21:0],a_out[31:22]}); //last 22 ROTR22
            semation_1=({e_out[5:0],e_out[31:6]}) ^ ({e_out[10:0],e_out[31:11]}) ^ ({e_out[24:0],e_out[31:25]});

            maj=(a_out & b_out) ^ (a_out & c_out) ^ (b_out & c_out);
            ch=(e_out & f_out) ^ (~e_out & g_out);
            if(counter_iteration==65)
            begin
            a_out=a_out;
            b_out=b_out;
            c_out=c_out;
            d_out=d_out;
            e_out=e_out;
            f_out=f_out;
            g_out=g_out;
            h_out=h_out;
            end
            else
            begin

            if(padding_done==1)
            begin
            case(temp_case)
            1'b0: temp_case=1'b1;
            1'b1: temp_if=1'b1;
            endcase
            end

            if(temp_if==1 && counter_iteration!=64)
            begin
            a_temp= h_out + semation_1 + ch + k + w + semation_0 + maj;     // T2= semation_0 + maj(a,b,c);
            b_temp= a_out;
            c_temp= b_out;
            d_temp= c_out;
            e_temp= d_out + h_out + semation_1 + ch + k + w;        //T1 = h_out + semation_1 + ch + k + w;
            f_temp= e_out;
            g_temp= f_out;
            h_temp= g_out;

            a_out=a_temp;
            b_out=b_temp;
            c_out=c_temp;
            d_out=d_temp; //alternative of non-blocking though
            e_out=e_temp;
            f_out=f_temp;
            g_out=g_temp;
            h_out=h_temp;

            end
            end
     end

     end

endmodule
还有我的测试台:

`timescale 1ns / 1ps

module t_processing;

    // Inputs
    reg clk;
    reg rst;
    reg [31:0] w;
    reg [31:0] k;
    reg [31:0] a_in;
    reg [31:0] b_in;
    reg [31:0] c_in;
    reg [31:0] d_in;
    reg [31:0] e_in;
    reg [31:0] f_in;
    reg [31:0] g_in;
    reg [31:0] h_in;

    // Outputs
    wire [31:0] a_out;
    wire [31:0] b_out;
    wire [31:0] c_out;
    wire [31:0] d_out;
    wire [31:0] e_out;
    wire [31:0] f_out;
    wire [31:0] g_out;
    wire [31:0] h_out;

    // Instantiate the Unit Under Test (UUT)
    interative_processing uut (
        .clk(clk), 
        .rst(rst), 
        .w(w), 
        .k(k), 
        .a_in(a_in), 
        .b_in(b_in), 
        .c_in(c_in), 
        .d_in(d_in), 
        .e_in(e_in), 
        .f_in(f_in), 
        .g_in(g_in), 
        .h_in(h_in), 
        .a_out(a_out), 
        .b_out(b_out), 
        .c_out(c_out), 
        .d_out(d_out), 
        .e_out(e_out), 
        .f_out(f_out), 
        .g_out(g_out), 
        .h_out(h_out)
    );

    initial begin
        // Initialize Inputs
        clk = 0;
        rst = 0;
        w = 0;
        k = 0;
        a_in = 0;
        b_in = 0;
        c_in = 0;
        d_in = 0;
        e_in = 0;
        f_in = 0;
        g_in = 0;
        h_in = 0;

        end

    initial
    begin   // Wait 100 ns for global reset to finish
        #100;
     end

           initial clk=1'b0;
   always @(clk) clk<= #5 ~clk;

   initial 
    begin
       rst = 1'b0;
       #10 rst = 1'b1;
       k = 32'hc67178f2;  
       w = 32'h12b1edeb; 
       a_in = 32'hd39a2165;
         c_in = 32'hb85e2ce9;
         d_in = 32'hb6ae8fff;
         e_in = 32'hfb121210;
         f_in = 32'h948d25b6;
         g_in = 32'h961f4894;
         h_in = 32'hb21bad3d;
         b_in= 32'h04d24d6c;
   end

endmodule
`时间刻度为1ns/1ps
模块t_处理;
//投入
注册时钟;
注册rst;
reg[31:0]w;
reg[31:0]k;
注册[31:0]a_in;
注册[31:0]b_in;
注册[31:0]c_in;
注册[31:0]d_in;
注册[31:0]e_in;
注册[31:0]f_in;
reg[31:0]g_in;
注册[31:0]h_in;
//输出
电线[31:0]输出;
将[31:0]b_输出;
电线[31:0]c_输出;
电线[31:0]d_输出;
电线[31:0]e_输出;
线[31:0]f_out;
电线[31:0]g_输出;
将[31:0]h_导出;
//实例化被测单元(UUT)
交互处理uut(
.clk(clk),
.rst(rst),
.w(w),
.k(k),
.a_in(a_in),
.b_in(b_in),
.c_in(c_in),
d_in(d_in),
.e_in(e_in),
.f_in(f_in),
.g_in(g_in),
.h_in(h_in),
.a_out(a_out),
.b_out(b_out),
.c_out(c_out),
.d_out(d_out),
.e_out(e_out),
.f_out(f_out),
.g_out(g_out),
.h_out(h_out)
);
初始开始
//初始化输入
clk=0;
rst=0;
w=0;
k=0;
a_in=0;
b_in=0;
c_in=0;
d_in=0;
e_in=0;
f_in=0;
g_in=0;
h_in=0;
结束
最初的
开始//等待100 ns,等待全局重置完成
#100;
结束
初始clk=1'b0;

always@(clk)clk以下是您在
交互处理
模块中定义的输入/输出端口列表

input wire        clk,
input wire        rst,
input wire        padding_done;
input wire [6:0]  counter_iteration;
input wire [31:0] w,
input wire [31:0] k,
output reg [31:0] a_out,
output reg [31:0] b_out,
output reg [31:0] c_out,
output reg [31:0] d_out,
output reg [31:0] e_out,
output reg [31:0] f_out,
output reg [31:0] g_out,
output reg [31:0] h_out
以下是您试图传递到
交互式处理模块的输入和输出列表

.clk(clk), 
.rst(rst), 
.w(w), 
.k(k), 
.a_in(a_in), 
.b_in(b_in), 
.c_in(c_in), 
.d_in(d_in), 
.e_in(e_in), 
.f_in(f_in), 
.g_in(g_in), 
.h_in(h_in), 
.a_out(a_out), 
.b_out(b_out), 
.c_out(c_out), 
.d_out(d_out), 
.e_out(e_out), 
.f_out(f_out), 
.g_out(g_out), 
.h_out(h_out)

编译器不知道如何处理
中的
a_uu到
中的
h_u,因为您尚未将它们定义为模块的输入

这毫无意义:
初始开始//等待100 ns,等待全局重置完成#100;结束
它不会等待任何东西。该块将与所有其他块并行执行,因此,由于#100之后没有代码,因此它将不执行任何操作。错误消息为何不够清晰?模块
交互处理
中没有输入调用
a\u,但您正试图在测试台中将其连接起来。