Dennoch brauchte ich zwei Stunden um heraus zu finden, dass das Parallelport-Kabel nur dann funktionieren kann, wenn es an einem echten (sprich: PC-eingebauten) Parallelport angeschlossen ist. Steckkarten oder USB->Parallel Kabel werden von der ISE einfach ignoriert. Welch grandioser Schwachsinn, da ja keiner der heute ausgelieferten PCs noch eine parallele Schnittstelle hat.
Aber ich habe ja das USB Programmiergerät bekommen. Es dauerte eine weitere Stunde, bis ich diesen mit allen Treibern bestückt hatte und die ISE das Teil erkannte. Was ein Krampf.
Schlussendlich funktionierte aber auch das, und ich wagte mich daran, das Programmiergerät an die von mir zusammen gelötete CPLD-Karte anzustöpseln. Kurzes Innehalten: Kein Qualm, kein Geruch, alles leuchtet noch... Weiter im Text. Nun die ISE starten und den Chip suchen lassen - siehe da: Die ISE erkennt den Chip.
Mutig schrieb ich einen kleinen Zähler und hängte die Ausgänge an die acht Leuchtdioden. Bösartigerweise war im Pollin Handbuch zu den Pinnummern des CPLD ein Fehler, weshalb sich die ISE hartnäckig weigerte, den Pin 98 des CPLD an die LED #1 anzuschließen. Ein Blick in den Schaltplan (mit einer starken Lupe) zeigte den Fehler: Es ist Pin 97. Das also korrigiert, neu compiliert und den Chip programmiert. "Successfully". Hurra. Nur leider leuchteten nun alle acht LEDs.
Hmm, ja, klar doch: Bei 16 MHz Taktfrequenz sieht man da nicht viel, also wurde aus einem 8-Bit Zähler ein 16-Bit, dann ein 24-Bit und schließlich ein 27-Bit Zähler. Die höchsten acht Bits habe ich jeweils an die LEDs geschaltet.
Dies ist das Programm:
module Counter(
input clock,
output [7:0] led
);
reg [26:0] zaehler;
always @(posedge clock) begin
zaehler = zaehler + 1;
end
initial begin
zaehler = 0;
end
assign led[7:0] = zaehler[26:19];
endmodule
Und so sieht es dann aus:
Genug für heute, sonst werde ich noch übermütig :-)
Keine Kommentare:
Kommentar veröffentlichen