process immer laufen in VHDL

Gast #714444
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.)
OP #714456
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
OP #714471
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 ?
Gast #714481
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.
OP #714546
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.
Gast #714735
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?Language=English&CategoryNo=39&No=78

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

MfG
Holger

Antwort schreiben

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.

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.