mikrocontroller.net

Forum: FPGA, VHDL & Co. FPSLIC Macrozellen sparen


Autor: H-D Schondelmaier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche bei einem FPSLIC AT94K05 FPGA die wenigen Makrozellen so
effektiv wie möglich zu nutzen. Leider scheint die Zellenstruktur nicht
genrade VHDL freundlich aufgebaut zu sein. Wenn ich einen ladbaren 8 Bit
Down-Counter mit Enable-Steuerung in VHDL implementiere, werden dazu
30(!) von 256 Makrozellen verbraucht. Das kann doch nicht wahr sein?
Dabei habe ich die Hilfe des Makro-Generators zu rate gezogen. Dort
kann man shene, wie der VHDL Konstrukt in etwa aussehen muss.
Wer kann 30 Makrozellen unterbieten??? Wie?


Grüsse,
Hans-Dieter Schondelmaier

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest Du mal den betreffenden Code posten?

Autor: H-D Schondelmaier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so sieht der Code aus:

entity PH_CTRL is
  port (
    SYSCLOCK : in    std_logic;
        RESET    : in    std_logic;
  DATA_BUS : in  std_logic_vector(7 downto 0);
  CONT_1_TIME : buffer   unsigned(7 downto 0);
  LOAD  : in   std_logic;
  ENABLE   : in   std_logic
       );
end;

architecture BEHAV_PH_CTRL of PH_CTRL is
begin

CONT_TIME : process (SYSCLOCK, RESET ) is
   begin
     if (RESET = '0')  then
       CONT_1_TIME <= ( others => '0' );
     elsif falling_edge( SYSCLOCK ) then
       if LOAD = '1' and ENABLE = '1' then
         CONT_1_TIME <= unsigned( DATA_BUS(7 downto 0)) ;
       else
         CONT_1_TIME <= CONT_1_TIME - 1;
       end if;
     end if ;
end process CONT_TIME;

end;


Über den Datenbus kommt der Ladewert, Die CONT_1_TIME ist die
aktuelle Zeit, die runtergezaehlt werden muss.

Autor: DerInder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich kann dir nicht direkt bei deinem Problem helfen. Aber auf einem
Xilinx XC95xx belegt dein Programm nur 8 Macrozellen?! Oder vergleiche
ich da Äpfel mit Birnen?

Gruß
-=jens=-

Autor: HD Schondelmaier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nein, nein, VHDL hat auch deshalb seine Daseinsberechtigung, damit man
Äpfel mit Birnen vergleichen kann. Es geht um dieselbe Funktion in
unterschiedlichen Bausteinen. Ich hab inzwischen aus Supportkreisen die
Info, dass sich das Ganze beim FPSLIC auf 16 Zellen reduzieren lassen
würde, allerdings muss man dann diesen IP Core-Macro Generator
verwenden. Dieser erzeugt aber keinen VHDL-Code sondern eine Library,
was für die Weiterverwendbarkeit der Sourcen in meinem Fall nicht
ausreicht.
Wenn man die Sache in VHDL schreibt, gehen im besten Fall gut 20
Macrozellen flöten. Drunter geht wohl nichts.

Hans-Dieter

Autor: Stefan May (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
elsif falling_edge( SYSCLOCK ) then
       if LOAD = '1' and ENABLE = '1' then
         CONT_1_TIME <= unsigned( DATA_BUS(7 downto 0)) ;
       else
         CONT_1_TIME <= CONT_1_TIME - 1;
       end if;
     end if ;


Was mir an dem Code auffällt: Wenn LOAD und ENABLE nicht 1 ist, dann
wird runtergezählt. Auch wenn ENABLE gar nicht 1 ist. Absicht?

ciao, Stefan.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.