In the case of a memory description inan HDLcode where different datais writtento the same address under different conditions, 14.2 XSTis not able to handle this particular situation and results in incorrect logic.
Here is an example of a HDL code depicting the above explained scenario:
if rising_edge( clk ) then
if (rst) then
mem(addr) <='0';
else
mem(addr) <= data;
end if;
end if;
In the above description of the HDL code,different data is written to the same address under different conditions. Here "0"and "data" are written to the same address "addr" under different conditions(rst high and rst low),14.2 XST does not support this type of data handling and results in incorrect logic. This issue has been fixed in 14.4 XST with a flag/switch option. For XST to support the above behavior, the following lines need to be added to the .scr/.xst file before the run command:
OPTION:1
set -checkcmdline no
set -merge_ram_enables 1
Please ignore the following bogus warning messages that would appear in the synthesis report file, which is unrelated to the fix:
WARNING:Xst:15 - skipping parameter : merge_ram_enables
WARNING:Xst:1363 - Option "-merge_ram_enables" is not available for command set.
OPTION:2
To remove the above mentioned warnings, the following actions have been taken:
WARNING:Xst:1363 - Option "-merge_ram_enables" is not available for command set.
-merge_ram_enables 1
The .scr/.xst will look like the following:
set -checkcmdline no
run
...
...
-merge_ram_enables 1
There will not be any difference in the functionality when using either of the two options, except that in the last option the warning messages will be cleared.
AR# 53319 | |
---|---|
日期 | 02/19/2013 |
状态 | Active |
Type | 已知问题 |
器件 | |
Tools |