process immer laufen in VHDL

#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
#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 ?
#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.
#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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren