www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Verilog Prog Fehler


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
In meinem Modul einen Adresse Register, ich kann damit ohne Problem 
arbeiten
aber wenn ich den Befehl erhalte "CHANGE_ADR", läuft gar nichts mehr
Mein porgramm sieht so aus, es ist nicht vollständig ader die 2 
if-Anweisungen verursachen die Fehlermeldung.
kann mir bitte jemanden sagen woran das liegt.

Vielen dank für eure Hilfe
Gruß
Tobi

reg [4:0] new_adr = 5'd0;
always @(posedge clk1) begin

       if(m16_wr_en == CHANGE_ADR) begin
     new_adr <= m16_data_in;
                              end
                       end

always @(posedge clk2) begin
   if(new_adr != 5'd0) begin
  adresse <= new_adr;
  new_adr <= 5'd0;
                  end

Fehlermeldung: Can't resolve multiple constant drivers for net "new_adr[ 
]" at univ_slave.v(110)

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst new_addr nicht von zwei Clocks abhängig machen.
Das wäre in der Hardware sonst so etwas wie ein Doppel-Clock-Register.

Deine Beschreibung ist nicht synthetisierbar.

Gruss, Martin

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Martin
In deiner Meinung, was könnte die lösung sein?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Tobias (Gast)

>In deiner Meinung, was könnte die lösung sein?

Von der Grammatik mal abgesehen. Was soll das denn werden?

MFG
Falk

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht kombiniert in einem always-modul
always @(posedge clk1 or posedge clk1) und dann mit  "if (clk1==1)" und 
else if (clk2==1) unterscheiden

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk
Zu deiner Info Deutsch ist nicht meine Muttersprache!
Ich hab es nicht gewusst, dass ich ein Spachzeugnis brauche um hier in 
diesem Forum Fragen stellen zu dürfen.
Gibt es noch andere blöde Bemerkungen?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christoph Kessler (Firma db1uq) (christoph_kessler)

>vielleicht kombiniert in einem always-modul
>always @(posedge clk1 or posedge clk1) und dann mit  "if (clk1==1)" und
>else if (clk2==1) unterscheiden

AUA!!!
Christopn, auch ohne Verilog-Kenntnisse müsste dir doch klar sein, dass 
sowas Unsinn ist!

MFG
Falk

Autor: Martin Kohler (mkohler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph Kessler wrote:
> always @(posedge clk1 or posedge clk1) und dann mit  "if (clk1==1)" und
> else if (clk2==1) unterscheiden
same procedure as last year?
same procedure as every year!

Auch da wird eine Registerzuweisung von zwei Clocks abhängig gemacht. 
Das ist nicht synthetisierbar.

@Tobias: Was solls denn werden?
Sollte der zweite Clock so etwas wie ein Preload oder Reset werden?

Gruss, Martin

PS: mit Verilog kenne ich mich nicht aus, das mit den beiden Clocks ist 
in VHDL aber genau dasselbe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.