Corsi di Laurea
ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.
Accetto l'uso dei cookie
ok ... avevo solo il dubbio del reset ...nel primo è asincrono e vabbè e quindi funziona ... nel contatore il reset è sincrono, quindi dovrebbe essere secondario al clock giusto? Però poi l'esercizio richiede che sia prioritario rispetto alle altre operazioni, ma quindi solo rispetto all'up? Perchè analizzando i risultati della simulazione, se il reset arriva mentre il clock è già 1, il contatore non viene resettato ...
questo è ciò che sono riuscita a fare sull'esercizio del registro a 8 bit, dall'analisi della simulazione sembra andar bene, ora vado a fare l'altro
entity reg8_as_reset is
port(X: in bit_vector(7 downto 0);
clock, reset: in bit;
Z: out bit_vector(7 downto 0)
);
end reg8_as_reset;
architecture behav of reg8_as_reset is
begin
p1: process(clock, reset)
variable i: integer;
begin
if(reset = '1') then
Z <= "00000000";
else
if(clock'event and clock = '1') then
for i in 7 downto 0 loop
Z(i) <= X(i);
end loop;
end if;
end if;
end process;
end behav;
entity reg8TB is
end reg8TB;
architecture test of reg8TB is
component reg8_as_reset
port(X: in bit_vector(7 downto 0);
clock, reset: in bit;
Z: out bit_vector(7 downto 0)
);
end component;
signal X, Z: bit_vector(7 downto 0);
signal clk, rst: bit;
begin
u1: reg8_as_reset port map(X, clk, rst, Z);
pX: process
begin
X <= "00000000";
wait for 50 ns;
X <= "11111111";
wait for 50 ns;
X <= "01010101";
wait for 50 ns;
X <= "10101010";
wait for 50 ns;
end process;
pclk: process
begin
clk <= '0';
wait for 50 ns;
clk <= '1';
wait for 50 ns;
end process;
prst: process
begin
rst <= '0';
wait for 50 ns;
rst <= '1';
wait for 10 ns;
end process;
end test;
for i in 7 downto 0 loop
Z(i) <= X(i);
guarda non mi ricordo precisamente, bisognerebbe controllare la sintassi ... potrebbe essere prova a vedere se funziona allo stesso modo e ti togli ogni dubbio
0 utenti, 0 ospiti, 0 utenti anonimi