Forum: FPGA, VHDL & Co. globales UCF-File anlegen


von Andreas W. (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite


Lesenswert?

Hallo zusammen,

bin grad dabei meine VHDL-Kenntnisse aus dem Studium praktisch wieder 
aufzufrischen... Hab dazu ein Spartan3E Starter Kit und nutze ISE.

Zur eigentlichen Frage: Über die UCF-Files verknüpfe ich ja die entitys 
mit den eigentlichen Pins. Ist es möglich ein globales File mit allen 
Pinzuweisungen (des Starter-Kits) zu erstellen und dann dem aktuellen 
Projekt hinzuzufügen (ähnlich wie Port-Defs)? Habe das mal ausprobiert 
und bekomme natürlich Fehlermeldungen bezüglich der Entity-Namen die im 
UCF-File stehen; im Projekt aber nicht erstellt sind...

Finde es momentan eben nervig für jedes kleine Projekt das UCF-File neu 
anzulegen bzw. zu bearbeiten obwohl ich ohnehin nur das eine Board mit 
den festen Zuweisungen habe...

von Artur Funk (Gast)


Lesenswert?

Du könntest doch z.B: alle LEDs, Taster etc. die sich auf dem Board 
befinden sinnvoll im UCF und Top-Entity FIle benennen, dann kommentierst 
du im UCF File jedes Mal nur die Sachen aus, die du im Projekt nicht 
verwendest.

von Fpgakuechle K. (Gast)


Lesenswert?

Xilinx wollte mal mehrere UCF files einführen, hat es dann aber nicht 
getan.
Also muss man mit einen ucf leben, was nicht weiter schwierig ist. Du 
kannst dir immer ein skript bauen, das dir ein ucf-file aus deinen 
templates bastelt. (C-Präprozessor, perl) . Oder du arbeitest wie 
gewöhnlich mit cut& paste.

von leser (Gast)


Lesenswert?

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

--  Uncomment the following lines to use the declarations that are
--  provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;

entity test_1 is
    Port ( clk_in : in std_logic;
           res_in : in std_logic;
           qq_out : out std_logic_vector(9 downto 0));
-------------------------------------------------------
attribute pin_assign : string;
attribute pin_assign of clk_in:    signal is "6";
attribute pin_assign of res_in:    signal is "28";
attribute pin_assign of qq_out:    signal is "14 12 8 4 2 44 42 40 1 
43";
-------------------------------------------------------
end test_1;

architecture Behavioral of test_1 is
signal h_counter : std_logic_vector(31 downto 0);

begin
process (clk_in,res_in)
  begin
      if res_in = '0' then
     h_counter <= ( others => '0');
        elsif clk_in'event and clk_in = '1' then
         h_counter <= h_counter + 1;
   end if;
   end process;
   qq_out <= h_counter(29 downto 20);
end Behavioral;
-------------------------------------------------------

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.