VHDL XST信号警告

时间:2016-10-19 08:44:06

标签: signals warnings vhdl

我makian一个vhdl项目,我得到这个警告: 它是一个小的应用程序,在8x8矩阵显示屏上显示2个字母。

    WARNING:Xst:819 - "C:/fitkitSVN/apps/demo/xhrbot01/fpga/ledc8x8.vhd" line 114: One or more signals are missing in the process sensitivity list. To enable synthesis of FPGA/CPLD hardware, XST will assume that all necessary signals are present in the sensitivity list. Please note that the result of the synthesis may differ from the initial design specification. The missing signals are:
   <switch>, <single_row>

这是第114行的过程

-- Display lines 
    display_lines: process (row_counter)
    begin
        ROW <= row_counter;
        if switch /= '1' then
            LED <= "11111111";
        else
            LED <= single_row;
        end if;
    end process;
----------------

此过程中使用了信号声明

-- Indent of row
signal row_counter: STD_LOGIC_VECTOR (0 to 7) := "10000000";

-- One row
signal single_row: STD_LOGIC_VECTOR (0 to 7);

-- Switch using for displaying correct row 
signal switch: STD_LOGIC;

有人能告诉我如何删除警告,为什么会显示此警告? 谢谢

1 个答案:

答案 0 :(得分:0)

查看流程的内容:

    ROW <= row_counter;
    if switch /= '1' then
        LED <= "11111111";
    else
        LED <= single_row;
    end if;

这里使用了什么信号?我可以看到row_counterswitchsingle_row被用作作业的来源或条件子句。现在看看您的敏感度列表:

row_counter

您只告诉过程对这一信号的变化很敏感,但您的过程实际上也取决于其他两个信号。这就是警告的含义。

大多数综合工具会忽略灵敏度列表,并以任何方式生成相同的硬件。但是,大多数模拟器都不会。这可能会导致设计在模拟器中的作用与实际硬件中的作用之间存在混淆。

如果您的工具链支持它,您可以通过将列表替换为关键字all来创建自动敏感列表。所以你会有类似process (all)的东西。