From: Stefan J. <st...@gr...> - 2005-12-05 08:58:24
|
Hallo Edwin! Ich habe inzwischen ein paar Aenderungen in das FreeHDL CVS eingespielt, die es erlauben, das Packet auch schoen installierbar zu machen. Michael und ich wuerden es gern sehen, wenn wir irgendwann vor unserer neuen Qucs release auch ein erste release von FreeHDL haetten. Is das moeglich? Weiterhin habe ich etwas mit den Beispielen herumgespielt. Die meisten funktionieren auch ganz prima. Was hat es eigentlich mit den bug??.vhdl Dateien auf sich? Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber versuche, das model4 Programm zu starten, dann gibt es einen segfault. Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von numeric_std.vhdl bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck. Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der Fehler behoben wird? Gruesse, Stefan. |
From: Edwin N. <ed...@ds...> - 2005-12-06 04:58:27
|
Hi Stefan, Stefan Jahn schrieb: > Hallo Edwin! >=20 > Ich habe inzwischen ein paar Aenderungen in das FreeHDL CVS eingespielt= , > die es erlauben, das Packet auch schoen installierbar zu machen. Micha= el > und ich wuerden es gern sehen, wenn wir irgendwann vor unserer neuen > Qucs release auch ein erste release von FreeHDL haetten. Is das moegli= ch? Das sollte kein Problem sein... Wann habt Ihr denn vor, ein neues Release herauszugeben? >=20 > Weiterhin habe ich etwas mit den Beispielen herumgespielt. Die meisten > funktionieren auch ganz prima. Was hat es eigentlich mit den bug??.vhd= l > Dateien auf sich? Das Design ist eigentlich nur dazu da um das Error-Checking von FreeHDL zu demonstrieren. Das heisst beim =DCbersetzen m=FCssen eine ganze Liste = von Fehlermeldungen erzeugt werden. >=20 > Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber > versuche, das model4 Programm zu starten, dann gibt es einen segfault. > Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von numeric_std.vh= dl > bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck. > Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der > Fehler behoben wird? Ich werde mir das mal anschauen. Danke f=FCr den Hinweis! -- Edwin |
From: Stefan J. <st...@gr...> - 2005-12-06 14:46:08
|
On Di, 6.12.2005, 05:58, Edwin Naroska wrote: > Hi Stefan, Hallo! >> Ich habe inzwischen ein paar Aenderungen in das FreeHDL CVS eingespielt, >> die es erlauben, das Packet auch schoen installierbar zu machen. >> Michael >> und ich wuerden es gern sehen, wenn wir irgendwann vor unserer neuen >> Qucs release auch ein erste release von FreeHDL haetten. Is das >> moeglich? > Das sollte kein Problem sein... Wann habt Ihr denn vor, ein neues > Release herauszugeben? Ich denke so Anfang naechsten Jahres. >> Weiterhin habe ich etwas mit den Beispielen herumgespielt. Die meisten >> funktionieren auch ganz prima. Was hat es eigentlich mit den bug??.vhdl >> Dateien auf sich? > Das Design ist eigentlich nur dazu da um das Error-Checking von FreeHDL > zu demonstrieren. Das heisst beim Übersetzen müssen eine ganze Liste von > Fehlermeldungen erzeugt werden. Ah ja. Guck ich mir an. >> Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber >> versuche, das model4 Programm zu starten, dann gibt es einen segfault. >> Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von >> numeric_std.vhdl >> bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck. >> Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der >> Fehler behoben wird? > Ich werde mir das mal anschauen. Danke für den Hinweis! Falls du noch mehr Infos brauchst, sag' Bescheid. Gruesse, Stefan. |
From: Edwin N. <ed...@ds...> - 2005-12-06 20:56:21
|
Hi, Stefan Jahn schrieb: >>>Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber >>>versuche, das model4 Programm zu starten, dann gibt es einen segfault. >>>Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von >>>numeric_std.vhdl >>>bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck= . >>>Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der >>>Fehler behoben wird? Danke f=FCr den Hinweis! Den Fehler habe ich gefunden und "gefixed". Die neue Version im CVS sollte model4 jetzt ohne Probleme verarbeiten. War =FCbrigens ein Problem mit der Initialisierung globaler Datenstrukturen (ist eine ziemliche Fummelei)... -- Edwin |
From: Stefan J. <st...@gr...> - 2005-12-07 07:18:44
|
On Di, 6.12.2005, 21:56, Edwin Naroska wrote: > Hi, Hallo! >>>>Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber >>>>versuche, das model4 Programm zu starten, dann gibt es einen segfault. >>>>Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von >>>>numeric_std.vhdl >>>>bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck. >>>>Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der >>>>Fehler behoben wird? > > Danke für den Hinweis! Den Fehler habe ich gefunden und "gefixed". Die > neue Version im CVS sollte model4 jetzt ohne Probleme verarbeiten. War > übrigens ein Problem mit der Initialisierung globaler Datenstrukturen > (ist eine ziemliche Fummelei)... Genau das hatte ich mir auch gedacht. Deshalb hatte ich angefangen, genau das zu tun: Initialisierung von globalen Datenstrukturen: Ich hatte bisher mem_chunks und free_acls initialisiert. Welche hatte ich da uebersehen? Gruesse, Stefan. |
From: Stefan J. <st...@gr...> - 2005-12-08 09:05:39
|
On Di, 6.12.2005, 21:56, Edwin Naroska wrote: > Hi, Hallo Edwin! >>>>Das Beispiel 'model4.vhdl' kann auch kompiliert werden. Wenn ich aber >>>>versuche, das model4 Programm zu starten, dann gibt es einen segfault. >>>>Der liegt irgenwo in der UNSIGNED+UNSIGNED operation von >>>>numeric_std.vhdl >>>>bei der RESIZE() operation des linken Arguments (liefert NULL) zurueck. >>>>Hast du das schon mal gehoert? Kann ich irgendwie helfen, damit der >>>>Fehler behoben wird? > > Danke für den Hinweis! Den Fehler habe ich gefunden und "gefixed". Die > neue Version im CVS sollte model4 jetzt ohne Probleme verarbeiten. War > übrigens ein Problem mit der Initialisierung globaler Datenstrukturen > (ist eine ziemliche Fummelei)... Ja. Sehr schoen. Hat bei mir jetzt auch funktioniert. Vielen Dank! Gruesse, Stefan. |
From: Edwin N. <ed...@ds...> - 2005-12-06 21:10:50
|
Hi, Stefan Jahn schrieb: > Hallo Edwin! > > Ich habe inzwischen ein paar Aenderungen in das FreeHDL CVS eingespielt, > die es erlauben, das Packet auch schoen installierbar zu machen. Jau, hat prima geklappt und auf Anhieb funktioniert!!! Klasse!!! -- Edwin |
From: Stefan J. <st...@gr...> - 2005-12-07 07:31:53
|
On Di, 6.12.2005, 22:10, Edwin Naroska wrote: > Hi, Hallo! >> Ich habe inzwischen ein paar Aenderungen in das FreeHDL CVS eingespielt, >> die es erlauben, das Packet auch schoen installierbar zu machen. > > Jau, hat prima geklappt und auf Anhieb funktioniert!!! Klasse!!! Ich habe dem Raimund auch einen Patch zum applyen gegeben, wo ich ein neues kleines Shell-Script vorsehe, namens freehdl-config, das auch installiert wird. Das Skript spuckt per Kommandozeile die ganzen Pfade, etc. inkl. dem Compiler (ganz wichtig!) aus. Gruesse, Stefan. |
From: Stefan J. <st...@gr...> - 2005-12-07 08:18:54
|
On Mi, 7.12.2005, 08:52, Edwin Naroska wrote: > Hi Stefan, Hallo! >>>Danke für den Hinweis! Den Fehler habe ich gefunden und "gefixed". Die >>>neue Version im CVS sollte model4 jetzt ohne Probleme verarbeiten. War >>>übrigens ein Problem mit der Initialisierung globaler Datenstrukturen >>>(ist eine ziemliche Fummelei)... >> >> >> Genau das hatte ich mir auch gedacht. Deshalb hatte ich angefangen, >> genau das zu tun: Initialisierung von globalen Datenstrukturen: >> Ich hatte bisher mem_chunks und free_acls initialisiert. Welche hatte >> ich da uebersehen? >> > Der Simulator besteht am Ende aus dem Simulationskernel und den > übersetzten VHDL-Modellen. Damit sich das ganze System beim Starten > initialisieren kann, muss einiges an Code ausgeführt werden noch bevor > main() gestartet wird. Dieser Code trägt eine Vielzahl von Informationen > in globale Datenstrukturen ein, damit der Simulationskernel überhaupt > "weiss", was er für ein Modell simulieren soll, was in dem Modell für > Komponenten vorhanden sind, usw. Früher habe ich das mit globalen > Variablen implementiert, die entsprechend initialisiert werden, sobald > das entsprechende File-Scope betreten wird. Das hat sich leider als > wenig portierbar und ziemlich fragil herausgestellt (ob es > funktiernierte hing stark davon ab, in welcher Datei die golbale > Variable definiert wurde und ähnliche Späße...). > > Inzwischen habe ich so etwas wie eine Kernel-Datenbank aufgebaut, in die > solche Informationen von globaler Bedeutung eingetragen und verwaltet > werden. Die Datenbank selbst wird per Singleton-Patter erzeugt, womit > sichergestellt ist, dass auch noch vor dem Aufruf von main() bereits mit > der Datenbank gearbeitet werden kann. (Datenbank ist vieleicht etwas > hochtrabend, eigentlich ist es nur eine Hashmap mit ein paar > Programmiertricks, mit der man halbwegs typsicher neue Einträge > hinzufügen kann; siehe auch kernel-db.hh). > > So, jetzt aber zum eigentlichen Problem: Da gab es eine globale Liste, > die noch nicht auf diese Datenbank umgestellt worden ist. War mit bis > jetzt entgangen, aber offensichltlich ist jetzt irgendetwas anders > (Compiler, Quellcode,...), was zu einem Fehler in der Initialsierung > dieser Liste geführt hat. Ich habe die Liste jetzt in die Datenbank > integriert. Die Liste ist übrigens dafür zuständig, dass wenn ein > VHDL-Package initialisiert wird, auch der entsprechende Package-Body > initialisiert wird... (siehe auch kernel-handle-info.hh und handle.cc) Hm. Ja, sehr interessant... auch wenn ich nicht alles verstehe. Ich werd' mir aber deine Aenderungen ansehen. Unser (Qucs team) Ziel ist es, das freeHDL Packet fuer die Digital- Simulation fehlerfrei verwenden zu koennen. Primaer also die Verbesserung (Vereinfachung) der Benutzbarkeit des freeHDL Compilers. Nebenher versuche ich natuerlich das alles ein wenig zu testen... Dafuer waere es schoen eine gute Testsuite mit vielen Beispielen zu haben, also beispielweise mal eine VHDL-Datei, wo alle syntaktischen/semantischen Feinheiten von VHDL drin sind... Frage mich, wo man sowas findet... Gruesse, Stefan. |