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...
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.