2012-04-22 16 views
2

私はWebPackを稼働して、マシン上で再び実行し、シンプルなデザインを合成してFPGAにアップロードした後、私はかなりの問題に遭遇しました。ユーザー制約ファイルは実際にどのように機能しますか?

このような行は、ユーザー制約ファイルにあります:

NET "W1A<0>" LOC = "P18" ; 

どのように正確に合成ソフトウェアは、このピンは、VHDLコードによって割り当てられます方法を決定するのでしょうか?例えば

、私が提供してきた。このサンプルコード取る:

entity Webpack_Quickstart is 
Port (
W1A : out STD_LOGIC_VECTOR(15 downto 0); 
rx : in STD_LOGIC; 
tx : inout STD_LOGIC; 
clk : in STD_LOGIC 
); 
end Webpack_Quickstart; 

architecture Behavioral of Webpack_Quickstart is 
signal counter : STD_LOGIC_VECTOR(47 downto 0) := (others => '0'); 
begin 
    W1A(0) <= '1'; 
end; 

をどのように正確に、このコードは私のFPGA上のWIA0ピンがオンに作るのですか?リンクは何ですか?それはエンティティ宣言の港の名前だけで、より多くの魔法が関与しているのでしょうか?

+1

はい、ほとんどの場合、VHDLに論理信号を指定し、その論理信号が接続する物理的な場所を指定します。配置配線ロジックによって、接続が確実に行われます。 –

答えて

2

.ucfの実装は実装段階で適用されます。この時点であなたのデザインは合成されており、利用可能なトップレベルネットはこのように「既知」です。だから、同じ名前のネットを同じ名前の制約にマッチさせることだけです。

シンタックスは若干異なりますが(例えばインデックスベクトルの場合は()の代わりに<>を使用します)、そうでない場合は単純な文字列の一致になります。

特に大きなデザインのピン制約を最初に設定する最も簡単な方法は、グラフィカルツール(WebPackに含まれている場合はPlanAhead)を使用してピンを割り当て、最初の.ucfファイルを生成することです。 後で小さな変更を加えることは、標準のISEテキストエディタを使って手で行うのが最も簡単です。

+0

BTW、必要なビットセレクタ:<> vs()vs []は、シンセサイザでどの設定を使用したかによってまったく異なります。 UCFの構文には本質的なものではありません。 – wjl

関連する問題