私は VHDL を初めて使用し、大きな数値 (256 ビット) の計算を高速化するために dsp ブロックを使用する必要があるプロジェクトを作成しようとしています。coreGenerator を使用してこの DSP48macro を作成しましたが、generate ステートメントで構文エラーが発生します。私が間違っているところを誰かが助けてくれたらお願いします。
注記: 最初の部分は、coregen によって生成されたコンポーネントです。他の部分は、ブロックをインスタンス化しようとしている部分です。シングルブロックは問題なく動作しています。他の情報が必要な場合は、助けてください。生成ステートメントでエラーが発生しているため、どこが間違っているのか教えていただければ幸いです。
A(i)、B(i) は (47 downto 0) と cin, cout の両方の 0 から 5 の配列をキャリーを伝搬します。
ありがとうございました。
COMPONENT hfh
PORT (
clk : IN STD_LOGIC;
carryin : IN STD_LOGIC;
c : IN STD_LOGIC_VECTOR(47 DOWNTO 0);
concat : IN STD_LOGIC_VECTOR(47 DOWNTO 0);
carryout : OUT STD_LOGIC;
p : OUT STD_LOGIC_VECTOR(47 DOWNTO 0)
);
END COMPONENT;
begin
cin(0)<= carryin;
process(clk, Signal_A , Signal_B, cin )
begin
for i in 0 to 5 generate --error here
begin
blocks : hfh
PORT MAP ( -- error here
clk => clk,
carryin => cin(i),
c => Signal_A(i),
concat => Signal_B(i) ,
carryout => cout(i),
p => p
); -- error here
end generate;
end process;