Im 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;
谁能告诉我如何删除警告,为什么会显示此警告?谢谢
发布于 2016-10-19 09:05:43
查看流程的内容:
ROW <= row_counter;
if switch /= '1' then
LED <= "11111111";
else
LED <= single_row;
end if;
这里使用的是什么信号?我可以看到row_counter
、switch
和single_row
被用作赋值的源,或者在条件子句中使用。现在看看你的敏感度列表:
row_counter
您只告诉进程要对这一个信号的变化敏感,而您的进程实际上还依赖于另外两个信号。这就是警告的意思。
大多数综合工具忽略灵敏度列表,并以任何一种方式生成相同的硬件。然而,大多数模拟器不会。这可能会导致您的设计在模拟器中所做的事情与它在真实硬件中所做的事情之间存在混淆的差异。
如果您的工具链支持,您可以通过将列表替换为关键字all
来创建自动敏感度列表。所以你会有像process (all)
这样的东西。
https://stackoverflow.com/questions/40126331
复制相似问题