【问题标题】:using divider core from xilinx使用 xilinx 的分频器内核
【发布时间】:2023-04-08 23:48:02
【问题描述】:

我不知道如何正确使用 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;

【问题讨论】:

  • 如果您发布实际的错误消息会很有帮助...
  • 错误是。那个 rfd 不在。
  • 发布 XST 报告的 实际 错误消息将帮助您更快地获得响应,因为人们可以缩小网络冲突的可能性。你为什么不呢?

标签: vhdl fpga xilinx


【解决方案1】:

不确定您的错误信息是什么,但这里有一些基于代码的 cmets。

第一:

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;

你真的不想要所有这些库,它们会以各种方式发生冲突。

Just use numeric_std(事实上,在这个例子中你甚至不需要它)

第二:

您可能还会受到影响,因为您的顶级实体 pg 只有一个时钟输入。这些工具会注意到没有任何输出被发送到外部世界并优化整个事情!

尝试将分频器的输入和输出带到外部世界。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多