0

VHDL でコンパレータのデータフロー デザインを作成しようとしています。ザイリンクスでは問題なくコンパイルおよびシミュレーションされますが、Cadence/NCLaunch を使用する必要があります。同じコードを gedit にコピーして実行すると、セミコロンに関するエラーが発生します。

私のコードは:

library ieee;
use ieee.std_logic_1164.all;
-----------------------------------------------------
entity Comparator is
port(   A:    in std_logic_vector (3 downto 0);
        B:    in std_logic_vector (3 downto 0);
        AeqB:  out std_logic;
    AltB:  out std_logic;
    AgtB:  out std_logic);
end Comparator;


architecture dataflow of Comparator is

signal AeB : std_logic;
signal AlB : std_logic;
signal AgB : std_logic;
signal i : std_logic_vector (3 downto 0);
signal j : std_logic_vector (3 downto 0);

begin
    B1: BLOCK BEGIN   
        AeB <= i(3) AND i(2) AND i(1) and i(0);
        AgB <= j(3) or j(2) or j(1) or j(0);
        AlB <= AeB nor AgB;
    END BLOCK B1;


    B2: BLOCK BEGIN
            i <= a xnor b;
    END BLOCK B2;


    B3: BLOCK BEGIN
        j(3) <= (not b(3)) and a(3);
        j(2) <= i(3) and not b(2) and a(2);
        j(1) <= i(3) and i(2) and not b(1) and a(1);
        j(0) <= i(3) and i(2) and i(1) and not b(0) and a(0);       
    END BLOCK B3;


    B4: BLOCK BEGIN
        AeqB <= AeB;
        AltB <= AlB;
        AgTB <= AgB;
    END BLOCK B4;


end dataflow;

...そして私が得るエラーは次のとおりです:

i <= a xnor b;
       |
ncvhdl_p: *E,EXPSMI (/ugrad/syedhuq/ECE425/Lab2/Comparator.vhd,29|11): expecting a semicolon (';') [9.5.1].

私が知る限り、そこにセミコロンがあります...また、ステートメントを次のような4つの個別のステートメントに置き換えると

i(n) <= a(n) xnor b(n); //[n = 1, 2, 3, 4], 

同じエラーが4回発生します。誰でもこれで私を助けることができますか??

また、Synopsys (VCSMX) で正常にコンパイルされ、テストベンチ ファイルも同様にコンパイルされますが、リンク プロセス中に次のように表示されます。

Design unit 'COMPARATOR(BEHAVE)' from library '.' cannot be opened for 
  reading.
  Possible causes:
  [1] Incorrect logical to physical mapping in synopsys_sim.setup file. 
  [2] Intermediate file generation was prematurely terminated during analysis.
  Reanalyze the design unit and resolve any errors that occur during analysis.

テストベンチ コードの関連する行は次のとおりです。

for x1: Comparator use entity work.Comparator(Behave);
4

1 に答える 1