Forum: FPGA, VHDL & Co. keine korrekte Ausgabe


von Chris (Gast)


Lesenswert?

Hallo zusammen
Eingang: 8 Bit Wort (parallel) mit einem Takt werden die 8 Bits auf 
einmal gelesen
Dieses 8 Bit Wort wird im Register test zwischengelagert
Ausgang: Mit jedem Takt wird ein Bit von diesen 8 ausgegeben, aber mit 
diesem Programm klappt es nicht.was könnte die Fehler sein?
MfG
Chris

module par_ser_dec(
  clk,      // Clock Eingang
  data_in,
  start,
  data_out);

  input clk;
  input start;
  input [7:0] data_in;
  output data_out;
  reg data_out;
  integer i=0;
  reg [7:0] test;

always @(posedge start) begin
  test <= data_in;
  end


always @(posedge clk) begin: ausgabe
  for(i=0;i<7;i=i+1) begin
  data_out <= test[i];
         end
                end
  endmodule

von Falk B. (falk)


Lesenswert?

@ Chris (Gast)

>Eingang: 8 Bit Wort (parallel) mit einem Takt werden die 8 Bits auf
>einmal gelesen
>Dieses 8 Bit Wort wird im Register test zwischengelagert
>Ausgang: Mit jedem Takt wird ein Bit von diesen 8 ausgegeben, aber mit
>diesem Programm klappt es nicht.was könnte die Fehler sein?

Ich kenn mich mit Verilog nicht sonderlich aus, aber was du brauchst ist 
ein Zähler, KEINE Schleife. Klassischer Anfängerfehler, die von 
"normalen" Programmiersprachen kommen.

Etwa so (ohne Gewähr)

  reg [2:0] cnt;

always @(posedge clk) begin: ausgabe
  cnt <= cnt +1;
  data_out <= test[cnt];
  end

MFG
Falk

von Chris (Gast)


Lesenswert?

@ Falk

Vielen Dank das hat geklappt.

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
Noch kein Account? Hier anmelden.