Gast
#569023
Hallo zusammen.
Ich hab aus einem Beispiel einen Sieberegister implementieren wollen,
nur habe ich nicht das erwartete Ergebnis. Beispielsweise statt die
bitfolge 1000000 zu bekommen habe ich 0000001. Die ausgabe ist sozusagen
gespiegelt. Kann bitte jemand meine Code anschauen ?
Danke
library ieee;
use std.textio.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_textio.all;
entity siso_sreg is
generic( n : natural := 7 );
port( clock : in std_logic;
reset : in std_logic;
SerIn : in std_logic;
bstrig : out std_logic;
SerOut : out std_logic
);
end entity;
architecture siso_sreg_arch of siso_sreg is
file log_file : text open write_mode is "siso.log" ;
signal s_tmp: std_logic_vector(n-1 downto 0);
begin
reg_proc: process (clock,reset)
variable my_line : line;
begin
if reset = '1' then
s_tmp <= (others => '0');
else
if rising_edge(clock) then
s_tmp(0) <= SerIn;
for i in 0 to n-2 loop
s_tmp(i+1) <= s_tmp(i);
end loop;
SerOut <= s_tmp(n-1);
if s_tmp = "1111111" then
bstrig <= '1';
else
bstrig <= '0';
end if;
write(my_line, s_tmp);
writeline(log_file,my_line);
end if;
end if;
end process;
end architecture;
