с использованием сердечника делителя от xilinx

Я не знаю, как правильно использовать divisor ip core от xilinx и что я делаю не так.

Вот код, сведенный к проблеме, и все, что я делаю дополнительно в ISE, это то, что я добавляю ядро ​​делителя с

CE - включен
Ширина частного 17
Ширина делителя 11
Остаток
Со знаком
2 тактовых импульса на подразделение

и файл ucf с определением NET "CLK_50MHZ"

Я не могу избавиться от этой ошибки http://www.xilinx.com/support/answers/13873.htm

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_signed.ALL;


use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity pg is
 Port ( CLK_50MHz : in  STD_LOGIC );
end pg;

architecture Behavioral of pg is

signal CLK : std_logic;
signal div_ce :  std_logic := '0' ;
signal div_rfd :  std_logic;
signal dividend_std : std_logic_vector (16 downto 0) := "00000000000000000";
signal divisor_std: std_logic_vector (10 downto 0) := "00000000000";
signal quotient_std:  std_logic_vector (16 downto 0) ;
signal fractional_std :  std_logic_vector (10 downto 0);


component divider is 
port (   clk: in  std_logic;
            rfd: in  std_logic;
            ce:  in std_logic;
            dividend : in std_logic_vector (16 downto 0);
            divisor: in  std_logic_vector (10 downto 0);
            quotient: out std_logic_vector (16 downto 0); 
            fractional : out  std_logic_vector (10 downto 0)
            );          
end component;


begin   
cdiv: process(CLK_50MHz)
begin
    if(CLK_50MHz'event and CLK_50MHz='1') then
        CLK<=not CLK;
    end if;
end process cdiv;


VVV:divider
port map( clk=>CLK,
         rfd=>div_rfd, 
         ce=>'1',
         dividend=>dividend_std,  
         divisor=>divisor_std,   
         quotient=>quotient_std,  
         fractional=>fractional_std
);

end Behavioral;

person Luka Rahne    schedule 12.02.2011    source источник
comment
Было бы полезно, если бы вы опубликовали фактическое сообщение об ошибке...   -  person Saar Drimer    schedule 13.02.2011
comment
ошибка была. Этот RFD отсутствует, а не внутри.   -  person Luka Rahne    schedule 17.02.2011
comment
публикация фактического сообщения об ошибке, как сообщает XST, поможет вам быстрее получить ответ, потому что люди могут сузить вероятность конфликтующих сетей. Почему бы и нет?   -  person Saar Drimer    schedule 18.02.2011


Ответы (1)


Не уверен, что у вас за сообщение об ошибке, но вот несколько комментариев, основанных на коде.

Первый:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_signed.ALL;


use IEEE.NUMERIC_STD.ALL;

Вам действительно не нужны все эти библиотеки, они будут конфликтовать по-разному.

Просто используйте numeric_std (на самом деле, в этом примере вам даже это не нужно)

Второй:

Вы также можете пострадать, поскольку ваш объект верхнего уровня pg имеет только тактовый вход. Инструменты заметят, что никакие выходные данные никогда не отправляются во внешний мир, и оптимизируют все это!

Попробуйте вывести вход и выход делителя во внешний мир.

person Martin Thompson    schedule 15.02.2011