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
Was spricht denn dagegen eine sensitivity list zu verwenden?
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
#714475
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.
oooo stimmt bin ich dumm oder was :))) danke dir
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
Gast
#714534
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.
Gast
#714735
> 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
Gast
#716290
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.