Gast
#1358734
hallo zusammen, ich möchte die Leute fragen, die Ahnung in VHDL haben, ob diesen Code richtig von der Funktionalität ist.Da beim simulieren Fehler gibt. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity sender is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; parin : in STD_LOGIC_VECTOR (7 downto 0); serout : out STD_LOGIC); end sender; architecture Behavioral of sender is type state_type is (senden, pause ); signal state : state_type; signal delaycnt : integer range 0 to 9999; signal bitcnt : integer range 0 to 8; signal bits : std_logic_vector(7 downto 0); begin process (clk, reset,parin) begin if reset = '1' then state <= senden; delaycnt <= 0; -- Bitdelay zurücksetzen bitcnt <= 8; -- 8 Bits sind zu übertragen bits <= parin; elsif (clk'EVENT and clk='1') then case state is when senden => if (bitcnt/=0) then -- sind noch Bits übrig? bits <= '0' & (bits(7 downto 1)); bitcnt <= bitcnt-1; serout <= bits(0); else state <= pause; end if; when pause => if (delaycnt/=9999) then -- 1 ms vorbei? delaycnt <= delaycnt+1; -- nein: weiterzählen else delaycnt <= 0; state <= senden ; end if; end case ; end if ; end process; end Behavioral; danke euch im voraus.