我不知道如何正确使用来自 xilinx 的除数 ip 内核以及我做错了什么。
这是代码简化为问题,我在 ISE 中额外做的就是添加除数核心白衣
CE - 启用
商宽度 17
除数宽度 11
余数有
符号
每个器件 2 个时钟
和带有NET“CLK_50MHZ”定义的ucf文件
我无法摆脱这个错误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;