Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...
Moderatori:
g.schgor,
dimaios
da
rini » 27 apr 2014, 13:32
Ciao, ti posto un codice per analizzare la tua rete. E' un file di testbench.
- Codice: Seleziona tutto
entity TestBench01 is
end TestBench01;
architecture behavior of TestBench01 is
component ese_4
port (
SEL : in std_logic; -- Ingresso di selezione
DOUT : out std_logic; -- Uscita dato seriale
CLK : in std_logic; -- Clock
RESET : in std_logic -- Reset
);
end component;
signal SEL1 : std_logic := '0';
signal CLK1 : std_logic := '0';
signal RESET1 : std_logic := '0';
signal DOUT1 : std_logic;
begin
uut: Hello_VHDL PORT MAP(
SEL => SEL1,
CLK => CLK1,
RESET => RESET1,
DOUT => DOUT1
);
stim_proc: process
begin
wait for 50 ms; --per i primi 50ms il sistema non fa niente
Clock_process : process
begin
CLK1 <= not(CLK1);
wait for 20 ms;
end process;
-- Descrizione dei tuoi ingressi
SEL1 <= '0'; RESET1 <= '0'; wait for 80 ms;
SEL1 <= '1'; RESET1 <= '0'; wait for 40 ms;
SEL1 <= '0'; RESET1 <= '0'; wait for 80 ms;
SEL1 <= '0'; RESET1 <= '1'; wait for 5 ms;
wait;
end process;
end;
Prova ad analizzare il tuo file VHDL attraverso questo testbench file e inserisci l'immagine di prima ma con tutti i segnali. Non solo con gli ingressi e con le uscite ma anche con i segnali interni. Per inserire l'immagine non fare la foto con il tuo cellulare ma usa il tasto print della tastiera e poi apri paint e la incolli in paint. Farai uno screenshot del tuo monitor.
rini -

lectroYou
-

rini
1.420
2
5
13
- Master EY

-
- Messaggi: 461
- Iscritto il: 17 dic 2007, 1:04
- Località: Bologna \ Salento
da
Nunziox » 28 apr 2014, 13:48
Secondo me questa istruzione:
- Codice: Seleziona tutto
DOUT <= SEGN(6) xor SELC;
andrebbe messa dentro il process se no non viene eseguita in maniera sequenziale ogni qual volta uno dei segnali in sensitivity list subisce una variazione!
Quando vuoi fare il reset dovresti farlo sul fronte di salita o di discesa del clock, per cui io scriverei:
- Codice: Seleziona tutto
if RESET='1' and CLK'event then
Il segnale SEGN
- Codice: Seleziona tutto
SEGN <= SEGN(5 downto 0)&SEGN(6);
non scorre secondo me dovresti usare gli operatori di shift o per lo meno scambiare:
- Codice: Seleziona tutto
SEGN <= SEGN(6)&SEGN(5 downto 0);
Ultima modifica di
Nunziox il 28 apr 2014, 13:59, modificato 1 volta in totale.
-

Nunziox
221
2
9
- Frequentatore

-
- Messaggi: 152
- Iscritto il: 28 ott 2012, 0:38
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 14 ospiti