Dans le but de faire de la PWM avec, je suis pas sûr que ça soit vraiment capable, car ça fait vraiment beaucoup de fonctions logiques à enchaîner.
FPGA Cyclone II Ep2c5 dispo sur Ebay autour de 7/20 €.
Ecrire une PWM tient en très peu de lignes en langage Verilog, le VHDL est plus verbeux et moins aisé en prime abord.
/* PWM Essais préliminaire 09/09/2013 */
module PWM(h,set,st);
parameter M_bits = 8; // Profondeur de réglage pour la PWM
input wire h ;
input [M_bits-1:0] set ;
output reg st = 1;
// variables internes
reg [M_bits-1:0] compteur =0;
always @ (posedge h)
begin
if (compteur < set) st<= 1 ;
else
st<=0 ;
compteur <= compteur +1;
end
endmodule
Cela se simule bien mais il reste a l'intégrer avec une interface I2C et une "vraie" gestion des horloges et I/O et ça c'est pas gagné.
Parce que le compilateur/simulateur IcarusVerilog associé à GtkWave c'est simple mais pour la synthèse et la programmation du cyclone II d'Altera il faut passer par le logiciel Quartus dont la prise en main est complexe, le manuel fait 1700 pages.
D'autant que ce qui est simulable n'est pas forcément synthétisable : la simulation est proche du logiciel classique, la synthèse c'est du matériel pur.
Le problème c'est plutôt le prix. Un petit FPGA coûte déjà assez cher comparativement à un microcontrôleur. Et du coup il est plus économique de faire 10 PWM avec interface SPI dans 10 ATtiny que dans un FPGA.
Le prix sur Ebay un cyclone II avec un peu plus de 4000 élément logique, 16 multiplieurs, 2 Pll : entre 7 et 20€, d'accord les gros FPGA sont largement plus chers mais avec 4000 éléments logiques on peut déjà faire des choses.
Ce n'est bien évidement rentable que si on rempli un minimum le FPGA, si c'est juste pour 5 ou 6 PWM ce n'est pas intéressant mais il existe multitude de modèles de différentes fonctions sur le web : c'est là que j'y ai trouvé delui de la PWM qui entre nous a un défaut elle ne descend pas à 0, mais à 0001, mais il existe d'autre projets plus complexes qui fonctionnent parfaitement mais celui ci est suffisant pour apprendre à réaliser un FPGA.
Bien sur dans l'immédiat assembler des boîtiers "peut être plus économique", je mets des guillemets parce que si on ajoute le prix d'un PCB pour reporter les boîtiers ou même simplement une carte pastillée la différence de prix risque de s'amenuiser.
Un petit CPLD (pas un FPGA, faut rester calme hein
J'avais compris qu'un CPLD est en gros un FPGA moins complexe et avec l'Eeprom intégré.
C'est vraiment plus simple à maîtriser ?
Parce que si c'est le cas pour me faire la main autant débuter avec les marches les moins hautes possibles.
D'accord pour le verilog : le VHDL de l'avis commun serait plus adapté pour les réalisations complexes où le verilog s’essoufflerait mais le verilog est plus simple à maîtriser ça c'est vérifiable dès l'écriture du premier module.
Et il n'est pas interdit de réver : il est possible de synthétiser un micro-controleur dans un FPGA, j'ai même vu un exemple de micro-controleur AVR, hélas ce n'était pas un ATMega