Hallo, ich versuche gerade meine ersten Schritte mit dem Spartan 3AN. Und da hab' ich mir den MicroBlaze ausgesucht - anhand dem hier: https://cvorg.ece.udel.edu/cpeg422f08/documents/s3embedded_tutorial_XPS_SDK_flow.pdf Das erste Problem sind die diversen Installationspakete (DVDs), die ich mit dem board bekommen habe: 1) Xilinx 9.2i Design Tools Evaluation DVD (ISE) 2) Doppel-DVD: 2.1) Embedded Development Kit 9.2i 2.2) ISE 9.2i 3) Vivado 3.1) Vivado Design Suite 2013.2 3.2) ISE Design Suite 14.6 Ich nehme mal an 3) ist aktuell und 1) und 2) sind "nur" ältere Versionen? Ich hab' dann von der ISE Design Suite 14.6 unter EDK das XPS aufgerufen. Aber das meckert schon beim Starten, daß ich keine Lizenz dafür habe. "A license was not found for the XPS feature...." Ich hab' dann ein paar Lizenzen installiert - was gelinde gesagt ein Krampf ist. Ich hab' jetzt eine Datei Xilinx.lic und eine Datei Xilinx_License.xml. Aber beim Xilinx License Configuration Manager muß man trotz "Load License" noch die Environment Variablen XILINXD_LICENSE_FILE und LM_LICENSE_FILE setzen. Was denn worauf bitte? Auch nach dem Einspielen der o.g. Lizenzfiles, meckert XPS immer noch. Inzwischen habe ich dann google'd, dass XPS eine kommerzielle Lizenz erfordert(?). Andererseits soll es ohne kommerzielle Lizenz wenigstens möglich sein, mit einem "abgemagerten MicroBlaze" zu arbeiten. Aber womit geht das dann (mit welchem Tool?). - Danke! Gruss, Frank
Ok, bin nicht so der Experte, versuch es trotzdem ;) VIAVADO und SPARTAN x geht nicht. VIVADO unterstützt alle KINTEX, VIRTEX7, ARRTIX und ZYNQ Devices. Also nur die "neuen"... Wo hast du den deine Lizensfiles her? Aus dem Netz geladen? Diese Lizensen sind an deine Hardware gebunden (MAC/ HD). Wenn du unbedingt den MicroBlaze ausprobieren willst, dann nim VIVADO. Hier ist er nämlich enthalten (auch im WebPack). Aber dann geht eben kein S3... Ansonsten schau mal in den IP Katalog: hier sollte (in einer halbwegs aktuellen Version) von ISE der "MCS" enthalten sein. Das ist die abgespeckte MicroBlaze Version.
Ich hab' keine Lizenzfiles aus dem Netz gezogen. Die Lizenzfiles hab' ich über das "Manage Xlinx Licences" and dann über die xilinx web-page angefordert nachdem ich einen account angelegt habe. Das ist dann aber wohl nur die freie WebPack License. (Wie gesagt, ich finde die ganze License-Prozedur mehr als verwirrend.) Wenn Du sagst: > Diese Lizensen sind an deine Hardware gebunden (MAC/ HD) Dann meinst Du die kommerziellen Lizenzen - richtig? Ich hab' das board aus zweiter Hand bekommen. Damit wären Hardware gebundene Lizenzen dann auch hinfällig. > VIAVADO und SPARTAN x geht nicht. > VIVADO unterstützt alle KINTEX, VIRTEX7, ARRTIX und ZYNQ Devices. > Also nur die "neuen"... OK, dann kann ich Vivado erst mal abhaken. Ich frage mich dann allerdings, wieso ich deren Installations-CD dann mitbekommen habe für ein S3 board(?). Und dann noch diese beiden Varianten 1) Xilinx 9.2.i Design Tools Evaluatiob DVD 2) Embedded Development Kit (EDK) - wo ISE auch noch mal drin ist Die DVDs zu 1) und 2) sind alle von 2007. Scheinbar ist Vivado aktueller (2013) aber eben für S3 nicht brauchbar. Ich lade mir gerade noch mal ISE 14.7 runter. Mal sehen, ob's dann damit klappt.
Werde ich den "MCS" dann in ISE finden? Oder brauch' ich dafür das SDK? Gruss, Frank
Frank Bergemann schrieb: > Wenn Du sagst: >> Diese Lizensen sind an deine Hardware gebunden (MAC/ HD) > Dann meinst Du die kommerziellen Lizenzen - richtig? Nein alle Versionen, egal ob WebPack oder kommerziell benötigen eine Lizenz. Frank Bergemann schrieb: > OK, dann kann ich Vivado erst mal abhaken. Ich frage mich dann > allerdings, wieso ich deren Installations-CD dann mitbekommen habe für > ein S3 board(?). Ich bekam, wenn ich mich recht entsinne, damals (vor ca.2 Jahren)auch 2 DVDs. Frank Bergemann schrieb: > Werde ich den "MCS" dann in ISE finden? Ja sicher. Der findet sich genau dort, wo die anderen IPs (z.B.Block RAM etc.) zu finden sind. Leider kann ich aktuell da nicht präziser werden, da ich seit geraumer Zeit nicht mehr mit ISE "gespielt" habe. Mich reizen die ZYNQ Teile sehr, deshalb bin ich auch zum VIVADO-Tool übergelaufen. Das SDK brauchst zur Software Entwicklung. Das ist afaik mittlerweile ebenfalls frei (benötigt aber auch eine Lizenz).
Frank Bergemann schrieb: > ich versuche gerade meine ersten Schritte mit dem Spartan 3AN. > Und da hab' ich mir den MicroBlaze ausgesucht Sollte dir das nicht ein wenig zu denken geben? kopfschüttel.. W.S.
Weil ich mit einem SoftCore anfange? Ich hab' ein bißchen Erfahrung mit dem AVR32 und Atmel Studio. Daher dachte ich, ich will erst mal blackbox-mäßig eine CPU drin haben und ein einfaches "Hello, World!" Program zum Laufen kriegen. Den MSC konnte ich jetzt auch mit dem CORE Generator anlegen. Ich konnte den dann auch in ein SDK mini-Programm einbinden. Allerdings bekomme ich es noch nicht auf das target. Ich nehme an, das SDK setzt voraus, dass der MCS schon plaziert ist? Wie bekomme ich denn den MCS deployed?
:
Bearbeitet durch User
Hallo, bevor du wirklich mit einem Softcore auf einem FPGA anfängst würde ich dir wirklich empfehlen zuerst einmal die Grundlagen zu erlernen. 1) Blinki 2) Blinki gesteuert durch Taster 3) Blinki mit unterschiedlichen Frequenzen von der internen PLL 4) UART mit Hilfe von State Machines 5) Debuggen mit ChipScope (falls Lizenz vorhanden, ansonsten wirds haarig) 6) Dann kann man sich noch mit Timing Constraints auseinander setzen 7) Mit FIFOs was machen 8) Mit interne RAMs arbeiten 9) Mir fallen tausend Dinge ein, die dich als Anfänger für Tage beschäftigen kann... Erst wenn du dich hier wirklich sicher fühlst kannst du mit einem Softcore anfangen. Ein Softcore ist ziemlich komplex und meist mehr als nur eine Blackbox. Wenn du da nicht einigermaßen weißt was du tust, dann kann das ein sehr steiniger Weg sein. Wenn einer mit FPGAs viel Erfahrung hat, dann ist auch für den MicroBlaze nicht gerade was, was man in einer Stunden implementiert hat und ein "Hello World" rausziehen kann. Da kann man gerne auch mal Tage damit verbringen... Also lerne ersteinmal generell mit dem FPGA zu arbeiten, bevor du einen Softcore implementieren willst
Inzwischen habe ich schon mal rausbekommen, dass ich den MCS mit PlanAnhead erstellen kann - das ist sehr schön hier beschrieben: https://www.youtube.com/watch?v=rv_BYDPlwHo Allerdings kann ich das damit erzeugte bitstream file nicht zusammen mit dem "Hello, World!" Program aus dem SDK aufs S3 bringen. Da bekomme ich noch den Fehler: Command Line: elfcheck -hw E:/Users/FBE/Xilinx-Projects/hw_platform_mcs/system.xml -mode bootload -mem BRAM -pe microblaze_mcs_v1_4 E:/Users/FBE/Xilinx-Projects/McsDemo2/Release/McsDemo2.elf ELF file : E:/Users/FBE/Xilinx-Projects/McsDemo2/Release/McsDemo2.elf elfcheck passed. data2mem -bm E:/Users/FBE/Xilinx-Projects/hw_platform_mcs/system_bd.bmm -bt \ E:/Users/FBE/Xilinx-Projects/bft_core/bft_core.runs/impl_1/bft.bit -bd \ E:/Users/FBE/Xilinx-Projects/McsDemo2/Release/McsDemo2.elf tag microblaze_mcs_v1_4 -o b \ E:/Users/FBE/Xilinx-Projects/hw_platform_mcs/download.bit ERROR:Data2MEM:47 - Not all BitLanes in ADDRESS_SPACE 'microblaze_mcs_v1_4.lmb_bram' have BMM location constraints. Some data for this ADDRESS_SPACE may be lost during BIT file replacement. Verify that the BMM file has location constraints for all BitLanes. Bitlane(s) ---------------- mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[3].RAMB16_S9_1 [7:0] mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[2].RAMB16_S9_1 [15:8] mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[1].RAMB16_S9_1 [23:16] mcs_0/U0/lmb_bram_I/RAM_Inst/Using_B16_S9.The_BRAMs[0].RAMB16_S9_1 [31:24] FPGA Programming Failed due to errors while initializing bitstream. Kann mir da jemand helfen?
@W.S. und @qwerty: Ich kann euren Hinweis verstehen, dass man vielleicht erst mal mit dem Krabbeln anfangen sollte, bevor man beginnt zu laufen. Aber egal, ob top-down oder bottom-up: Ich werde erst mal nix selber machen können, sondern als Einsteiger "abkupfern", "nachvollziehen", "ändern und sehen was passiert". Und vielleicht will ich erst mal nur schon am Anfang sehen, wohin das letztendlich führen kann, wenn man sich die Zeit nimmt und tief in die Thematik einsteigt. Statt eines "Hello, World!" Demos auf einem abgemagerten MicroBlaze Prozessors wäre mir da ein lauffähiges Minimig - auf dem ich "Battle Squadron" zocken kann - sogar lieber :-) (Das war jetzt rhetorisch - ich hätte lieber das "Hello, World!" demo. Da hab' ich schon mal ein Interface zum PC und kann die Basic-Schritte für FPGA um den SoftCore drum herum dann machen.) Ich weiß, dass es generell schon fragwürdig ist in ein FPGA einen generel-purpose SoftCore zu plazieren. Aber ich finde es toll, wenn man in der Praxis nachvollziehen kann - und wenn auch nur als Dummer User - dass ich heute eine Propeller CPU, morgen einen MicroBlaze und übermorgen vielleicht einen Satz von XMOS CPUs nachbilden kann. Einfach nur um die Flexibilität zu sehen. Und am Ende steht die Hoffnung dass irgendwann mal irgendwer ermöglicht, daß ich für meinen PC einen Web-Service nutzen kann, dem ich sage: Ich hab' da ein DE2-115 über Ethernet und noch so ein S3 über USB am PC - bitte zieh mir mal einen Version von GIMP (z.B.) die das auch ausnutzt, wenn ich da Filter auf meine Sternen-Fotos anwenden will.
Uwe N. schrieb: > Das SDK brauchst zur Software Entwicklung. Das ist afaik mittlerweile > ebenfalls frei (benötigt aber auch eine Lizenz). Nach meinen Recherchen auf der Xilinx-Website war das micht so. http://www.xilinx.com/images/tools/ise_support_lg.GIF Für einige Zynps ist das EDK in dem kostenlosen WebPack drin. Für die Spartan-3 ginbt das wohl nicht. Wobei ich nicht genau sagen kann wo das EDK wegen fehlender Lizenz abbricht, möglicherweise erst bei der Generierung bitstream, so das das compiliere etc funktioniert man aber das Design nicht auf den FPGA geladen bekommt. Falls ich mich irre, bitte mit Link-angabe korrigieren MfG,
Ich kann mal genauer beschreiben, was ich verwende und wo es genau klemmt: Ich hab' mir von xilinx.com das Xilinx_ISE_DS_Win_14.7_1015_1.tar heruntergeladen und installiert. Da gibt's dann anschliessend im Windows Start-Menue einen Eintrag: Alle Programme Xilinx Design Tools ISE Design Suite 14.7 Dann hab' ich mir auf youtube das video "The MicroBlaze Microcontroller System" angesehen (https://www.youtube.com/watch?v=rv_BYDPlwHo). Ca ab 02:00 min fängt da die "Exercise" an - mit "PlanAhead" als Einstieg. Das habe ich mitgemacht bis zum zu einer kritischen Stelle bei 06:20 min. Da wird nämlich aus einer der bis dahin bereits erzeugten files (ein *.veo file) etwas mit cut&paste herausgenommen und soll dann weiter verarbeiten werden "...put it where i want in the hierarchy...". Genau der Teil wird nicht genau erklärt. Uns es gibt auch keine Überleitung zum SDK. Ich vermute(!) mal, daß es bei mir deshalb nicht funktioniert, weil ich zwar im Prinzip den core generiert/vorbereitet habe, aber dem tool nicht gesagt habe wo und wie genau der im FPGA plaziert werden soll. Z.B müssen ja "externe" Anschlüsse des Soft-Code irgendwo konkret angebunden werden. Es fehlt auch noch die Auswahl des target boards (bei mir Spartan-3an). Wenn ich dann anschliessend versuche, das *.bit file und das *.bmm file zusammen mit einem *.elf file aufs FPGA board zu bringen, klappts nicht (siehe Fehler oben).
:
Bearbeitet durch User
Aus genannten Lizenzgründen halte ich deine bemühungen für vergebliche Müh, deshalb halte ich mich mit Vorschlägen zurück. Falls du es doch probieren willst, lad dein Design (ncd file nach place und route oder ncd file nach mapping) in den FPGAeditor und schau welche Blockrams genutz werden. Diese Info muß dann wohl händisch ins .BMM eingetragen werden. Besser allerdings du nimmst einen Softcore/board bei dem es keine Lizenzprobleme gibt. Altera mit NIOS scheint da um Längen besser geeignet als Xilinx. Oder du nimmst einen Core der kein EDK benötigt wie Picoblaze von Xilinx oder diverse OpenSource Geschichten (bspw schreibt der Autor von http://www.dossmatik.de/mais-cpu.html hier im Forum mit). Wie es bei diesen CPU's mit C-support und peripheral-cores ausschaut ist ein anderes Thema. MfG,
Fpga Kuechle schrieb: > Uwe N. schrieb: > >> Das SDK brauchst zur Software Entwicklung. Das ist afaik mittlerweile >> ebenfalls frei (benötigt aber auch eine Lizenz). > > Nach meinen Recherchen auf der Xilinx-Website war das micht so. Schau mal hier: http://www.xilinx.com/products/design-tools/ise-design-suite.html unter "Availability" in die Tabelle, da ist das SDK in der WebPack Spalte mit drin.
Uwe N. schrieb: > Fpga Kuechle schrieb: >> Uwe N. schrieb: >> >>> Das SDK brauchst zur Software Entwicklung. Das ist afaik mittlerweile >>> ebenfalls frei (benötigt aber auch eine Lizenz). >> >> Nach meinen Recherchen auf der Xilinx-Website war das micht so. > > Schau mal hier: > > http://www.xilinx.com/products/design-tools/ise-design-suite.html > > unter "Availability" in die Tabelle, da ist das SDK in der WebPack > Spalte mit drin. In der Zeile für den MicroBlaze Soft Processor steht aber: Device locked to three smallest Zynq devices Ditto für Platform Studio und Embedded IP Peripherals.
schaut euch doch bitte mal das youtube video an, dass ich oben verlinkt habe. Der MCS ist eine lite-weight Variante vom MicroBlaze, die auch ohne Lizenz verwendet werden kann. Siehe auch hier: http://www.xilinx.com/tools/mb_mcs.htm
Lattice User schrieb: > In der Zeile für den MicroBlaze Soft Processor steht aber: > Device locked to three smallest Zynq devices > > Ditto für Platform Studio und Embedded IP Peripherals. Ja, Frank möchte aber seinen Spartan 3AN verwenden. So wie ich das verstehe, gilt das "Device Lock" für die kleinsten ZYNQs, d.h., einen Spartan 3AN kannst du schon mit dem MCS verwenden.
Frank Bergemann schrieb: > schaut euch doch bitte mal das youtube video an, dass ich oben verlinkt > habe. Der MCS ist eine lite-weight Variante vom MicroBlaze, die auch > ohne Lizenz verwendet werden kann. Siehe auch hier: > http://www.xilinx.com/tools/mb_mcs.htm Im Kleingedruckten steht aber: (1) - In ISE WebPACK - MicroBlaze and MicroBlaze MCS are available device locked to the smallest three Zynq devices only Uwe N. schrieb: > Lattice User schrieb: >> In der Zeile für den MicroBlaze Soft Processor steht aber: >> Device locked to three smallest Zynq devices >> >> Ditto für Platform Studio und Embedded IP Peripherals. > > Ja, Frank möchte aber seinen Spartan 3AN verwenden. So wie ich das > verstehe, gilt das "Device Lock" für die kleinsten ZYNQs, d.h., einen > Spartan 3AN > kannst du schon mit dem MCS verwenden. Ich interpretiere das anders herum, mit ISE gibt es den MCS mur für die 3 kleinsten Zynq. Siehe auch das Kleingedruckte von der MCS Seite. Erst mit Vivado gibt es diese Einschränkung nicht mehr, aber Vivado unterstützt den Spartran 3 nicht. PS: Irrtum vorbehalten, den die Gedankengänge von Lizenzpolitikern sind of schwer nachvollziehbar. Der Zynq hat ja einen ARM, braucht also den MicroBlaze nicht, aber vermutlich andere Komponenenten des SDKs.
Ja und ich dachte es kann nur einem Microblaze geben .... und jetzt kommt Xilinx und schüttelt MicroBlaze und MicroBlaze MCS aus dem Ärmel. Also ich kannte bis jetzt nur das EDK (Embedded Development Kit) mit dem man ein microblaze system zusammenklickt und das SDK für die Software. Und das EDK kostet. Jetz haben wir also einen fertigen Minimal-core (wohl aus dem Coregenerator) und den kann man wie jeden Core bisher in seiner VHDl Top-level beschreibung instanzieren. Noch die Pinbelegung ins ucf gehackt, timing constraint gesetzt und es kann synthetisiert werden. Evenmtuell fehlt dir das top level design mit den extra instanziierten Blockrams) und das ucf. Videos schaue ich mir ungern an, geschrieben Doku ist imho nur durch mehr Doku zu ersetzen. Mal schauen, vielleicht kann ich demnächst mal einen MicroBlaze MCS verbauen. Scheint so eine Art aufgepimpter Picoblaze mit C -Compiler zu sein. MfG,
Lattice User schrieb: > Ich interpretiere das anders herum, mit ISE gibt es den MCS mur für die > 3 kleinsten Zynq. Siehe auch das Kleingedruckte von der MCS Seite. Schaut nicht so aus. Habe mit 14.4 testweise den Core Generator aufgerufen und man kann den Microblaze MCS für die verschiedensten Bausteine konfigurieren. Gibt aber ein paar Einschränkungen bezüglich Gehäuse und Speedgrade.
:
Bearbeitet durch User
Xilinx hat unter http://www.xilinx.com/support/documentation/sw_manuals_j/xilinx14_5/pg048-microblaze-mcs.pdf eine zumindest ansehliche Textanleitung. Auf Seite 44 ist eine Ablaufskizze des Ablaufs unter ISE. An welcher Stelle hängst Du. MfG, PS: Hab jetzt erst mal eine aktuelle ISE 14.7 installiert, es wird noch ein paar Tage dauern bis hier was läuft.
Hat ein bißchen gedauert. Ich hab' jetzt die Beschr. von Xilinx ausprobiert. Geht jetzt bei diesem Schritt schief: microblaze_mcs_data2mem /sdk-workspace-path/sdk-program/Debug/sdk-program.elf Output: ======= microblaze_mcs_data2mem E:/Users/FBE/Xilinx-Projects/mcs-demo/Debug/mcs-demo.elf microblaze_mcs_data2mem: Found 1 MicroBlaze MCS core. microblaze_mcs_data2mem: Using "mcs-demo.elf" for microblaze_mcs_v1_4_0 microblaze_mcs_data2mem: Existing bitgen "-bd" options unchanged. microblaze_mcs_data2mem: Running "data2mem" to create simulation files. ERROR:Data2MEM:104 - Unknown memory type, 'RAMB32', for the specified device 'xc3s700an'. Or unknown user defined memory type. Line #3, File "E:\Users\FBE\Xilinx-Projects\bft_core\bft_core.srcs\sources_1\ip\microb laze_mcs_v1_4_0\microblaze_mcs_v1_4_0.bmm". ADDRESS_RANGE RAMB32 ^ child process exited abnormally
sorry, muss noch mal einen Schritt zurückmachen. Hab' noch mal ganz von vorn angefangen. Dann bekomme ich als erstes eine Reihe von Fehler bei "Run Synthesis":
1 | Synthesis[HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 expecting 'end', found 'localparam' |
2 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 unexpected token: 'sub_fifo_width' |
3 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 expecting 'endgenerate', found '(' |
4 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 unexpected token: '<=' |
5 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 expecting 'endmodule', found '9' |
6 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 234 unexpected token: 'reg' |
7 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 276 unexpected token: 'reg' |
8 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 374 unexpected token: 'reg' |
9 | [HDLCompilers 26] "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/root.v" line 2 expecting 'EOF', found 'microblaze_mcs_v1_4_0' |
:
Bearbeitet durch User
Bei Verilog werden alle Sourcedateien wie eine grosse Datei behandelt. Das kann zu Verschleppung von Fehlermeldungen führen, z.B. bei einem vergessenen endmodule.
1 | "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 expecting 'end', found 'localparam' |
kann also auch eine Folge eines Fehlers in der davor bearbeiteten Datei sein.
1 | "E:/Users/FBE/Xilinx-Projects/bft_core2/bft_core2.srcs/sources_1/imports/hdl/async_fifo.v" line 88 expecting 'end', found 'localparam' |
Könnte auch sein dass er sich am localparam stört, das gibt es erst ab Verilog 2001. Überprüfe mal die Verilogeinstellung.
Muss ich noch irgendwas aus dem erzeugten microblaze_mcs_V1_4_0.veo wohinkopieren?
1 | //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
|
2 | microblaze_mcs_v1_4_0 your_instance_name ( |
3 | .Clk(Clk), // input Clk |
4 | .Reset(Reset), // input Reset |
5 | .UART_Rx(UART_Rx), // input UART_Rx |
6 | .FIT1_Toggle(FIT1_Toggle), // output FIT1_Toggle |
7 | .PIT1_Toggle(PIT1_Toggle), // output PIT1_Toggle |
8 | .GPO1(GPO1) // output [23 : 0] GPO1 |
9 | );
|
10 | // INST_TAG_END ------ End INSTANTIATION Template ---------
|
Aber wohin?
Du musst ein Top-block für dein FPGA design schreiben, das kennt als in outs nur FPGA-pins also den Takteingang, buttons und LED's sowie falls gewüncht UART-Pins (RX,TX). als Blöcken hat dieses Top-modul dann den micro-blaze core, wahrscheinliche Blockrams für dem Microblaue und Taktaufbereitung (DCM). den mikroblaze core bindest du ein in dem du das von dir gezeigte INSTANTIATION Template kopierst. Schau mal nach einen Beispiel für ein verilog top design bspw pacoblaze (8bit core in verilog). MfG, Crashkurs verilog module: http://projects.csail.mit.edu/beehive/FPGA_Verilog.pdf Ein ganzes Lahrbuch mit FPGA-Verilog-Evalboard beispielen: http://www.digilentinc.com/Data/Textbooks/Intro_to_Digital_Design-Digilent-Verilog_Online.pdf
Das Lehrbuch fängt recht vielversprechend an. Für die Praxix-Beispiele wird auf Seite 4 auf *.ucf files verwiesen, die man bei www.lbebooks.com downloaden kann. Allerdings nur für das BASYS board und das Nexys-2 board. Wo bekomme ich denn ein passendes *.ucf file für mein Spartan-3AN her?
Frank Bergemann schrieb: > Das Lehrbuch fängt recht vielversprechend an. > Für die Praxix-Beispiele wird auf Seite 4 auf *.ucf files verwiesen, die > man bei www.lbebooks.com downloaden kann. Allerdings nur für das BASYS > board und das Nexys-2 board. > Wo bekomme ich denn ein passendes *.ucf file für mein Spartan-3AN her? bei Xilinx findet sich diese seite für die mitgelieferten Demos für das Starterkit.: http://www.xilinx.com/products/boards/s3astarter/reference_designs.htm Die Zipdatei unter Demo Designs enthält unter demo/sources ein ucf file das zu passen scheint. Schau dir mal auch die datei boarddemo.v an, das ist eine verilog-datei mit einem erwähnten Top-level für das board. Schau dir auch mal den userguide (UG334) für das Board an. Darin wird jedes interface auf dem Board beschrieben und ein passendes ucf-schnipsel gezeigt. Bspw. dort: http://www.gta.ufrj.br/ensino/EEL480/spartan3/ug334.pdf MfG
Introduction to Digital Design Using Digilent FPGA Boards ─ Block Diagram / Verilog Examples Für das simple Switch/LED sample im Anhang kann ich in Active-HDL unter Synthesis/Options "Spartan3AN" als "Family" nicht auswählen, sondern nur "Xilinx14x Spartan3A". Zur Auswahl steht auch auch noch eine "Xilinx14x Automotive_Spartan3A". Ich hab' für "Family" "Xilinx14x Spartan3A" ausgewählt und für "Device" "3s700anfgg484" - ist das richtig? Bei starten der Synthese bekomme ich aber einen Warnung: # Running synthesis... # Synthesis: 0 errors, 0 warnings # Design: Warning: Library SPARTAN3A required for the selected device family has not been installed. Und wenn ich versuche mit der Implementation weiterzumachen, kommt der Fehler: # Checking if synthesis needs to be updated... # Checking if implementation needs to be updated... # Error: The specified netlist file does not exist.
Frank Bergemann schrieb: > Using Digilent FPGA Boards Das Spartan-3AN Starter Kit ist kein Digilent-Board, sondern ist von Xilinx (auch wenn es möglicherweise von Digilent gefertigt wird). Die Originalquelle des von FPGA Kuechle genannten UG334 ist http://www.xilinx.com/support/documentation/boards_and_kits/ug334.pdf
Im UG334 Seite 24 ist unter "Related Resources" ua. ein UCF-File zu finden.
Frank Bergemann schrieb: > Introduction to Digital Design > Using Digilent FPGA Boards > ─ Block Diagram / Verilog Examples > > Für das simple Switch/LED sample im Anhang kann ich in Active-HDL unter > Synthesis/Options "Spartan3AN" als "Family" nicht auswählen, sondern nur > "Xilinx14x Spartan3A". Zur Auswahl steht auch auch noch eine "Xilinx14x > Automotive_Spartan3A". Die Nennung von "Active-HDL" verwirrt mich hier, ebenso Xilinx14. Screenshoot in PNG wäre hilfreich. Active-HDL ist doch ein Simulationstool das bringt uns in Sachen synthese nicht weiter. Auch arbeite ich persönlich nicht mit Active-HDL. > Ich hab' für "Family" "Xilinx14x Spartan3A" ausgewählt und für "Device" > "3s700anfgg484" - ist das richtig? > > Bei starten der Synthese bekomme ich aber einen Warnung: > > # Running synthesis... > # Synthesis: 0 errors, 0 warnings > # Design: Warning: Library SPARTAN3A required for the selected device > family has not been installed. Library SPARTAN3A sollte eigentlich nur für die Simulation interessant sein. Für die Simualtion müßen da noch modelle der FPGA-internen componenten installiert werden. Dazu sollte sich was im Manual des Simulators finden. > Und wenn ich versuche mit der Implementation weiterzumachen, kommt der > Fehler: > > # Checking if synthesis needs to be updated... > # Checking if implementation needs to be updated... > # Error: The specified netlist file does not exist. Schätze das Synthese tool findet die genrierten Netzlisten des mikroblaze nicht. Dazu muss man einen Pfad zu dem Verzeichniss mit den generierten dateien des coregenerators richtig setzen, ngdbuilt ist der implementierungsschritt der nach coregen-netzlisten sucht. Oder versuche die sourcedateien des Cores wie selbsterstellte sources einzubinden, besser die .xco Datei. Schau mal ob "Add Source" mit xco funktioniert. Da steht ein bißchen dazu: http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ise_c_using_coregen_ip.htm Falls vorhanden an einem gut dokumentierten Beispieldesign üben generierte Cores einzubinden, da scheint in der ISE noch nicht alles konfiguriert MfG,
@fpgakuechle: > Die Nennung von "Active-HDL" verwirrt mich hier, ebenso Xilinx14. Du selbst hast mich auf den link hier verwiesen: > Ein ganzes Lehrbuch mit FPGA-Verilog-Evalboard beispielen: http://www.digilentinc.com/Data/Textbooks/Intro_to_Digital_Design-Digilent-Verilog_Online.pdf Auf Seite iii steht darin: "We will use Active-HDL from Aldec to design, simulate, synthesize, and implement our digital designs." Und mit Active-HDL wird dann im folgenden in dem Tutorial gearbeitet. Gibt's denn ein vergleichbares Tutorial/Buch zum Spartan-3AN? @bome: In der Zwischenzeit schau' ich mal in UG334 nach...
:
Bearbeitet durch User
Frank Bergemann schrieb: > @fpgakuechle: > >> Die Nennung von "Active-HDL" verwirrt mich hier, ebenso Xilinx14. > > Du selbst hast mich auf den link hier verwiesen: > >> Ein ganzes Lehrbuch mit FPGA-Verilog-Evalboard beispielen: > http://www.digilentinc.com/Data/Textbooks/Intro_to_Digital_Design-Digilent-Verilog_Online.pdf Ich hat das Buch hauptsächlich wegen der anschaulichen und boardspezifischen Code-schnipsel empfohlen, sozusagen als Vorlage wie man in Verilog Cores instantiiert und boardpins ansteuert. Als von dir benutztes tool hast du ja oben ISE webpack angegeben und da gehört kein Active-HDL dazu. Wenn du aber dazu ein brauchbares Tutorial hast klingt es doch schon mal ganz gut. > Auf Seite iii steht darin: > "We will use Active-HDL from Aldec to design, simulate, synthesize, and > implement our digital designs." > > Und mit Active-HDL wird dann im folgenden in dem Tutorial gearbeitet. > > Gibt's denn ein vergleichbares Tutorial/Buch zum Spartan-3AN? Wahrscheinlich nicht, der Spartan-3AN ist schon fast ein Exot, spartan-3A sollte aber fast identisch sein. Und so gross ist der Unterschied zum 3E oder 3 auch nicht. Das es zu einem Evalboard überhaupt ein Buch gibt ist schon fast ein Glücksfall. Besser wäre aber m.E. eine gut bebilderte Anleitung zum ISE-Webpack. In der ct-Hacks 1/14 ist ein workshop zum Xilinx workflow zu finden: http://www.heise.de/make/meldung/c-t-Hacks-1-14-jetzt-im-Handel-2110845.html MfG,
So, mit der richtigen Anleitung und ein bisserl hacken hab ich jetzt fast dem mcs am Start. Was fehlt ist nur noch das board zu programmieren, aber das mach ich ein anderes Mal. Diese Anleitung passt sehr gut: http://jimselectronicsblog.blogspot.de/2014/03/implementing-microblaze-mcs-on-papilio.html Das ist zwar ein anderes Board, der Autor kommt weitgehend ohne händisches Verilog aus. Ein auf dem demo für das s3an board basierendes top-level habe ich angehangen, der heartbeat lässt ohne C eine LED blinken - das ist mein Test ob das FPGA-programmieren klappt. Das sync.v o.ä. ist unverändert in den Sourceb für das demo zu finden, das ucf file habe ich auch unverändert übernommen. Mein generierte MCSA ist umfänglicher als der in der Anleitung, ich lasse aber viel ungenutzt. Die Anleitung versagte an zwei stellen, da war ein fehler im bmm der "Pfad" zu BRAM stimmte nicht der instanzname ("erster" Teil des Pfades - hier nach Korrektur "mcu_core") war falsch:
1 | ADDRESS_MAP microblaze_mcs_v1_4 MICROBLAZE-LE 100 |
2 | ADDRESS_SPACE lmb_bram COMBINED [0x00000000:0x00003fff] |
3 | ADDRESS_RANGE RAMB16 |
4 | BUS_BLOCK |
5 | mcu_core/U0/lmb_bram_I/RAM_Inst/Using_B16_S4.The_BRAMs[0].RAMB16_S4_1 [31:28] INPUT = microblaze_mcs_v1_4.lmb_bram_0.mem; |
6 | |
7 | #7ähnliche Zuweisungen gelöscht |
8 | END_BUS_BLOCK; |
9 | END_ADDRESS_RANGE; |
10 | END_ADDRESS_SPACE; |
11 | END_ADDRESS_MAP; |
Diese Xilinx-AR hat mich drauf gebrahct: http://www.xilinx.com/support/answers/51538.html Und dann meldete der Linker immer noch das das Datasegment zu groß für den BRAM sei. Geholfen hat dann ein "Generate linker script" MfG,
Also der .bmm hack ist unnötig wenn man bei coregen auch den instanznamen so angibt wie in der top-entity. Siehe microblaze_s3an_disp im anhehängten screenshot und Top. MfG,
Jauchzen und Frohlocken! So jetzt tut's - ich hab dem microblaze MCS auf dem S3AN am laufen. hat etwa drei Tage gekostet was aber gerade wegen einer Projektpause ganz gut passt. Hab viele Screenshoots gemacht und bastele mal eine Anleitung draus. Die bereits erwähnte Anleitung http://jimselectronicsblog.blogspot.de/2014/03/implementing-microblaze-mcs-on-papilio.html passt ganz gut. Ergänzen möchte aber das man den Core besser mit 8k oder mehr Programmspeicher generiert. Bei 4k das Miniprogramm zum LED-blinken zu groß - Wahrscheinlich ist noch irgendwo eine Einstellung falsch gesetzt -Os zum size optimierten compilieren war nicht die Lösung Ebenso haben Änderungen am Core durch einen neuen Coregen-Lauf sich nur teilweise auf das SDK ausgewirkt. Besser war alle 3 Projekte (Hardwareprojekt,BSP und C-Projekt) zu löschen und neu anzulegen. Immer den C-Source manuell abspeichen vor Build. Generate linker script scheint nur manchmal zu helfen. So jetzt fahr ich erst mal auf die Embedded. MfG,
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.