keine korrekte Ausgabe

Gast #667300
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
#667306
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

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