|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 13
|
[VHDL] Come calcolare il tempo trascorso tra due eventi di un segnale
Ciao a tutti,
Il mio problema è che non so come calcolare in VHDL il tempo trascorso tra due eventi su un segnale. In particolare, voglio calcolare precisamente il tempo che fa il clock da quando va a 1 fino a quando torna a 0 (cioè quanto tempo è stato a 1). C'è qualche funzione che posso usare? Grazie! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se non ricordo male c'è la funzione "now"
(ovviamente non è sintetizzabile)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 13
|
Mi potresti dare un esempio come si usa questa funzione per favore?
Si può utilizzare un timer in vhdl? |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 13
|
Ho trovato la soluzione. E' l'attributo S'LAST_EVENT, che dà il tempo dall'ultimo evento sul segnale S.
@ ilsensine: grazie per le risposte! |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Qualcosa come la "now" ha invece validità generale.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 13
|
Si, ma se S è il segnale di clock, clock'last_event calcola il tempo tra l'istante attuale e l'ultimo fronte di salita/discesa, vero?
Per esempio, in questo codice: Codice:
variable t: time; clock <= '1'; . . . wait until clock= '0'; t := clock'last_event; |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:28.




















