Forum: FPGA, VHDL & Co. Wie berechne ich Timings bei einem CPLD?


von Christian H. (cavorca)


Lesenswert?

Hi,

Bald ist meine erste Schaltung so weit, dass ich sie mal aufbauen kann. 
Aber bevor ich teure CPLDs kaufe wüsste ich gerne ob die CPLD mit meinem 
Code auch schnell genug läuft.

Daher meine Fragen:
-Wie kann ich auf dem PC das Verilog Programm simulieren, dass ich 
nachher üer das Timingverhalten bescheid weiß? Bisher nutze ich die 
Simulation in ISE bei der man vorher eine Test Bench Waveform erstellen 
muss. (Ich hoffe damit ist schon klar, welchen Simulator ich da nehme. 
Ist jedenfalls alles in ISE drin.) Da sieht es nicht so aus als ob da 
irgendwelche internen Verzögerungen mit einbezogen sind. Alle Änderungen 
Ausgangssignale sind soweit ich das sehen kann immer synchron zu 
Änderungen der eingangssignale. Oder Gucke ich nur nicht genau genug 
hin?

-Was bedeuten die 5ns, die als Geschwindigkeit bei der CPLD dabei 
stehen?
Aus dem Datenblatt entnehme ich pin-to-pin delay, aber ich denke da 
verstehe ich was falsch. hängt das nicht auch von der inneren 
Beschaltung ab?

- In einem Praktikum auf der Uni habe ich gelernt, dass es synchrone 
Zähler (alle ausgänge ändern Gleichzeitig ihren Zustand) und asynchrone 
Zähler (das bit 2 fängt erst an was zu machen, wenn das bit 1 fertig 
ist. Z.B.: viele flipflops hintereinander geschaltet, das am Ausgang vom 
Bit n hängt der Takteingang vom Bit n+1)

Erste Frage: Ist diese Unterscheidung bei CPLDs in der Form überhaupt 
sinnvoll? oder wird das immer Synchron synthetiesiert?

Wenn es die Unterscheidung gibt, was wird dann aus diesem Code:

  always @ (negedge clk)
  begin
    if (res==0) begin
      a[18:0]=0;
      res=1;
    end else begin
      a[18:0]=a[18:0] + 1;
    end
  end

Der Zähler soll einen RAM Adressieren, das Ganze soll mit 50MHz laufen.


Letzte frage:
-Wie finde ich raus, weche CPLD ich am besten auswähle? Ich meine jetzt 
nicht ob XC9536 oder XC9572, mir geht es ehr um die Geschwindigkeit. 
Also die entscheidung kaufe ich ein CPLD mit 5 oder 15 ns.
Ich habe mal in einem Buch über EMV-Design gelesen, dass man immer 
möglichst langsame Bauteile nehmen soll. Schnelle haben 
notwenidigerweise auch steilere Flanken am Ausgang und damit einen 
größeren Anteil von hohen Frequenzen, was sich ungünstig auf die EMV 
Verträglichkeit auswirkt.
Also: Lieber 10 ns als 5ns nehmen, wenn das von der Schaltung her 
reicht? Oder kann ich das hier so einfach nicht Anwenden und muss noch 
andere sachen beachten? Kann mir jemand von seinen Erfahrungen 
berichten?

Schon mal allen vielen Dank, die sich die Mühe gemacht haben bis hier 
hin alles durch zu lesen!!

MfG Cavorca

von Joerg W. (joergwolfram)


Lesenswert?

pin to pin delay heisst, Verzögerung vom Eingang zum Ausgang oder von 
einem rückgeführten Ausgang zum Ausgang. Diese Zeit ist immer konstant 
und entspricht der auf dem Chip angegebnen. Allerdings kann es auch 
passieren, dass temporäre Signale beim Fitten notwendig werden und sich 
so auch längere Signallaufzeiten ergeben können. Bei Xilinx gibt der 
Fitter-Report (*.rpt) Aussage darüber, wie er die Logik realisiert hat.

Gruß Jörg

von Christian H. (cavorca)


Angehängte Dateien:

Lesenswert?

hm und wie lese ich diese Datei?
das ist ja immerhin eine 19KB Textdatei. Muss ich die komplett 
durchgehen? Oder steht das entscheidende an einer ganz bestimmten 
stelle?
Einfacher gefragt: auf was muss ich in der Textdatei achten?

MfG Christian

P.S. ich habe den Report mal angehängt

von Joerg W. (joergwolfram)


Lesenswert?

als erstes im Bereich "Function Block Details":

Signale, die Du nicht selbst definiert hast und mit BUF_ gefolgt vom 
Signalnamen anfangen, weisen auf eine "Zwischenstation" hin, weil z.B. 
die Produktterme am Signal nicht ausgereicht haben. Das heisst, an 
dieser Stelle gibt es eine zusätzliche Verzögerung.
Weiter unten gibt es dann die Sektion "Mapped Locic". Hier steht drin, 
wie die synthetisierte Logik letztendlich realisiert wurde und man muß 
nur bei zeitktitischen Signalpfaden prüfen, ob irgendwelche gepufferten 
Signale im Pfad liefgen.
An den Gleichungen, die Signal.CLK beschreiben, siehst Du auch, welches 
Taktsignal bei den Makrozellen benutzt wird. Ist es in Deinem Fall clk, 
dann ist es ein Synchronzähler. Soviel ich weiss, wird aber aus 
"wert=wert+1" immer ein Synchronzähler synthetisiert. Allerdings liegen 
nach Deiner rpt Datei alle Ausgänge fest auf 0.

Gruß Jörg

von Christian H. (cavorca)


Lesenswert?

Hallo Jörg,
schon mal vielen Dank für Deine ausführlichen Erklärungen!

Ein paar Unklarheiten gibt es noch bei mir:
Braucht es dann pro Zwischenstation nochmal 5ns oder kann man das nicht 
so genau sagen?

Ich muss dann da gucken bei FB1 FB2,... ist das richtig?

Das alle Ausgänge fest auf 0 liegen verstehe ich nicht. Ich habe das 
einen initial block in dem die alle auf 0 gesetzt werden, aber der Block 
sollte doch nach der Synthese nicht mehr zu finden sein?
Ich habe die inputs und outputs des Moduls nicht selbst auf irgendwelche 
pins gelegt. Daran sollte es aber nicht liegen, oder?

MfG Christian

von FPGA-Küchle (Gast)


Lesenswert?

Also hier muss man erst das Prinzip der timing constraints verstehen. 
Der Fitter (CPLD) und der Place und route (FPGA) versuchen immer eine 
Vorgabe zu erfüllen und machen von sich aus nicht das Optimum. Neben dem 
VHDL-Code (Was macht mein Design" musst du auch sagen "Wie schnell muss 
mein design" sein.
Das nennt man timing constarint und dazu schreibt man ein ucf file 
(xilinx) oder man erstellt ein solches mit dem constraint editor. 
Versuche letzteres,  und gebe dort ein maximale taktfrequenz oder eine 
minimale Pad zu Pad Durchlaufzeit an. (letzteres meint wie schnell ein 
Änderung an einen Eingangspin zu einer Änderung am Ausgangspin bewirkt.
Mit diesen constraints läßt du den Fitter durchlaufen. Steht dann im 
Timingreport ein all constraints are meet ist das Design und der 
ausgewählte CPLD schnell genug. Änderst du den speedgrade deines cplds 
und lässt die tools erneut laufen kannst du abschätzen was du brauchst.

Das ist besonders bei FPGA wichtig, aber auch bei CPLD's würde ich keine 
Speedabschätzung per Hand machen. Den Vorgang der Ermittlung der 
aktuellen Laufzeiten im design nennt man "Statische Timing Analyse" oder 
auch Static Timing Analyses", kurz STA. Die Dok zum CPLD design-flow hat 
bestimmt ein Kaoitel darüber.





von Christian H. (cavorca)


Lesenswert?

Kannst Du mir zu dieser Software vielleicht ein Tutorial empfehlen?
Ich habe zuerst mal versucht Global ein Pin-To-Pin delay festzuelegen. 
Da kam dann sowas bei raus:

TIMESPEC "TS_" = FROM "FFS" TO "FFS" 10 ns;

Was aber auf keinen Fall richtig sein kann, da ich aus den 10 ns auch 1 
ns machen kann und es erscheint kein Fehler. So schnell ist die CPLD ja 
sicher nicht...

Bei Dir oben im Text hörte sich das so einfach an, dass man grade mal 
eine Einstellung ändern muss. Jetzt sehe ich hier irgendwas von Gruppen 
die man definieren muss und was weiß ich nicht alles (Was aber auch 
nicht funktioniert). Ist das wirklich so kompliziert oder bin ich auf 
dem Holzweg?

von FPGA-Küchle (Gast)


Lesenswert?

Also dein constraint beschreibt Signale von einem FF zu einem FF, 
vielleicht hast du keine solchen Pfade im Design, dann kann dieses 
constraint nicht verletzt werden. dann ist alles OK. Was dir noch fehlt 
ist ein Pad to pad constraint, das kannst du sicherlich nicht auf 1 ns 
setzen, also sowas wie:

TIMESPEC "TS_" = FROM "PADS" TO "PADS" 10 ns;


Du kannst mir auch das design schicken, dann ergänze ich die constraints 
nudele ich das hier mal durch die tools. Dann kann ich Dir einen Timing 
report schicken. Du errecihst mich über :


http://www.mikrocontroller.net/articles/Benutzer:FPGAk%C3%BCchle

von Christian H. (cavorca)


Lesenswert?

Danke, das ist ein nettes Angebot! Ich komme sicher darauf Zurück, aber 
nicht mit diesem Projekt. Das ist mehr learning by doing als ordentliche 
programmierung und deshalb mittlerweile ziemlich zerschossen. Ich fange 
lieber noch mal ein neues an, in dem ich dann noch keine Einstellungen 
verändert habe von denen ich nicht weiß was sie bedeuten ;-)

Wenn ich rausgefunden habe wie ich einen Buffer realisiere bzw wie ich 
einen ausgang auf 'Z' stelle wäre ich sehr dankbar, wenn du die 
einstellungen mal machen kannst.

von FPGA-Küchle (Gast)


Lesenswert?

Also tutorials kenne ich nicht, da ich über dieses Alter hinaus bin.
Da muß ich dir leider selber das suchen nach
fpga constraints ucf xilinx
überlassen. Xilinx hat einen FETTEN constraint guide in den docs.

Ich versuche mal kurz das wichtigste zu sagen.

Wir reden nur über timing constraints und dabei lassen wir DCM und skew 
aus. Timing constraints haben zwei parameter:
 -die Zeit
 -die netze

Netzte sind hier:
-  Signale ("leitungen,Drähte") von FF ausgang zu  FF Eingang (clk für 
FF gleich)
-                               von Pin zu FF Eingang
-                               von FF Ausgang zu Pin
-                               von Pin zu        Pin
                                von FF ausgang zu FF eingang (clk für FF 
verschieden.

Diese Netze werden bei Xilinx als Gruppen bezeichnet und es gibt zwei 
definitionen, solche Gruppen zu definieren. Diese Gruppen müßen zuerst 
definiert werde und es gibt vordefinierte Gruppen.

Beispiel (aus ucf):
NET "clk_i" TNM_NET = "tn_clk_i";

heisst alle netze auf denen das Signal clk_i läuft werden in den Namen 
tn_clk_i zusammengefasst. Damit ist der Parameter Netzte definiert und 
wir können jetzt ein timing constraint definieren:


TIMESPEC "TS_clk_i" = PERIOD "tn_clk_i" 30100 ns HIGH 50 %;

Das ist ein periodconstraint und es sagt das mein takt mit einener 
Periode von 30,1 mikrosekunden laufen soll.
Fast da selbe sage ich mit:
TIMESPEC "TS_1" = FROM "FFS" TO "FFS" 30100 ns;
 Hier benutze ich die vordefinierte Gruppe FFS die alle FlipFlops im 
design umfasst und definiere eine max. Laufzeit von 30 us zwischen FF 
Ausgng und FF eingang. Eine weitere vordefinierte Gruppe ist PADS, das 
sind die FPGA-pins. damit gibst du die Durchlaufzeiten von Pin zu pin 
an, als beispielsweise wenn du einen adressdecoder (wenn adressbus auf 
xxx dan aktiviere IC2) baust, wie lange es zwischen anlegen der addresse 
bis aktivieren des richtiegn Ausgangssignal dauert. Für alle Pin zu oin 
verbindungen heisst des:

TIMESPEC "TS_2" = FROM "PADS" TO "PADS" 10 ns;

Sollen jetz beispielsweise alle Eingangssignal flott in die FF schreibst 
Du:

TIMESPEC "TS_3" = FROM "PADS" TO "FFS" 2 ns;

oder nur für das Signal an pin addr_ein1:

NET "addr_ein1" TNM_NET = "tn_addrein";
TIMESPEC "TS_4" = FROM "tn_addren1" TO "FFS" 2 ns;


das in aller Kürze. Anschauen kann man sich noch neben period und from 
to das constraints Offset in Before oder Offset after Out. Aber fast 
alles lässt sich mit From to erledigen.


Constraints lerenen ist nicht so schwierig wie VHDL, es ist ein ganzes 
stück einfacher. man muss nur das prinzip "Netz Zeit" verstehen, wissen 
was Timing bedeutet (setup, hold, max. taktfrequenz) und ein wenig 
syntax lernen.

Es gibt auf dem project navigator ein Icon das aussieht wie eine 
Glühlampe. Das heisst language templates, dort findes du codeschnipsel 
für die ucf constraints.





















von FPGA-Küchle (Gast)


Lesenswert?

Ok, das angebot steht. CPLD aus dem Buch zu lernen ist nicht einfach, am 
besten man kennt einen mit Erfahrung, der einem mündlich erklärt wie es 
geht.

von Holger (Gast)


Lesenswert?

@FPGA-Küchle
Hast du schon mal geplant eine DVD Video CD zu machen.
 [THE ART of (VHDL) -RODEO-Bull Riding]  V1,V2,V3....
Das ist bestimt ne echte Marktlücke, und wird der Renner.
Zitat:
--CPLD aus dem Buch zu lernen ist nicht einfach, am
--besten man kennt einen mit Erfahrung, der einem mündlich erklärt wie 
es
--geht.
Gruss Holger.

von FPGA-Küchle (Gast)


Lesenswert?

Hm, kratz mal nicht so sehr an meinem Ego, ich könnt mich zum Papst 
ausrufen und mich als FPGA-Heiligen verehren lassen ;-)

Also das Buch Konzept verfolgt mich schon geraume zeit. Sollt wohl mal 
kündigen um zeit dafür zu haben. Video, da bin ich nicht eitel genug, 
aber überlegenswert wäre es schon. Darf mal Screenshots abfilmen? oder 
hat man da gleich einen Ur-Heber-Advokaten an der Gurgel?

Vorausgesetzt man wird nicht verarscht, liesse sich über eine MP3-Serie 
nachdenken. Ist zwar nicht so akademisch, aber schneller gemacht als 
Tutorials tippern.
Hat jemand Erfahrung mit einem solchen Projekt (FPGA-Hörbuch)?

von Christian H. (cavorca)


Lesenswert?

Dass es mit Büchern schwer ist kann ich nur bestätigen. Ich hatte mir 
mal aus der Bibliothek ein Buch ausgeliehen, das ging dann aber auch 
erst auf alle Grundlagen seit Entstehung der PLDs ein. Das ist einfach 
zu viel Information die ich nicht brauche. Vielleicht hatte ich nur ein 
falsches Buch (anderes gab es leider nicht) und einfach mal so auf gut 
Glück eins kaufen ist nicht so mein Ding. Bei mir ist das alles einfach 
nur ein Hobby, da will ich nicht unbedingt sämtliche Details verstanden 
haben. Einfach zu wissen was man machen muss damit es funktioniert 
reicht ja schon.
Von daher fände ich die Idee mit einem Hörbuch klasse. Noch besser mit 
einem Video dabei. Ich kannte mal jemanden der hat auch sowas gemacht. 
Der hat vom Bildschrim Videos aufgenommen (natürlich nicht 25 fps 
sondern wesentlich reduziert. Vielleicht wars auch ein Programm das ein 
Flash draus gemacht hat) und dazu was gesprochen. Wie das mit dem 
Rechtlichen aussah weiß ich leider nicht mehr. Da ISE aber kostenlos ist 
denke ich nicht, dass das ein Problem wäre. Ich würde an Deiner Stelle 
einfach mal eine Email an Xilinx schreiben um sicher zu gehen. Würdest 
du das, wenn es fertig ist verkaufen wollen oder irgendwo kostenlos 
anbieten wollen?

von FPGA-Küchle (Gast)


Lesenswert?

Xilinx werde ich mal bei Embedded Messe diese Woche in Nürnberg fragen.
Reich wird man so einem Spezialprojekt nicht, wenn die materialkosten 
reinkommen wärs gut.

von Christian H. (cavorca)


Lesenswert?

Du kannst ja ein Paypal-Spendenkonto angeben ;-)

von CPLD fan (Gast)


Lesenswert?

Zu den CPLDs gibts ueblicherweise super Software gratis. Bevor man sich 
da zu tief in VHDL verheddert und nix laeuft sollte man vieleicht mit 
der schematischen Eingabe anfangen und die Schaltung auch simulieren. 
Ohne Simulation ist eh nichts. Die eingebauten Analysewerkzeuge rechnen 
auch alle Timings aller moeglichen Pfade durch. Die Software ist 
einfacher geworden, aber beim ersten Projkt gibt's viel zu lernen. 
Vielleicht sollte ein Kurs ins Auge gefasst werden. Vergiss Buecher, das 
Ganze entwickelt sich viel schneller als sich Buecher schreiben. Buecher 
waeren sofort veraltet. Ich hab das Glueck, dass der Altera Support 
meines Lieferanten super ist. Der hat mir mal zu einem 3 Tageskurs 
geraten .. da kamen alle Details dran. Die Materie ist komplex und von 
nichts kommt nichts.

CF

von Holger (Gast)


Lesenswert?

@FPGA-Küchle
Br Alpha Bildung-Kanal ??????
EXCEL haben ich auch von einem Velag auf
Kasette bekommen,
habe den Verlag leider nicht zur Hand.
Zugeschaut und mitgebaut ist immer besser
als blääääätern.
---------------------------------------------------------
@Christian

Ich habe den Beitrag mit Interesse gelesen.
Endlich mal einer der  den Sachen auf den Grund geht,
also unten an der Basis anfängt z.B XC9536 oder XC9572.
------------------------------------------------------------------------ 
-------------------
Lasse die dedizierten Pinne wie , GCK/IO : 0.3, GSR/IO,GTS,GSR
in das Design ausnutzend und vorteilhaft mit einfliessen.
Die Constraints mit  in der Synthese  nutzen. .
Zitat:
Also: Lieber 10 ns als 5ns nehmen,
 wenn das von der Schaltung her reicht?
Oder kann ich das hier so einfach nicht Anwenden und
muss noch andere Sachen beachten?
---------------------------------------------------------

Du soltest dir auch noch Gedanken über eine gute
Industrie EMV taugliche Signal-Term_Inirung (R 100 E ),
bei 50 Mhz. Basis-Clock  machen. .
---------------------------------------------------------
z.B ca.100-Ohm Oszilator Output Beschaltung.Kabel-Reflektionen
---------------------------------------------------------
zB. SCSI BUS Abschlüsse. Terminate on High and LOW

Has du schon einen StromLaufPlan ???
----------------------------------------------------
Ich suche noch ein simles Beispiel für den Kern
eins progammierbaren 8 Kanal IRQ-Irq Kontrollers.
Wo ich mit dem Mix aus Tasken von Async.-Design, u.
Sync-Design, die Sache so verschalten kann.
Das ich die Vorentscheidung für den next Rising Clock
geschickt beeinflussen kan.
Halt mich in die Core-Logic für so ein z.B
Intel 8 Kanal IRQ-Kontroller für PC-MotherBoards
eindenken kann.
Und was ich halt da so unbedingt beachten solte.
Es geht dan zum "Grundesign aufbohren".
Wie z.B  Dynamische Prio-Behandlung, und Beeinflussung
während der echten CPLD-Design-Runtime.
Jetz wird mir das klar....
Es kommt leider immer zu dies Schiffsbruchmeldungen,
wo ein VHDL-Design auf dem CHIP der Fa. X::: anders
verhält als der auf Fa. A...
Dan wird am VHDL-Code so lange rumgefummelt bis sich
was brauchbares einzustellen scheint.
Das ist dan wie ein
8 Sekunden Rodeo auf der Hardware mit VHDL .
In den Simulatoren ist das alles schön, aber aber.
---------------------------------------------------------
FestPlatten am CPLD, Serielle Schnittstelle
---------------------------------------------------------

Als Grund-Modell habe ich mir die IRQ-Pinne am 68000
wie N_M_I,FIRQ,IRQ.. ect. als Denk-Leitfaden vorgestellt.
---------------------------------------------------------

Gruss, Holger.

von Christian H. (cavorca)


Lesenswert?

@CPLD fan
Bei mir auf der Uni gibt es eine Vorlesung "technische Informatik". Die 
hätte ich sehr gerne gehört. Gegen Ende der Vorlesung ging es auch wohl 
um CPLDs und FPGAs. Hier sind die Stundenpläne allerdings so 
furchtbar... Die Vorlesung hat sich mit meinem Pflichtprogram 
geschnitten, ich hätte pro Woche grade mal eine von vier Stunden hören 
können. Da habe ichs bleiben lassen. Ich finde auch mit den 
Powerpointfolien kann man nicht wirklich lernen. Das sind ja idR nur 
Stichworte ohne Zusammenhang. So ein Kurs wie du gemacht hast ist sicher 
nicht ganz billig?
Welche Software meinst du? Die normale vom Hersteller? Also bei Xilinx 
den ISE Webpack? Finde ich ungeheuer unübersichtlich. Ich habe auch 
schon gehört dass das bei Altera besser sein soll. Aber naja... jetzt 
bin ich bei Xilinx gelandet. Man arbeitet sich mit der Zeit halt ein.

@Holger
Ja, ich halte nix davon einfach irgendwelche Code schnipsel mir aus 
irgendwelchen Beispielen zusammen zu kleben auf das dann irgendwas raus 
kommt, das irgendwie das macht was es soll ohne dass ich weiß warum. 
Vorallem wennn es dann mal nicht funktioniert stehe ich im dunkeln.

Wenn ich genauer Bescheid wüsste wie ich "Pinne wie , GCK/IO : 0.3, 
GSR/IO,GTS,GSR" in mein Design einbaue und was die Vorteile und 
Möglichkeiten der der Einzelnen Pins sind würde ich das auch machen. Ich 
meine auch einen GCK hat ISE Automatisch zugeordnet.

Ich dachte eigentlich auf eine Terminierung könnte ich verzichten: Die 
Taktfrequent ist 50MHz, was ja nun auch nicht sooo viel ist, die 
Flankenanstiegszeit ist 3ns. In meinem Buch über EMV Design steht, dass 
ich die Leitungen kürzer als ein so-und-so-vielsten Teil der Länge 
machen muss die die Taktflanke "lang" ist. bei mir wären das so 50cm. Da 
ich sicher unter  10 cm bleibe dachte ich dass der Punkt dann nicht so 
kritisch ist. Ist das falsch? Ich hatte auch mal eina Schaltung die mit 
50MHz lief auf einem Breadboard aufgebaut mit größtenteils sehr 
großzügig dimensionierten Verkabelungen. Es hat alles anstandslos 
funktioniert. Da ich jetzt ehr auf eine zweiseitige SMD Platine 
hinsteuere habe ich da eigentlich nicht mit so vielen Problemen 
gerechnet. Ich bin aber gerne bereit etwas dazuzulernen.

Ich fände Beispiele bei denen sich man ein bisschen Inspirieren lassen 
kann auch nett, aber was du da Planst ist wesentlich Komplexer als was 
ich hier vor habe.

Stromlaufplan habe ich noch nicht.

von FPGA-Küchle (Gast)


Lesenswert?

<Wenn ich genauer Bescheid wüsste wie ich "Pinne wie , GCK/IO : 0.3,
<GSR/IO,GTS,GSR" in mein Design einbaue und was die Vorteile und
<Möglichkeiten der der Einzelnen Pins sind würde ich das auch machen. 
Ich
<meine auch einen GCK hat ISE Automatisch zugeordnet.

Also du lädst dir das datenblatt von deinem cplde von xilnx runter, dort 
hat es einen tabelle welche Pins bei welchen Gehäuse welche Funktion 
haben. Ich grad das vom 9572XL vormir liegen, da wäre beim PC44 -Gehäuse 
GTS1 auf 42, GCK1 auf 5 und GSR auf 39.

jetzt hast du in deinem design vielleicht einen getakten Tristate 
ausgang, beispielsweise
1
process(clk_i,rst_i)
2
begin
3
 if rst_i = '1' then
4
  counter_q <= "0000";
5
 elsif rising_edge(clk_i) then
6
  if tristate_enable_i = '1' then
7
     output_q <= (others => 'Z);
8
   else 
9
     output_q <= counter_q;
10
 endif;  
11
end if;
12
end process;

also ist rst_i dein globaler Set/reset, clk_i dein globaler takt und 
tristate_enable_i dein globales Tristate enable.

Dann muß dein ucf file wie folgt aussehen


NET "clk_i"             LOC = "P5"  | BUFG = CLK ;
NET "rst_i"             LOC = "P39" | BUFG = SR ;
NET "tristate_enable_i" LOC = "P42" | BUFG = OE ;

Das ucf musst du natürlich mit add project files zu deinem projekt 
hinzufügen. Und am besten du schaust nochmal im constraint guide von 
xilinx nach, ob ich nicht einen tippfehler hinterlassen hab.


Was GSR und GTS bedeutet, welche vorteile diese bringen steht 
beispielsweise im CPLD family data sheet, ist auch bei xilinx 
downloadbar.

von Holger (Gast)


Lesenswert?

@Christian
Bitte nur die Bilder ansehen, kan man auch grösser machen.
-----------------------------              -------

Den Text "nicht" lesen.
-----------------------

Da sind die Stromlaufpläne drin, mit den CLOCK Pinnen ect.


Was die R-C Beschaltung da an PIN 43 soll ????

http://www.stud.fit.vutbr.cz/~xvasic11/cl.cpld/


Gruss, Holger.

von Holger (Gast)


Lesenswert?

Was die R-C Beschaltung da an PIN 08 soll ????
Zusätzlicher Reset ????
PIN 1 CLOCK 43 usw .

von Christian H. (cavorca)


Lesenswert?

ich glaube ich verstehe dich nicht ganz. Es geht jetzt um Pin 8? was ist 
mit 43?
Was hat das mit dem Thema in diesem Thread zu tun?
Die Beschaltung sieht vielleicht ein bisschen nach einem Timer aus, wäre 
aber sehr langsam mit 0,22s. weiter unten im Bild über die Pinbelegung 
sieht es aber auch nicht aus als ob an diesen Pin überhaupt etwas nach 
außen gelegt wird.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.