【问题标题】:Hierarchical block <g3> is unconnected in block <main>分层块 <g3> 在块 <main> 中未连接
【发布时间】:2014-06-04 23:26:23
【问题描述】:

请帮我找出这段代码中的警告。

其他警告:

WARNING:Xst:1290 - 分层块 在块

中未连接。 它将从设计中移除。

WARNING:Xst:1290 - 分层块 在块

中未连接。 它将从设计中移除。

WARNING:Xst:1290 - 分层块 在块

中未连接。 它将从设计中移除。

WARNING:Xst:1710 - FF/Latch (无初始值)在块 中具有恒定值 1。此 FF/Latch 将在优化过程中被修剪。

WARNING:Xst:3002 - 此设计包含一个或多个寄存器/锁存器,它们直接 与 Spartan6 架构不兼容。造成这种情况的两个主要原因是 无论是寄存器或锁存器都描述了一个异步集和 异步复位,或用异步描述的寄存器或锁存器 设置或重置但具有相反的初始化值 极性(即初始化值为 1 的异步复位)。

主模块:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE ieee.std_logic_unsigned.all;
use IEEE.NUMERIC_STD.all;
use work.game_package.all;

entity main is
    PORT(   clk: in std_logic;
            reset: in std_logic;
            pressed_left:in std_logic;
            pressed_right:in std_logic;
            pressed_up:in std_logic;
            pressed_down:in std_logic;
            r: out std_logic_vector(2 downto 0);
            g: out std_logic_vector(2 downto 0);
            b: out std_logic_vector(1 downto 0);
            vsync: out std_logic;
            hsync: out std_logic);
end main;

architecture Behavioral of main is

COMPONENT vga
    PORT(   reset: in std_logic;
            vga_clk: in std_logic;
            board_out: in cell_type;
            vsync: out std_logic;
            hsync: out std_logic;
            red: out std_logic_vector(2 downto 0);
            green: out std_logic_vector(2 downto 0);
            blue: out std_logic_vector(1 downto 0);
            hor: out integer range 0 to 799;
            ver: out integer range 0 to 520);
end component;  

COMPONENT clock_divider
    PORT(   clk100:in std_logic;
            reset: in std_logic;
            clk25:out std_logic;
            debouncer_clk:out std_logic);
end component;

COMPONENT debouncer_circuit
    PORT( debouncer_clk:in std_logic;
            p_left:in std_logic;
            p_right:in std_logic;
            p_up:in std_logic;
            p_down:in std_logic;
            direction:out std_logic_vector(1 downto 0));
end component;

COMPONENT game_logic
    PORT(   clk:in std_logic;
            reset:in std_logic;
            outgame: out game_state;
            direction:in std_logic_vector(1 downto 0);
            random_food: in unsigned(9 downto 0);
            vsync:in std_logic;
            game_over_reset: out std_logic;
            cell_out:out cell_type;
            hor: in integer range 0 to 799;
            ver: in integer range 0 to 520);
end component;

COMPONENT pseudo_random_generator
    PORT( clk:in std_logic;
            game: in game_state;
            random:out unsigned(9 downto 0));
end component;

FOR ALL: clock_divider USE ENTITY WORK.clock_divider(Behavioral);
FOR ALL: debouncer_circuit USE ENTITY WORK.debouncer_circuit(Behavioral);
FOR ALL: game_logic USE ENTITY WORK.game_logic(Behavioral);
FOR ALL: pseudo_random_generator USE ENTITY WORK.pseudo_random_generator(Behavioral);
FOR ALL: vga USE ENTITY WORK.vga(Behavioral);

signal game: game_state;
signal cell_out:cell_type;
signal clk25:std_logic;
signal gamereset: std_logic:='0';
signal d_clk:std_logic;
signal direction_out:std_logic_vector(1 downto 0);
signal game_over_reset:std_logic:='0';
signal v_sync:std_logic;
signal h_sync:std_logic;
signal randomfood: unsigned(9 downto 0);
signal hor: integer range 0 to 799;
signal ver: integer range 0 to 520;

begin

g1: clock_divider PORT MAP(clk,reset,clk25,d_clk);
g2: debouncer_circuit PORT MAP(d_clk,pressed_left,pressed_right,pressed_up,pressed_down,direction_out);
g3: game_logic PORT MAP(clk25,reset,game,direction_out,randomfood,v_sync,game_over_reset,cell_out,hor,ver);
g4: pseudo_random_generator PORT MAP(clk25,game,randomfood);
g5: vga PORT MAP(gamereset,clk25,cell_out,v_sync,h_sync,r,g,b,hor,ver);

end Behavioral;

【问题讨论】:

  • 但不存在语法错误,只是这些警告和有关 ram 的信息以及综合设计卡在优化单元 game_logic 上
  • 如果没有各种警告的上下文和各种块的来源,警告将与您的帮助请求相关联似乎注定会退化为二十个问题的游戏,最终结果可能最终证明不令人满意.换句话说,也许你不够具体。我已经看到声称可以通过打开具有多个实例 WARNING:Xst:1290 的项目来生成 1290 警告。
  • 我将所有文件复制到一个新项目中,问题再次出现。它能否与以下信息相关联 INFO:Xst:3019 - HDL ADVISOR - 为信号 推断出 320 个触发器。您可能试图以与赛灵思器件上可用的块和分布式 RAM 资源不兼容的方式来描述 RAM,或者使用不受支持的特定模板。请查看 Xilinx 资源文档和 XST 用户手册以了解编码指南。充分利用 RAM 资源将提高设备使用率并缩短综合时间。
  • 顺便说一下,我可以单独实现内部模块,但game_logic

标签: vhdl xilinx


【解决方案1】:

1290 条警告看起来像您的 g2、g3、g4 块正在被优化,因为它们对顶级输出没有任何影响。

1710 警告似乎支持这一假设,说在导致 cell_out 信号出现的某个块内的某个地方存在错误(我认为 cell_out 不是假定恒定的)一个常量值,之后优化会推送常量并修剪所有想要生成它的东西。

如果没有看到组成文件,我无法对 3002 警告说任何话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多