informatica:ae:reti_sequenziali
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedente | |||
informatica:ae:reti_sequenziali [18/10/2013 alle 08:50 (12 anni fa)] – Marco Danelutto | informatica:ae:reti_sequenziali [18/10/2013 alle 08:55 (12 anni fa)] (versione attuale) – Marco Danelutto | ||
---|---|---|---|
Linea 12: | Linea 12: | ||
* in uno statement **initial begin ... end** assegna il valore iniziale al registro di stato e al registro delle uscite | * in uno statement **initial begin ... end** assegna il valore iniziale al registro di stato e al registro delle uscite | ||
* in uno statement **always @(negedge clock) begin ... end** (dove //clock// è il nome della variabile di ingresso che porta il segnale di clock) assegna al registro di stato il valore dell' | * in uno statement **always @(negedge clock) begin ... end** (dove //clock// è il nome della variabile di ingresso che porta il segnale di clock) assegna al registro di stato il valore dell' | ||
+ | |||
+ | ==== Esempio ==== | ||
+ | |||
+ | Supponiamo di voler implementare come rete sequenziale un automa di Mealy che: | ||
+ | * ha due stati | ||
+ | * nel primo stato se riceve uno 0 rimane lì e manda in uscita un 1, se riceve un 1 transita nell' | ||
+ | * nel secondo stato, se riceve un 0 rimane lì e manda in uscita uno 0, se riceve un 1 transita nell' | ||
+ | |||
+ | === Rete Omega === | ||
+ | < | ||
+ | primitive automa_omega(output z, input s, input x); | ||
+ | table | ||
+ | 0 0 : 1; | ||
+ | 0 1 : 1; | ||
+ | 1 0 : 0; | ||
+ | 1 1 : 0; | ||
+ | endtable | ||
+ | endprimitive | ||
+ | </ | ||
+ | |||
+ | === Rete Sigma === | ||
+ | |||
+ | < | ||
+ | primitive automa_sigma(output z, input s, input x); | ||
+ | table | ||
+ | 0 0 : 0; | ||
+ | 0 1 : 1; | ||
+ | 1 0 : 0; | ||
+ | 1 1 : 1; | ||
+ | endtable | ||
+ | endprimitive | ||
+ | </ | ||
+ | |||
+ | === Automa di Mealy === | ||
+ | < | ||
+ | module automa_mealy(output reg z, input x, input clock); | ||
+ | |||
+ | reg stato; | ||
+ | |||
+ | wire uscita_omega; | ||
+ | wire uscita_sigma; | ||
+ | |||
+ | automa_omega omega(uscita_omega, | ||
+ | automa_sigma sigma(uscita_sigma, | ||
+ | |||
+ | initial | ||
+ | begin | ||
+ | stato = 0; | ||
+ | z=0; | ||
+ | end | ||
+ | |||
+ | always @(negedge clock) | ||
+ | begin | ||
+ | stato <= uscita_sigma; | ||
+ | z <= uscita_omega; | ||
+ | end | ||
+ | | ||
+ | endmodule | ||
+ | </ | ||
+ |
informatica/ae/reti_sequenziali.1382086224.txt.gz · Ultima modifica: 18/10/2013 alle 08:50 (12 anni fa) da Marco Danelutto