Witam,
Interesowałem się CPLD jako zamiennik dla układów serii 4000 i było to fajne. Rysowałem schemat logiczny w ISE i wszystko działało. Jednak "apetyt rośnie w miarę jedzenia" i zacząłem się uczyć Veriloga. Ćwiczyłem najpierw na Icarusie i jak poczułem się w miarę pewnie to postanowiłem skompilować i zaprogramować CPLD (X9536XL).
Prosty projekt zawiera jako "top-module" schemat a moduły są napisane w Verilogu. Np. taki prosty moduł:
module counter3(c_clock, c_reset, c_out); input c_clock, c_reset; output [7:0] c_out; reg [7:0] c, c_max;
assign c_out = c;
always @ (posedge c_clock) begin if (c < c_max) c <= c + 1; else c <= c_max; end
always @ (posedge c_reset) begin c <= 0; c_max <= 100; end
endmodule
W Icarusie skompilował się i działał bez problemów. Co innego w ISE... Sama synteza generuje dziwne rezultaty używające tylko 8 makrokomórek i zero flipflopów?!! Symulator behavioralny wywala się z błędem: "FATAL_ERROR: GuiUtilities:Gq_Application.c:570:1.12.10.2 - This application has discovered an exceptional condition from which it cannot recover. ..."
I robi to po kliknięciu na okienko z przebiegami, którymi ma się karmić symulator.
Więc sam nie wiem co jest nie tak by jeśli ISE ma takie bugi na aż tak podstawowym poziomie to...
Pozdrawiam,
Radek