mikrocontroller.net

Forum: FPGA, VHDL & Co. process immer laufen in VHDL


Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe hier ein verilog programm:

always
...

....



also always haengt von keinem Signal ab

ich kann nicht process(sensitivity list)  verwenden

ich kann auch nicht wait statement verwenden

wie soll ich es dann machen???

danke im voraus

Autor: Günter -.. (guenter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Plau Sein wrote:
> ich habe hier ein verilog programm:
...
> wie soll ich es dann machen???

- den Verilog Code nehmen
- einen Verilog-VHDL-Konverter damit bemühen
- mehr Informationen liefern was der always Block überhaupt machen soll 
(Funktion, synthesierbar oder nur für Simulation, etc.)

Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VERILOG:

always
begin
  case(LUT_INDEX)
  0    :  LUT_DATA  <=  {6'h02,2'b0,8'h02};
  1    :  LUT_DATA  <=  {6'h03,2'b0,8'h01};
  2    :  LUT_DATA  <=  {6'h04,2'b0,8'h3F};
  3    :  LUT_DATA  <=  {6'h09,2'b0,8'h20};
  4    :  LUT_DATA  <=  {6'h10,2'b0,8'h3F};
  5    :  LUT_DATA  <=  {6'h11,2'b0,8'h3F};
  6    :  LUT_DATA  <=  {6'h12,2'b0,8'h2F};
  7    :  LUT_DATA  <=  {6'h13,2'b0,8'h2F};
  default  :  LUT_DATA  <=  16'h0000;
  endcase
end


VHDL CODE mit converter erzeugt:

  process
   begin
      case lut_index is
         when 0 =>
                  lut_data <= "000010" & "00" & "00000010";
         when 1 =>
                  lut_data <= "000011" & "00" & "00000001";
         when 2 =>
                  lut_data <= "000100" & "00" & "00111111";
         when 3 =>
                  lut_data <= "001001" & "00" & "00100000";
         when 4 =>
                  lut_data <= "010000" & "00" & "00111111";
         when 5 =>
                  lut_data <= "010001" & "00" & "00111111";
         when 6 =>
                  lut_data <= "010010" & "00" & "00101111";
         when 7 =>
                  lut_data <= "010011" & "00" & "00101111";
         when others  =>lut_data <= "0000000000000000";

      end case;
   end process;

compiler liefert:
Error (10442): VHDL Process Statement error at config.vhd(118): Process 
Statement must contain either a sensitivity list or a Wait Statement

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht denn dagegen eine sensitivity list zu verwenden?

Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja

ich kenn mich nicht so besonders gut aus mit vhdl

wusste nicht was ich in der sensitivity list eingeben soll:

sowas wie signal tmp : integer:=1;

dann process(tmp)

if (tmp='1') then



end if;
end process;


damit es immer laeuft oder soll ich es anders machen ?

Autor: FPGA-Jeck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der sense list muss natürlich LUT_Index stehen.

Was du da baust ist ein encoder, schau mal hier:
http://www.mikrocontroller.net/articles/TTL74185

ein halbes dutzend arten, das in VHDL zu hacken.

Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oooo stimmt bin ich dumm oder was :)))

danke dir

Autor: Günter -.. (guenter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Plau Sein wrote:
> VERILOG:
>
> always
> begin
>   case(LUT_INDEX)
>   0    :  LUT_DATA  <=  {6'h02,2'b0,8'h02};
>   1    :  LUT_DATA  <=  {6'h03,2'b0,8'h01};
>   2    :  LUT_DATA  <=  {6'h04,2'b0,8'h3F};
>   3    :  LUT_DATA  <=  {6'h09,2'b0,8'h20};
>   4    :  LUT_DATA  <=  {6'h10,2'b0,8'h3F};
>   5    :  LUT_DATA  <=  {6'h11,2'b0,8'h3F};
>   6    :  LUT_DATA  <=  {6'h12,2'b0,8'h2F};
>   7    :  LUT_DATA  <=  {6'h13,2'b0,8'h2F};
>   default  :  LUT_DATA  <=  16'h0000;
>   endcase
> end
>

Würde mich mal interessieren ob das in Verilog überhaupt richtig ist. Es 
gibt einen Konstrukt:

always(*)

Aber wie FPGA-Jeck schon gesagt hat, der Prozess muss auf LUT_INDEX 
triggern, also sollte der Verilog Code eigentlich so aussehen:

always(LUT_INDEX)
...

Entsprechend müsstest du das auch in VHDL übersetzen können.

Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in verilog funktioniert einwandfrei

in vhdl habe ich es mit process(lut_index) gemacht und der compiler hat 
nicht gemeckert :)

danke fuer die schnelle Hilfe

Autor: FPGA-Jeck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aehm, konnt ich auch ab und zu gebrauchen, so ein Verilog>VHDL 
converter.
welchen verwendest Du? Ist der schmerzarm erhältlich?

Autor: Plau Sein (radih)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nee leider nicht,

Das X-HDL3 ist nicht kostenlos zu haben, aber:
Du kannst die Demoversion benutzen:

Der Inputfile darf nur eine bestimmte Groesse haben, sonst wird die 
Ausgabe nicht in einem File reingeschrieben, sondern nur in einem 
Outputfenster ausgegeben.

Autor: high_speed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> always
> begin
>  case(LUT_INDEX)
>  0    :  LUT_DATA  <=  {6'h02,2'b0,8'h02};
>  1    :  LUT_DATA  <=  {6'h03,2'b0,8'h01};
>  2    :  LUT_DATA  <=  {6'h04,2'b0,8'h3F};
>  3    :  LUT_DATA  <=  {6'h09,2'b0,8'h20};
>  4    :  LUT_DATA  <=  {6'h10,2'b0,8'h3F};
>  5    :  LUT_DATA  <=  {6'h11,2'b0,8'h3F};
>  6    :  LUT_DATA  <=  {6'h12,2'b0,8'h2F};
>  7    :  LUT_DATA  <=  {6'h13,2'b0,8'h2F};
>  default  :  LUT_DATA  <=  16'h0000;
>  endcase
>end

TRDB_LCM - 3.6 Inch Digital Panel Development Kit  ??
http://www.terasic.com.tw/cgi-bin/page/archive.pl?...

Ich kann dir den VHDL-Code geben als QuartusII Projekt für das 
DE2-Board.

MfG
Holger

Autor: high_speed (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das versprochene QuartusII Projekt.
(*.qar ist eine QuartusII Projekt-Archive-Datei)

MfG
Holger

Autor: Ralph N. (ralph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt gute Konverter Vlog -> VHDL ? Oo und warum schreibe ich auf 
Arbeit garde von hand VHDL Modelle in Verilog um ;? ...meine fresse xD

@ high_speed: Hast du schon viel mit dem DE2 Board angestellt? Zufällig 
I2C dabei gewesen?

Greetz Ralph

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.