Forum: FPGA, VHDL & Co. suche passendes FPGA


von Gerd K. (gerdknese)


Lesenswert?

Hallo Leute,

ich soll bei einem Projekt einen FPGA nutzen und
(da ich bisher nur mit µC gearbeitet habe) brauche bei
der Auswahl des richtigen Chips/Familie eure Hilfe.

Funktionsbeschreibung:
Der FPGA soll einen 3-Achsen Lagesensor auslesen (PWM Ausgänge),
diese Werte über eine Datentabelle in einen Anzeigewert (Winkel)
umrechnen und dann über 7-Segment Anzeige zur Anzeige bringen.

Randbedingungen:
- Wenig zusätzliche Peripherie wie z.B. Spannungsregler
  mit mehreren Spannungen, externe Speicher usw.
- Geringer Stromverbrauch
- Genug Reserve für weitere Funktionen

Wichtig:
- Einfacher Einstieg z.B. über Evaluation Kit o.ä.


Ich hoffe Ihr könnt mit helfen.

Gruß
Gerd

von Christian R. (supachris)


Lesenswert?

Abgesehn davon, dass das mit Kanonen auf Spatzen geschossen ist, reicht 
da so ziemlich jeder kleine FPGA aus. Je nach Größe der Tabelle(n) musst 
du schauen, dass er genügend BlockRAM hat, die Slices für die 
PWM-Zählung sind dann am Ende fast vernachlässigbar.....wie gesagt ist 
das aber eher eine Aufgabe für einen µC, einfach die PWM über Timer 
capturen und fertich is.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Funktionsbeschreibung:
> Der FPGA soll einen 3-Achsen Lagesensor auslesen (PWM Ausgänge),
> diese Werte über eine Datentabelle in einen Anzeigewert (Winkel)
> umrechnen und dann über 7-Segment Anzeige zur Anzeige bringen.
So gerne ich FPGAs einsetze, aber wenn ich diese Aufgabenbeschreibung 
lese, dann würde ich sagen: Nimm einen Mikrocontroller... :-/

Aber zum Trost: das kann jedes FPGA.
Womit wir beim 2 Punkt sind:
> Randbedingungen:
> ....
Auch hier würde ich sagen: nimm einen uC...
Insbesondere auch, wenn ich diese Forderung lese:
> - Geringer Stromverbrauch
Da steckt jeder uC ein FPGA locker in die Tasche.

Diese beiden Forderungen laufen gegeneinander:
> - Geringer Stromverbrauch
> - Genug Reserve für weitere Funktionen

> Wichtig:
> - Einfacher Einstieg z.B. über Evaluation Kit o.ä.
Alle Hersteller haben entsprechende Starterkits.

Also wirst du das große Vorhaben aufteilen müssen:
1. Das Design erst mal zum Laufen bekommen
2. Ein FPGA auswählen, das die Randbedingungen zu erfüllt

von Klaus Falser (Gast)


Lesenswert?

Warum sollte man dafür einen FPGA brauchen?
Das ist doch eher was für eine µC.

von noips (Gast)


Lesenswert?

Hallo Gerd!

Vor einigen Wochen stand ich vor einer ähnlichen Frage, nur die Aufgabe 
für den auszuwählenden FPGA war eine andere. Ich habe auch hier um Hilfe 
bei der Auswahl gebeten.

Ich bin zu folgendem Ergebnis gekommen:

- FPGA-Hersteller aussuchen (so viele sind es ja nicht, wenn in der 
Firma   schon was mit FPGAs eines Herstellers gemacht wurde und 
Spezialisten da sind, dann lege dich auf den Hersteller fest, kannst 
dann das Wissen der Kollegen nutzen)

- Entwicklungs-Tools besorgen (Software, Eval.-Board, Boards gibt es von 
jedem Hersteller)

- VHDL lernen

- sich bei dem Hersteller nach evtl. ferigen Modulen umschauen, wenn 
Aufgabe nicht zu spezifisch

- das Design in VHDL erstellen, synthetisieren lassen und dann schauen 
in welchen FPGA das noch reinpasst


Ansosten ist hier der Link zu meinem damaligen Thread:

Beitrag "Bitte um Check meiner FPGA-Auswahl für ein Interface-Board"

Viel Erfolg bei der neuen Aufgabe! Es wird bestimmt spannend!

von Gerd K. (gerdknese)


Lesenswert?

Hi Leute,

danke für die vielen schnellen Antworten.

Die Schaltung muss leider per FPGA gelösst werden,
weil ein µC aus Sicherheitsgründen nicht genutzt werden darf.

Ich dachte zuerst an Spartan-3E. Der ist aber sehr gierig
bzgl. Stromverbrauch und braucht mehrere Spannungen.

Bleibt also die Frage, welchen FPGA nutze ich am besten.



Gruß
Gerd

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Gerd Knese schrieb:
> Bleibt also die Frage, welchen FPGA nutze ich am besten.
Fass mal einen S3 AN ins Auge...
Oder von Lattice einen MachXO...

> Spartan-3E. Der ist aber sehr gierig bzgl. Stromverbrauch
Was ist denn da dein Ziel?
Der Stromverbrauch hängt sehr vom realisierten Design ab, das ist dir 
klar?

> Die Schaltung muss leider per FPGA gelösst werden,
> weil ein µC aus Sicherheitsgründen nicht genutzt werden darf.
Seltsame Argumentation... :-/
Ich zweifle stark, dass deine ersten Designs (so die ersten 6-12 
Monate) auch nur annähernd an die Zuverlässigkeit eines uCs herankommen.

von Klaus Falser (Gast)


Lesenswert?

Gerd Knese schrieb:
> Die Schaltung muss leider per FPGA gelösst werden,
> weil ein µC aus Sicherheitsgründen nicht genutzt werden darf.

Seit wann ist ein FPGA denn sicherer als ein µC?
Bei der Komplexität der Lösung sind die Möglichkeiten Fehler zu machen 
meines Erachtens mit einem FPGA bedeutend größer.

Deine Aufgabenstellung läuft irgendwie auf einen FPGA mit embedded µC 
hinaus, den µC hast du also sowieso.
Und ob ein Core von Xilinx/Altera fehlerfreier ist als ein µC 
irgendeines Herstellers sein dahingestellt.

von Harald F. (hfl)


Lesenswert?

Kannst Du näheres zu der Datentabelle sagen? Da scheint mir der 
Knackpunkt zu liegen. Mit welcher Auflösung muss man da rein und wieder 
raus? Und muss das Ganze sehr schnell gehen oder ist eine Softwarelösung 
im FPGA auch denkbar?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Und muss das Ganze sehr schnell gehen
Wahrscheinlich schon:
>>>> über 7-Segment Anzeige zur Anzeige bringen
;-)

von Mine Fields (Gast)


Lesenswert?

Gerd Knese schrieb:
> Die Schaltung muss leider per FPGA gelösst werden,
> weil ein µC aus Sicherheitsgründen nicht genutzt werden darf.

Es gibt spezielle Prozessoren für sicherheitsgerichtete Anwendungen. 
Ansonsten erfüllt man Sicherheitsanforderungen durch eine geeignete 
Hardwarestruktur und nicht unbedingt durch ein spezielles Bauteil.

Oder meinst du sicher im Sinne von Spionage? Ich denke da gibt es auch 
geeignete Bauteile. Einen FPGA mit Konfigurationsflash kann man 
sicherlich einfacher ausspionieren als einen uC.

von Gerd K. (gerdknese)


Lesenswert?

Hallo Leute,

@ Stefan L.:
Stefan L. schrieb:
> Gerd Knese schrieb:
>> Die Schaltung muss leider per FPGA gelösst werden,
>> weil ein µC aus Sicherheitsgründen nicht genutzt werden darf.
>
> Es gibt spezielle Prozessoren für sicherheitsgerichtete Anwendungen.
> Ansonsten erfüllt man Sicherheitsanforderungen durch eine geeignete
> Hardwarestruktur und nicht unbedingt durch ein spezielles Bauteil.

Ich sehe ein, dass meine Beschreibung zu oberflächlich war. Leider
darf ich nicht mehr dazu sagen ohne Ärger mit meiner Firma zu bekommen.

Es währe aber sehr schön, wenn du mir (zur Info) mal einen solchen
"speziellen Prozessor für sicherheitsgerichtete Anwendungen" nennen
könntest. Evtl. lässt sich mein Chef ja darauf ein.


> Oder meinst du sicher im Sinne von Spionage? Ich denke da gibt es auch
> geeignete Bauteile. Einen FPGA mit Konfigurationsflash kann man
> sicherlich einfacher ausspionieren als einen uC.

Gott sei dank, hat es nichts mit Spionage zu tun. Eher in Richtung
die Vorschriftenlage erlaubt keine programmgesteuerten Abläufe mit
z.B. Schleifen usw.

Danke für deine Hinweise

MfG
Gerd

von Gerd K. (gerdknese)


Lesenswert?

Hallo Harald Flügel,

Harald Flügel schrieb:
> Kannst Du näheres zu der Datentabelle sagen? Da scheint mir der
> Knackpunkt zu liegen. Mit welcher Auflösung muss man da rein und wieder
> raus? Und muss das Ganze sehr schnell gehen oder ist eine Softwarelösung
> im FPGA auch denkbar?

Die Datentabelle hat keinen sehr großen Umfang (max. 64MB).
Rein geht's mit 3 x 8Bit, raus mit 3 x 8Bit.

Softwarelösung oder µC Core im FPGA geht gem. Projektleiter nicht.


Gruß
Gerd

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Die Datentabelle hat keinen sehr großen Umfang (max. 64MB).
Krass, was du das als "eher klein" spezifizierst  :-o
Du meinst wirklich 64 Mega-Byte? Das hätte ich nach der obigen 
Beschreibung mit der Anzeige niemals vermutet...

> Die Datentabelle hat keinen sehr großen Umfang (max. 64MB).
Das passt aber niemals in ein FPGA. So viel Speicher hat keines der 
mir bekannten FPGAs.

> Rein geht's mit 3 x 8Bit, raus mit 3 x 8Bit.
Du willst also 2^24 * 3 Bytes bevorraten?
(Das sind dann auch nur 48MB...)
Wie wäre es mit einer Interpolation und einer wesentlich kleinerer 
Tabelle?

Wenn das nur für eine Anzeige ist, wozu dann immer diese 
Sicherheitsaspekte? Was passiert, wenn ein Anzeigensegment spinnt, und 
du statt einer 8 eine 0 (o.ä.) siehst?

BTW:
> Rein geht's mit 3 x 8Bit, raus mit 3 x 8Bit.

von Gerd K. (gerdknese)


Lesenswert?

Hallo Lothar,

Lothar Miller schrieb:
>> Die Datentabelle hat keinen sehr großen Umfang (max. 64MB).
> Krass, was du das als "eher klein" spezifizierst  :-o
> Du meinst wirklich 64 Mega-Byte? Das hätte ich nach der obigen
> Beschreibung mit der Anzeige niemals vermutet...

Sorry, die Tabelle liegt natürlich in einem externen Speicher vor.
Die Tabellengröße wird evtl. im Laufe des Projektes noch reduziert.
64MByte sind als worst case anzusehen.

> Wie wäre es mit einer Interpolation und einer wesentlich kleinerer
> Tabelle?

Interpolation geht leider nicht, da in der Tabelle auch sog.
Spezialzustände behandelt und diese folgen div. Lastenheft-
forderungen und können nicht so einfach berechnet werden.


> Wenn das nur für eine Anzeige ist, wozu dann immer diese
> Sicherheitsaspekte? Was passiert, wenn ein Anzeigensegment spinnt, und
> du statt einer 8 eine 0 (o.ä.) siehst?

Sehr gutes Argument. Ich werde es mal mit meine Projektleiter 
diskutieren.

Gruß
Gerd

von Harald F. (hfl)


Lesenswert?

Jetzt wird die Sache klarer. 64 MByte klingen zunächst mal nach DRAM, 
aber da stellt sich die Frage, wie da die Werte in den Speicher 
reinkommen. Wenn man die Werte mittels eines Algoritmus in Software 
erzeugen kann, dann könnte das ein in FPGA laufender NIOS nach Power-up 
tun. Ansonsten müsste das da draußen ein ein Festwertspeicher sein, 
also. z.B. ein FLASH.
Ich würde das kleinste FPGA der Cyclone3-Familie nehmen (EP3C5). Da gibt 
es pinkopmatibel den EP3C10 mit der doppelten Anzahl von Logikelementen 
für spätere Designerweiterungen. Developmentboards für Cyclone3 gibt es 
in größerer Auswahl und für deinen Fall reicht sogar der BeMicro aus, 
auf dem ja nahezu nix drauf ist außer einem Erweiterungsstecker.
Für die Produktion des Systems bleibt die Frage offen, wie das FLASH 
programmiert wird. Insofern könntest Du mit zwei FPGA-Designs arbeiten: 
Eines für die Produktion mit einem NIOS, der die Daten für das FLASH 
über irgendein Interface bezieht und das FLASH programmiert. Und dann 
ein zweites Design ohne NIOS, das nur noch "arbeitet".

von Mine Fields (Gast)


Lesenswert?

Gerd Knese schrieb:
> Eher in Richtung
> die Vorschriftenlage erlaubt keine programmgesteuerten Abläufe mit
> z.B. Schleifen usw.

Es gibt Normen, die teilweise so etwas fordern. Wenn man aber genauer 
hinschaut, gibt es meistens auch die Möglichkeit, Software zu verwenden. 
Diese ist natürlich entsprechend komplizierter zu programmieren.

Andererseits werden FPGA-Files möglicherweise genauso problematisch 
angesehen als Software.

Gerd Knese schrieb:
> Es währe aber sehr schön, wenn du mir (zur Info) mal einen solchen
> "speziellen Prozessor für sicherheitsgerichtete Anwendungen" nennen
> könntest. Evtl. lässt sich mein Chef ja darauf ein.

Infineon hat so etwas, wird wohl hauptsächlich im Automotive-Bereich 
eingesetzt (vermutlich für ABS und so).

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.