【发布时间】: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