FC2カウンター FPGAの部屋 UCFの書き方2

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

UCFの書き方2

今度は、タイミング制約だ。
一番基本的な制約は、動作周波数である。
制約エディタ(ISE7.1i)でやると一番簡単だ。制約エディタの最初の画面に、クロックはリストされている。右側のPeriodの欄をダブルクリックすると、クロック制約を設定するダイアログが開く。
constraint_editor2.jpg
Clock Signal Definitionの欄にクロック制約を入力することになるが、大体はSpecify Timeの欄に入力することになる。
予定動作周波数の周期をTimeに入力する。この場合は50MHzの予定なので、周期は20nsなので、20と入力。デューティはだいたの場合は50%だろうから、Time HIGHはディフォルトの50でOK。
テキストエディタで見ると制約はこうなる。
NET "clk" TNM_NET = "clk";
TIMESPEC "TS_clk" = PERIOD "clk" 20 ns HIGH 50 %;

今度はセットアップ時間の設定。制約エディタでPortsタブをクリックすると、ポート(入出力ピン)の設定が出来る。当たり前だが入力ポートのみセットアップ時間を設定できる。Pad to Setup欄をダブルクリック。Pad to Setupのダイアログが開く。
constraint_editor3.jpg
Time Requirementの欄にセットアップ時間を入力(20ns)。クロックが複数ある場合は、Relative to Clock Pad Netで関連するクロックを選択。この場合はclkのみ。
テキストエディタで見るとこうなる。
NET "sw<0>" OFFSET = IN 20 ns BEFORE "clk" ;
ちなみにベクタの括弧が<>になっている。UCFの書き方1では、()だったが、これは論理合成ツールによって異なっている。()はSynplify Pro、<>はXST(ISEのディフォルト)。XSTは括弧をプロパティから変更可能。
この後、ベクタに同じセットアップ時間を設定する場合には、テキストエディタで、<*>に変更する。
NET "sw<*>" OFFSET = IN 20 ns BEFORE "clk" ;

今度は、クロックからの出力時間を設定する。同じPortsタブの画面から、Clock to Padをダブルクリック。そうすると、Clock to Padのダイアログが開く。
constraint_editor4.jpg
OFFSETの欄にクロックからの出力時間を設定(20ns)。後は、セットアップ時間と同様。
テキストエディタで見るとこうなる。
NET "seg_out<0>" OFFSET = OUT 20 ns AFTER "clk" ;
これで、タイミング制約の基礎はOK。
次回は、応用編。
  1. 2005年09月25日 10:32 |
  2. UCFの書き方
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/26-4bfd7444
この記事にトラックバックする(FC2ブログユーザー)