Forum: FPGA, VHDL & Co. Xilinx ISE 4.7 Win7 ok -> Linux Mint 19.1 - Error


von Peter S. (petersieg)


Lesenswert?

Hallo.

Es geht um das ZPU Projekt von hier:
https://www.mikrocontroller.net/articles/ZPU:_Softcore_Implementierung_auf_Spartan-3_FPGA

Unter Win7 und ISE14.7 alles ok (ReRun all). Ich erhalte ein bit File.

Da mein Hauptrechner unter Linux Mint 19.1 läuft, habe ich das Projekt 
hier auch geladen (in beiden Fällen wird das Projekt von 12.x auf 14.7 
migriert).

Hier bekommen ich nun diese Fehlermeldung:
NgdBuild:989 - Failed to process BMM information 
/home/ich/ZPU_Softcore_Implementierung_auf_Spartan-3_FPGA/ZPU/VHDL/BMM/s 
oftcore.bmm

Google liefert dazu einige Ergebnisse. Diese deuten für mich als Fpga 
Noob
darauf hin, das die Pfade in der Datei softcore.bmm nicht mehr stimmen 
unter Linux? Die Hinweise dort verstehe ich aber nicht (Floorplan..)?

Auch ein neues Projekt erstellen und alle Sourcedateien zufügen bringt 
dieselbe Fehlermeldung.

Daher meine Frage: Was muss ich GENAU tun, um diesen Fehler weg zu 
bekommen?
Falls es die Angaben im .bmm sind (Pfade), woher sehe ich, welche er 
haben will? Die Angaben in der .bmm Datei kann ich nicht auf das 
Filesystem/Ordner zuordnen.
1
ADDRESS_MAP mpsoc PPC405 0
2
  ADDRESS_SPACE memory1 RAMB16 [0x00000000:0x00003FFF] // 0-3FFFF = 0-16383 Bytes, so 16384 Bytes
3
    BUS_BLOCK
4
      core/zpu_core/memory/RAMB16_S4_S4_inst7 [31:28];
5
      core/zpu_core/memory/RAMB16_S4_S4_inst6 [27:24];
6
      core/zpu_core/memory/RAMB16_S4_S4_inst5 [23:20];
7
      core/zpu_core/memory/RAMB16_S4_S4_inst4 [19:16];
8
      core/zpu_core/memory/RAMB16_S4_S4_inst3 [15:12];
9
      core/zpu_core/memory/RAMB16_S4_S4_inst2 [11:8];
10
      core/zpu_core/memory/RAMB16_S4_S4_inst1 [7:4];
11
      core/zpu_core/memory/RAMB16_S4_S4_inst0 [3:0];
12
    END_BUS_BLOCK;
13
  END_ADDRESS_SPACE;
14
END_ADDRESS_MAP;

Peter

von Duke Scarring (Gast)


Lesenswert?

Peter S. schrieb:
> Was muss ich GENAU tun, um diesen Fehler weg zu bekommen?
Kannst Du Deinen Synthesereport (.syr) hier als Anhang mal hochladen?
Oder Du suchst im Report nach 'INFO:Xst:3226'.

Im Synthesereport müßten solche Meldungen zu finden sein:
1
INFO:Xst:3226 - The RAM <gen_fifo.FIFO/DPRAM_B.Mem/Mram_Mem> will be implemented as a BLOCK RAM, absorbing the following register(s): <DF_SL/DataReg>
2
    -----------------------------------------------------------------------
3
    | ram_type           | Block                               |          |
4
    -----------------------------------------------------------------------
5
    | Port A                                                              |
6
    |     aspect ratio   | 32-word x 32-bit                    |          |
7
    |     mode           | read-first                          |          |
8
    |     clkA           | connected to signal <Clk>           | rise     |
9
    |     weA            | connected to signal <gen_fifo.FIFO/WriteEnable> | high     |
10
    |     addrA          | connected to signal <gen_fifo.FIFO/WCNT> |          |
11
    |     diA            | connected to signal <DataIn>        |          |
12
    -----------------------------------------------------------------------
13
    | optimization       | speed                               |          |
14
    -----------------------------------------------------------------------
15
    | Port B                                                              |
16
    |     aspect ratio   | 32-word x 32-bit                    |          |
17
    |     mode           | write-first                         |          |
18
    |     clkB           | connected to signal <Clk>           | rise     |
19
    |     enB            | connected to signal <DF_SL/DataReg_en> | high     |
20
    |     addrB          | connected to signal <gen_fifo.FIFO/RCNT> |          |
21
    |     doB            | connected to signal <DF_SL/DataReg> |          |
22
    -----------------------------------------------------------------------
23
    | optimization       | speed                               |          |
24
    -----------------------------------------------------------------------

Dabei müßte "gen_fifo.FIFO/DPRAM_B.Mem/Mram_Mem" der jeweils gesuchte 
Instanzname sein. Die Angaben im .bmm-File müssen dann angepasst werden.

Duke

von Peter S. (petersieg)


Angehängte Dateien:

Lesenswert?

Hallo.

Xst:3226 finde ich nichts. 3225 ja.
1
INFO:Xst:3225 - The RAM <Mrom_data_rom0000> will be implemented as BLOCK RAM
2
    -----------------------------------------------------------------------
3
    | ram_type           | Block                               |          |
4
    -----------------------------------------------------------------------
5
    | Port A                                                              |
6
    |     aspect ratio   | 2048-word x 8-bit                   |          |
7
    |     mode           | write-first                         |          |
8
    |     clkA           | connected to signal <clk>           | rise     |
9
    |     weA            | connected to internal node          | high     |
10
    |     addrA          | connected to signal <addr>          |          |
11
    |     diA            | connected to internal node          |          |
12
    |     doA            | connected to signal <data>          |          |
13
    -----------------------------------------------------------------------
14
    | optimization       | speed                               |          |
15
    -----------------------------------------------------------------------
16
Unit <font_rom> synthesized (advanced).

(Das sieht auf der Win7 Maschine auch so aus)
Halt! Das ist die alte Datei von Win7! Diese Datei wird NICHT neu 
geschrieben im Schritt: Implement Design - Translate.
1
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst7' could not be found in the netlist.
2
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst6' could not be found in the netlist.
3
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst5' could not be found in the netlist.
4
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst4' could not be found in the netlist.
5
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst3' could not be found in the netlist.
6
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst2' could not be found in the netlist.
7
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst1' could not be found in the netlist.
8
ERROR::90 - The BRAM instance 'core/zpu_core/MEMORY/RAMB16_S4_S4_inst0' could not be found in the netlist.
9
ERROR:NgdBuild:989 - Failed to process BMM information
10
   /home/ich/ZPU_Softcore_Implementierung_auf_Spartan-3_FPGA/ZPU/VHDL/BMM/softco
11
   re.bmm
12
INTERNAL_ERROR::45 - Memory allocation leak of 60 bytes at 0x0A016B0C for a 'AddressMappingType' record.
13
INTERNAL_ERROR::45 - Memory allocation leak of 100 bytes at 0x0A01D504 for a StrNew.
14
INTERNAL_ERROR::45 - Memory allocation leak of 52 bytes at 0x0A01E9B8 for a 'AddressMapType' record.

Ich hänge die svr (Win7 erfolgreich) trotzdem einmal hier an.

Peter

von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

Dein RAM wird offenbar mit den Primitiven aus der Xilinx-Bibliothek 
gebildet:
1
Analyzing generic Entity <dualport_ram> in library <work> (Architecture <behave_dualport_ram1>).
2
  addrBitBRAM = 13
3
    Set user-defined property "INIT_00 =  0000000000000000000000000000000000000000000000000000000000000000" for instance <RAMB16_S4_S4_inst7> in unit <dualport_ram>.
4
    Set user-defined property "INIT_01 =  0000000000000000000000000000000000000000000000000000000000000000" for instance <RAMB16_S4_S4_inst7> in unit <dualport_ram>.
5
    Set user-defined property "INIT_02 =  0000000000000000000000000000000000000000000000000000000000000000" for instance <RAMB16_S4_S4_inst7> in unit <dualport_ram>.
6
...
Ich versuche RAMs immer generisch zu beschreiben, um den Code portabel 
zu halten.


Du kannst das Design (.ncd) im FPGA-Editor öffnen. Dort kann man sich 
die richtigen Instanznamen der BRAMs raussuchen.

Duke

von Peter S. (petersieg)


Lesenswert?

Hallo.

Das geht nicht (Henne-Ei Problem).
Der Fehler tritt ja im Schritt: Translate auf.
Map
Place & Route kommen erst danach.
Daher gibt es nach Start FPGA-Editor:
ERROR: Design ncd file not found. You need to run the 'Map' process 
before FPGA Editor can launch.

:-(

Peter

von Duke Scarring (Gast)


Lesenswert?

Den ersten Durchlauf müsstest Du ohne .bmm-File machen.

Duke

von Peter S. (petersieg)


Lesenswert?

Hallo Duke.

Ich glaube dem fpga_editor fehlen noch so einige Libs zum glücklich 
sein:
1
ich@ich-Macmini2:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin$ ls -l *fpga*
2
-rwxr-xr-x 1 ich root 1834056 Okt 13  2013 _fpga_editor
3
-rwxr-xr-x 1 ich root   17272 Okt 13  2013 fpga_editor
4
-rwxr-xr-x 1 ich root   17400 Okt 13  2013 fpga_edline
5
ich@ich-Macmini2:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin$ ldd _fpga_editor
6
  linux-gate.so.1 (0xb7f06000)
7
  libFed_Engine.so => not found
8
  libFed_Ipc.so => not found
9
  libCs.so => not found
10
  libGDev_Windows.so => not found
11
  libGDev_FedExt.so => not found
12
  libGDev_Graphics.so => not found
13
  libGui_Framework.so => not found
14
  libParsers.so => not found
15
  libPnb.so => not found
16
  libPds_Pdl.so => not found
17
  libPds_Pdm.so => not found
18
  libPds_Pih.so => not found
19
  libPortability.so => not found
20
  libPort_Std.so => not found
21
  libRf_FacadeBase.so => not found
22
  libStg_grid.so => not found
23
  libStg_toolkit.so => not found
24
  libStg_foundation.so => not found
25
  libstlport.so.5.1 => not found
26
  libXCad_Cad.so => not found
27
  libXCad_CadHelpers.so => not found
28
  libXCad_RMed.so => not found
29
  libXdm.so => not found
30
  libXdh_HierDesign.so => not found
31
  libXdh_Shape.so => not found
32
  libUtilities.so => not found
33
  libBs_Bitgen.so => not found
34
  libCs_DeviceHelpers.so => not found
35
  libData2BRAMUtil.so => not found
36
  libData2MEMDesignUtil.so => not found
37
  libDrm_Physlayout.so => not found
38
  libInterToolCommunication.so => not found
39
  libMhConstr.so => not found
40
  libPkg_Package.so => not found
41
  libPds_Exception.so => not found
42
  libPds_Pah.so => not found
43
  libPds_Tdm.so => not found
44
  libPds_Tlm.so => not found
45
  libPersonalityModule.so => not found
46
  libPdr_Base.so => not found
47
  libPdrBas_Rules.so => not found
48
  libPl_Place.so => not found
49
  libRf_BoolEquation.so => not found
50
  libRf_HelperBase.so => not found
51
  libRt.so => not found
52
  libDly_DelayCalculator.so => not found
53
  libTw.so => not found
54
  libTw_BmPhysical.so => not found
55
  libTw_DelayCache.so => not found
56
  libTw_DlyMed.so => not found
57
  libTw_Report.so => not found
58
  libXCad_Rho.so => not found
59
  libXda_hiermgr.so => not found
60
  libXdh_Iset.so => not found
61
  libCs_Util.so => not found
62
  libCs_PcfReader.so => not found
63
  libCs_UcfReader.so => not found
64
  libCit_Core.so => not found
65
  libxercesc.so => not found
66
  libboost_regex-gcc41-mt-p-1_38.so.1.38.0 => not found
67
  libXdmMemPool.so => not found
68
  libStaticFileParsers.so => not found
69
  libDrm_Cellmodel.so => not found
70
  libThread.so => not found
71
  libZlib.so => not found
72
  libMiniZip.so => not found
73
  libboost_filesystem-gcc41-mt-p-1_38.so.1.38.0 => not found
74
  libboost_system-gcc41-mt-p-1_38.so.1.38.0 => not found
75
  libboost_iostreams-gcc41-mt-p-1_38.so.1.38.0 => not found
76
  libisl_iostreams.so => not found
77
  libDrm_Tilemap.so => not found
78
  libboost_thread-gcc41-mt-p-1_38.so.1.38.0 => not found
79
  libboost_date_time-gcc41-mt-p-1_38.so.1.38.0 => not found
80
  libXdmStringPool.so => not found
81
  libXdh_Bmgr.so => not found
82
  libXdh_NgdUtil.so => not found
83
  libBs_Bitstream.so => not found
84
  libXCad_DesignStats.so => not found
85
  libXCad_HDHelpers.so => not found
86
  libSim_XdmUtilities.so => not found
87
  libPrjrep_Clientac.so => not found
88
  libSecurity.so => not found
89
  libXdh_Prim.so => not found
90
  libtcl8.4.so => not found
91
  libPrjrep_Repository.so => not found
92
  libXml.so => not found
93
  libXdh_Modular.so => not found
94
  libXdh_ViewCorr.so => not found
95
  libAlgorithms.so => not found
96
  libScript_TcTask.so => not found
97
  libTcl_Tcl.so => not found
98
  libEst_Estimator.so => not found
99
  libXdh_Doodle.so => not found
100
  libRf_TilePinHelpersBase.so => not found
101
  libMhReport.so => not found
102
  libPower_Manager.so => not found
103
  libPower_ManagerNC.so => not found
104
  libParh_Clevo.so => not found
105
  libisl_sysinfo.so => not found
106
  libTw_PhysicalSubNetworkDelays.so => not found
107
  libTw_LogicalSubNetworkDelays.so => not found
108
  libMhDataparser.so => not found
109
  libParh_Utilities.so => not found
110
  libTw_TimingModel.so => not found
111
  libTw_Bm.so => not found
112
  libTw_Util.so => not found
113
  libTw_GoalGraph.so => not found
114
  libCs_ResolutionHelper.so => not found
115
  libxalanc.so => not found
116
  libXda_eventmgr.so => not found
117
  libXdmSetupInfo.so => not found
118
  libboost_bzip2-gcc41-mt-p-1_38.so.1.38.0 => not found
119
  libXdh_Tag.so => not found
120
  libXdh_Corr.so => not found
121
  libCoreu_Utilities.so => not found
122
  libCoreu_Interface.so => not found
123
  libCoreu_Base.so => not found
124
  libXdh_Lib.so => not found
125
  libXdh_MapCorr.so => not found
126
  libXilinxPkg.so => not found
127
  libScript_Interp.so => not found
128
  libScript_TclUtil.so => not found
129
  libcommdlg50.so => not found
130
  libcommctrl50.so => not found
131
  libshell50.so => not found
132
  libwinsock50.so => not found
133
  libmfc50.so => not found
134
  libgdi50.so => not found
135
  libuser50.so => not found
136
  libkernel50.so => not found
137
  libprnt50.so => not found
138
  libodbc50.so => not found
139
  libolest50.so => not found
140
  libXm.so.3 => not found
141
  libXp.so.6 => not found
142
  libXt.so.6 => /usr/lib/i386-linux-gnu/libXt.so.6 (0xb7e60000)
143
  libXmu.so.6 => /usr/lib/i386-linux-gnu/libXmu.so.6 (0xb7e44000)
144
  libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xb7e29000)
145
  libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7e0a000)
146
  libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7e05000)
147
  libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7c7f000)
148
  libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7b7d000)
149
  libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7b5f000)
150
  libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7983000)
151
  libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb7837000)
152
  libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb782e000)
153
  libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb7812000)
154
  libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb77fd000)
155
  /lib/ld-linux.so.2 (0xb7f08000)
156
  libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb77d1000)
157
  libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb77c8000)
158
  libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xb77ad000)
159
  libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb77a9000)
160
  libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb77a2000)
161
  librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb7798000)
162
ich@ich-Macmini2:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin$

Ansonsten 'läuft' ISE 14.7 aber unter Linux Mint 19.1.
D.h. ich kann Projekte ohne bmm synthetisieren bis hin zum bit file.

Ich denke mit einer XP VM werde ich wohl weiter kommen - oder halt 
dieses Projekt nur auf dem Win Rechner bearbeitet.

Danke für deine Unterstützung!

Peter

: Bearbeitet durch User
von Duke Scarring (Gast)


Lesenswert?

Peter S. schrieb:
> Ich glaube dem fpga_editor fehlen noch so einige Libs zum glücklich
> sein:
Ja, das kann sein. Das dürften die 32-Bit-Bibliotheken sein.
Die virtuelle Win-Machine ist vermutlich weniger Aufwand.

Hast Du denn jetzt die Instanz-Pfade zu den BRAMs schon rausgefunden?

Duke

von S. R. (svenska)


Lesenswert?

Peter S. schrieb:
> Ich glaube dem fpga_editor fehlen noch so einige Libs
> zum glücklich sein:

Das sind keine Standard-Bibliotheken.
Versuche mal LD_LIBRARY_PATH auf den Pfad zu den .so-Dateien (irgendwo 
im ISE) zu setzen und lass das ldd nochmal laufen:

LD_LIBRARY_PATH=/opt/Xilinx/14.7/ISE_DS/ISE/lib/lin/ ldd _fpga_editor

In meiner ISE 14.7-Version gibt es sämtliche Bibliotheken aber auch in 
64 Bit. Vielleicht ist das besser.

von Peter S. (petersieg)


Lesenswert?

@Duke+S.R.: Zu: "Hast Du denn jetzt die Instanz-Pfade zu den BRAMs schon 
rausgefunden?" -> Nein. Nutze Win$ nun dafür.

Z.Z. beschäftigt mich eher folgende Frage(n):
Beitrag "XC3sprog mit FT2232H"

Peter

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.