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
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.)
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
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 ?
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.
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.
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
Aehm, konnt ich auch ab und zu gebrauchen, so ein Verilog>VHDL converter. welchen verwendest Du? Ist der schmerzarm erhältlich?
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.
> 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
Hier das versprochene QuartusII Projekt. (*.qar ist eine QuartusII Projekt-Archive-Datei) MfG Holger
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.