01-31-2019 06:49 AM
Is there a way to obtain all library cells that are supported by the device used?
I.e. get_lib_cells returns a list of all cells for the architecture currently open but for some cells there are no bels available.
01-31-2019 07:43 AM
Hi, @redted ,
Hope my reply in this thread can help you:
02-01-2019 08:14 AM
Hi @hongh,
while that is a good starting point I miss some primitives, i.e. FIFOs, which are mapped onto the BRAMs. If I select a BRAM tile and run get_sites -of [get_selected_objects ] I get RAMB18_X1Y95 RAMB18_X1Y94 RAMB36_X1Y47, the FIFO sites are not visible. Do you know how I can fix that?
02-01-2019 08:59 AM
Hi, @redted ,
There is no FIFO site.
FIFO primitive is also placed in RAMB18_X?Y? site, same as BRAM.
02-01-2019 09:04 AM
Hi, @redted ,
Can the below command be helpful?
join [get_primitives] \n
02-04-2019 08:35 AM
Hello @hongh,
thank you so much for your continued support, I actually missed get_primitives, however it seems to output a bit more, i.e. if I run it on a design with an xczu3eg-sfva625-1-i I get for instance a cell GTHE4_CHANNEL, however, I can't place the cell, since the target device does not have ANY compatible sites. I.e. the command seems to report the primitives for the current device family rather than the part.
Regarding the "FIFO site", I was talking about bels. If I have a placed design and run "get_property TYPE [get_bels -of <placedFifo>]" I get FIFO18E2_FIFO18E2 or FIFO36E2_FIFO36E2, however, if I use this bel type to look for available bels I get an empty result:
get_bels -filter TYPE==FIFO36E2_FIFO36E2&&!IS_USED.
By the way, when skimming the results from get_primitives I noticed that LUT6_2 was absent, further investigation showed me that this actually is a macro. Is there a way to get the available macros as well? ([get_macros -help] states that it only reports macros used in the design, and it does not even return LUT6_2 even though I am working on a design with a placed LUT6_2)
02-04-2019 09:37 AM
Hi, @redted ,
I try the below commands in xczu3eg-sfva625-1-i. It seem that the type of the bel you are using is incorrect, which cause no object found.
%get_property TYPE [get_bels RAMB18_X1Y70/RAMBFIFO18]
RAMBFIFO18E2_RAMBFIFO18E2
%get_bels -filter { TYPE==RAMBFIFO18E2_RAMBFIFO18E2 && !IS_USED}
RAMB18_X0Y70/RAMBFIFO18 RAMB18_X1Y70/RAMBFIFO18 RAMB18_X2Y70/RAMBFIFO18 ...
For the primitive LUT6_2, it just shares the same site of the related LUT6.