VHDL Ошибка синтаксиса объявления общего компонента - PullRequest
0 голосов
/ 01 июня 2018

У меня есть простой общий одиночный тактовый генератор, и у него есть несколько общих значений.Тем не менее я получаю синтаксическую ошибку при объявлении.Полная структура кода:

entity main is
Port ( 
-- components
);
end main;


architecture Behavioral of main is
component xilinx_simple_dual_port_1_clock_ram is 
    generic (
    RAM_WIDTH : integer, --< what is wrong here?
    RAM_DEPTH : integer,
    RAM_PERFORMANCE : string,
    INIT_FILE : string
    );
port 
    (
    addra : in std_logic_vector(clogb2(RAM_DEPTH)-1) downto 0);
    addrb : in std_logic_vector(clogb2(RAM_DEPTH)-1) downto 0); 
    dina  : in std_logic_vector(RAM_WIDTH-1 downto 0);
    clka  : in std_logic;
    wea   : in std_logic;
    enb   : in std_logic;
    rstb  : in std_logic;
    regceb: in std_logic;
    doutb : out std_logic_vector(RAM_WIDTH-1 downto 0)
    );

    end component;

begin
ramA: xilinx_simple_dual_port_1_clock_ram
     generic map (
     RAM_WIDTH => 18,
     RAM_DEPTH => 1024,
     RAM_PERFORMANCE => "HIGH_PERFORMANCE",
     INIT_FILE => "" 
    )
      port map  (
     addra  => addra, 
     addrb  => addrb, 
     dina   => dina,  
     clka   => clka,  
     wea    => wea,   
     enb    => enb,   
     rsta   => rsta,  
     regceb => regceb,
     doutb  => doutb 
    );

Остальные сигналы были учтены, включая сопоставление портов с модулем Bram.Я получаю синтаксическую ошибку в общем объявлении.

1 Ответ

0 голосов
/ 01 июня 2018

Вы должны дать универсальному значению по умолчанию:

RAM_WIDTH : integer := 16;
--                       ^

Также используйте ;, а не ,

...