Pagina 1 di 1

VHDL, fine processi

MessaggioInviato: 30 dic 2011, 12:27
da dursino
Salve, sto facendo un progettino con l'ausilio di VHDL.
In particolare nel testbench necessito di generare un clock,l'ho faccio così:

Codice: Seleziona tutto
clock_gen : process is
begin
   clocks <= '0' ;
   wait for 15 ns;
   clocks <= '1';
   wait for 15 ns;
   
   end process clock_gen;

Il problema è che non mi termina mai .
Dunque quando vado a generare il file da controllare con GTKwave mediante:
Codice: Seleziona tutto
ghdl -r riconoscitore_tb --vcd=prova.vcd

Il terminale non smette mai di lavorare,sono costretto a bloccare tutto con
ctrl+c.
Una volta terminato se lo apro con gtkwave il file è integro, però
tutto ciò mi pare poco elegante.
Credo che il problema sia proprio del processo che genera il clock,infatti
non terminando mai, il compilatore non termina mai!

Uso: GHDL,e GTKwave sotto linux.

Come risolvereste il problema?
Magari con un while?

EDIT:
ho tappezzato così, modificando il processo:
Codice: Seleziona tutto
clock_gen : process is
begin
        WHILE end_sim = '0' LOOP
   clocks <= '0' ;
   wait for 15 ns;
   clocks <= '1';
   wait for 15 ns;
   END LOOP;
   wait;
   end process clock_gen;

e alla fine delle operazioni di test ho inserito:
Codice: Seleziona tutto
end_sim <='1';
   wait;

Resto comunque in ascolto per soluzioni migliori..
O_/ e buone feste

Grazie ciao

Re: VHDL, fine processi

MessaggioInviato: 30 dic 2011, 15:20
da xyz
Prova ad usare l'opzione "--stop-time=TIME".

Re: VHDL, fine processi

MessaggioInviato: 30 dic 2011, 16:52
da dursino
Grazie, ora come ora preferisco la soluzione con il while cosi
decido proprio all'interno del testBench quando terminare
senza dover conteggiare il tempo.

Grazie comunque