mikrocontroller.net

Forum: FPGA, VHDL & Co. Signal auf Port


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

kann mir bitte jemand sagen wo hier der Fehler in dem ganzen ist?

Der Simulator von Xilinx braucht unheimlich lange(er wird einfach nicht 
fertig)
entity dff_main is
  port( mainCLK    :   in   std_logic;
      DATA      :  out  std_logic_vector(15 downto 0)
  );
end dff_main;
...
signal  WriteCounter2  : std_logic_vector(0 to 15);
...  
WriteData: process(mainCLK)
  begin
    case zustand is
      when Z0=>      WriteCounter2<="0000000000000000";
      when Z1=>      WriteCounter2<="0000000000000000";
      when Z2=>      WriteCounter2<="0000000000000000";
      when Z3=>      DATA      <= WriteCounter2;
                  WriteCounter2<=WriteCounter2+1;
                  
    end case;
  end process WriteData;


Danke

Gruß

Thomas

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> WriteData: process(mainCLK)

mainCLK wird im gesamten Prozess nicht benutzt?

>   begin
>     case zustand is
>       when Z0=>      WriteCounter2<="0000000000000000";
>       when Z1=>      WriteCounter2<="0000000000000000";
>       when Z2=>      WriteCounter2<="0000000000000000";
>       when Z3=>      DATA      <= WriteCounter2;

Da es sich hier um einen kombinatorischen Prozess handelt, muss jedes 
Signal in jedem moeglichen Fall zugewiesen werden. Du weisst DATA jedoch 
nur einen Wert zu, wenn er gerade im Zustand Z3 ist - was soll in den 
andern Faellen passieren?

>                   WriteCounter2<=WriteCounter2+1;
Ein Counter in einem kombinatorischen Prozess kann nicht funktionieren. 
Wann genau soll er denn weiterzaehlen?

Ich nehme mal an, du hast einfach ein
if rising_edge(mainCLK) then ... end if;
vergessen in diesem Prozess?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hat der Jan, wollkommen recht gehabt . :)

Danke

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.