FC2カウンター FPGAの部屋 2006年02月26日
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