Forum: FPGA, VHDL & Co. Bit-Sequenz schicken


von Kalle (Gast)


Lesenswert?

Hallo,

ich fange grad mit VHDL an und wuerde gerne wissen wie man intelligent 
eine folge von Bits über eine serielle Datenleitung schicken kann.

Beispiel: Ich möchte die Sequenz "101000100010" schicken.
Ich weiss nur wie das mit einen counter und einer state maschine machen 
kann.

architecture Beispiel of test is

Signal Bit_folge: std_logic_vector(11 downto 0) := "101000100010";
Signal Counter: unsigned(4 downto 0);

process(clk, senden)
begin
if senden = '0' then

counter <= (others => '0');

elsif rising_edge(clk) then

if counter = 12 then
senden = '0';
else
DatenLeitung <= Bit_folge(to_integer(counter));
counter <= counter + 1;
end if;


end if;
end process;

end Beispiel;


Das muss doch besser gehen.
Vielen Dank fuer eure Hilfe...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Kalle schrieb:
> wie man intelligent
> eine folge von Bits über eine serielle Datenleitung schicken kann.
Nimm ein Schieberegister. So wie hier beim SPI z.B.:
http://www.lothar-miller.de/s9y/categories/45-SPI-Master
Und der ganze Trick spielt sich hier ab:
1
  ---- Sendeschieberegister -------
2
  process begin 
3
     wait until rising_edge(CLK);
4
       :
5
       tx_reg <= tx_reg(tx_reg'left-1 downto 0) & tx_reg(0); -- Schieberegister
6
       :
7
  end process;   
8
9
  MOSI    <= tx_reg(tx_reg'left);  -- Ausgang, linkes Bit MSB voran

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.