Forum: FPGA, VHDL & Co. Benötige einige Tips zum Einstieg in XILINX ISE Webpack


von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Hallo, nach einigen Jahren des Pausierens in der Elektonik möchte ich 
jetzt wieder ein Projekt starten.
Da das mein erster Beitrag hier ist, hoffe ich das ich nicht zuviel 
verkehrt mache.
Dazu möchte ich die XC9536 und XC9572 die ich mir besorgt hatte 
einsetzen. Ich habe mir dazu z.Zt. das ISE Webpack 8.1 installiert.
Ich habe bisher schon Bauteile Plaziert, einen Bus incl. Bus TAPs 
gesetzt und auch I/O Marker.
Woran es aber z.Zt. hapert ist:

Ich habe 3 Schaltpläne: VIDEO.SCH, HORIZONTAL.SCH und VERTIKAL.SCH. Alle 
sind im gleichen Ordner gespeichert. Den Video.SCH habe ich als TOP 
Module gesetzt.
Was muß ich tun damit er HORIZONTAL.SCH und VERTIKAL.SCH als SUB Module 
(?) setzt, er also beim übersetzen alle 3 berücksichtigt ?
Irgendwie hatte ich es bei anderen Plänen schon einmal geschafft, 
bekomme das aber nichtg mehr repliziert.
Ich habe schon  nach einer Anleitung  gesucht, aber scheinbar nicht mit 
den richtigen Schlüsselwörtern.

Habt Ihr einen Tip, oder kennt Ihr gute Anleitungen ?

: Bearbeitet durch User
von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Bei ISE 10.1:
Project -> Add Source...

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Hallo,

das funktioniert aber scheinbar nicht. Da passiert das gleiche wie bei 
add source. Der. SCH ist dann scheinbar kein "Unterplan" des anderen 
sondern wird parallel dazu dargestellt. Oder denke ich da irgendwie 
falsch?
Bei meinem, wie auch immer geglückten" Zufall wurden die unterhalb 
(eingerückt) des Top Modules dargestellt. Und ich hatte bei "Add Symbol" 
das Projektverzeichnis aufgeführt bekommen und beim klicken darauf 
listete er HOR...SCH und VER...SCH auf.Bei Auswahl eines davon zeigte er 
mir ein Symbol mit all seinen I/O Markern auf. Er hatte den Schaltplan 
also irgendwie eingepackt, und beim Doppelklick darauf hat er den 
"Unterplan" geöffnet.

von pegel (Gast)


Lesenswert?

Ich habe eine andere Version, aber im Schaltplan geht das mit:

Tools -> Create Symbol

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Hallo Pegel,

Perfekt :) Im 8.1 ist es der Symbol Wizard. Ich kann mich zwarf nicht 
entsinnen den benutzt zu haben, aber damit klappt es auch. Thx.

Eine Frage noch: Ist es möglich sich wiederholende Schaltungen 
"mehrfach" zu nutzen, also 1x die Schaltung definieren und dann mehrfach 
zu benutzen, nur immer mit verschiedenen Signalen zu versehen? Oder geht 
das nicht?

: Bearbeitet durch User
von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Ein SCH ist ein SCH und kein ISE-Projekt.
Also leg einfach ein Projekt an.
Da kannst du dann deine Toplevelinstanz festlegen und
auch die anderen SCH-Files dazutun.

Mindestens bei 10.1 (spaetere sowieso) ist das so.

von pegel (Gast)


Lesenswert?

Jörg H. schrieb:
> nur immer mit verschiedenen Signalen zu versehen?

Das verstehe ich nicht.
Die Bezeichnung der Net Attribute innerhalb des Symbols ist die eine 
Sache und "draußen" liegen auch andere Netze an.

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Damit meine ich z.B. Du definierst einen 10 Bit Zähler , und legstg von 
diesem dann ein Symbol an.
Dann nimmst Du in einem anderen Schaltplan dieses Symbol 2x auf, JEtzt 
versorgst Du einen mit 50Hz und einen mit 75 Hz Clock.
Nimmt er den 10Bit-Zähler dann zwei mal in dem Quellcode auf oder kommt 
dann ein Error?

: Bearbeitet durch User
von pegel (Gast)


Lesenswert?

Ein Symbol ist ein Symbol.
Du kannst auch ein AND Gatter Symbol fast beliebig oft einsetzen und 
beliebige Ein- und Ausgänge zuordnen.

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Hallo Pegel,

vielen Dank. Jetzt sollte ich eine ganze Ecke weiterkommen.

von Duke Scarring (Gast)


Lesenswert?

Noch ein Tip von mir: Lern VHDL oder Verilog.

Die kleinen CPLD bekommt man zwar auch mit dem grusligen 
Schematic-Editor der ISE noch voll, aber mit einer Hochsprache ist man 
einfach wesentlich effektiver. Vor allem wenn man dann mal komplexere 
Logik beschreiben will.

Wenn Du willst, kannst Du Deine Schematics hier mal einstellen. Der 
äquivlente VHDL-Code sind meist nur wenige Zeilen. Intern macht die ISE 
auch nichts anderes: Die Schematic werden erst nach VHDL (oder Verlig) 
übersetzt und dann an XST, den Synthesizer, verfüttert.

Duke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Duke Scarring schrieb:
> Noch ein Tip von mir: Lern VHDL oder Verilog.
Das kann ich nur bekräftigen.
Siehe den Klassiker: Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Duke Scarring schrieb:
> Noch ein Tip von mir: Lern VHDL oder Verilog.

Das werde ich wenn der Einstieg erfolgreich war auch tun, aber für den 
Anfang dachte ich erst einmal an Schematic, besonders da mir dann noch 
eine Unterlage bzgl. Aufbau, Syntax, Befehlssatz etc. bei VHDL/Verilog 
(incl. welches ist "besser") fehlt.

: Bearbeitet durch User
von Markus F. (mfro)


Lesenswert?

Jörg H. schrieb:
> bei VHDL/Verilog
> (incl. welches ist "besser") fehlt.

... Vorsicht. So löst man unbedacht jahrhundertelange Glaubenskriege aus 
;)

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Markus F. schrieb:
> jahrhundertelange Glaubenskriege

Ich wollte nicht wieder ins dunkle Mittelaltger zurück, daher hatte ich 
es ja schon in "" gesetzt :)

Bzgl. einer Buchempfehlung im anderen Thread habe ich mal die neue 7. 
Auflage  "VHDL-Synthese" von Jürgen Reichardt und Bernd Schwarz 
bestellt. Soll Samstag kommen, da kommen bestimmt wieder Fragen auf^^

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Jörg H. schrieb:
> Habt Ihr einen Tip, oder kennt Ihr gute Anleitungen ?

Tips:
1. Einen Schaltplan machst du als "top". Dazu schreibst du dir ein .ucf 
File (ist plain text), wo du die Pin-Nummern deines Chips mit 
symbolischen Namen versiehst, die du als In- und Output's im 
Top-Schematic verwenden willst. Im .ucf kannst du auch noch andere 
Festlegungen treffen, siehe Doku der ISE.

2. Im top Schematic verwendest du für alle leitungen, die den Kontakt 
zur Außenwelt herstellen, Input- oder Output-Treiber (mit oder ohne 
Enable). Also nochmal: alles, was du dir an Logik ausdenkst, geht 
niemals direkt an die Außenwelt, sondern immer über I/O-Driver.

3. Wenn du dir eine Sub-Schaltung gemacht hast, dann mußt du dir davon 
auch ein Symbol machen. Dazu gibt's einen Symboleditor, der dir einiges 
an Arbeit abnimmt. Allerdings ist es mit den Symbol-Dimensionen ein 
Krampf bei der ISE, denn die sind eigentlich immer viel zu riesig und 
klobig. Wie groß du dir deine Symbole machst, ist letztlich deine 
Geschmackssache.

4. Wenn du eine Sub-Schaltung in einer anderen Schaltung benutzen 
willst, dann suche beim Plazieren nach dem zuvor von dir geschaffenen 
Symbol in deinem Projektverzeichnis.

5. Sieh zu, daß du dir ne neuere Version der ISE oder des Webpack's 
besorgst. Die 10 ist ganz in Ordnung und die jetzige (14.nochwas?) auch. 
Ist bloß unverschämt riesig.

Ich habe jahrelang mit der 8.2 gearbeitet. Die ISE selbst funktioniert 
eigentlich, stürzt jedoch gern an den "unerwartetsten" Stellen ab. 
Obendrein hatte da mal jemand von Xilinx bei den Steuerdateien vom 
IMPACT herumeditiert, weswegen IMPACT bei manchen Chips partout nicht 
funktionieren will. Ich hatte damals diese Editierereien gesucht, 
gefunden und rückgängig gemacht und ab da ging alles wie erwartet.

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jörg H. schrieb:
> Buch bestellt...
> Soll Samstag kommen, da kommen bestimmt wieder Fragen auf^^
Sieh dir mal das da an:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

: Bearbeitet durch Moderator
von W.S. (Gast)


Lesenswert?

Duke Scarring schrieb:
> Noch ein Tip von mir: Lern VHDL oder Verilog.

Frage dich zuvor lieber, was der TO denn sonst noch so an Problemen um 
die Ohren hat. Sich in eine HDL hineinzustürzen, braucht Zeit und 
Nerven, die man erstmal übrig haben muß. Ein Elektroniker hat mit 
Schematics hingegen (trotz des gruseligen Editors) erstmal überhaupt 
keine Probleme, denn Stromlaufpläne sind für ihn ne 
Selbstverständlichkeit.

Ich denke, der Weg, den der TO eingeschlagen hat, ist völlig richtig, 
denn er vermeidet unnötige Härten.

Man kann durchaus mit einfachen Schematics anfangen, sich dann Symbole 
kreieren und die ISE daraus nen Rumpf für den Inhalt in VHDL oder 
Verilog machen lassen. Die eigentliche interne Funktionalität dieses 
Symbols kann man dann eben in einer HDL schreiben. So kann man mit 
einzelnen Funktionsblöcken anfangen, das hilft ungemein.

W.S.

von Duke Scarring (Gast)


Lesenswert?

W.S. schrieb:
> Man kann durchaus mit einfachen Schematics anfangen
Ja kann man machen. Und nach Deinen Tipps zu urteilen hast Du auch 
einige Projekte mit Xilinx-Schematics gemacht.

Ich auch. Und im nachhinein muß ich sagen: Schade um die viele sinnlos 
vertane Zeit.

Daher mein Tip: Lern VHDL oder Verilog.

Sinnvoller ist eher der RTL-Schmetics-View, um zu sehen wie ISE das 
Hochsprchenkonstrukt verstanden hat...

Duke

von W.S. (Gast)


Lesenswert?

Duke Scarring schrieb:
> Ich auch. Und im nachhinein muß ich sagen: Schade um die viele sinnlos
> vertane Zeit.

Geht mir ganz anders. Im Nachhinein muß ich sagen, daß das genau das 
Richtige für mich war. Ohne Schematics hätte ich einige Geräte nicht 
realisieren können, weil mir für VHDL einfach die Zeit fehlt. Ich hätte 
das entweder auslagern müssen oder es hätte dafür jemand eingestellt 
werden müssen.

Und wenn man erstmal einen Sack voll funktionabler Moduln (sprich 
Sub-Schematics) sich geschaffen hat, dann macht Schematics fast richtig 
Spaß. OK, der Editor ist nach wie vor lausig.

Wahrscheinlich sind die Diskrepanzen in den Erfahrungen und Ansichten 
auf die ganz unterschiedlichen Berufsbilder zurückzuführen. Und wer von 
sowas wie Portabilität redet, der hat noch nie sich angeschaut, wie 
dramatisch unterschiedlich sowas wie FPGA's sind. Nicht nur zwischen 
verschiedenen Herstellern, sondern selbst innerhalb von Xilinx.

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Und wer von sowas wie Portabilität redet, der hat noch nie sich
> angeschaut, wie dramatisch unterschiedlich sowas wie FPGA's sind.
Oh doch. Und wenn man im "Mainstream" unterwegs ist, dann ist 
"Portabilität" von Modulen eben durchaus realistisch.
Ich habe jedenfalls keinem Bock, für jedes FPGA und jede Toolchain eine 
eigene SIO zu zeichnen und zu erproben.

Also mache ich solche Module natürlich in VHDL. Bleibt am Schluß noch 
das bisschen Verdrahten im Toplevel, das dann nur noch ein Prozent der 
Geeamtarbeit aus. Dafür lerne ich doch keine zusätzliche (grafische) 
Programmiersprache, wenn es in VHDL gleich schnell geht...

Denn ganz ohne HDL, also ausschließlich mit dem jeweiligen 
Schaltplaneditor der jeweiligen Toolchain, macht kein Mensch ein 
halbwegs zeitgemäßes Design in einem halbwegs geräumigeren FPGA.

von W.S. (Gast)


Lesenswert?

Lothar M. schrieb:
> macht kein Mensch ein halbwegs zeitgemäßes Design..

Also, nen UART oder so würde ich NIE, NIE, NIE in einem Fpga oder Cpld 
machen, für sowas gibt's µC. Bei mir wird nur das mit programmierbarer 
Logik gemacht, was ein µC eben nicht hergeben kann - und das ist IMMER 
extrem speziell - allerdings gibt es da auch Baugruppen, die man gut 
wiederverwenden kann. Aber das sind eben Baugruppen, die eben keinem der 
üblichen Peripheriecores eines µC entsprechen.

Aber du scheinst von dir auf den Rest der Welt ("kein Mensch") zu 
schließen. Mach das lieber nicht, denn das geht schief. Ich hatte das ja 
weiter oben bereits beschrieben.

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Also, nen UART oder so würde ich NIE, NIE, NIE in einem Fpga oder Cpld
> machen, für sowas gibt's µC.
Ja, mal angenommen, ich habe grade keinen uC am FPGA oder gar im ganzen 
Design. Die schnuckeligen MachXO mit dem internen Oszillator sind ideal 
für solche völlig uC-losen Schaltungen.
Und der UART von meiner HP hat es der Userresonanz nach schon auf fast 
jedes FPGA geschafft. Soviel zum Thema Portierbarkeit.

> Aber du scheinst von dir auf den Rest der Welt ("kein Mensch") zu
> schließen.
Du bestätigtst diese Regel als sprichwörtliche Ausnahme.

Diese Schaltplaneingabe-Geschichten sind unnötig und führen in 
Sackgassen. Es ist ja nicht so, dass ich nicht damit gearbeitet und 
keine Toplevelpläne damit gemalt hätte. Aber mich in die Macken zweier 
Toolchains einzuarbeiten (erst X und dann L), das war dann doch zu viel.

von Jörg H. (Firma: Privat) (jihh)


Angehängte Dateien:

Lesenswert?

Duke Scarring schrieb:
> Wenn Du willst, kannst Du Deine Schematics hier mal einstellen.

Das mach ich doch gerne. Anbei mal ein Teil davon (ist bestimmt noch 
nicht entgültig).

W.S. schrieb:
> Ich denke, der Weg, den der TO eingeschlagen hat, ist völlig richtig,
> denn er vermeidet unnötige Härten.

Danke für die Blumen. Ich stand bei der ISE ersteinmal sprichjwörtlich 
wie der Ochs vor dem Scheunentor :(
Und ja, der Schematic Editor ist gelinde gesagt in einigen Teilen 
verbesserungswürdig.
Bzgl. der ISE8.1: Ichj hatte mir auch zuerst 14.7 geladen, das scheitert 
auf meinem W7HomeX64 schon an der Installation. Außer einem hübschen 
grünen Quadrat mit Bild kam beim Start der Installation nichts. Die SSD 
langweilte sich, Prozessor  schlief fast ein. Ich habe alles probiertz 
was mir einfiel (PC Neustart, Virenscanner komplett abschalten, als 
Admin ausführen). Aber nichts half.Auch nach 5 Minuten keine Änderung.
Also 11.1 probiert, aber da habe ich am Anfang scheinbar zu schnell 
aufgegeben da ich keinen XC9536 oder XC9572 finden konnte. Daher bin ich 
zur Zeit auf 8.1 zurückgegangen.

Wenn ich den beigefügten Plan "übersetzen" lasse kann ich ja scheinbar 
unter "View HDL Funtional Model" das VHDL Listing(?) sehen. Etwas 
unleserlich, aber erstmal was solls. Also Pflugs den Text kopiert. Dann 
dachte ich mir nehme ich mal den und schau mal was er damit macht. Aber 
daran scheitert es schon. Muß ich ein neues Project mit "Top-Level HDL 
Source Type" und dann als Source "VHDL Module" auswählen? Habe ich 
getan, und dann gerätselt. Wie starte ich da dann das Übersetzen 
(natürlich nach einfügen des kopierten Listings)?

Lothar M. schrieb:
> Sieh dir mal das da an:
> http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

Habe ich aus reingesehen, und festgestellt da mir da noch viele ??? 
kommen. Z.B. Habe ich ja schon =.==,!= etc. gesehen. Aber <= war mir 
neu. Also habe ich mal gesucht und mir die VHDL Syntax Reference der 
University of Minnesota Duluth ausgedruckt.

P.S. Ich sehe gerade das der 1. Versuch zu klein ist, setzte ich auch 
noch größer rein

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jörg H. schrieb:
> Wenn ich den beigefügten Plan "übersetzen" lasse
Sehe ich das richtig und du gehst mit einem kombinatorischen Takt auf 
ein Flipflop?
Das geht in einem CPLD oder FPGA garantiert eher früher als später 
schief, weil die Dinger nämlich pfeilschnell auf Glitches reagieren. Und 
von den 2 Flipflops wird wegen eines Glitches nur 1 getaktet oder 
ähnliche Effekte. Sowas geht dann auch überaus gern schief, wenn du an 
dieser Stelle gar nichts änderst, sondern ganz woanders und deshalb 
dieser "Takt" ein wenig anders geroutet wird...

Jörg H. schrieb:
> Habe ich aus reingesehen, und festgestellt da mir da noch viele ???
> kommen.
Deshalb mein Link auf das Blinklicht, das Hello-World! der Hardware. Das 
musst du verstehen. Und das daraus abgeleitete Lauflicht. Dann sieht es 
schon besser aus.

> Z.B. Habe ich ja schon =.==,!= etc. gesehen. Aber <= war mir neu.
Ja klar. Dieser Vorgang wird "Lernen" genannt. Aber keine Sorge: du 
wirst das bald kennen, denn das ist eine Zuweisung an ein Signal.

von Jörg H. (Firma: Privat) (jihh)


Lesenswert?

Lothar M. schrieb:
> Sehe ich das richtig und du gehst mit einem kombinatorischen Takt auf
> ein Flipflop?

Sry. das ich fragen muß, aber woher leitest Du das denn ab? Aus den 
Unterlagen entnehme ich das die CB2RE/CB4RE Counter positiv 
flankengetriggert sind. Und der HCLOCK wird mit 99.97% 
Wahrscheinlichkeit entweder direkt aus einem externen Quarzoszillator 
oder einem Schmitt-Triggger Ala 7414 gespeist werden.

Lothar M. schrieb:
> denn das ist eine Zuweisung an ein Signal.

Das hatte ich in der angegebenen VHDL Syntax Reference gefunden.

: Bearbeitet durch User
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.