<?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=217.29.155.97</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=217.29.155.97"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/217.29.155.97"/>
	<updated>2026-04-10T19:45:54Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=CPLD&amp;diff=19685</id>
		<title>CPLD</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=CPLD&amp;diff=19685"/>
		<updated>2007-02-10T18:17:37Z</updated>

		<summary type="html">&lt;p&gt;217.29.155.97: /* Anwendung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;C&#039;&#039;&#039;omplex &#039;&#039;&#039;P&#039;&#039;&#039;rogrammable &#039;&#039;&#039;L&#039;&#039;&#039;ogic &#039;&#039;&#039;D&#039;&#039;&#039;evice&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
CPLDs sind programmierbare ICs, die z.B. [[digital]]e Schaltungen mit Logik-ICs der [[74xx]]-Reihe ersetzen können. Die Programmierung findet meistens [[seriell]] statt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Die [[ispLSI]]s von [http://www.latticesemi.com Lattice] oder&lt;br /&gt;
die CPLDs von XILINX wie zB. der xc9572xl &lt;br /&gt;
&lt;br /&gt;
CPLDs verlieren ihren Inhalt nicht. So entfällt die &amp;quot;Bootphase&amp;quot; wie bei SRAM-FPGAs üblich. Auch muss kein externer Programmspeicher zugeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
CPLDs enthalten wie die kleineren [[GAL]]s eine Und-Oder-Matrix sowie Speicherelemente (FlipFlops), die frei miteinander verbunden werden können.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu FPGAs stehen in CPLDs weniger Register (FlipFlops) zur Verfügung.&lt;br /&gt;
Während schon kleine FPGAs mehrere hundert FF mitbringen, reicht die Spanne bei CPLDs von 36 bis 288 FF. Die Anzahl der FF ist fest an die Anzahl der User-I/O gekoppelt. Meist steht für ein Pin 1 bis 2 FF zur Verfügung. Deshalb werden die großen CPLDs (viele FF) nur in den großen Gehäusen mit 100 und mehr Pins gefertigt.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Geschwindigkeit&amp;quot; ==&lt;br /&gt;
Bei CPLDs ist die interne Verdrahtung einfacher als im FPGA, die Signallaufzeiten lassen sich leicht abschätzen. Grund hierfür ist die breite  AND/OR Matrix mit der sich beispielsweise 20 bit breite Decoder &amp;quot;in einem Rutsch&amp;quot; realisieren lassen. Im FPGA müssen dazu mehrere Lookup Tables verschaltet werden. Das erhöht die Signallaufzeit im FPGA wesentlich. Typische Anwendungen im CPLD laufen mit 30 - 200 MHz. CPLDs werden auch wegen ihrer Durchlaufzeit (ca. 10 - 5 ns) von Pin zu Pin in asynchronen (rein kombinatorischen) Schaltungen eingesetzt.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration/Programmierung ==&lt;br /&gt;
Ein CPLD-&amp;quot;Programm&amp;quot; kann auf verschiedene Arten erstellt werden: Man kann entweder die Anordnung der einzelnen [[digital]]en Gatter als Schaltplan zeichnen oder die gewünschte Funktion mit einer [[Hardwarebeschreibungssprachen|Hardwarebeschreibungssprache]] wie Abel, VHDL oder Verilog beschreiben. Diese Tools werden meist kostenlos vom Hersteller zur Verfügung gestellt. Die &amp;quot;kleinen&amp;quot; Entwurfssprachen wie ABEL sind auch im CPLD-Bereich von den Hochsprachen wie Verilog und VHDL zurück gedrängt worden. &lt;br /&gt;
&lt;br /&gt;
VHDL-Code für FPGAs ist meist wenig effizient für CPLDs. So spart ein synchroner oder eingesparter Reset Ressourcen im FPGA, während bei CPLDs ein asynchroner Reset zu kleineren Designs führt. Auch sind Maßnahmen zur Erhöhung der Taktfrequenz wie Pipelining (FF in lange Pfade einbauen) für CPLDs meist unnötig und wegen der winzigen Anzahl an FF auch unmöglich.&lt;br /&gt;
&lt;br /&gt;
Bei CPLDs entfällt wegen der einfachen Struktur das Place &amp;amp; Route. Bei Xilinx wird anstatt des Mappers (map) und des Routers (par) der Fitter nach der Synthese gestartet (cpld_fit(?)). Während im FPGA-Bereich die Tools meist mehrere Minuten benötigen, benötigt die Umsetzung aus der Beschreibungssprache zur CPLD-Programmierdatei oft nur wenige Sekunden. &lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
CPLDs werden eingesetzt, wo es neben einer hohen Packungsdichte nach:&lt;br /&gt;
* geringem Strombedarf&lt;br /&gt;
* breiter kombinatorischer Logik (Adressdecoder, Busmultiplexer)&lt;br /&gt;
* sofortiger Bereitschaft nach Zuschalten der Spannung&lt;br /&gt;
* geringem Beschaltungsaufwand&lt;br /&gt;
verlangt.&lt;br /&gt;
&lt;br /&gt;
Auch sind viele CPLDs noch 5V-tolerant und können so als Levelshifter eingesetzt werden. Zwar gibt es auch 8-bit Mikrocontroller-Designs für CPLDs (Xilinx Picoblaze), aber die passen nur in die größten CPLDs. Typische Anwendungen sind:&lt;br /&gt;
* Digitaluhren mit alphanumerischem Display&lt;br /&gt;
* Seriell/Parallel Wandler&lt;br /&gt;
* Konfigurationslogik für FPGAs&lt;br /&gt;
* ROM-Speicherinterface für mehrere CPUs&lt;br /&gt;
* Timergesteuerte Power-Up Logic (Einschaltsequenz)&lt;br /&gt;
ddd&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[GAL]]&lt;br /&gt;
* [[FPGA]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.amateurfunkbasteln.de/pcla/pcla.html 32-Kanal-Logik-Analysator bis 40 Mhz]&lt;br /&gt;
* [http://www.interq.or.jp/japan/se-inoue/e_cpld3_3.htm CPLD-Programmer für Xilinx 9500]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA und Co]]&lt;/div&gt;</summary>
		<author><name>217.29.155.97</name></author>
	</entry>
</feed>