Forum: FPGA, VHDL & Co. Wie die Pinbezeichnung bei VHDL-Programm ?


von peter (Gast)


Lesenswert?

Hallo, guten Tag.
Ich habe diesen Code gefunden zum lernen für mich als Anfänger.
Ich habe das DE1-Board.
Kann man hier zb für "clk" gleich "PIN_D12" reinsetzen?
Oder wo kann ich diesem "clk" diesen "PIN_D12" zuweisen, damit ich hier 
im Programm dieses "clk" belasse?

Was ist besser , gleich die PIN-Belegung vom DE1 nehmen oder neue Namen 
für das Programm vergeben ?

Danke.
Gruss

[quote]
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity tb_BlinkLED is
                                   -- leere Entity --> Testbench
end tb_BlinkLED;

architecture behavior of tb_BlinkLED is
   component BlinkLED
   port( clk : IN  std_logic;
         led : OUT  std_logic );
   end component;

   signal clk : std_logic := '0';  -- lokale Signale der Testbench
   signal led : std_logic;         -- werden an den Prüfling 
angeschlossen

begin
   uut: BlinkLED                   -- der Prüfling wird verdrahtet
   port map ( clk => clk,
              led => led );

   clk <= not clk after 10 ns;     -- einen 50MHz Takt erzeugen
end;
[/quote]

von PittyJ (Gast)


Lesenswert?

Im Quartus gibt es einen Menupunkt "Pin Planner"
Damit werder die Chip-Eingänge und die Toplevel Signale verbunden.


Sowas ist meines Wissens nicht synthetisierbar. Das geht nur bei 
Simulationen.
   clk <= not clk after 10 ns;     -- einen 50MHz Takt erzeugen

von Peter B. (funkheld)


Lesenswert?

Danke für die Antwort.

Gruss

von Duke Scarring (Gast)


Lesenswert?

peter schrieb:
> Was ist besser , gleich die PIN-Belegung vom DE1 nehmen oder neue Namen
> für das Programm vergeben ?
Ich mache mir für jedes FPGA-Board ein top-Modul. Dort kommen die 
funktionellen Namen des jeweilgen Boards hin (z.B. CLK125, BUTTON0_N, 
CONX1_12). Die Zuordnung zu den Pins kommt dann ins Constraint-File.

Die eigentliche Logik steckt dann in einem Untermodul und wird im 
top-Modul nur verdrahtet.

Duke

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


Lesenswert?

peter schrieb:
> clk <= not clk after 10 ns;     -- einen 50MHz Takt erzeugen
Hier mal was für "The Absolute Beginner":
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

von Peter B. (funkheld)


Lesenswert?

Jup, danke.
Habe jetzt mal dieses Programm compiliert und funktioniert auch:
--------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity BlinkLED is
    Port ( clk : in  STD_LOGIC;
           led : out  STD_LOGIC);
end BlinkLED;

architecture Behavioral of BlinkLED is

signal c : integer range 0 to 24999999 := 0; -- 0,5s bei 50MHz fosc
signal x : std_logic:= '0';

begin
   process begin
      wait until rising_edge(clk); -- warten bis zum nächsten Takt
      if (c<24999999) then         -- 0…24999999 = 25000000 Takte = 1/2 
Sekunde bei 50MHz
          c <= c+1;                -- wenn kleiner: weiterzählen
      else                         -- wenn Zählerende erreicht:
          c <= 0;                  -- Zähler zurücksetzen
          x <= not x;              -- und Signal x togglen
      end if;
   end process;
   led <= x;                       -- Signal x an LED ausgeben
end Behavioral;
---------------------

Was hat das mit der Datei-Namensgebung  zu tun?:
entity BlinkLED is
....

Der Dateiname hieß bei mir blink1 und es wurde gemeckert.
Was hat die Spannung 3,3V LVTTL bei I/O Standart zu tun bei der LED und 
bei CLK? Es steht dort in der Tabelle auch 1.3 V usw die man auswählen 
kann.

Danke.
Gruss

von Peter B. (funkheld)


Lesenswert?

Hmmm... , warum ist die LED-G an für TXD und die LED-R für RXT bei 
diesem Programm : Datum: 16.04.2014 16:30 oben auf meinem DE1?

Danke.
Gruss

von Duke Scarring (Gast)


Lesenswert?

Peter Bierbach schrieb:
> Was hat das mit der Datei-Namensgebung  zu tun?:
> entity BlinkLED is
Im Prinzip nichts.

Um selber den Überblich zu behalten, schreibe ich eine 
entity/architecture in eine Datei. Außerdem benenne ich Datei und Entity 
gleich.

> Der Dateiname hieß bei mir blink1 und es wurde gemeckert
Es gibt vielleicht einen gleichnamigen Pin?
In solchen Fällen ist ein Screenshot von der Fehlermeldung recht 
hilfreich.

> Was hat die Spannung 3,3V LVTTL bei I/O Standart zu tun bei der LED und
> bei CLK? Es steht dort in der Tabelle auch 1.3 V usw die man auswählen
> kann.
Dort muß die Spannung eingestellt werden, mit der auf dem Board an der 
entsprechenden IO-Bank gearbeitet wird. Dazu muß man im Schaltplan bzw. 
der Dokumentation nachsehen.

Peter Bierbach schrieb:
> warum ist die LED-G an für TXD und die LED-R für RXT bei
> diesem Programm
Die sind möglicherweise low-aktiv und werden von Deinem Design nicht 
verwendet...
Auch hier hilft ein Blick in den Schaltplan.

Duke

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.