diff options
author | litghost <537074+litghost@users.noreply.github.com> | 2021-02-23 17:54:50 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-23 17:54:50 -0800 |
commit | b96c249b38b71aabc1674e9a61751deb49352638 (patch) | |
tree | d68148f64de5989b3cfa6fa00d18418ae58185a6 | |
parent | 0c991260328f4a8231ba55d6aab2dffc817bfcb1 (diff) | |
parent | 2e0f8f77ec9c14c2243d8d8df38a9c3942bfbb38 (diff) | |
download | fpga-interchange-schema-b96c249b38b71aabc1674e9a61751deb49352638.tar.gz fpga-interchange-schema-b96c249b38b71aabc1674e9a61751deb49352638.tar.bz2 fpga-interchange-schema-b96c249b38b71aabc1674e9a61751deb49352638.zip |
Merge pull request #10 from litghost/flesh_out_lut_section
Add INIT parameter field and add comments to LUT section.
-rw-r--r-- | interchange/DeviceResources.capnp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/interchange/DeviceResources.capnp b/interchange/DeviceResources.capnp index 21a7351..4954698 100644 --- a/interchange/DeviceResources.capnp +++ b/interchange/DeviceResources.capnp @@ -536,29 +536,57 @@ struct Device { ###################################### struct LutDefinitions { struct LutCell { - cell @0 : Text; - inputPins @1 : List(Text); + # What cell type is this? + cell @0 : Text; + + # What pins are part of the LUT equations? + # Pins are listed in LSB first order. + inputPins @1 : List(Text); + + # How is the LUT equation stored? + equation : union { + # Equation is stored as an INIT style parameter. + # For a LUT2, INIT is 4 bits. + # INIT[0] is output when all pins are 0. + # INIT[1] is output when first pin is 1 and all other pins are 0. + # INIT[2] is output when second pin is 1 and all other pins are 0. + # INIT[3] is output when both pins are 1. + initParam @2 : Text; + } } struct LutBel { + # Name of the BEL that is part of this element name @0 : Text; + # What pins are part of this BEL? + # Pins are listed in LSB first order. inputPins @1 : List(Text); + # What is the output pin of this LUT? outputPin @2 : Text; + # What bits within the LutElement does this BEL use? + # Bits must be consecutive. lowBit @3 : Int8; highBit @4 : Int8; } + # Each LUT element in the site should have a width. struct LutElement { width @0 : Int8; + # If 2 or more BELs share the same underlying equation shortage, + # how are the BELs related? bels @1 : List(LutBel); } + # How are LUT BELs laid out in a site? struct LutElements { site @0 : Text; luts @1 : List(LutElement); } + # Which cells are LUT equations? lutCells @0 : List(LutCell); + + # Which sites have LUT BELs? lutElements @1 : List(LutElements); } } |