|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
[VHDL]Semplice sistema sequenziale
Salve mi appresto a sostenere l'esame di elettronica digitale ed il prof al corso ci ha fatto scrivere semplici progetti in vhdl, da reti combinatorie ad macchine Fsm con massimo 4 stati (fsm sempre sincrone naturalmente
![]() Stavo cercando di capire se stavo svolgendo un semplice esercizio ma non so se risulta giusto, ho mandato una mail al tutor ma sono 10 giorni che non mi risponde.. mah.. comunque , spero mi possiate dare una mano Ecco l 'esercizio è questo, posto una foto , ![]() Chiedo ai più esperti un umile aiuto , con questo caldo spero di andare finalmente un po' in vacanza ![]() Ciauu
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jul 2007
Città: Agliana (PT)
Messaggi: 561
|
Quote:
Comunque, se ho ben interpretato quello che hai scritto, mi pare non ci siano errori Saluti
__________________
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again. In one Age, called the Third Age by some, an Age yet to come, an Age long past, a wind rose.... The wind was not the beginning. There are neither beginnings nor endings to the turning of the Wheel of time. But it was a beginning. |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Ciao guarda hai ragione per il codice, solo che l'ho scritto proprio al volo (stavo letteralmente squagliando dal caldo e le funzioni celebrali non reggevano tanto forse
![]() Ti ringrazio comunque Facendo qualche altro esercizio posterò il codice scritto per bene
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Un collega del corso mi ha suggerito di gestire la and in un processo ed il flip flop in un altro processo. Nel primo processo ha detto di moltiplicare il valore di uscita del flip flop con l'ingresso In , mentre nel secondo processo si tratta di gestire solo il flip flop.. mi sembrava questa soluzione un po' particolare diciamo.. il fatto che comunque non riesco ad impostare bene il codice vhdl..
![]()
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Salve ragazzi, mi ha scritto il tutor, ha detto che è sbagliato inserire logica combinatario all'interno del processo, quindi bisognerebbe gestire l'aggiornamento del FF al di fuori del processo e poi aggiornare correttamente l'uscita..
![]()
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Grazie ragazzi, ora provo con il programma e posto i risultati
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Salve
Ho scaricato quartus prime della intel mi pare, comunque non sembrano funzionare i file vhdl se scrivo la entity e la architecture Sto leggendo un po' alcuni documenti e sembra che bisognerebbe creare dei testbench per testare appunto i componenti anche combinatori naturalmente Il fatto è che sul libro non trovo dei riferimenti ai simulatori e nemmeno il prof nel corso ne ha parlato .. non saprei da dove iniziare a questo punto, spero però che il codice almeno sia scritto bene..
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Grazie Antonio23
Vedo se ci riesco allora , ci devo studiare un po' sopra ![]()
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Salve allora mi hanno suggerito che questa risoluzione non è corretta
dovrebbe essere scritto in questo modo ma ho alcuni dubbi su come viene calcolata l'uscita AND, allora il codice lo posto qui sotto, il flip flop commuta sul fronte di salita con reset asincrono e segnale di enable Codice:
entity system1 is * port(In1 : in std_logic; Rst : in std_logic; Enable: in std_logic; * * * * uscita_FF: out std_logic); end system1 architecture Rtl of system1 is begin signal uscita_AND : std_logic; uscita_AND <= uscita_FF and in process (Clk, Rst) * begin* -- process register * * if Rst = '0' then* * * * * * * *-- reset asincrono * * * uscita_FF <= '0'; * * else if (Clk'event and Clk = '1') then* -- rising clock edge * * * if (Enable = '1') then * * * * uscita_FF <= uscita_AND; * * * end if; * * end if; * end process register; uscita_AND <= uscita_FF and in sia equivalente a questa uscita_AND <= uscita_AND and in Ma l'uscita del FF non viene assegnata proprio all'ingresso della porta AND ? cioè il fliflop immagazina il segnale che esce dalla espressione combinatoria e lo riporta in ingresso ancora alla and... spero di non fare confusione ![]()
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 2009
Messaggi: 1056
|
Lo riscrivo così che si legge meglio effettivamente, sto fecendo delle insalate assurde, sorry
![]() Codice:
entity system1 is port(In1 : in std_logic; Rst : in std_logic; Enable: in std_logic; clk : in std_logic; uscita_FF: out std_logic); end system1 architecture Rtl of system1 is begin signal uscita_AND : std_logic; uscita_AND <= uscita_FF and In1 process (Clk, Rst) begin if Rst = '0' then uscita_FF <= '0'; else if (Clk'event and Clk = '1') then if (Enable = '1') then uscita_FF <= uscita_AND; end if; end if; end process; in pratica questa uscita_AND <= uscita_AND and In1 è diversa da questa uscita_AND <= uscita_FF and In1 quindi l'uscita della porta and non equivale all'uscita del FF in tutti gli intervalli temporali, in quanto l'uscita del FF varia sul fronte del clock essendo una rete sequenziale, mentre la porta AND fa variare l'uscita in qualsiasi istante in cui variano gli ingressi
__________________
Alimentatore corsair RM650W-AMD ryzen 5 5600x - 16GB RAM DDR4 3600mhz- Dissipatore be quite dark rock 4- AMD RX6800XT - SSD Samsung 980PRO 1TB - CASE corsair ICUE 220T Asus rog strix 35" |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:30.