2017-05-01 2 views
0

Comme je suis nouveau à Verilog, je n'ai aucune idée de ce que cela signifie. Je pense que je commets une erreur simple, mais je n'arrive pas à la résoudre, ni à trouver une solution via google. Est-ce que quelqu'un sait ce que je peux faire pour que mon projet fonctionne?modelsim verilog vsim-3365 trop de port

// Dataflow description of a 4-bit comparator 
    module FourBcompare ( 
     output  A_lt_B, A_eq_B, A_gt_B, 
     input [3: 0] A, B 
    ); 
     assign A_lt_B = (A < B); 
     assign A_gt_B = (A > B); 
     assign A_eq_B = (A == B); 
    endmodule 

//'timescale 1 ps/1 ps 
module t_fourBcompare; 

    reg [7: 0]AB; 
    wire t_A_lt_B; 
    wire t_A_eq_B; 
    wire t_A_gt_B; 
    parameter stop_time = 100; 

    FourBcompare M1 ( t_A_lt_B, t_A_eq_B, t_A_gt_B , 
       AB[7],AB[6],AB[5],AB[4], 
       AB[3],AB[2],AB[1],AB[0] 
      ); 

    initial # stop_time $finish; 
    initial begin     // Stimulus generator 
     AB = 8'b00000000; 
    repeat (256) 
    #10 AB = AB +1'b1; 
    end 

Peut compiler mais ne peut pas simuler sur modelsim.

Voici le message d'erreur:

# Compile of FourBcompare.v was successful. 
# Compile of t_fourBcompare.v was successful. 
# 2 compiles, 0 failed with no errors. 
vsim work.t_fourBcompare 
# vsim work.t_fourBcompare 
# Start time: 01:43:58 on May 02,2017 
# Loading work.t_fourBcompare 
# Loading work.FourBcompare 
# ** Fatal: (vsim-3365) D:/util/t_fourBcompare.v(10): Too many port connections. Expected 5, found 11. 
# Time: 0 ps Iteration: 0 Instance: /t_fourBcompare/M1 File: D:/util/FourBcompare.v 
# FATAL ERROR while loading design 
# Error loading design 
# End time: 01:43:58 on May 02,2017, Elapsed time: 0:00:00 
# Errors: 1, Warnings: 0 

Répondre

1

Le message signifie que le module FourBcompare dispose de 5 signaux (2 entrées + 3 sorties), mais vous essayez de vous connecter 11 signaux à elle. Le port input [3:0] A compte comme un signal, non 4.

Ceci est un moyen de se débarrasser des erreurs pour votre cas, mais vous devez décider si elle est la logique correcte:

FourBcompare M1 ( t_A_lt_B, t_A_eq_B, t_A_gt_B , 
       {AB[7],AB[6],AB[5],AB[4]}, 
       {AB[3],AB[2],AB[1],AB[0]} 
      ); 

je la opérateur de concaténation, {}, pour regrouper des bits individuels dans un bus. Reportez-vous à la norme IEEE Std 1800-2012, section 11.4.12 Opérateurs de concaténation. Maintenant, une valeur de 4 bits {AB[7],AB[6],AB[5],AB[4]} est connectée au signal A de 4 bits.

Remarque: {AB[7],AB[6],AB[5],AB[4]} peut être simplifié en tant que AB[7:4].