Le port de sortie Verilog est à haute impédance (Z) lorsqu’il est piloté par un sous-module

Shreyas Patel

Le port de sortie Verilog est à haute impédance (Z) lorsqu’il est piloté par un sous-module


J’écris du code pour décaler 4 bits en utilisant l’indicateur de portage pour générer un retard en utilisant l’instanciation, mais lorsque j’instancie dans le module supérieur, la sortie du module supérieur temp1reste toujours dans un état d’impédance élevée, pourriez-vous simplement vérifier et me dire où je me trompe? Dans un banc d’essai, je donne win=4'b1100comme données …

Le code suit:

module iir_model(temp1,win,clk);
    input [3:0] win;
    input clk;
    output reg [3:0] temp1;

    delay_4   a1(temp1,win,clk);
endmodule


module delay_4(data_out,data_in,clk);
    input [3:0] data_in;
    input clk;
    output [3:0] data_out;

    reg [3:0] data_out;
    reg [2:0] counter=4'b000;
    reg [3:0] temp;
    reg carry;

    integer i=0;
    always @(posedge clk)
    begin 
        i=i+1;
        if(i==1)
            temp=data_in;
        if(i>1)
        begin
            if(counter!=4'b100)
            begin
                carry=temp[0];
                temp=temp>>1'b1;
                temp[3]=carry;
                $monitor ($time," clk=%b,  counter=%b ,temp=%b ,carry=%b,data_out=%b",clk, counter,temp,carry,data_out);
                counter=counter+1;
            end
            data_out=(temp==data_in)?temp:4'b0000;
        end
    end
endmodule 

Réponses


 Tim

Je crois que temp1dans le niveau supérieur devrait être un wire, pas un reg, car il regn’est pas destiné à être piloté à partir d’un port de sortie d’un module.

Essayez de passer à juste output [3:0] temp1;

 

#à, #de, est, haute, impédance, Le, lorsqu’il, par, pilote, port, sortie, sous-module, un, Verilog, z

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *