FPGA Update: Hard- oder Software?

Es gibt 86 Antworten in diesem Thema, welches 19.037 mal aufgerufen wurde. Der letzte Beitrag (21. November 2018 um 00:29) ist von c64user.

  • NatĂŒrlich ist das Software. Wie wĂŒrdest Du es denn nennen?

    Nein. Es sind (Konfigurations-)Daten, keine Software. Software ist Code zusammen mit zugehoerigen anderweitigen Daten (z.B., Icons, Strings, Datentabellen, etc). Code ist natuerlich auch Daten, aber nicht jede Form von Daten ist Software. Daten ohne Code ist keine Software.
    JPEG-Bild: Daten, kein Code/Software.
    MP3-File: Daten, kein Code/Software.
    INI-Files: Daten, kein Code/Software.
    FPGA-Config: Daten, kein Code/Software.
    Nun klarer? :wink:

  • Ich habe die Diskussion mal ausgeschnitten und in einen neuen Thread verschoben. Das hatte ja recht wenig mit der Auslieferung der Ultimate 64 Version 1.2 Boards zu tun. ;)

  • Ich habe die Diskussion mal ausgeschnitten und in einen neuen Thread verschoben. Das hatte ja recht wenig mit der Auslieferung der Ultimate 64 Version 1.2 Boards zu tun. ;)

    vielen Dank!

    Wem ein leeres EPROM fehlt, braucht ein EPROM-Lösch-GerÀt

    Mein GitHub: Bitte melde dich an, um diesen Link zu sehen.
    EasyFlash3 DIY: Bitte melde dich an, um diesen Link zu sehen.

    Mein Discogs: Bitte melde dich an, um diesen Link zu sehen.

  • Bitte melde dich an, um diesen Link zu sehen. Das hĂ€ngt davon ab wie Du den Begriff "Software" definierst. NatĂŒrlich denkt man dabei meist an Programme, aber eigentlich dachte ich der Begriff bezeichnet im ursprĂŒnglichen Sinne das, was sich im Speicher befindet und nicht anfassbar ist, daher der Begriff "Software" im Gegensatz zur "Hardware".

    Auf Wikipedia steht ebenfalls dass der Begriff "Software" sowohl Programme als auch Daten umfasst: Bitte melde dich an, um diesen Link zu sehen.

    Und ein Schaltkreis in Form von "FPGA-Konfigurations-Daten" ist fĂŒr mich davon abgesehen auch nĂ€her an einem Programm dran als ein INI-File etc., denn hier wird ja tatsĂ€chlich eine Art von logischem Ablauf definiert, auch wenn das natĂŒrlich kein Programm ist das von einer CPU ausgefĂŒhrt wird.

    - neue Spiele fĂŒr den C64 -
    Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen.

  • Ich wĂŒrde ganz einfach die Leute befragen, die ihr Geld mit dem Schreiben von VHDL bzw. Verilog verdienen.

    Wem ein leeres EPROM fehlt, braucht ein EPROM-Lösch-GerÀt

    Mein GitHub: Bitte melde dich an, um diesen Link zu sehen.
    EasyFlash3 DIY: Bitte melde dich an, um diesen Link zu sehen.

    Mein Discogs: Bitte melde dich an, um diesen Link zu sehen.

  • Ich wĂŒrde sagen: :choplifter: oder einfach ne Umfrage starten :drunk:

    -----------> Bitte melde dich an, um diesen Link zu sehen.

    .........................................................:thumbsup: ----------> Bitte melde dich an, um diesen Link zu sehen.

    -----------> Facebook: Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Ich wĂŒrde das Beschreiben der FPGA internen Wahrheitstabellen in den Logikzellen jetzt nicht unbedingt als Software bezeichnen, es sei denn man implementiert eine CPU und bettet ein StĂŒck hardcoded Software mit ein. Dann ist aber nur ein kleiner Teil des Bitstreams Software, der Rest weiterhin Hardware. Und reine Software kann ja auch keine Logik wirklich parallel verarbeiten.

  • Und reine Software kann ja auch keine Logik wirklich parallel verarbeiten.

    Ich weiß nicht genau, wie du das meinst. Multicore-CPUs, GPUs, SIMD-Befehle, selbst ParallelitĂ€t zwischen Subsystemen ist nach meinem DafĂŒrhalten schon eine parallel Verarbeitung von Software. Gut, jetzt könntest du wieder sagen, dass das nicht explizit die Software macht, sondern die Hardware. Aber dann wird es komplett akademisch. Die ganze "FPGAs sind parallel und Software nicht"-Diskussion ist fĂŒr mich akademisch. Letztendlich habe ich einen Zustand X zum Zeitpunkt t und einen neuen Zustand Y zum Zeitpunkt t+1. Ich muss gewĂ€hrleisten, dass ich in der gegebenen Zeit von X nach Y komme. Wie ich das mache, ist völlig egal. Ob das parallel oder seriell lĂ€uft, intereressiert an t+1 kein bisschen mehr. Es zĂ€hlt nur, dass Y auch wirklich Y ist und das kann ich in der Theorie immer erreichen, sofern meine Umgebung Turing-VollstĂ€ndig ist und meine Ressourcen ausreichend sind, um das auch in einer Zeiteinheit zu schaffen.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Dann ist aber nur ein kleiner Teil des Bitstreams Software, der Rest weiterhin Hardware.

    D.h. wenn das naechste mal ein Update des Bitstreams herauskommt, und jemand hier verkuendet "Das Ultimate64 bekommt ein Hardware-Update", dann findest Du das korrekt so und alle wissen was gemeint ist?

    Gideon selbst nennt es uebrigens "Firmware". Findet ihr das falsch?

    - neue Spiele fĂŒr den C64 -
    Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen.

  • Die FPGA-Konfiguration ist keine Hardware, sondern beschreibt diese. Sie kann Software beinhalten, ist aber selber keine.

    LIFE IS SHORT - Break the rules, do more, need less, smile often, be brave, stay true, dream big, forgive quickley, kiss slowly, love truly, laugh uncontrollably and never regret anything that made you smile.

  • Es ist aber mit Sicherheit auch keine "Hardware".

    Es gibt auf jeden Fall Definitionen des Begriffs "Software", worunter auch "Daten" fallen. Also ist das fuer mich schon gewissermassen Software. Es sind Daten, die im Speicher sind und nicht anfassbar sind und jederzeit geaendert werden koennen, daher "Software". Der Begriff "Firmware" ruehrt wohl daher, dass es sich dabei auch um "Software" handelt, die jedoch etwas "fester verankert" ist, weil sie frueher im ROM lag, heute oft in einem Flash-ROM oder sowas, sie laesst sich zwar aendern aber nicht ganz so leicht wie "normale Software", daher hat man das "Firmware" getauft. Fuer mich ist das auch der beste Begriff und Gideon verwendet den ebenfalls.

    - neue Spiele fĂŒr den C64 -
    Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen.

  • Wie man die Konfigurationsdaten am Ende bezeichnet, darĂŒber kann man sich streiten. Als wĂŒrdet ihr am ehesten z.B. den Inhalt einer Eprom-PLA bezeichnen, als Software eher nicht, oder?

  • Umfrageeeeeeeeeeeee! :drunk:

    -----------> Bitte melde dich an, um diesen Link zu sehen.

    .........................................................:thumbsup: ----------> Bitte melde dich an, um diesen Link zu sehen.

    -----------> Facebook: Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Ich hab's so gelernt: Alles, was man ohne Materialverbrauch kopieren oder ĂŒber ein Kabel ĂŒbertragen kann, ist Software, also quasi jegliche EntitĂ€t auf Informationsbasis. Alles, was nur physikalisch identisch kopiert werden könnte, ist Hardware. Bei simulierter und emulierter Hardware muss man in zwei Stufen denken -- so wie ein Mensch im Video zwar in Echt ein Mensch ist, aber im Video nur Daten. Ein Lichtschalter ist Hardware, seine "Konfiguration", also seine Stellung, ist Software, die ich lesen, evtl. Ă€ndern und ĂŒbertragen kann. Wenn ich die Schalterstellung fĂŒr "Licht an" auf Papier notiere, könnte ich diese Notiz bereits "Programm" (Vorschrift) nennen. Derjenige, der das liest und dementsprechend den Schalter bedient, ist der Prozessor.

    Die Auffassung, mit Software seien nur Prozeduren gemeint, ist verbreitet, aber meines Erachtens nicht richtig. Auch ein Bild, ein Stylesheet, ein E-Book, ein MP3 und eben auch Konfigurationsinformationen gehören dazu. Genau genommen ist auch eine Prozedur nur eine dynamische, bedingte Konfiguration -- und umgekehrt eine Konfigurationsinformation ein nicht prozedurales Programm. Und meistens kommt das eine ohne das andere nicht aus und gehört zusammen. Man kann zwischen Prozeduren und Daten unterscheiden, die zusammen ein vollstĂ€ndiges Programm ausmachen können, das man Software nennen kann, weil alles zusammen immateriell ist. Darum weiß ich nicht, warum man da noch einmal eine interne Grenze fĂŒr den Softwarebegriff ziehen will. Konfigurationsdaten sind eindeutig nicht hard, sondern genauso soft wie andere Software. Kann man nicht ohne DatentrĂ€ger in den Schraubstock spannen.

    Ist mir aber ansonsten auch ziemlich wumpe. Alles zusammen heißt Warez .. das wissen wir seit den 80ern. :rauch:

  • Ich hab's so gelernt: Alles, was man ohne Materialverbrauch kopieren oder ĂŒber ein Kabel ĂŒbertragen kann, ist Software, also quasi jegliche EntitĂ€t auf Informationsbasis. Alles, was nur physikalisch identisch kopiert werden könnte, ist Hardware. Bei simulierter und emulierter Hardware muss man in zwei Stufen denken -- so wie ein Mensch im Video zwar in Echt ein Mensch ist, aber im Video nur Daten. Ein Lichtschalter ist Hardware, seine "Konfiguration", also seine Stellung, ist Software, die ich lesen, evtl. Ă€ndern und ĂŒbertragen kann. Wenn ich die Schalterstellung fĂŒr "Licht an" auf Papier notiere, könnte ich diese Notiz bereits "Programm" (Vorschrift) nennen. Derjenige, der das liest und dementsprechend den Schalter bedient, ist der Prozessor.

    Die Auffassung, mit Software seien nur Prozeduren gemeint, ist verbreitet, aber meines Erachtens nicht richtig. Auch ein Bild, ein Stylesheet, ein E-Book, ein MP3 und eben auch Konfigurationsinformationen gehören dazu. Genau genommen ist auch eine Prozedur nur eine dynamische, bedingte Konfiguration -- und umgekehrt eine Konfigurationsinformation ein nicht prozedurales Programm. Und meistens kommt das eine ohne das andere nicht aus und gehört zusammen. Man kann zwischen Prozeduren und Daten unterscheiden, die zusammen ein vollstĂ€ndiges Programm ausmachen können, das man Software nennen kann, weil alles zusammen immateriell ist. Darum weiß ich nicht, warum man da noch einmal eine interne Grenze fĂŒr den Softwarebegriff ziehen will. Konfigurationsdaten sind eindeutig nicht hard, sondern genauso soft wie andere Software. Kann man nicht ohne DatentrĂ€ger in den Schraubstock spannen.

    Ist mir aber ansonsten auch ziemlich wumpe. Alles zusammen heißt Warez .. das wissen wir seit den 80ern. :rauch:

    Ja, da hast du Recht. Als Software werden Programme sowie Daten beschrieben. Konfigurationsdaten sind deswegen auch Software und damit werden ja FPGA wohl gefĂŒttert. Die AusfĂŒhrung auf dem FPGA ist dann aber nicht mit Programmen auf einer CPU zu vergleichen. Hardware wird einmal mit Software konfiguriert und lĂ€uft dann eigenstĂ€ndig. WĂ€hrend Software auf der CPU stĂ€ndig laufen muss, ansonsten passiert ja nix.

  • Bitte melde dich an, um diesen Anhang zu sehen.
    Wie wĂŒrdet ihr das bezeichnen?

    Wenn sich nun die Logik auf das hier Àndert, dann ist das mit Sicherheit keine SoftwareÀnderung!?!

    Bitte melde dich an, um diesen Anhang zu sehen.

    Das ist aber genau das, was in einem FPGA passiert, vereinfacht ausgedrĂŒckt.

    Auch wenn die einzelnen Logikzellen mit RAM-Ă€hnlichen Bausteinen miteinander verdrahtet werden, so ist das in meinen Augen keine Software.
    Stimme aber mit Lilith ĂŒberein, dass in dem Bitstream auch Software enthalten sein kann.
    Es gibt z.b. FPGAs mit integrierter CPU oder in der Config könnte sich eine synthetische CPU befinden.
    In der FPGA Config könnte auch gleich das ROM (das dann Software enthÀlt) eingebettet sein.
    Schlussendlich ist ein EPROM auch nur eine riesige Wahrheitstabelle.
    Daher sehe ich die FPGA Config eher eine Schicht darunter, die Software lÀuft dann auf dieser Hardware.

    Gideon's 6510 CPU hat kĂŒrzlich eine DesignĂ€nderung erhalten, das entspricht 1:1 einer HardwareĂ€nderung auf einem ASIC.
    Nur lĂ€sst es sich auf einem FPGA realisieren ohne den Chip neu produzieren zu mĂŒssen. :)

    Wem ein leeres EPROM fehlt, braucht ein EPROM-Lösch-GerÀt

    Mein GitHub: Bitte melde dich an, um diesen Link zu sehen.
    EasyFlash3 DIY: Bitte melde dich an, um diesen Link zu sehen.

    Mein Discogs: Bitte melde dich an, um diesen Link zu sehen.

  • Richtig, es lĂ€sst sich durch Austausch der Software Ă€ndern ;)

    - neue Spiele fĂŒr den C64 -
    Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen. ⊁ Bitte melde dich an, um diesen Link zu sehen.

  • Bitte melde dich an, um diesen Link zu sehen.
    >"Wie wĂŒrdet ihr das bezeichnen?"

    Das Bild, das du hochgeladen hast und die Konfigurationsinformationen enthĂ€lt, ist Software. (Wie beim Notizzettel mit der Anweisung fĂŒr "Lichtschalter ein".)
    Die echten konfigurierbaren Gatter, die man anfassen kann, sind Hardware. (Der Lichtschalter selbst. Wenn er laut Notizzettel angemacht wurde, trÀgt er die Information des Notizzettels.)

    >"Wenn sich nun die Logik auf das hier Àndert, dann ist das mit Sicherheit keine SoftwareÀnderung!?!"

    Doch. Das Bild mit der Konfigurationsvorschrift hat sich geĂ€ndert. Neue Konfigurationsinformationen = andere Software. (Ein neuer Notizzettel mit einer anderen Information, nĂ€mlich fĂŒr "Lichtschalter aus".)
    Wenn man diese Konfiguration auf die Hardware anwendet, Àndert sich die Hardware dadurch nicht, lediglich ihre Konfiguration. (Das Licht ist aus. Der Schalter bleibt derselbe. Die Konfiguration ist neu.)

    Noch ein Beispiel: Wenn ich eine PC-Steckkarte im PC umstecke, ist PC und die Karte Hardware. Die Website, die beschreibt, in welchen Slot die Karte gehört, ist Software.

    Ich vermute, die scheinbare Grenzwertigkeit ergibt sich, wenn eine Hardware durch reine Neukonfiguration neue Funktionen bekommt. Aber genau das tut der PC stÀndig. Je nach Software ist er eine Daddelkiste, ein CAD-Rechner oder auch eine Workstation zur Softwareentwicklung. Das kann trotzdem immer derselbe Rechner sein. Der einzige Unterschied zum FPGA ist, dass beim PC die VerÀnderungen auf Hardwareebene dynamischer sind, bei SSD und co. allerdings schon weniger.


    Ist mir aber trotzdem egal.
    So egal, dass ich fĂŒr die Antwort extra mein Lötzeug zur Seite gerĂ€umt hab. ;)

  • Unser Gehirn ist Hardware, die Gedanken dazu sind Software :drunk:
    Dachte mir, mal was neues bringen! :bgdev

    -----------> Bitte melde dich an, um diesen Link zu sehen.

    .........................................................:thumbsup: ----------> Bitte melde dich an, um diesen Link zu sehen.

    -----------> Facebook: Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Nein, ein PC tut das nicht stĂ€ndig. Bei einem FPGA kann man timinggenau die Signale der Schaltung messen, die konfiguriert ist. Und wenn man die Technik hĂ€tte, wĂŒrde man im Inneren des FPGA auch die Zwischenergebnisse als Spannung messen können. Er verhĂ€lt sich elektisch so wie die Schaltung.

    Ein PC dagegen, der das selbe emuliert, muss es per CPU machen und somit wÀen die Ergebnisse nur ganz kurz auf dem Datenbus. Und dazwischen immer wieder Progamminfos.

    Insofern hinkt der Vergleich mit dem PC doch gewaltig.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.