Verilog Fehler Meldung

Gast #668629
Hi!
Ich hab ein Programm geschrieben, das so aussieht:

module X (........);
reg go = 1'b0;

always @(posedge start) begin:
//
//
//
go <= 1'b1;
end

always @(posedge clk) begin
  if(go==1'b1) begin
  //
        //
        //
        //
        go <= 1'b0;
        end

        if(go==1'b0) begin
        //
        //
        end
endmodule

Kann mir bitte jemanden sagen was diese Fehler Meldung bedeutet:
Error (10028): Can't resolve multiple constant drivers for net "go" at 
data_out.v(47)

Danke
Walter
Gast #668743
Matthias wrote:
> ich kann zwar kein Verilog, aber so wie ich das interpretiere heißt das,
> dass das Signal go nicht von zwei verschiedenen Prozessen geändert
> werden darf.
> In VHDL darf man sowas jedenfalls nicht :)

Ist in Verilog genauso.

@ Walter

Versuch mal die Zuweisung an go aus dem ersten always block auch in den 
zweiten zu bringen.
Gast #669011
Wie meine Vorschreiber schon gesagt haben, das geht nicht.

Erstens gibt es im Normalfallf nur einen process mit posedge, da das nur 
für den Takt verwendet wird (bzw mehrere prozesse mit posedge clk). 
Willst du die steigenden Flanke des start erkennen, tastest du sie mit 
dem Takt ab, speicherst sie also bei jedem Takt und vergleichst die 
Werte. In die sensitivity list kommt trotzdem nur posedge clk und nicht 
start, da nur clk abtastet.

Zwei Prozesse dürfen außerdem niemals das gleiche Signal treiben. 
Prozesse laufen parallel (sind parallele Hardware). Wenn in deinem Bsp. 
z.B. ein prozess go auf 0 setzt und der andere gleichzeitig auf 1, 
welches Signal sollte übernommen werden? Daher, schreiben nur in einem 
Prozess, lesen geht in mehreren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.