C
caosmaker
Guest
Salut à tous ...
Je suis nouveau dans CPLD et Verilog.Je travaille sur un CPLD de faire rapport cyclique des signaux basés sur un 50Hz et 10kHz sources externes et contrôlées thrue un registre spi.
Au moins, je crois, le spi doit être facile, mais j'ai un problème étrange:
J'ai fait un registre spi, et construit comme bibliothèque.Si je vérifie la syntaxe est tous ok, mais quand je compile le i CPLD avez cette erreur:Analyser module <dutyCycle> <work> dans la bibliothèque.ERREUR: XST: 899 - "dutyCycle.v" ligne 46: La logique de <tmp> ne correspond pas à un FF connus ou Latch modèle.
Le style de description que vous utilisez pour décrire un registre ou un verrou est pas pris en charge dans la version actuelle du logiciel.Voici le code:
Code:
module de rapport durée période (
entrée fduty, / / 10KHz
entrée fbase, / / 50Hz
SDI, / / Serial Data Input
entrée CLK, / / Serial Clock
SS entrée, / / Serial Sélectionner
sortie devoir, / / Uscita Duty Cycle!
sortie sdo / / sortie série de données
);reg [7:0] tmp;
reg [7:0] mybyte;
reg [7:0] en vente libre;
reg dutybit;
reg a;always @ (CLK posedge ou posedge ss)
commencer
if (ss)
commencer
mybyte <= tmp;
finif ((clk) & & (ss == 0))
commencer
tmp = (tmp [6:0], sdi);
fin
fin
assigner sdo = tmp [7];always @ (fduty posedge)
commencer
if (counter! = 100)
counter = counter 1;
autre
dutybit = 1;
finalways @ (fbase posedge)
commencer
counter = 0;
dutybit = 0;
finalways @ (fbase negedge)
commencer
counter = 0;
dutybit = 0;
finattribuer droit = dutybit;
endmodule
Je suis nouveau dans CPLD et Verilog.Je travaille sur un CPLD de faire rapport cyclique des signaux basés sur un 50Hz et 10kHz sources externes et contrôlées thrue un registre spi.
Au moins, je crois, le spi doit être facile, mais j'ai un problème étrange:
J'ai fait un registre spi, et construit comme bibliothèque.Si je vérifie la syntaxe est tous ok, mais quand je compile le i CPLD avez cette erreur:Analyser module <dutyCycle> <work> dans la bibliothèque.ERREUR: XST: 899 - "dutyCycle.v" ligne 46: La logique de <tmp> ne correspond pas à un FF connus ou Latch modèle.
Le style de description que vous utilisez pour décrire un registre ou un verrou est pas pris en charge dans la version actuelle du logiciel.Voici le code:
Code:
module de rapport durée période (
entrée fduty, / / 10KHz
entrée fbase, / / 50Hz
SDI, / / Serial Data Input
entrée CLK, / / Serial Clock
SS entrée, / / Serial Sélectionner
sortie devoir, / / Uscita Duty Cycle!
sortie sdo / / sortie série de données
);reg [7:0] tmp;
reg [7:0] mybyte;
reg [7:0] en vente libre;
reg dutybit;
reg a;always @ (CLK posedge ou posedge ss)
commencer
if (ss)
commencer
mybyte <= tmp;
finif ((clk) & & (ss == 0))
commencer
tmp = (tmp [6:0], sdi);
fin
fin
assigner sdo = tmp [7];always @ (fduty posedge)
commencer
if (counter! = 100)
counter = counter 1;
autre
dutybit = 1;
finalways @ (fbase posedge)
commencer
counter = 0;
dutybit = 0;
finalways @ (fbase negedge)
commencer
counter = 0;
dutybit = 0;
finattribuer droit = dutybit;
endmodule