^

AR# 30706 10.1 EDK - "ERROR:Xst:1617, Processing TIMESPEC TS_ASYNC_FIFO_sum_data_0_to_microblaze_0: user TIMEGRP..."

Keywords: FSL, bus, asynchronous, time, group, MicroBlaze, uBlaze, MB, FIFO, first, in, first, out

When using the FSL bus on my MicroBlaze system, I receive warnings and errors similar to the following:

"WARNING:Xst:2170 - Unit sum_data_0_to_microblaze_0 : the following signal(s) form a combinatorial loop: sum_data_0_to_microblaze_0/Using_FIFO.Async_FIFO_Gen.Use_Control.Use_DPRAM1.Async_FIFO_I1/Direction_0_or0000.
WARNING:Xst:2170 - Unit microblaze_0_to_ccx2mb_0 : the following signal(s) form a combinatorial loop: microblaze_0_to_sum_data_0/Using_FIFO.Async_FIFO_Gen.Use_Control.Use_DPRAM1.Async_FIFO_I1/Direction_0_or0000.

Optimizing unit <system> ...
Mapping all equations...
ERROR:Xst:1617 - Processing TIMESPEC TS_ASYNC_FIFO_sum_data_0_to_microblaze_0: user TIMEGRP 'sum_data_0_to_microblaze_0_fsl' must be previously defined in FROM/TO constraint.

ERROR:Xst:1489 - Constraint annotation failed."

A problem was found in one of the FSL core's supporting files. To work around the problem:

1. Open C:\Xilinx\10.1\EDK\hw\XilinxProcessorIPLib\pcores\fsl_v20_v2_11_a\data\fsl_v20_v2_1_0.tcl in a text editor.

2. Insert the following line between lines 79 and 80:

set use_control [xget_hw_parameter_value $mhsinst "C_USE_CONTROL" ]

3. Replace lines 97 - 98 (98 - 99 after the new line insertion):

From

puts $outputFile "INST \"${name_lower}/Using_FIFO.Async_FIFO_Gen.Use_Control.Use_DPRAM1.Async_FIFO_I1/Mram*\" TNM = \"${name_lower}_fsl\"; "
puts $outputFile "TIMESPEC \"TS_ASYNC_FIFO_$name_lower\" = FROM \"${name_lower}_fsl\" TO FFS $read_clock_period ps; "

With

if {($use_control == 1)} {

puts $outputFile "INST \"${name_lower}/Using_FIFO.Async_FIFO_Gen.Use_Control.Use_DPRAM1.Async_FIFO_I1/Mram*\" TNM = \"${name_lower}_fsl\"; "
puts $outputFile "TIMESPEC \"TS_ASYNC_FIFO_$name_lower\" = FROM \"${name_lower}_fsl\" TO FFS $read_clock_period ps; "

} else {

puts $outputFile "INST \"${name_lower}/Using_FIFO.Async_FIFO_Gen.Use_Data.Use_DPRAM0.Async_FIFO_I1/Mram*\" TNM = \"${name_lower}_fsl\"; "
puts $outputFile "TIMESPEC \"TS_ASYNC_FIFO_$name_lower\" = FROM \"${name_lower}_fsl\" TO FFS $read_clock_period ps; "

}

4. Save and close the file.
AR# 30706
Date Created 04/11/2008
Last Updated 03/24/2009
Status Active
Type
Feed Back