FC2カウンター FPGAの部屋 ISE8.1のXST
FC2ブログ

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

FPGAの部屋

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

ISE8.1のXST

ISE8.1で論理合成しようとしているがどうもおかしいようだ。
前にもおかしいということを書いたが、ISE6.1とISE7.1のXSTで論理合成してエラーが出ていないがISE8.1で論理合成しようとするとエラーが出てしまう。

library ieee;
use ieee.std_logic_1164.all;
library work;
use work.lpm_pack.all;
use work.pipe_reg_pack.all;

entity id_ex_reg is
 generic(
  depth : integer := 13;
  width : integer := 8);
 port(
  data : in std_2dvec_idex;
  clk : in std_logic;
  enable : in std_logic := '1';
  aclr, aset : in std_logic := '0';
  shift_reg : in std_logic := '0';
  shift : in std_logic := '0';
  shift_in : in std_logic_vector(width-1 downto 0);
  sclr : in std_logic := '0';
  q : out std_2dvec_idex;
  shift_out : out std_logic_vector(width-1 downto 0));
end id_ex_reg;

というようなentityの部分なのだがwidthにgenericのところで8を入れられているはずなのだが、
has two possible definitions in this scope.
というエラーが出てしまう。ここに2つの定義があるというような意味だろうと思うが、これではだめなのか?
width-1の部分を7にするとエラーが無くなる。
なんか、ISE8.1のXSTは相当変更があるような感じである。ずっとこうなるんだったらVHDLの書き方を変えなければならないかな???

----------------
家のパソコンでは上のようにだめだったが、職場の購入ISE8.1でプロジェクト変換しコンパイルしたら正常に論理合成できた。家に帰ったら原因を調査してみる。

大変失礼しました。ガセビアになってしまいました。
家のプロジェクトにはlpm_pack.vhdが入ってませんでした。
入れたら正常にに論理合成できました。お騒がせしてすみません。
たーぼさんこれに懲りずにまたコメントお願いします。

2/28
寝るのに布団に入ってから、どうもおかしいのに気が付いた。
lpm_pack.vhdはアルテラを使っていた名残でLPMをVHDLで作って使っていた時のもの。dffenaやshiftreg等のcomponent宣言しか入っていないはず。それなのにエラーが出るのはおかしい。
正常に論理合成できるプロジェクトのuse work.lpm_pack.all;をコメントアウトしてやってみたが、思い通りに論理合成できた。何か他にもどこかおかしかったようだ。これ以上の原因追求は前のプロジェクトを捨ててしまったので終わりとする。
  1. 2006年02月26日 12:35 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:4

コメント

同じ現象でました

初めまして「たーぼ」といいます。
いつも勉強させてもらっています。
ISE8.1のXSTで同じ現象がでましたが解決できました。
自分の場合は、使用していたライブラリがISE7.1のXSTで
コンパイルしていたのでライブラリをISE8.1のXSTでコンパイル
すればOKになりました。
この場合、lpm_packとpipe_reg_packはISE8.1のXSTでコンパイル
していますでしょうか?
  1. 2006/02/27(月) 09:45:11 |
  2. URL |
  3. たーぼ #-
  4. [ 編集 ]

こんにちは。はじめまして。
情報ありがとうございます。本当にうれしいです。
現在、職場の購入版ISEではちゃんとコンパイルできることを確認しました。家のパソコンではだめなようなので、帰ったら原因を調査してみます。
  1. 2006/02/27(月) 11:40:28 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

lpm_packとpipe_reg_packはpackageでプロジェクトの中に入っているはずなんですけど。
コンパイル済みライブラリを使用されているのでしょうか?
  1. 2006/02/27(月) 12:55:17 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

はい、コンパイル済みのライブラリを使用しています。
今回の場合、このライブラリがISE7.1の時に作成した物だったので
同じ様な現象が発生しました。
ISEのプロジェクトの中に入っていると毎回コンパイルされるので
問題ないと思います。
お役に立てなくてごめんなさい...
ちなみに、自分が発生した問題は、このソースで言うところの「width」がエラーになっていたのではなく、「-(マイナス)」でエラーになっていました。
マイナスをプラスにしたり「width」だけにしたり数値だけにしたり、ライブラリを使用しないようにした場合はOKでした。xstのエラーメッセージで最初に「-」が表示されていたのでソース上のマイナスがエラーだと言うことに気がつかず、ずっとハイフォンだと思っていました。
  1. 2006/02/27(月) 14:41:01 |
  2. URL |
  3. たーぼ #-
  4. [ 編集 ]

コメントの投稿


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

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