AR# 1689: Foundation XVHDL: missing TNM attribute will cause XNFPREP Error 7845
Foundation XVHDL: missing TNM attribute will cause XNFPREP Error 7845
When implementing an XVHDL design that contains TIMESPECS, XNFPREP issues the following error:
XNFPREP ERROR 7845: The following TS parameter is invalid because '[name]' could not be found.
If '[name]' is meant to be a group name, it should either be defined by a TIMEGRP parameter or be matched by a TNM parameter somewhere in the design. (If '[name]' is already defined by a TIMEGRP parameter, check the other messages in this section to see if that TIMEGRP was found to be invalid.) If '[name]' is meant to refer to a whole class of symbols, it should be one of the following values: FFS, PADS, RAMS or LATCHES.
When using TIMESPECS in XVHDL 2.4, the TNM attribute will not be attached to signals which are connected to function calls. This will cause the XNFPREP error if it causes an entire timegroup to not exist.
When function calls are used, XVHDL will base the name of the inferred symbol, and all attached signals, on the function name.
-- Example -- Assume that there is a function dff(d_in, clock, q_out) -- defined which describes a simple D-type flip-flop.
architecture EXAMPLE_ARCH of EXAMPLEVHD is
attribute TNM: string; attribute TNM of OUT_DATA0: signal is "OUT0"; attribute TNM of OUT_DATA1: signal is "OUT1";
begin -- TNM will not be assigned in function calls dff(IN_DATA(0), CLOCK, OUT_DATA0);
-- TNM will be assigned in a process process(IN_DATA(1), CLOCK, OUT_DATA1) begin if (CLOCK'event and CLOCK='1') then OUT_DATA1 <= IN_DATA(1); end if; end process;
... end EXAMPLE_ARCH;
The flip-flop inferred by the dff function call will be named dff_<num>_<output>, whereas the process will infer a flip-flop named OUT_DATA1. The difference in symbol names causes the TNM to be lost when using a function call and attached when using a process.
When using TNM attributes, avoid using function calls. See also (Xilinx Solution 1487) for more examples of using TNM attributes in Foundation XVHDL.