|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Feb 2010
Messaggi: 1149
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#22 | |
Member
Iscritto dal: Dec 2010
Messaggi: 69
|
Quote:
Poi hanno cominciato a vedersi i sintetizzatori (ricordo di avere usato Synplicity nel 1992 con FPGA antifuse di QuickLogic). Non tutto il verilog era sintetizzabile, e non lo è tutt'ora. Generare le bitstream per programmare FPGA e affini richiede la conoscenza della struttura del target, altrimenti si rischia di voler "cavare il sangue dalle rape". Ad esempio, una State Machine costruita su una CPLD o con logica discreta, a parità di funzionamento, avrà una struttura ben diversa da come è implementata in una FPGA. Nel primo caso la codifica degli stati probabilmente seguirà uno schema classico (con numerazione binaria) mentre in una FPGA, per motivi di occupazione di spazio, ma soprattutto per questioni di prestazioni, sarà codificata "one hot per state", cioè con una codifica 1 to N; vale a dire che un flip-flop ad 1 rappresenta lo stato attivo e gli altri stanno tutti a zero. Detto ciò, l'utilizzo di Verilog o VHDL (essenzialmente equivalenti, scegline uno, ma io ti consiglio Verilog che è meno prolisso, meno Mil-Std, più Industry-Friendly), necessita di una buona conoscenza della teoria delle reti logiche e delle strutture dei sistemi digitali in generale. Ci sono dei testi classici che è un piacere leggere. In Italia è stato scritto un capolavoro sulle Teoria delle Reti Logiche edito da Bollati Boringhieri che s'intitola "Reti Logiche e Calcolatori" di Fabrizio Luccio e Linda Pagli che sono due professori dell'Università d Pisa. Testo meraviglioso... molto sintetico. Non c'è una frase di troppo. Bello. ISBN: 9788833954875. Poi ci sono i classici che in era pre-internet andavo ad accattarmi alla libreria sotto CLUP sotto il Polimi: tutte le volte che capitavo a Milano co facevo un giro. E sono i testi di Wakerly e quelli di M. Morris Mano. Molto più pratici del testo italiano ma anche più poveri. Ora immagino siano stati ampiamente aggiornati. Io possiedo edizioni antiche che non menzionano nulla circa gli HDL moderni. Anche dei buoni appunti universitari di qualcuno che li ha messi giù bene possono essere molto preziosi. Ecco, se si vuole imparare bene un linguaggio HDL prima si deve passare per la teoria delle reti logiche, perché per descrivere processi complessi serve trattare sia l'RTL che tecniche come la microprogrammazione e quant'altro. Dopo uno può anche passare a vedere SystemVerilog (che copre il Verilog ultimo e aggiunge la verifica formale) e SystemC, che è un approccio di programmazione con C++ che può produrre strutture sintetizzabili. |
|
![]() |
![]() |
![]() |
#23 | |
Senior Member
Iscritto dal: Dec 2023
Messaggi: 753
|
Quote:
Anzi.. a dirla tutta a volte il problema che ho riscontrato e' che VHDL-93 e' troppo semplice in quanto deficitario dal punto di vista della metaprogrammazione. La parte 'difficile' e' tutto il resto. Ovvero: conoscenza e uso delle primitive disponibili, verifica, capacità di capire quale sia il miglior compromesso tra velocità e occupazione e conoscenza dei protocolli e dei tool. Se comunque sei interessato a giocare con gli FPGA ti consiglio di vedere https://github.com/SpinalHDL/SpinalHDL E' un linguaggio HDL basato su Scala a cui ho contribuito. Genera VHDL o Verilog indipendentemente dal componente scritto. Lo raccomando a chi inizia. - Permette di iniziare a programmare HDL senza un tool di un vendor specifico. - Simulatori come GHDL, verilator e icarus sono integrati direttamente nel linguaggio. - Fornisce astrazioni molto comode per le state machines, per I bus/segnali e per i tipi strutturati. - Fornisce out-of-the box una libreria di componenti usabiliti su qualsiasi IC. L'unico neo e' che la compilazione e' lenta. Ultima modifica di ZeroSievert : 30-03-2024 alle 17:18. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:53.