xilinx xucks!

OP #4022296
Lesenswert?

Jetzt muss ich mal meinen Frust etwas Luft machen.
Seit Wochen versuche ich meine ersten Schritte mit einem S3AN Board.
Und die einzige Erkenntnis, die ich erlange, ist das Xilinx von 
anwenderfreundlichen Software wohl keine Ahnung hat.
Die Krönung von allem ist das Lizenz-Handling. Da sind wohl keine 
Software-Experten mit einem Hauch von Gespür für Kunden am Werke, 
sondern Sadisten mit einem Hauch von Programmiererfahrung.
Nach etlichem hin & her bin mit der neuesten ISE Version 14.7 und 
zusätzlichen Paketen wie Active-HDL (siehe meinen thread "xilinx newbie 
und microblaze") habe ich mir sogar noch mal das nexys 2 an's Bein 
gebunden.
Und weil das noch unterwegs ist, wollte ich mal das ZPU Projekt mit dem 
S3AN ausprobieren. Aber da versucht ISE 14.7 eine automatische Migration 
der Projekt-Files, die nicht funktioniert.
Also - dachte ich mir -  sollte ich vielleicht mal die im ZPU Projekt 
vorgeschlagene ISE 10.1 installieren. Die Version hat ein anderes 
Lizenzmanagement. Dafür bekommt man auf japanisch(!) Unterstützung hier: 
http://taoist29.tistory.com/entry/xilinx-WebPack%EA%B3%BC-ModelSim-students-Edition-%EC%84%A4%EC%B9%98. 
Das funktioniert aber auch nicht, weil es kein Tab "Legacy Licensing" 
auf der Lizenz-Management Seite von xilinx gibt.

H I L F E !!!
Gast #4022331
Lesenswert?

Frank Bergemann schrieb:

> H I L F E !!!

Don't panic,

Regel nummer 1 - das problem nicht vergrößern - also vergiß das mit ISE 
10.1.

Was du zuerst machen musst ist ein simples design synthetisieren und auf 
das board laden. Versuch mal die LEd auf dem 3an board ans blinkcnen zu 
bekommen.

ich hab auch so ein board hier or mir liegen. Hast du die erwähnte Häcks 
mit der schritt anweisung für die ISE? Wenn nicht, kann ich dir scannen 
und per email schicken.

MfG,
#4022345
Lesenswert?

Immer mit der Ruhe. Nimm nur eine Version, die 14.7 kann alles was du 
brauchst. Vergiss Active HDL für den Anfgang, das verwirrt nur noch viel 
mehr. Für die ISE 14.7 brauchst du halt eine Lizenz, ob nun kostenlos 
Webpack oder halt kostenpflichtig. Anmelden bei Xilinx musst du dich in 
beiden Fällen, das ist etwas mühsam, muss man zugeben. Dann kmmst du 
irgendwann in den Lizenzmanager auf der Homepage, und kannst dir die 
Lizenz erstellen und mit dem Lizenzmanager im Xilinx Programmordner 
einstzellen. Ohne Lizenzfile geht halt überhaupt nix, auch keine 
kostenlose Webpack.
Persönliche Seite #4022460
Lesenswert?

Falls es dir darum geht, erst einmal irgendwie eine Konfiguration
auf dem Spartan-3AN Starter Kit zum laufen zu kriegen:

Warum versuchst du nicht mal, dieses Projekt zu realisieren?
http://www.mikrocontroller.net/articles/8bit-Computer:_bo8h

Du müsstest in ISE mit "NEW PROJECT" ein neues Projekt anlegen,
mit "COPY TO PROJECT" die fünf Textdateien von meiner Website
ins Projekt einbinden, und "Unused IO-Pins => Pullup"
einstellen. Siehe Seite Hawa meiner Website.

Mehr wäre nicht zu tun. Nichts mit Device-Migration oder so.

Du könntest ja erst mal schauen, ob die Synthese läuft,
da kannst du auf dem Board noch nichts kaputt machen.
Gast #4022477
Lesenswert?

Josef G. schrieb:
> Falls es dir darum geht, erst einmal irgendwie eine Konfiguration
> auf dem Spartan-3AN Starter Kit zum laufen zu kriegen:
>
> Warum versuchst du nicht mal, dieses Projekt zu realisieren?
> http://www.mikrocontroller.net/articles/8bit-Computer:_bo8h

Das ist keine schlechte Idee um die ISE erstmal  kennenzulerenen.
Aber wenn ich recht geschaut habe, schreibt Josef auf der Seite vom 3A 
und nicht vom  3AN-Board.
Also richtigen FPGA auswählen und checken ob das ucf passt.

MfG,
OP #4022576
Lesenswert?

ok, ich hab' mir die passenden Files heruntergeladen und mit den ISE 
Project Navigator ein Projekt "bo8h" erstellt. Dann diese Files nach 
./bo8h/ipcore_dir/ kopiert. Und schließlich mit dem Button "Implement 
Top Module" soweit vorbereitet

Ergebnis
1
Process "Generate Post-Place & Route Static Timing" completed successfully

Da kamen unterwegs allerdings einige Warnungen hoch - s.u.
Ich nehme an, weil ich

> [...] und "Unused IO-Pins => Pullup" einstellen.

nicht gemacht habe.
Wo kann ich diese Einstellung vornehmen (ich hab's nicht gefunden).

Warnings:

    Related source file is 
"D:/xilinx-workspace/bo8h/ipcore_dir/ks3a.vhd".
WARNING:Xst:737 - Found 1-bit latch for signal <wart>. Latches may be 
generated from incomplete case or if statements. We do not recommend the 
use of latches in FPGA/CPLD designs, as they may lead to timing 
problems.
WARNING:Xst:737 - Found 1-bit latch for signal <init>. Latches may be 
generated from incomplete case or if statements. We do not recommend the 
use of latches in FPGA/CPLD designs, as they may lead to timing 
problems.

[...]

    Related source file is 
"D:/xilinx-workspace/bo8h/ipcore_dir/ps3a.vhd".
WARNING:Xst:646 - Signal <adx<0>> is assigned but never used. This 
unconnected signal will be trimmed during the optimization process.

[...]

======================================================================== 
=
*                       Advanced HDL Synthesis 
*
======================================================================== 
=

WARNING:Xst:1426 - The value init of the FF/Latch ini hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch enab4 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab5 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab6 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab7 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wst hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant 
cleaning in the block wart.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch 0 hinder the constant 
cleaning in the block init.
   You should achieve better results by setting this init to 0.

[...]

======================================================================== 
=
*                         Low Level Synthesis 
*
======================================================================== 
=
WARNING:Xst:1426 - The value init of the FF/Latch ini hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch enab4 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab5 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab6 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch enab7 hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wst hinder the 
constant cleaning in the block ps3a.
   You should achieve better results by setting this init to 1.
WARNING:Xst:1426 - The value init of the FF/Latch wart hinder the 
constant cleaning in the block display.
   You should achieve better results by setting this init to 0.
WARNING:Xst:1426 - The value init of the FF/Latch init hinder the 
constant cleaning in the block display.
   You should achieve better results by setting this init to 0.
INFO:Xst:2261 - The FF/Latch <p1eava> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewa0>
INFO:Xst:2261 - The FF/Latch <p1ebvb> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewb0>
INFO:Xst:2261 - The FF/Latch <p1ebbv> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <p1ewb7>
INFO:Xst:2261 - The FF/Latch <qhopan> in Unit <cpu> is equivalent to the 
following FF/Latch, which will be removed : <q1opz>
WARNING:Xst:2040 - Unit ps3a: 24 multi-source signals are replaced by 
logic (pull-up yes): adrbus<0>, adrbus<10>, adrbus<11>, adrbus<12>, 
adrbus<13>, adrbus<14>, adrbus<15>, adrbus<1>, adrbus<2>, adrbus<3>, 
adrbus<4>, adrbus<5>, adrbus<6>, adrbus<7>, adrbus<8>, adrbus<9>, 
datbus<0>, datbus<1>, datbus<2>, datbus<3>, datbus<4>, datbus<5>, 
datbus<6>, datbus<7>.
WARNING:Xst:2042 - Unit cpu: 24 internal tristates are replaced by logic 
(pull-up yes): adrbus<0>, adrbus<10>, adrbus<11>, adrbus<12>, 
adrbus<13>, adrbus<14>, adrbus<15>, adrbus<1>, adrbus<2>, adrbus<3>, 
adrbus<4>, adrbus<5>, adrbus<6>, adrbus<7>, adrbus<8>, adrbus<9>, 
datbus<0>, datbus<1>, datbus<2>, datbus<3>, datbus<4>, datbus<5>, 
datbus<6>, datbus<7>.

[...]

Process "Translate" completed successfully

Started : "Map".
Running map...
Command Line: map -intstyle ise -p xc3s700an-fgg484-4 -cm area -ir off 
-pr off -c 100 -o ps3a_map.ncd ps3a.ngd ps3a.pcf
Using target part "3s700anfgg484-4".
Mapping design into LUTs...
WARNING:LIT:176 - Clock buffer is designated to drive clock loads. 
BUFGMUX
   symbol "physical_group_dckp_OBUF/ibg" (output signal=dckp_OBUF) has a 
mix of
   clock and non-clock loads. The non-clock loads are:
   Pin I1 of oclk1
   Pin I1 of ducn_not00011
Running directed packing...
WARNING:Pack:266 - The function generator adrbus<2>LogicTrst1 failed to 
merge
   with F5 multiplexer i08/neuctr<2>_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator adrbus<3>LogicTrst1 failed to 
merge
   with F5 multiplexer i08/neuctr<3>_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<0>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<1>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
WARNING:Pack:266 - The function generator i02/ntb1 failed to merge with 
F5
   multiplexer i02/Mxor_mubb_Result<2>1_f5.  There is a conflict for the 
FXMUX.
   The design will exhibit suboptimal timing.
Running delay-based LUT packing...
Running related packing...
Updating timing models...
WARNING:PhysDesignRules:739 - Unexpected DCM feedback loop. The signal
   GLOBAL_LOGIC0 on the CLKFB pin of comp idm is not driven by an IOB or 
BUFGMUX
   therefore the phase relationship of output clocks to CLKIN cannot be
   guaranteed.
Gast #4022583
Lesenswert?

Frank Bergemann schrieb:
> Jetzt muss ich mal meinen Frust etwas Luft machen.
> Seit Wochen versuche ich meine ersten Schritte mit einem S3AN Board.
> Und die einzige Erkenntnis, die ich erlange, ist das Xilinx von
> anwenderfreundlichen Software wohl keine Ahnung hat.
> Die Krönung von allem ist das Lizenz-Handling. Da sind wohl keine
> Software-Experten mit einem Hauch von Gespür für Kunden am Werke,
> sondern Sadisten mit einem Hauch von Programmiererfahrung.
> Nach etlichem hin & her bin mit der neuesten ISE Version 14.7 und
> zusätzlichen Paketen wie Active-HDL (siehe meinen thread "xilinx newbie
> und microblaze") habe ich mir sogar noch mal das nexys 2 an's Bein
> gebunden.

Also ganz ehrlich, wenn du Software benutzt die nicht mehr 
weiterentwickelt wird auf einem FPGA der schon uralt ist dann brauchst 
du dich nicht beschweren wenn nur scheiße dabei rauskommt.
Kauf dir halt nen 7er FPGA und nimm Vivado dann hast du ne vernünftige 
Toolchain. So teuer sind die jetzt auch nicht mehr (muss ja kein Virtex 
sein) und dafür kannst du dich dann nicht mehr beschweren.
Andernfalls benutz wenigstens planAhead.
Das Licence Managing von Xilinx ist übrigens auf zahlende Kunden 
zugeschnitten, wer hätte es gedacht...
Gast #4022590
Lesenswert?

> nimm Vivado dann hast du ne vernünftige
> Toolchain

Rofl - immer dieser Sarkasmus im Forum ^^

Im Ernst: Auch mit ISE kann man hervorragend arbeiten ;) Man sollte halt 
mal ein kleines Tutorial durcharbeiten und eine LED ein oder 
ausschalten. Das ist doch wirklich kinderleicht. Immer schön klein 
anfangen...
Gast #4022597
Lesenswert?

juju schrieb:
>> nimm Vivado dann hast du ne vernünftige
>> Toolchain
>
> Rofl - immer dieser Sarkasmus im Forum ^^
>
> Im Ernst: Auch mit ISE kann man hervorragend arbeiten ;) Man sollte halt
> mal ein kleines Tutorial durcharbeiten und eine LED ein oder
> ausschalten. Das ist doch wirklich kinderleicht. Immer schön klein
> anfangen...

Naja die ISE ist halt voll von Bugs und Problemen, dafür fehlen Features 
an allen Ecken. Vivado und PA machen einiges besser, PA nutzt halt 
leider noch den alten Xst und kann deswegen kein VHDL 2008 und so 
Späßchen...
Gast #4022623
Lesenswert?

> Naja die ISE ist halt voll von Bugs und Problemen, dafür fehlen Features
> an allen Ecken.

Das stimmt auf jeden Fall. Allerdings gilt das gleiche auch für Vivado. 
Ich habe zB. nicht schlecht gestaunt, als ich erfolglos nach einer 
Möglichkeit in Vivado suchte eine Testbench (Grundgerüst) automatisch 
für eine Komponente zu erstellen. Das geht in ISE, aber in Vivado 
scheinbar nicht (oder ich habe es nicht gefunden). Darüber hinaus hat 
Vivado noch einige Kinderkrankheiten (leider).

Man muss leider sagen, dass Xilinx nicht der Hit in Sachen Software ist. 
Aber man kann schon damit arbeiten, wenn man die Fallstricke kennt.

lg
Persönliche Seite #4022709
Lesenswert?

Frank Bergemann schrieb:
> Da kamen unterwegs allerdings einige Warnungen hoch - s.u.

>> [...] und "Unused IO-Pins => Pullup" einstellen.

> Wo kann ich diese Einstellung vornehmen (ich hab's nicht gefunden).

Die Warnungen hatte ich auch alle (31 waren es bei mir).
Lass dich davon nicht irritieren. Warnings sind keine errors.

Die Einstellung mit den Unused Pins wird unter
"Create Programming File" - "Edit Process Properties" gemacht.
Gast #4022714
Lesenswert?

Christian R. schrieb:
> Immer mit der Ruhe. Nimm nur eine Version, die 14.7 kann alles was du
> brauchst.

Und sie hat gegenüer der 14.6 einige nette bugs, die nicht mehr gefixed 
werden, weil nun Vivado im FOkus ist. Es wird keine neue ISE mehr geben.

Und: Die wissen warum. Das Xilinx Gedöhns ist voller bugs und 
Inkompatibilitäten der einzelnen Komponenten zueinander, sodass es 10 
Jahre dauern würde, das zu Homogenisieren und zu Fixen.

Also bauen sie was neues.

Vivado kommt natürlich mit ähnlichen Problemen daher, von daher kämpfe 
ich seit unmehr 2 Jahren, damit ich kein Xilinx mehr machen muss und bei 
Altera bleiben kann. Damm hat man nur einen Müllhaufen zu pflegen und 
der Müll in Altera ist um 3 Nummern kleiner.

Das grosse Problem der Firma Xilinx ist, dass sie keine strategische 
Softwareentwicklung betrieben hat und betreibt von daher sind Probleme 
in der Migration und Pflege von vorn herein eingebaut. Da rein spielt 
auch die Personalpolititk der häufig wechselnden Entwickler, die um eine 
immer kleiner werdene Gruppe von alten Hasen versucht, am Chao zu 
flicken. Man kann es an den Dokumenten sehen: Vieles ist inkonsitent und 
passt nicht zu den Beispielen, viele Examples laufen nicht , dasselbe 
gilt für die halbduchdachten Appnotes.

Inwischen ist es so, dass viele Entwickler hergehen, eine Weile beim 
grossen X arbeiten, um damit etwas Knowhowvorsprung gegenüber den 
normalen Entwicklern zu haben, den sie dann teuer versilbern, weil viele 
Firmen einfach darauf angewiesen sind, mit ihren Systemen zu arbeiten 
und da stecken halt überwiegend Xilinx-FPGAs drin.

Die zahlen dann einem Xilinx-Affiliance-Experten praktisch jeden Preis, 
um ihr Zeug ins Laufen zu bekommen.

Was da von Xilinx und den "Experte" her läuft ist eben genau das 
Gegenteil dessen, was immer progiert wird:

Einfache Entwicklung, die leichter kontrollierbar wird und u.a. auf 
vereinheitlichten Komponenten basiert. Tatsächlich wird alles komplexer 
und fehleranfälliger. Baue Dir einfach mal mit dem System Generator 
einen Signalverarbeitungs-FPGA und warte auf die nächste Vivado oder 
MATLAB Version. Da läuft NICHTS mehr! Überhaupt nichts mehr.

Und das Methode! Keine andere Firma investiert so wenig in Nutzbarkeit 
und Wiederverwendbarkeit. Alles sind temporärer Insellösungen, die 
letztlich wieder ersetzt werden müssen. Und damit wird eben viel Geld 
verdient.

Xilinx verdient nicht an der Software, sondern an den Schulungen und 
Lizenzen für die Schulungsprogramme.

Das ist im Prinzip so, wie wenn Merceds Autos bauen würde, die immer 
unfahrbarer sind, damit sie die Fahrlehrer kostenpflichtig schulen 
können.
Gast #4022739
Lesenswert?

Guest schrieb:

> Also ganz ehrlich, wenn du Software benutzt die nicht mehr
> weiterentwickelt wird auf einem FPGA der schon uralt ist dann brauchst
> du dich nicht beschweren wenn nur scheiße dabei rauskommt.
> Kauf dir halt nen 7er FPGA und nimm Vivado dann hast du ne vernünftige
> Toolchain.

Fanboy-gedöhns
- ISE ist wenn auch nicht perfekt dann doch eine gereifte Software die 
in der Community inzwischen gut verstanden ist. Vivado hat weit weniger 
Experten die produktiv damit arbieten können. Ebenso Spartan3A das ist 
eine etablierte FPGA-Familie, die 7er bringen nur in Details 
Leistungsverbesserungen die es aber dem Einsteiger auch nicht die Mühe 
abnehmen sich hart die Grundlagen der programmierbaren Loguk zu 
erarbeiten.

MfG,
Gast #4022759
Lesenswert?

Lothar Miller schrieb:
> Ich würde da einfach mal ganz kleine Brötchen backen und die
> Schritt-für-Schritt Anleitung dort abarbeiten:
> http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

Hm VHDL-Schnipsel helfen beim Verständnis des ISE-Workflows nur bedingt 
weiter. Einer Anfrage wie "Hilfe mein Word für Windows" ist mit einem 
Link auf "Deutsche Rechtschreibung" auch nicht beantwortet. was hier 
gebraucht wird ist eine "KlickKlackie anleitung. Da seh ich unter dem 
angegeben Link gerade nichts.

Es gibt auch ein paar Video Tutorials auch von einigen Forums-Kollegen. 
Schau mal unter:

Lehrvideos
*Beitrag "Meine FPGA videotutorials für Einsteiger"

Ich hab zwar jetzt dabei auf die schnelle nur Altera-workshops gefunden, 
vielleicht bast aber doch was zu ISE. Und über die Qualität kann man 
auch streiten - ist aber immer noch besser als garnichts.

MfG,

PS:

Lothar meinte wohl diese Links:
http://www.lothar-miller.de/s9y/uploads/Tutorial_Xilinx_ISE13.pdf
http://www.lothar-miller.de/s9y/categories/41-Xilinx-ISE
OP #4022892
Lesenswert?

@Josef:
hab' die Einstellung gefunden.
Sie ist i.d. "Design" Tab nur sichtbar, wenn man i.d. "Hierarchy" 
ps3a.vhd anwählt - das muss man ja wissen...

Mit "Generate Programming File" bin ich jetzt durch.
"Configure Target Device" geht auch.

Aber bei der Anwahl von "Generate Target PROM/ACE File" bekomme ich die 
Meldung: "An iMPACT Project File exists, but there is no information 
about PROM file or SystemACE. [...]"

Wie geht's da jetzt weiter?
Gast #4022899
Lesenswert?

Fpga Kuechle schrieb:
> Hm VHDL-Schnipsel helfen beim Verständnis des ISE-Workflows nur bedingt
> weiter. Einer Anfrage wie "Hilfe mein Word für Windows" ist mit einem
> Link auf "Deutsche Rechtschreibung" auch nicht beantwortet. was hier
> gebraucht wird ist eine "KlickKlackie anleitung. Da seh ich unter dem
> angegeben Link gerade nichts.

Genauer lesen, ca. in der Mitte der Seite ist der Link:
http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html

Ist aber für ISE-13
OP #4022938
Lesenswert?

jetzt ja :-)

Muss ich jetzt in iMPACT mit der rechten Maustaste auf's xc3s700an und 
dann "Program Flash and Load FPGA..." auswählen?

Dann wird programmiert - aber am Ende kommt dann:
1
[...]
2
INFO:iMPACT - Address 0x00000000 is in sector 0.
3
INFO:iMPACT - Address 0x0005364B is not located at the start of a sector boundary. The whole sector will be erased.
4
INFO:iMPACT - Address 0x0005364B is in sector 6.
5
INFO:iMPACT - Address 0x00000000 is in sector 0.
6
INFO:iMPACT - Address 0x0005364B is not located at the start of a sector boundary. The whole sector will be erased.
7
INFO:iMPACT - Address 0x0005364B is in sector 6.
8
INFO:iMPACT - Address 0x00000000 is in page 0.
9
INFO:iMPACT - Address 0x0005364B is in page 1293.
10
'1': Programming Flash...done.
11
'1': Programming completed successfully.
12
INFO:iMPACT - Address 0x00000000 is in page 0.
13
INFO:iMPACT - Address 0x0005364B is in page 1293.
14
'1': Verifying device...done.
15
'1': Verification completed successfully.
16
'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and spi mode settings.
17
PROGRESS_END - End Operation.
18
Elapsed time =     96 sec.

Nachtrag:
Bei J26 ist jetzt nur M1 gebrückt.
Für J46 ist das setting egal?
Persönliche Seite #4022968
Lesenswert?

Frank Bergemann schrieb:
> dann "Program Flash and Load FPGA..." auswählen?

Ich verwende ISE 11.1. Da ist offenbar einiges anders als bei dir.

"Programm Flash" würde ich nicht wählen.

Bei meiner Version muss ich nur das FPGA anklicken und
das .bit -File auswählen. Der Rest wird übersprungen.

Setting J46 kann ich auf die Schnelle nicht beantworten.
Müsste alles im UG334 stehen.
OP #4023003
Lesenswert?

Ja - jetzt passiert doch schon mal was :-)

Sollten danach 2 von 8 LEDs an sein?
Und mit dem SW0 (ganz rechts) kann man LED0 (ganz recht) schalten.
Mit dem Schaltern SW1 und SW2 kann man (OR'ed) LED6 schalten.
Schalter SW3 ist ohne Wirkung(?)
Auf VGA sehe ich eine Art Testbild (gelb/schwarzes Muster auf blauen 
Untergrund).
Gast #4024694
Lesenswert?

Duke Scarring schrieb:
> @Frank Bergemann:
> Auch wenn Josef Code jetzt bei Dir läuft, er ist kein Vorbild, wie man
> VHDL verwenden sollte, auch wenn Josef mit Sicherheit was anderes
> behauptet. Uneingeschränkt kann ich bisher nur die Seite von Lothar
> Miller empfehlen:
> http://www.lothar-miller.de/s9y/categories/1-VHDL
>
> Duke

Da muss ich Duke zustimmen. Am Besten das jetzt als einsteigendes 
Erfolgserlebnis verbuchen, dann den Code von Josef aber schnell wieder 
vergessen und mit den Basics auf Lothar Millers Seite anfangen, dort ist 
alles schön dokumentiert.
Persönliche Seite #4025689
Lesenswert?

@ Frank Bergemann

Da ich gerade deinen neuen Thread "S3AN restaurieren" gesehen habe:

Falls du bei obigen Programmier-Versuchen versehentlich die
Original-Konfiguration im Flash zerstört hast, so sehe ich die
Schuld dafür nicht direkt bei mir. Zum Testen meiner Konfiguration
war nur das Schreiben ins Konfigurations-RAM erforderlich, ohne
Änderung eines Flash-Speichers.

Da du einen neuen Thread angefangen hast: Haben meine beiden
Vor-Poster dich tatsächlich davon abgebracht, dich weiter mit
meinem Projekt zu befassen? Falls ja: Ist dir aufgefallen,
dass sie nur geschrieben haben, mein Projekt sei Mist,
aber keinerlei Begründung dafür genannt haben?
OP #4025743
Lesenswert?

@Josef:
Nee, damit hat das nix zu tun. Ich will bloss prinzipiell sehen, ob 
ich's wieder zurückgesetzt bekomme.
Morgen müßte mein nexys-2 ankommen. Dann will ich das damit auch noch 
mal probieren. Und ich werde mir dann noch mehr von Deiner CPU ansehen. 
Da war in dem urspr. thread über Deine CPU von einer Art Testprogramm 
die Rede, das ungefähr was über die Leistungsfähigkeit aussagen sollte 
(waren's um die 12,5 MIPs?). Ich hab' allerdings noch nicht überblickt, 
welche Programme schon verfügbar sind und wie man sie auf's board bringt 
und startet. Kann ich z.B. das send.c und rece.c auch unter 
windows-cygwin compilieren und laufen lassen?
#4025994
Lesenswert?

Josef G. schrieb:
> Da du einen neuen Thread angefangen hast: Haben meine beiden
> Vor-Poster dich tatsächlich davon abgebracht, dich weiter mit
> meinem Projekt zu befassen? Falls ja: Ist dir aufgefallen,
> dass sie nur geschrieben haben, mein Projekt sei Mist,
> aber keinerlei Begründung dafür genannt haben?

Och komm schon Josef, die Gründe sind doch zur genüge in deinem Thread 
unter "Projekte&Code" durchgekaut. Ich finde es echt nicht fair, einem 
Anfänger, der die Qualität des Codes noch nicht beurteilen kann, dein 
Projekt vorzusetzten!
Gast #4026206
Lesenswert?

Da Dieter schrieb:
> Josef G. schrieb:

> Och komm schon Josef, die Gründe sind doch zur genüge in deinem Thread
> unter "Projekte&Code" durchgekaut. Ich finde es echt nicht fair, einem
> Anfänger, der die Qualität des Codes noch nicht beurteilen kann, dein
> Projekt vorzusetzten!

Also neines Erachtens sind die postings hier von Josefs 1000x 
hilfreicher als der Shitstorm gegen sein Project der hier immer wieder 
am schwappen gehalten wird.

Dank Joseph kennt Frank die Downloadfunktion seines Boards besser und 
hat sein board überhaupt erst an spielen gebracht.

Und das ist nicht nur fair sondern so auch so wie eine community 
funktionieren sollte - man hilft mit dem was man hat.

MfG,
OP #4027433
Lesenswert?

@josef & @fpgakuechle:
Heute ist mein nexys2 board angekommen.
Das habe ich mir noch geholt (ebay) wg. des Hinweis' mit dem Lehrbuch 
http://www.digilentinc.com/Data/Textbooks/Intro_to_Digital_Design-Digilent-Verilog_Online.pdf 
(thread "xilinx newbie und microblaze").
Dann kann ich die darin enthaltenen Beispiele durchexerzieren.

Das nexys2 ist ein schnuckliges kleines board!
Die CPU von Josef hab' ich darauf auch schon mal soweit zum Laufen 
bekommen, wie ich es mit eurer Hilfe vorher auf dem S3AN geschafft habe 
:-)

Jetzt will ich erst noch mal sehen, dass ich das S3AN zurückgesetzt 
bekomme (thread "S3AN restaurieren - ohne DirectSPI mode?")

Danach werde ich mir dann die Demo Programme zur bo8h CPU vornehmen.

Und ich hab' gesehen, dass "fpgakuechle" an dem "xilinx newbie und 
microblaze" dran ist :-)
Persönliche Seite #4032673
Lesenswert?

Frank Bergemann schrieb:
> INFO:Xst:2261 - The FF/Latch <p1eava> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewa0>
> INFO:Xst:2261 - The FF/Latch <p1ebvb> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewb0>
> INFO:Xst:2261 - The FF/Latch <p1ebbv> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <p1ewb7>
> INFO:Xst:2261 - The FF/Latch <qhopan> in Unit <cpu> is equivalent to the
> following FF/Latch, which will be removed : <q1opz>
Diese Doppelungen hatte ich übersehen. Ist geändert.

Josef G. schrieb:
> Wäre günstig, wenn sie Power/Sleep/WakeUP -Tasten hätte.
Die Aussage gilt nicht mehr. Tastaturbelegung geändert.

Frank Bergemann schrieb:
> Ich hab' einen USB Tastatur mit einem grünen Adapter an den PS/2
Grüner Adapter ist für die Maus. Der belegt
andere Kontakte der PS/2-Buchse als die Tastatur.
Gast #4034767
Lesenswert?

Josef G. schrieb:
> Warum versuchst du nicht mal, dieses Projekt zu realisieren?

Manchmal stimmt mich das Leben traurig.

Ich sehe sehr wohl, daß Josef sich hier ziemlich tief in seine Materie 
gekniet hat und dabei ganz sicher ne Menge Arbeitsstunden draufgegangen 
sind. Aber was macht man damit? O ja, ich weiß, im Prinzip ist es das 
"Sich Freuen, daß es geht", etwa genau so wie die elektrische Eisenbahn 
oder ein Radio zu bauen oder per Raspberry sein Haus zu 
"elektronifizieren". Hobby eben.

Bloß wo sollte unsereiner die dafür benötigte Zeit hernehmen? In der 
Woche: gar keine Zeit, am Wochenende: alles nachholen, was seit vorigem 
Wochenende so aufgelaufen ist, folglich auch bloß keine Zeit. Wäre ich 
im ÖffD. dann eventuell anstelle des Büroschlafes, aber so..

Wo nehmt IHR bloß die Zeit her für derartige Projekte?

W.S.
Gast #4034887
Lesenswert?

So, der Artikel zu Xilinx Microblaze MCS Workflow ist gestartet, 
einiges an screenshots und Text ist schon "reingeklatscht". Als 
"Brauchbar" halte ich den Instanzierungsschnipsel für den Core, das 
LED-Testprogramm und die links am Schluß. An der Beschreibung des 
workflows selbst fehlt noch einiges bis es verwendbar ist. Der Weg zum 
laufenden microblaze ist Fallgruben und irreführenden Fehlermeldungen 
gepflastert ...

Jetz programmier ich ein wenig mit dem Mikroblaze herum und musste dabei 
feststellen das mir das FPGA-Design leichter von der Hand ging.

Bei den Bibliotheksfunktionen fehlt mir eine Übersicht in welcher .h 
welche Funktion/Kosntante zu finden ist. Und die Funktionen knappsen 
selbst bei simple stuff wie led-blinken erheblich am Speicher, 4k 
reichen nicht aus.
wahrscheinlich kann man da mit dem linker noch was drehen. Und ob es 
wirklich ein ELF-header sein muß wie die Anleitungen suggeriert will 
sich mir auch nicht erschließen. Aber: Versuch mach kluch ;-)

MfG,
Gast #4035520
Lesenswert?

@fpgakuechle:
Für die Übersetzung das microblaze Testprogramms wird eine gcc toolchain 
verwendet - oder?
Check mal, ob bei Dir die compile option -Os verwendet wird

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html:
-Os
Optimize for size. -Os enables all -O2 optimizations that do not 
typically increase code size. It also performs further optimizations 
designed to reduce code size.

Ausserdem sollte -g nicht verwendet werden, sondern -g0.

Aus der gcc manpage:

       -g  Produce debugging information in the operating system's 
native format (stabs, COFF, XCOFF, or DWARF 2).  GDB can work with this 
debugging information.

later:
       [...]Thus, -g0 negates -g.

Wenn man auf's debuggen verzichten kann, dann werden keine debugger 
infos mit eingepackt, wenn man -g0 verwendet.

Das könnte den "Platzbedarf" verringern.
(liegt das executable denn im internen RAM des FPGAs?)
Gast #4036433
Lesenswert?

Frank Bergemann (as guest) schrieb:
> eine linker option hab' ich noch vergessen:
> -s  Remove all symbol table and relocation information from the
> executable.

Ja alles aktiv:
strip symbols, Optimize for size, no debug ; dennoch viel zu große für 
die Handvoll register zugriffe:

   text     data      bss      dec      hex  filename
   1934      268     2084     4286     10be  lets_blink_cp.elf

Morgen werd ich mal das linkerscript "dechiffrieren" - mal schauen wer 
die Übeltäter im text-segment sind.

MfG,
Gast #4038209
Lesenswert?

Frank Bergemann schrieb:
> Wie gross sind den heap und stack size? (Linker Script)
> Nehmen die evtl. unnötig viel RAM in Anspruch?

heap und stack sind jeweils 1kByte - das ist sicher zuviel für den 
Kleinkram, insbesonders bei Heap ist mir unklar ob der überhaupt bei 
plain-c ohne Malloc überhaupt genutzt wird.

Aber für mich ist das angesicht der 2k code für simples setzen von bits 
im Ausgangsport nebensächlich.

Wahrscheinlich wird eine Standard-ISR dazugelinkt, die ich eigentlich 
nicht brauche. Und dann wohl auch noch StartUp-code von dem ich auch 
gern wüsste wie der ausschaut.

MfG,
Gast #4041228
Lesenswert?

Josef G. schrieb:
> Da Dieter schrieb:
>> Och komm schon Josef, die Gründe sind doch zur genüge
>> in deinem Thread unter "Projekte&Code" durchgekaut.
>
> Wo zB. ? Kannst du mal einen Grund zitieren?
>
> Sorry, das hier ist natürlich Frank Bergemann's Thread.
> Aber wenn jemand so eine Tatsachenbehauptung aufstellt
> und ich nicht widerspreche, wird sie womöglich geglaubt.

Moin miteinander,

könnt ihr das bitte in einem anderen thread diskutieren?!
Persönlich finde ich Josephs Anliegen völlig berechtigt, aber ich glaube 
jeder der sich erntshaft mit FPGA-Entwicklung beschäftigt ist gut in der 
Lage
zwischen Pöbelein primitivster Denkweise( Formulierung wie "Das ist 
Projekt ist Mist das haben wir schon durchgekaut" zähle ich dazu) und 
sachliche Ratschläge zu unterscheiden.

MfG,
Gast #4041233
Lesenswert?

Frank Bergemann schrieb:
> auf http://www.xilinx.com/tools/mb_mcs.htm steht für's Microblaze MCS:
>
1
> Memory
2
>  4kB-64kB Local memory only (Block RAM)
3
>  Local or External through virtual memory management up to 4GB
4
>
>
> Kommt das 4kB limit jetzt vom S3A?

Njein. So wie ich das html sehe kann der kostenlose MCS nur local 
memory,
dagegen der (meist) kostenpflichtige µB ohne MCS auch externen Memeroy 
nutzen. Es ist also weniger ein Typ den ein Lizenzproblem.

Nebenbemerkung: Das Xilinx gerade für die Zynq-reihe die einen festen 
ARM-Core an Board hat den Microblaze freigibt ist schon bezeichnent. 
Letzlich gibt ja Xilinx nicht den µB frei sondern das Platformstudio mit 
dem man sich SoC-Controllersysteme (CPU+Peripheriecontroller wie 
SPI+Coprozessoren (FPU/DMA/MMU) zusammenklicken kann.

>
> Laut http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf
> sollte mein 3SAN (XC3S700AN) 360kb (kbits) haben - also 45kB (kbytes).

Das sollte sich in Praxis auf 40 kByte und damit 10 000 Instructionsword 
für den 32bit Controller reduzieren. Der ARM kennt den platzsparenden 
Thumb-Befehlssatz, der µB nicht. Deshalb stören mich auch der Xtra Code 
den der Linker anfügt.
Inzwischen hab ich ein Map-Report vom Linker erstellen lassen. Da wird 
viel extra stuff zum main.o hinzugelinkt (interupt/Exception-handler 
Init-stuff). Spielen mit den commandline optionen wie default/standard 
libs nicht verwenden brachte leider keine zufriedenstellnden Ergebnisse. 
Entweder die Codegröße bleibt identisch oder das gesamte Codesegment 
bleibt leer (also auch kein main.o).

MfG,
Gast #4041296
Lesenswert?

Frank Bergemann (as guest) schrieb:
> Hast Du schon die command line option -nostdlib ausprobiert?
> - siehe hier:
> https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free

Ja, damit gab es nur heap und stack aber kein code -nicht mal der von 
main.o . Erwartet habe ich das nur main.o verwendet würde ...
Mein nächster Versuch wäre also an dem generierten Linkerscript zu 
hacken.

MfG,
Gast #4044711
Lesenswert?

ich hab' das "Hello from a libc-free world!" 
(https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free) mal 
ausprobiert:
1
==============
2
=== cygwin ===
3
==============
4

5
$ cat test.c
6
int main(int argc, char** argv)
7
{
8
        return 0;
9
}
10

11

12
$ cat stubstart.S
13
.globl __main
14

15
__main:
16
    call main
17
    movl $1, %eax
18
    xorl %ebx, %ebx
19
    int $0x80
20

21

22
$ gcc -o testy test.c -O2 -s
23

24
$ gcc -o testx test.c stubstart.S -nostdlib -O2 -s
25

26
$ ls -ltr
27
[...]
28
-rwxr-xr-x  1 FBE None    8704 Mar  8 17:55 testy.exe
29
-rwxr-xr-x  1 FBE None    4096 Mar  8 17:56 testx.exe

Noch größer ist der Unterschied unter linux
1
=============
2
=== linux ===
3
=============
4

5
frank@frank-PC:~$ cat test.c
6
int main(int argc, char** argv)
7

8
{
9

10
        return 0;
11

12
}
13

14

15
frank@frank-PC:~$ cat stubstart.S
16
.globl _start
17

18
_start:
19
    call main
20
    movl $1, %eax
21
    xorl %ebx, %ebx
22
    int $0x80
23

24
$ gcc -o testy test.c -O2 -s
25

26
$ gcc -o testx test.c stubstart.S -nostdlib -O2 -s
27

28
$ ls -ltr
29
[...]
30
-rwxrwxr-x 1 frank frank     6232 Mar  8 19:03 testy
31
-rwxrwxr-x 1 frank frank      984 Mar  8 19:04 testx

Ist das beim MCS auch anwendbar - um Speicher zu sparen?
Beitrag #5047856 wurde von einem Moderator gelöscht.
Beitrag #5162715 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren