summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-04-22 10:28:10 +0100
committergatecat <gatecat@ds0.me>2021-04-22 10:28:10 +0100
commit596bccc6e57c6c57df1d99d4af300d6a2e722ed9 (patch)
treeed4a1608eb8ebfa63775a4606701d2c3dd50dcf9
parent5208d794d318e9151b93120d7e5ba75d8aef45e7 (diff)
downloadfpga-interchange-schema-596bccc6e57c6c57df1d99d4af300d6a2e722ed9.tar.gz
fpga-interchange-schema-596bccc6e57c6c57df1d99d4af300d6a2e722ed9.tar.bz2
fpga-interchange-schema-596bccc6e57c6c57df1d99d4af300d6a2e722ed9.zip
Allow macro expansions conditional on parameter match
Signed-off-by: gatecat <gatecat@ds0.me>
-rw-r--r--interchange/DeviceResources.capnp8
1 files changed, 8 insertions, 0 deletions
diff --git a/interchange/DeviceResources.capnp b/interchange/DeviceResources.capnp
index 5a52bec..465e212 100644
--- a/interchange/DeviceResources.capnp
+++ b/interchange/DeviceResources.capnp
@@ -242,6 +242,14 @@ struct Device {
struct PrimToMacroExpansion {
primName @0 : StringIdx $stringRef();
macroName @1 : StringIdx $stringRef();
+ # Optionally, primitive to macro expansions can be conditional on a
+ # parameter match. For example, I/O buffer expansions might be
+ # different between true and pseudo differential IO types. The
+ # expansion is used if **any** of the parameters specified match.
+ union {
+ always @2 : Void;
+ parameters @3 : List(Dir.Netlist.PropertyMap.Entry);
+ }
}
# Cell <-> BEL and Cell pin <-> BEL Pin mapping