Creating a Location Assignment File
The location assignment file is a text file with the extension .placeloc. Each assignment is on a single line with tabs or spaces between the data:
<block name> <x> <y> <subblk>
- <block name> is the primitive cell name.
- <x> is the horizontal location.
- <y> is the vertical location.
- <subblk> is the sub-block location.
You must include all data for each assignment.
Any text following a # character is ignored (treated as a comment).
Tip: Use the Floorplan Editor to help you find the x, y coordinates for a
tile. When you click a tile the coordinates are shown in ().
To make it easier for you to create assignments, the Efinity software can dump all placement data into a file when placement finishes. You can copy and paste the primitive cells you want to constrain into your .placeloc file and then modify the x, y coordinates.
To dump the placement data, add the following line to your efx_pnr_settings.ini file and re-run the placer.
dump_placeloc = on
Important: Do NOT simply copy and paste the entire dump file into your
.placeloc file or the software may not be able to perform
placement efficiently. Only copy the primitives you want to constrain.
LUT and Flipflop
The example packs an EFX_FF with its driver, LUT_A, an EFX_LUT4.
#block name x y subblk
#---------- -- -- ------
LUT_A 3 3 0
FF_B 3 3 2 # LUT_A drives FF_B
SRL8 Chain
This example assigns locations to every cell in an SRL8 chain.
#block name x y subblk
#---------- -- -- ------
first_srl8 5 4 0
second_srl8 5 5 0
third_srl8 5 6 0
fourth_srl8 5 7 0
Parallel Cascaded DSP Block
This example assigns locations to every EFX_DSP24 across two chains. There can be
two EFX_DSP24 cells per DSP tile.
#block name x y subblk
#---------- -- -- ------
chain0_dsp24_0 17 2 0
chain1_dsp24_0 17 2 1
chain0_dsp24_1 17 22 0
chain1_dsp24_1 17 22 1