summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlitghost <537074+litghost@users.noreply.github.com>2021-03-18 13:22:13 -0700
committerGitHub <noreply@github.com>2021-03-18 13:22:13 -0700
commitcae2ef104bbce29c9b4f6e91d48f7f5044df80bf (patch)
tree52d51039b63e4203028ec16a059480c2ce799e82
parentcb6d16847dfca7f104205c83bbdc056303ac82a0 (diff)
parentd0a0a0bf38434a257dd8493791fcc266fb58d53d (diff)
downloadfpga-interchange-schema-cae2ef104bbce29c9b4f6e91d48f7f5044df80bf.tar.gz
fpga-interchange-schema-cae2ef104bbce29c9b4f6e91d48f7f5044df80bf.tar.bz2
fpga-interchange-schema-cae2ef104bbce29c9b4f6e91d48f7f5044df80bf.zip
Merge pull request #18 from litghost/pseudo_cell_docs
Add initial pseudo cell documentation.
-rw-r--r--docs/pseudo_cells.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/pseudo_cells.md b/docs/pseudo_cells.md
new file mode 100644
index 0000000..a55fc44
--- /dev/null
+++ b/docs/pseudo_cells.md
@@ -0,0 +1,37 @@
+## Pseudo Cells
+
+Pseudo PIPs and site pseudo PIPs are edges in the device graph that route
+through other sites and/or BELs. Pseudo cells are the expression of what
+routing resources are "blocked" by the use of a pseudo PIP.
+
+The device database currently expresses pseudo PIPs as using BEL pins within
+the site that the pseudo PIP is attached too. Both input and output BEL pins
+are included in the pseudo cell definition, but only output BEL pins "block"
+the site wire.
+
+### Example
+
+In the case of a Xilinx 7-series `CLBLL`'s `CLBLL_LL_A1` to `CLBLL_LL_A`
+pseudo PIP, this PIP connects a signal from an input site port to an output
+site port. Each site wire that is consumed has **both** a output BEL pin
+(from the site wire source) and a input BEL pin (connected to either a logic
+BEL, e.g. `A6LUT` or routing BEL, e.g. `AUSED` or output site port BEL, e.g.
+`A`).
+
+In the case of a `CLBLL`'s `CLBLL_LL_A` to `CLBLL_LL_AMUX` pseudo PIP, this
+PIP connects a signal from an output site port to an output site port. In
+this case, it is assumed and required that some of the site wires are already
+bound to the relevant net (by virtue of the wire `CLBLL_LL_A` already being
+part of the net). In this case, the first BEL pin will be an input BEL pin
+(specifically `AOUTMUX/O6`) that indicates that a site PIP is used as part of
+the pseudo PIP. However in this case, this edge does **not** block the site
+wire, instead it only requires it. The following output BEL pin (specifically
+ `AOUTMUX/OUT`) blocks the site wire `AMUX`.
+
+### Future enhancements
+
+Pseudo cells right now only have BEL pins used by the pseudo PIP. This
+ignores the fact that some BEL's when route through may have constraint
+implications. For example, routing through a LUT BEL requires that it be in
+LUT mode. If that BEL is in either a SRL or LUT-RAM mode, the LUT route
+through may not operate properly.