From f51de1b26a92eef612e88f3a832eae87f061c935 Mon Sep 17 00:00:00 2001 From: Krzysztof Boronski Date: Thu, 12 May 2022 07:04:35 -0500 Subject: [PATCH] Added acceptable cell placement list to CellInstance Signed-off-by: Krzysztof Boronski --- interchange/LogicalNetlist.capnp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/interchange/LogicalNetlist.capnp b/interchange/LogicalNetlist.capnp index eba0feb..fcd77f2 100644 --- a/interchange/LogicalNetlist.capnp +++ b/interchange/LogicalNetlist.capnp @@ -58,6 +58,13 @@ struct InstRef { annotation instRef(*) :InstRef; using InstIdx = UInt32; +struct SiteTypeRef { + type @0 :Ref.ReferenceType = rootValue; + field @1 :Text = "siteTypeList"; +} +annotation siteTypeRef(*) :SiteTypeRef; +using SiteTypeIdx = UInt32; + struct Netlist { name @0 : Text; @@ -78,10 +85,17 @@ struct Netlist { } struct CellInstance { - name @0 : StringIdx $stringRef(); - propMap @1 : PropertyMap; - view @2 : StringIdx $stringRef(); - cell @3 : CellIdx $cellRef(); + name @0 : StringIdx $stringRef(); + propMap @1 : PropertyMap; + view @2 : StringIdx $stringRef(); + cell @3 : CellIdx $cellRef(); + placements @4 : List(CellInstancePlacement); + } + + # Acceptable physical placement for a cell instance + struct CellInstancePlacement { + siteType @0 : SiteTypeIdx $siteTypeRef; + bel @1 : StringIdx $stringRef; } struct Cell {