<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.33.17.98</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.33.17.98"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/178.33.17.98"/>
	<updated>2026-04-10T19:45:39Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=FPGA&amp;diff=68384</id>
		<title>FPGA</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=FPGA&amp;diff=68384"/>
		<updated>2012-09-14T21:26:54Z</updated>

		<summary type="html">&lt;p&gt;178.33.17.98: /* Parallel Flash EEPROM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FPGA ist die Abkürzung für &amp;quot;&#039;&#039;&#039;F&#039;&#039;&#039;ield &#039;&#039;&#039;P&#039;&#039;&#039;rogrammable &#039;&#039;&#039;G&#039;&#039;&#039;ate &#039;&#039;&#039;A&#039;&#039;&#039;rray&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
&lt;br /&gt;
=== Grundelemente  ===&lt;br /&gt;
&lt;br /&gt;
Ein FPGA besteht, ähnlich wie ein [[CPLD]], aus vielen Logikelementen, hauptsächlich [[FlipFlop]]s (FF) und davor gelagerten kombinatorischen Logikschaltungen. Diese sind entweder Verknüpfungen verschiedener Logikgatter (Actel) oder sogenannten LUTs (Look-Up-Table), die über elektronische &amp;quot;Schalter&amp;quot; entsprechend der vom Entwickler gewünschten Funktion miteinander verknüpft werden können.&lt;br /&gt;
&lt;br /&gt;
Eine &#039;&#039;&#039;LUT&#039;&#039;&#039; kann eine beliebige kombinatorische Funktion (NAND, XOR, AND, Multiplexer etc.) aus den Eingangssignalen realisieren. Die Anzahl der Eingangssignale pro LUT ist vom FPGA abhängig und liegt meist zwischen 4 und 6. Für Funktionen die mehr Eingänge erfordern als eine einzige LUT besitzt (hohes Fan-In), werden mehrere LUTs direkt miteinander verschaltet. Die [[FlipFlop]]s dienen dazu, Signalwerte zwischenzuspeichern, um sie im nächsten Takt weiterverarbeiten zu können. Das Verhältnis zwischen der Anzahl der LUTs und der Anzahl der Flip-Flops ist meist 1:1. Aktuelle FPGAs bestehen aus bis zu einigen zehntausend Logikelementen.&lt;br /&gt;
&lt;br /&gt;
Die logischen Schalter und Speicher sind in den meisten FPGAs durch [[Speicher#SRAM | SRAM]]-Speicherzellen realisiert, welche beim Bootprozess passend geladen werden. Das Laden dieser Konfigurationsdaten bzw. Verknüpfungsregeln geschieht dabei in der Regel aus einem speziellen [[Speicher#Flash | Flash-ROM]]-Baustein heraus. Es kann aber auch ein Mikrocontroller benutzt werden. Die meisten FPGAs bieten daher für diesen Konfigurationsvorgang mehrere Modi an (seriell, parallel, Master/Slave). Da die SRAM-Zellen ihren Inhalt beim Abschalten der Versorgungsspannung verlieren, muss ein SRAM-basierter FPGA bei jedem Einschalten neu konfiguriert werden. Daher benötigt ein solcher FPGA einige Millisekunden bis zu einigen Sekunden, bevor er voll betriebsbereit ist.&lt;br /&gt;
&lt;br /&gt;
Eine FPGA-Familie beinhaltet Typen mit unterschiedlicher Anzahl und Komplexität von Logikzellen. So enthält ein Spartan3-1000 ca. 2,5 mal so viel Logik (FF, LUTs) wie ein Spartan3-400.  &lt;br /&gt;
&lt;br /&gt;
FPGAs mit nichtflüchtigem Speicher basieren auf [[Speicher#EEPROM | EEPROM]]-, [[Speicher#Flash | Flash]]-Speicher (einige Familien von Lattice und Actel) oder AntiFuse- Technologie (Actel). Die sogenannten AntiFuse FPGAs sind nur einmalig programmierbar.&lt;br /&gt;
&lt;br /&gt;
=== I/O Anschlüsse ===&lt;br /&gt;
&lt;br /&gt;
FPGAs unterstützen als universal einsetzbare Digital-ICs eine Vielzahl von Signalstandards. Üblich sind verschiedene TTL-Pegel (5V, 3,3V, 2,5V), differentielle Signalstandards (LVDS, GTL, GTP) und im Hochpreisbereich serielle Hochgeschwindigkeitsstandards mit bis zu 28 Gbit/s. Oftmals sind weitere Eigenschaften wie Treiberstärke und Flankensteilheit für jeden benutzerdefinierbaren Anschluss (User-IO) einstellbar. Meist sind die Pins zu Bänken mit gleichem I/O Standard zusammengefasst. Innerhalb einer solchen Bank arbeiten alle Pins im gleichen I/O Standard und mit der selben I/O Spannung.&lt;br /&gt;
&lt;br /&gt;
Für hohe Taktraten werden sowohl für Daten, als auch die Takte die LVDS-Funktion verwendet. Hier sind zwei komplementäre Buffer in unmittelbarer Nachbarschaft angeordnet, um das DS = differential signalling bei LV = low voltage zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
[[Ausgangsstufen Logik-ICs | Tristatebuffer]] werden implizit über VHDL definiert, indem einem Ausgang zeitabhängig der Zustand &amp;quot;Z&amp;quot; zugewiesen wird. Alternativ kann er explizit als Komponente eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
Ebenso können je nach Hersteller und Typ interne Pull-Up und Pull-Down-Widerstände sowie Terminationswiderstände zugeschaltet werden, [[Wellenwiderstand | Terminierung]] wird ebenfalls unterstützt. Zudem befinden sich hinter vielen IO-Pads sog. [[Boundary_scan| Boundary Scan]] Zellen.&lt;br /&gt;
&lt;br /&gt;
Bei komplexeren FPGAs sind die Ein- und Ausgänge mit Delaygliedern versehen, die ein Anpassen des Timings bei Bussen wie z.B. schnellen Speichern ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Einige Pins übernehmen besondere Funktionen und sind somit vom Anwender nicht uneingeschränkt oder z.T. auch gar nicht nutzbar. Dazu zählen neben der [[JTAG]]-Schnittstelle z.&amp;amp;nbsp;B. die Pins zum Einlesen der Konfigurationsdaten. &lt;br /&gt;
&lt;br /&gt;
Ferner sind einige wenige Pins (2 - 8) zum Einspeisen des Taktes für das Design vorgesehen. Für schnelle Schaltungen sollten diese reservierten Pins benutzt werden. Sie enthalten kein Eingangs-FF und wirken über instanziierbare buffer direkt auf Taktnetze / PLLs. Bei leistungsfähigen grossen Applikationen mit mehreren Takten müssen diese genutzt werden, da nur eine begrenzte Zahl von DCMs zur Verfügung steht und benachbarte IO-Pins genutzt werden müssen. Für hohe Taktraten werden LVDS-eingänge verwendet.&lt;br /&gt;
&lt;br /&gt;
Das I/O Verhalten wird zusammen mit vielen anderen Parametern in einer Datei festgelegt (Xilinx *.ucf, Altera *.acf, Lattice *.lpf). Alternativ können diese auch als Syntheseoption im Kommentarfeld des [[Verilog]]/[[VHDL]] Codes mit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Die Hersteller bieten FPGAs mit gleicher Anzahl von Logikelementen in unterschiedlichen Gehäusen an. So kann der FPGA mit der passenden Anzahl von Pins eingesetzt werden. Das obere Ende markieren Chips mit über 1500 I/Os, die kleinsten bieten ca. 50 User-I/O. Oft werden nur [[IC-Geh%C3%A4useformen#BGA|BGA]] und [[IC-Geh%C3%A4useformen#QFP|QFP]] Gehäuse (bis ca. 240 Pins) angeboten.&lt;br /&gt;
&lt;br /&gt;
Umgekehrt kann innerhalb einer Gehäusefamilie hochmigriert werden, d.h. bei gleichbleibendem Pinout, kann ein komplexerer FPGA eingesetzt werden. Das Layout muss dann nicht verändert werden, um eine Schaltung mit mehr Funktionen auszustatten.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Funktionsblöcke ===&lt;br /&gt;
&lt;br /&gt;
Neben den einfachen FlipFlops beinhalten FPGAs darüber hinaus komplexe Routing- und Speicherkonfigurationsoptionen innerhalb und außerhalb der logischen Elemente (LEs), die es gestatten, komplexe Schalt- und Rechenstrukturen aufzubauen. Für rechenintensive Designs, z.&amp;amp;nbsp;B. in der Signalverarbeitung, enthalten viele FPGAs &#039;&#039;&#039;Multiplizierer&#039;&#039;&#039; direkt auf dem Chip, die in einem einzigen Taktzyklus Multiplikationen durchführen können.&lt;br /&gt;
&lt;br /&gt;
Ferner haben FPGAs oft einen von den LEs getrennt verfügbaren &#039;&#039;&#039;RAM&#039;&#039;&#039;-Bereich integriert, der sich in vielfältiger Weise ansprechen lässt. So können damit Single- oder Dualport-RAMs mit variabler Bitbreite erzeugt werden. Üblich sind mehrere (4 - 30) kleinere Dualport [[Speicher#BRAM | RAM-Blöcke]] von 4 - 16 kbit. Einige Familien besitzen einen größeren internen RAM, andere spezielle FIFO-Blöcke.&lt;br /&gt;
&lt;br /&gt;
Zur Generierung spezieller Takte sind &#039;&#039;&#039;PLL&#039;&#039;&#039;s (Phase Locked Loop) auf dem FPGA integriert. Einige Hersteller setzen mit dem selben Ziel &#039;&#039;&#039;DLL&#039;&#039;&#039;s (Delay Locked Loop) ein. Mittels dieser Blöcke können aus einem Taktsignal weitere erzeugt werden. Typisch sind Taktverdopplung oder -vervielfachung. Ebenso kann der Takt geteilt werden oder ein Signal gleicher Frequenz, aber um eine halbe, viertel usw. Periode verschoben erzeugt werden. Typische Anwendungen sind die Ansteuerung von [[Speicher#DDR-RAM | DDR-RAMs]] oder die Kompensation von Laufzeitunterschieden zwischen Takt und mit diesem getakteten Steuersignalen. Meist sind 2 - 8 Taktnetzwerke und PLL/DLLs gleicher Anzahl integriert. Siehe auch [[Taktung FPGA/CPLD]].&lt;br /&gt;
&lt;br /&gt;
=== CPU im FPGA ===&lt;br /&gt;
&lt;br /&gt;
Programmierbare Prozessoren sind auch bei FPGA-Designs immer häufiger anzutreffen. CPUs sind zwar im Allgemeinen langsamer und weniger effizient, als eine vollständige Implementation aus Logik-Primitiven - aber bei komplexen Abläufen auch deutlich einfacher zu entwickeln. Insbesondere bei sequentiellen Aufgaben (Benutzerinterface, komplexe Steueraufgaben etc.) wird man gerne auf eine klassische CPU zurückgreifen. &lt;br /&gt;
&lt;br /&gt;
Manche FPGAs integrieren dazu einen oder mehrere Prozessorkerne (z. B. [[AVR]] bei Atmels FPSLIC oder PowerPC bei Xilinx&#039; Virtex) als &#039;&#039;HardCores&#039;&#039; auf einem IC.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es auch [[FPGA Soft Core | SoftCores]] (z. B. ARM-Cortex-M1 bei IGLOO-FPGA von [http://www.actel.com ACTEL]), Prozessorkerne die als Quelltext oder als vorsynthetisierte Netzliste vorliegen. In Abhängigkeit von den zur Verfügung stehenden Ressourcen können diese &#039;&#039;SoftCores&#039;&#039; beliebig instanziiert werden. Es gibt eine Vielzahl verschiedener &#039;&#039;SoftCores&#039;&#039;. &lt;br /&gt;
 &lt;br /&gt;
Teilweise kompatibel zu etablierten Prozessorarchitekturen (MIPS, SPARC, AVR), zum Teil optimiert auf die FPGAs einzelner Hersteller. Auch auf vergleichsweise &lt;br /&gt;
kleinen aktuellen FPGAs kann man problemlos eine 32bit-RISC-CPU integrieren.&lt;br /&gt;
&lt;br /&gt;
Als Programmspeicher werden die FPGA-internen [[Speicher#BRAM | RAM-Blöcke]] oder externe [[Speicher]] (SDRAM, SRAM) genutzt. Für einige Prozessorkerne stehen Hochsprachen wie C, C++ etc. zur Verfügung, andere werden in Assembler programmiert.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
&lt;br /&gt;
=== Chipausnutzung ===&lt;br /&gt;
Aufgrund des Umstandes, dass FPGAs eine Reihe von allgemeinen Funktionsblöcken, wie BRAM, Multipliers, Transceivern beinhalten, die naturgemäß nie voll ausgenutzt werden können und zudem viele Routing-Resourcen benötigen, um die gewünschten Verschaltungen zu ermöglichen, nutzen FPGAs die Chipfläche relativ schlecht aus, was zu entsprechende geringer finanzieller Effizienz führt.&lt;br /&gt;
&lt;br /&gt;
=== Taktgeschwindigkeit ===&lt;br /&gt;
Die maximale „Geschwindigkeit“ eines FPGAs ist von der verwendeten Halbleitertechnologie (Prozess, Strukturgrößen), der internen Schaltungstopologie (Komplexität der LEs), Vorhandensein von harten Strukturen und vor allem vom Design abhängig. Dabei sind der sogenannte Datendurchsatz und die rein maximale Systemtaktfrequenz zu unterscheiden. Die erreichbare Taktfrequenz lässt sich ohne detaillierte Kenntnis des Designs nicht abschätzen, möglich sind je nach »Speed Grade« des ICs typischerweise Taktfrequenzen von 300-600 MHz für die Schaltgeschwindigkeit der reinen Logikelemente. Je nach der Anzahl und Komplexität der pro Takt durchzuführenden Operationen ergeben sich dann reale Systemtaktfrequenzen von meist 10-100 MHz für global operierende Einheiten und bis zu 300 MHz für schnelle lokale Module. Maßgeblich ist in wieweit das Design auf Fläche bzw. Geschwindigkeit hin optimiert und vom Tool synthetisiert wurde: Durch das Einbringen von zusätzlichen Registerstufen lassen sich z.&amp;amp;nbsp;B. zeitkritische Pfade entschärfen (Pipelining), sodass die Frequenz des Chips angehoben werden kann und somit der effektive Datendurchsatz erhöht wird, mit dem Nachteil der gesteigerten Latenz durch das Mehr an Takten. Der Datendurchsatz lässt sich darüber hinaus durch die Nutzung paralleler Architekturen verbessern.&lt;br /&gt;
&lt;br /&gt;
Die Systemfrequenz kann-, muss aber nicht der Frequenz entsprechen, mit der Daten zyklisch eingetaktet und verarbeitet werden; zudem sind Schaltungsteile mit unterschiedlichen Taktfrequenzen zu unterscheiden: Mit einem Systemtakt von 20 MHz lassen sich z.&amp;amp;nbsp;B. 18-Bit AD-Wandler auslesen, die so z.&amp;amp;nbsp;B. alle 1 µs neue Daten liefern, die verarbeitet werden müssen. Bei der Nutzung von 5 solchen Wandlern, die sequentiell verarbeitet werden, lägen 5 MHz Datenfrequenz vor. Für andere Schaltungsteile, die z.&amp;amp;nbsp;B. asynchron an die Peripherie andocken, sowie reine »state machines« können Schaltungsteile auf der 2-4 fachen Frequenz betrieben werden.&lt;br /&gt;
&lt;br /&gt;
Generell sind Fläche und Geschwindigkeit konkurrierende Größen, zwischen denen ein Optimum gefunden werden muss. Für die preiswerten FPGA-Serien wie Spartan (Xilinx) und Cyclone (Altera) sind aufgrund technologischer Randbedingungen etwa 10-30% weniger Taktgeschwindigkeit bei gleichem Design zu erwarten als bei den großen Brüdern der Virtex- (Xilinx) bzw. Stratix-Familie (Altera). Es muss mit mehr Verbrauch an Logikelementen und Taktzyklen gerechnet werden (weniger Routingreserven, geringere Zahl von LUT-Eingängen, langsamere Logikelemente). Dafür sind sie sehr preiswert.&lt;br /&gt;
&lt;br /&gt;
Funktionstechnisch identische Chips werden oft in zwei oder mehr Geschwindigkeitsklassen (speed grades) angeboten, die sich meist durch Bauteilselektion bei der Produktion ergeben. Grob kann man ca. 5%-10% höhere Taktung zwischen zwei speed grades erwarten.&lt;br /&gt;
&lt;br /&gt;
== Hersteller ==&lt;br /&gt;
&lt;br /&gt;
Die größten Hersteller von FPGAs sind [http://www.altera.com Altera] und [http://www.xilinx.com Xilinx]. Weitere Hersteller sind [http://www.latticesemi.com/ Lattice], [http://www.actel.com Actel] und [http://www.atmel.com Atmel].&lt;br /&gt;
&lt;br /&gt;
== Anwendung und Programmierung ==&lt;br /&gt;
=== Erstellung der FPGA firmware===&lt;br /&gt;
&lt;br /&gt;
Der Aufbau komplizierter, applikationsnaher Strukturen wird meist durch automatische Routing- und Synthesewerkzeuge erledigt, welche mit einer logischen, funktionellen Beschreibung der Architektur in einer Hardwarebeschreibungssprache wie z.&amp;amp;nbsp;B. VHDL &amp;quot;gefüttert&amp;quot; werden. Die Hardwarebeschreibung in [[VHDL]] gelingt ihrerseits z.&amp;amp;nbsp;B. mit VHDL-generierenden Werkzeugen, mittels derer zuvor Logikstrukturen, hardwarenahe Strukturen, Ablaufdiagramme und Zustandsautomaten formuliert wurden.&lt;br /&gt;
&lt;br /&gt;
Durch die Standardisierung der Architektur einerseits und die Entkopplung von applikationsorientierter Beschreibung sowie Chip- und Hersteller-spezifischer Synthese andererseits, wird die Hardware quasi als Software gebaut. Dies wiederum schafft alle Optionen der Wiederverwendung und Austausch von &amp;quot;Hardwareteilen&amp;quot;. So stehen inzwischen komplett nutzbare Schaltungen wie serielle Bausteine, RAM-Controller und vieles mehr zur Verfügung - teilweis sogar in Form von Open Source Projekten.&lt;br /&gt;
&lt;br /&gt;
=== Anbindung an Mikrocontroller ===&lt;br /&gt;
==== Streaming IO ====&lt;br /&gt;
==== Memory Mapped ====&lt;br /&gt;
&lt;br /&gt;
=== Anbindung an RAMs und ROMs ===&lt;br /&gt;
&lt;br /&gt;
==== DDR2 / DDR3 - RAM ====&lt;br /&gt;
==== SPI-Flash ====&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
Siehe [[VHDL_Softwarepool]]&lt;br /&gt;
&lt;br /&gt;
== Entwicklungsboards und Starter-Kits ==&lt;br /&gt;
Siehe [[Liste von FPGA Eval boards]]&lt;br /&gt;
&lt;br /&gt;
== Debugging-Hilfen ==&lt;br /&gt;
Gerade beim [[Debugging]] größerer FPGA-Designs ist es oft notwendig, auf interne Signale und Busse zuzugreifen, die aus routing- oder Platzgründen nicht an Pins des FPGAs gelegt - und mit konventionellen Analysatoren beobachtet werden können. Nebst den einschlägigen Tools der Hersteller, welche Signal probing über JTAG gestatten (z.&amp;amp;nbsp;B. ChipsScope und SignalTap), werden in FPGAs oft mehr oder weniger komplexe [[Logic Analyzer]] integriert, welche die internen Signale in vielfältiger Weise aufzeichnen. Diese werden in Block-RAMs oder FIFOs gespeichert und durch externe Master ausgelesen. Hier kommen auf der Platine befindliche MCUs oder fremd zugreifende FPGAs / CPUs in Betracht, welche über unterschiedliche Kommunikationsverbindungen (seriell, parallel, LVDS) angeschlossen sind. Dazu werden in die FPGAs entsprechende Cores und state machines instanziiert und mit Software auf PC-Seite ausgelesen.&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Beispiele:&lt;br /&gt;
&lt;br /&gt;
===Automatisch instanziierte Logic Analyzer ===&lt;br /&gt;
Praktisch alle FPGA-Hersteller bieten die Möglichkeit, mit einem internen Tool ein script zu erzeugen, welches der Synthese übergeben wird, welche dann anhand von Signallisten und diversen Randbedingungen einen LA automatisiert aufbaut und verdrahtet. SampleZeit und -Takt sind dabei genauso einstellbar, wie RAM-Tiefe und -Breite. Die so generierten Datenpakete können dann mittels JTAG ausgelesen werden. Im Continous-Betrieb können so sogar permanente Datenausgaben wie bei einem Oszilloskop vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
===Proprietärer serieller Logic Analyzer ===&lt;br /&gt;
&lt;br /&gt;
Die einfachste Möglichkeit ist die direkte Instanziierung eines Blockrams als FIFO mit &amp;quot;breitem&amp;quot; Busanschluss: Linksseitig besitzt das FIFO eine Breite von z.&amp;amp;nbsp;B. 256 Bit (Xilinx-Rams lassen sich ohne weitere Umbeschaltung über den Wizzard mit bis zu 1024 Bits deklarieren und nutzen). Rechtsseitig einen 16- oder 32 Bit breiten Busanschluss für einen Prozessor bzw Parallelinterface oder einen 1 Bit breiten Anschluss für ein serielles streaming interface. Mit einem FiFo-enable können die zu sampelnden Zeiten (Busphasen) festgelegt werden, z.&amp;amp;nbsp;B. anhand eines Kriteriums wie die Erfüllung einer bestimmten mathematischen Bedingung, die man in VHDL formuliert, oder es wird einfach ein Trigger gesetzt. Solange das FiFo nicht voll ist, kann geschrieben werden, was durch die interne FiFo-Verwaltung selbst bereits komplett geregelt wird.&lt;br /&gt;
&lt;br /&gt;
Beim einfachen seriellen Logic Analyzer benötigt man nur noch einen kleinen Core, der permanent das FiFo liest, und den seriellen Overhead (Startbit, Stoppbit, Parity und gfs CRC) hinzufügt. Mit einem einfach Pegelwandler kann so ein PC direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Auch denkbar ist die Anbindung an ein fremdes FPGA-board mit viel Speicher über (LV-)DS-Kommunikation. In komplexeren Systemen wird ein CAN- oder USB-Core eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Wenn mittels des Kriteriums nur ganz bestimmte kritische Phasen herausgesampelt werden (z.&amp;amp;nbsp;B. das Auftauchen eines bestimmten Rechenfehlers im FPGA) und so das Datenaufkommen je Zeiteinheit über längere Zeit betrachtet eher gering ist, kann bei geeignetem Datendurchsatz in Echtzeit dauerhaft mitprotokolliert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BusProbe, der Debugging Core von abaxor engineering  ===&lt;br /&gt;
Mit der BusProbe kann der Entwickler den Signalfluss im FPGA-Design auch über einen längeren Zeitraum überwachen und am PC aufzeichnen. Der Core verarbeitet an jedem Eingang einen kompletten Bus. &lt;br /&gt;
&lt;br /&gt;
Die Daten werden gemultiplext zum PC geschickt und dort per Software demultiplext. Im PC erfolgt auch die Auswertung mit beliebigen Analyse-Tools.&lt;br /&gt;
&lt;br /&gt;
Gegenüber dem Betriebssystem verhält sich die BusProbe wie eine Festplatte, von der die Daten mit gewöhnlichen Zugriffen gelesen werden können.&lt;br /&gt;
&lt;br /&gt;
* Streaming der Daten zum PC mit mehr als 20 MByte/s&lt;br /&gt;
* keine Treiber im PC da Nutzung von Standardschnittstellen (USB oder IDE)&lt;br /&gt;
* Hot-Plugging&lt;br /&gt;
* Visualisierung mit beliebigen Programmen&lt;br /&gt;
* geringer Logikaufwand&lt;br /&gt;
&lt;br /&gt;
[http://www.abaxor.de/produkte.html abaxor.de-Webseite]&lt;br /&gt;
&lt;br /&gt;
=== open source Logikanalysator von sump.org ===&lt;br /&gt;
Ein einfacher, übersichtlicher Logikanalysator findet sich auf sump.org. Er liegt im Quelltext vor wird mit ins Design einsynthetisiert. Als Speicher dient wahlweise SRAM oder internes RAM. Es können 32 Kanäle mit 100 MHz (oder weniger) gesampelt werden. Die Bediensoftware läuft platformunabhängig unter Java und benötigt eine serielle Schnittstelle (auch über USB-seriell Wandler) zum Core.&lt;br /&gt;
&lt;br /&gt;
[http://de.sump.org/projects/analyzer/ sump.org-Webseite]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Hardwarebeschreibungssprachen]]&lt;br /&gt;
* [[Reset für FPGA/CPLD]]&lt;br /&gt;
* [[Taktung FPGA/CPLD]]&lt;br /&gt;
* Projekt [[Audio-DSP mit Spartan 3-FPGA]]&lt;br /&gt;
* Projekt [[FPGA Lab]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.fpga4fun.com/index.html FPGA4Fun] - FPGA-Projekte, größtenteils mit Altera und Verilog&lt;br /&gt;
* [http://video.google.com/videoplay?docid=-4969729965240981475 Ein Vortrag, auf Englisch: General Purpose, Low Power Supercomputing Using Reconfiguration Logic]&lt;br /&gt;
* http://www.opencores.org - FPGA-Projekte, Opensource, jeder kann seine Eigenen einstellen und an anderen mitarbeiten. U.a. gibt es verschiedene CPUs für FPGAs.&lt;br /&gt;
* [http://members.optushome.com.au/jekent/FPGA.htm John&#039;s FPGA Page]&lt;br /&gt;
* [http://www.embedded.com/columns/whatsnew/197003073 More about designing with embedded FPGAs] by Bernard Cole, Embedded.com&lt;br /&gt;
* [http://chaosradio.ccc.de/cre117.html Chaosradio Express - FPGA]&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA und Co| ]]&lt;/div&gt;</summary>
		<author><name>178.33.17.98</name></author>
	</entry>
</feed>