01-29-2021 07:04 PM - edited 01-29-2021 08:08 PM
My design takes up 4 LUT so it can be placed in one Slice. I want the placement in specific locations. Since my design is parametric, I want to just instantiate multiple instances of the Module and pass the Slice Location in a parameter as LOC=SLICE_XnYm . I don't wanna mention which Cell is taking which LUT.
I want to only provide Slice information.
with only using the LOC=SLICE_XnYm inside the module, It show some some LUTS in Cyan and some in orange. Cyan as Placed and Orange as Fixed. Will it make any issue?
`timescale 1ns / 1ps (* keep_hierarchy = "yes" *) module RO #(parameter SLICE = "SLICE_X43Y0") ( (* dont_touch = "true" *) input enable, (* dont_touch = "true" *) output clk ); (* LOC = SLICE *) // Intermediate Connections (* dont_touch = "true" *) wire w1,w2,w3; (* dont_touch = "true" *) and #2 (w1, enable, clk); (* dont_touch = "true" *) not #1 (w2,w1); (* dont_touch = "true" *) not #1 (w3, w2); (* dont_touch = "true" *) not #1 (clk, w3); endmodule
`timescale 1ns / 1ps module top( output out ); wire enable, clk1, clk2; RO #(.SLICE("SLICE_X0Y99")) R0(enable, clk1); RO #(.SLICE("SLICE_X0Y98")) R1(enable, clk2); endmodule
01-29-2021 10:09 PM - edited 01-29-2021 10:10 PM
Update: If I use SLICEL slices then the placement is OK, but It's status is still Fixed not Placed.