docs: Improving the examples from VtR documentation. * Renamed the files. * Adding diagrams / images. Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/docs/tests/vtr-examples.rst b/docs/tests/vtr-examples.rst index ebec334..33e94d9 100644 --- a/docs/tests/vtr-examples.rst +++ b/docs/tests/vtr-examples.rst
@@ -8,6 +8,6 @@ .. toctree:: - vtr/fig28-lutff-pair.md - vtr/fig41-full-adder.md - vtr/fig42-dff.md + vtr/lutff-pair.md + vtr/full-adder.md + vtr/dff.md
diff --git a/tests/vtr/dff/README.md b/tests/vtr/dff/README.md new file mode 100644 index 0000000..c4c2fe3 --- /dev/null +++ b/tests/vtr/dff/README.md
@@ -0,0 +1,28 @@ +# Classical D-Flip-Flop test + +An example of the classical D-Flip-Flop. + +This is shown in `Figure 43 - DFF` of the +["Sequential block (no internal paths)"](https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#sequential-block-no-internal-paths) +section in the +[Primitive Block Timing Modeling Tutorial](https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#) +of the +[Verilog to Routing documentation](https://docs.verilogtorouting.org) +and reproduced below; + +>  +> *Fig. 43 DFF* + +## Clock associations inference + + - [ ] automatic inference is signal is associated with any clock and include the info in the model + - [ ] automatic clock detection (signals named `clk` are considered as clocks) + +## Blackbox detection + + - [ ] model of the leaf `pb_type` is generated + - [ ] leaf `pb_type` XML is generated + +## Timings + + - [ ] all the timings defined for wires with attributes should be included in `pb_type` XML
diff --git a/tests/vtr/fig42-dff/dff.sim.v b/tests/vtr/dff/dff.sim.v similarity index 100% rename from tests/vtr/fig42-dff/dff.sim.v rename to tests/vtr/dff/dff.sim.v
diff --git a/tests/vtr/dff/dff.svg b/tests/vtr/dff/dff.svg new file mode 100644 index 0000000..f7bea2e --- /dev/null +++ b/tests/vtr/dff/dff.svg
@@ -0,0 +1,727 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="109.97209" + height="73.527405" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="dff.svg"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.8" + inkscape:cx="-54.881221" + inkscape:cy="88.131677" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + fit-margin-left="5" + fit-margin-top="5" + fit-margin-right="5" + fit-margin-bottom="5" + inkscape:window-width="2984" + inkscape:window-height="971" + inkscape:window-x="0" + inkscape:window-y="101" + inkscape:window-maximized="0" /> + <defs + id="defs4"> + <marker + style="overflow:visible" + id="Arrow2Sstart" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Sstart"> + <path + inkscape:connector-curvature="0" + transform="matrix(0.3,0,0,0.3,-0.69,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3911" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-6" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-1" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-4" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-8" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-76" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-5" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-4" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-1" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-41" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-8" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-99" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-7" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-9-8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-0-6" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-4" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-66" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-7" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-4" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-0" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-03" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-48" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-9" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-2-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-7-9" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-3" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-9" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-34" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-42" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-57" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-91" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-1" /> + </marker> + <marker + style="overflow:visible" + id="marker8316" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path8318" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-3-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-6-7" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="marker8322" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path8324" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-5" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-15" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-51" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-577" /> + </marker> + <marker + style="overflow:visible" + id="marker8506" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path8508" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-3-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-6-2" + inkscape:connector-curvature="0" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-92" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-9" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-17" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-87" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-12" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-86" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-79" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-49" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-45" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-07" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-71" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"> + <path + inkscape:connector-curvature="0" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + id="path3890-340" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-84" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path3908-63" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Mend-842" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend-842"> + <path + inkscape:connector-curvature="0" + transform="scale(-0.6,-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round" + id="path10380" /> + </marker> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + transform="translate(-164.35921,-762.09406)" + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <path + transform="translate(66.259035,592.69647)" + inkscape:connector-curvature="0" + id="path9295" + d="m 118.21429,234.85715 36.78571,0 0,-32.5" + style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <rect + y="768.09406" + x="207.39624" + height="44.780987" + width="27.969473" + id="rect5092-5-5-6-9-1-2" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <path + sodipodi:nodetypes="cc" + transform="translate(66.259035,592.69647)" + inkscape:connector-curvature="0" + id="path10039" + d="m 154.86902,218.88156 c -0.0324,-3.25813 -2.74875,-30.2072 -12.62691,-30.17831" + style="fill:none;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.0999999;stroke-opacity:1;stroke-dasharray:0.4, 0.4;stroke-dashoffset:0;marker-end:none" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.0999999;stroke-opacity:1;stroke-dasharray:0.4, 0.4;stroke-dashoffset:0;marker-end:none" + d="m 221.50685,811.57803 c 0.0324,-3.25813 2.74875,-30.2072 12.62691,-30.17831" + id="path10762" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + inkscape:connector-curvature="0" + id="path5094-80-40-1-6-7-4" + d="m 215.7556,812.43925 5.53628,-11.56776 5.41991,11.55525 z" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="172.37888" + y="784.76562" + id="text4571-2-26-5-4-0-9" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4573-8-17-4-0-3-9" + x="172.37888" + y="784.76562" + style="font-size:10px">D</tspan></text> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3107-7-7-3" + d="m 183.90189,781.50533 21.62523,0" + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" + d="m 236.40189,781.50533 21.62523,0" + id="path9285" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + sodipodi:linespacing="125%" + id="text9287" + y="785.12274" + x="262.02173" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:10px" + y="785.12274" + x="262.02173" + id="tspan9289" + sodipodi:role="line">Q</tspan></text> + <text + sodipodi:linespacing="125%" + id="text9291" + y="830.47986" + x="168.80745" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:10px" + y="830.47986" + x="168.80745" + id="tspan9293" + sodipodi:role="line">clk</tspan></text> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="209.61096" + y="780.03339" + id="text10764" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan10766" + x="209.61096" + y="780.03339" + style="font-size:5px">Tsu</tspan></text> + <text + sodipodi:linespacing="125%" + id="text10768" + y="780.03339" + x="225.50383" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:5px" + y="780.03339" + x="225.50383" + id="tspan10770" + sodipodi:role="line">Tcq</tspan></text> + </g> +</svg>
diff --git a/tests/vtr/fig42-dff/golden.model.xml b/tests/vtr/dff/golden.model.xml similarity index 100% rename from tests/vtr/fig42-dff/golden.model.xml rename to tests/vtr/dff/golden.model.xml
diff --git a/tests/vtr/fig28-lutff-pair/README.md b/tests/vtr/fig28-lutff-pair/README.md deleted file mode 100644 index 49792b3..0000000 --- a/tests/vtr/fig28-lutff-pair/README.md +++ /dev/null
@@ -1,15 +0,0 @@ -# `fig28-lutff-pair` test - -This directory contains test for the `v2x_to_model.py` and `v2x_to_pb_type` tools. -The tests use models defined in ff, lut and omux tests. -Those tests should check the following features: - -## Blackbox detection - - - [ ] model of the leaf pb\_type is generated - - [ ] leaf pb\_type xml is generated - - [ ] all dependency models and pb\_types are included in the output files - -## Carry chain inference - - - [ ] pack\_pattern inference - pack\_patterns defined on wires with `pack` attributes should be propagated to pb\_type xmls
diff --git a/tests/vtr/fig28-lutff-pair/lut/README.md b/tests/vtr/fig28-lutff-pair/lut/README.md deleted file mode 100644 index 0781ed1..0000000 --- a/tests/vtr/fig28-lutff-pair/lut/README.md +++ /dev/null
@@ -1,18 +0,0 @@ -# `fig28-lutff-pair` - `lut` test - -This directory contains test for the `v2x_to_model.py` and `v2x_to_pb_type` tools. -Those tests should check the following features: - -## Blackbox detection - - - [ ] model of the leaf pb\_type is generated - - [ ] leaf pb\_type xml is generated - - [ ] all dependency models and pb\_types are included in the output files - -## Carry chain inference - - - [ ] pack\_pattern inference - pack\_patterns defined on wires with `pack` attributes should be propagated to pb\_type xmls - -## Timings - - - [ ] timings defined for wires with `DELAY_MATRIX` attribute should be propagated to pb\_type xml
diff --git a/tests/vtr/fig41-full-adder/README.md b/tests/vtr/fig41-full-adder/README.md deleted file mode 100644 index e08513f..0000000 --- a/tests/vtr/fig41-full-adder/README.md +++ /dev/null
@@ -1,17 +0,0 @@ -# `fig41-full-adder` test - -This directory contains test for the blackbox detection for the -`v2x_to_model.py` and `v2x_to_pb_type` tools. - -## Detection of combinational connections - - - [ ] output has combinational connection with input - -## Blackbox detection - - - [ ] model of the leaf pb\_type is generated - - [ ] leaf pb\_type xml is generated - -## Timings - - - [ ] all the timings defined for wires with attributes should be included in pb\_type xml
diff --git a/tests/vtr/fig42-dff/README.md b/tests/vtr/fig42-dff/README.md deleted file mode 100644 index 0cbaf6f..0000000 --- a/tests/vtr/fig42-dff/README.md +++ /dev/null
@@ -1,17 +0,0 @@ -# `fig42-dff` test - -This directory contains tests for the `v2x_to_model.py` and `v2x_to_pb_type` tools. - -## Clock associations inference - - - [ ] automatic inference is signal is associated with any clock and include the info in the model - - [ ] automatic clock detection (signals named `clk` are considered as clocks) - -## Blackbox detection - - - [ ] model of the leaf pb\_type is generated - - [ ] leaf pb\_type xml is generated - -## Timings - - - [ ] all the timings defined for wires with attributes should be included in pb\_type xml
diff --git a/tests/vtr/full-adder/README.md b/tests/vtr/full-adder/README.md new file mode 100644 index 0000000..08f302d --- /dev/null +++ b/tests/vtr/full-adder/README.md
@@ -0,0 +1,27 @@ +# Full Adder Example + +An example of the classical combinational ["full adder"](https://en.wikipedia.org/wiki/Adder_(electronics)#Full_adder) circuit. + +This is shown in `Figure 41 - Full Adder` of the +["Combinational block"](https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#combinational-block) +section in the +[Primitive Block Timing Modeling Tutorial](https://docs.verilogtorouting.org/en/latest/tutorials/arch/timing_modeling/#) +of the +[Verilog to Routing documentation](https://docs.verilogtorouting.org) +and reproduced below; + +>  +> *Fig. 41 Full Adder* + +## Detection of combinational connections + + - [ ] output has combinational connection with input + +## Blackbox detection + + - [ ] model of the leaf `pb_type` is generated + - [ ] leaf `pb_type` XML is generated + +## Timings + + - [ ] all the timings defined for wires with attributes should be included in `pb_type` XML
diff --git a/tests/vtr/fig41-full-adder/adder.sdf b/tests/vtr/full-adder/adder.sdf similarity index 100% rename from tests/vtr/fig41-full-adder/adder.sdf rename to tests/vtr/full-adder/adder.sdf
diff --git a/tests/vtr/fig41-full-adder/adder.sim.v b/tests/vtr/full-adder/adder.sim.v similarity index 100% rename from tests/vtr/fig41-full-adder/adder.sim.v rename to tests/vtr/full-adder/adder.sim.v
diff --git a/tests/vtr/full-adder/full-adder.svg b/tests/vtr/full-adder/full-adder.svg new file mode 100644 index 0000000..9c72867 --- /dev/null +++ b/tests/vtr/full-adder/full-adder.svg
@@ -0,0 +1,751 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="154.3943" + height="90.087151" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="fa.svg"> + <defs + id="defs4"> + <marker + inkscape:stockid="Arrow2Sstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Sstart" + style="overflow:visible"> + <path + id="path3911" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(0.3,0,0,0.3,-0.69,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend" + style="overflow:visible"> + <path + id="path3890" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend" + style="overflow:visible"> + <path + id="path3908" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-6" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-0" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-1" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-9" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-4" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-7" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-8" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-76" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-5" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-1" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-4" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-1" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-41" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-6" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-8" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-99" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-7" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-9-8" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-0-6" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-4" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-66" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-2" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-7" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-4" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3890-0" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-3" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3890-03" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-48" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3890-9" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-2-5" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-7-9" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-2" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3890-3" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-9" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3890-34" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-42" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-57" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-91" + style="overflow:visible"> + <path + id="path3908-1" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="marker8316" + style="overflow:visible"> + <path + id="path8318" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3-3" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-6-7" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="marker8322" + style="overflow:visible"> + <path + id="path8324" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-5" + style="overflow:visible"> + <path + id="path3908-15" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-51" + style="overflow:visible"> + <path + id="path3908-577" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="marker8506" + style="overflow:visible"> + <path + id="path8508" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-3-6" + style="overflow:visible"> + <path + inkscape:connector-curvature="0" + id="path3908-6-2" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-92" + style="overflow:visible"> + <path + id="path3908-9" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-17" + style="overflow:visible"> + <path + id="path3908-87" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-12" + style="overflow:visible"> + <path + id="path3908-86" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-79" + style="overflow:visible"> + <path + id="path3908-49" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-45" + style="overflow:visible"> + <path + id="path3908-07" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-8" + style="overflow:visible"> + <path + id="path3908-71" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Mend-7" + style="overflow:visible"> + <path + id="path3890-340" + d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" + transform="matrix(-0.4,0,0,-0.4,-4,0)" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Mend-84" + style="overflow:visible"> + <path + id="path3908-63" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6,-0.6)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="3.959798" + inkscape:cx="-9.5792713" + inkscape:cy="11.332515" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + fit-margin-left="5" + fit-margin-top="5" + fit-margin-right="5" + fit-margin-bottom="5" + inkscape:window-width="2178" + inkscape:window-height="1474" + inkscape:window-x="250" + inkscape:window-y="280" + inkscape:window-maximized="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-84.595535,-686.54514)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.69047546;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" + id="rect12372" + width="80.897781" + height="79.396675" + x="118.47379" + y="691.89038" /> + <g + id="g3457" + transform="translate(31.251957,67.219354)" /> + <g + id="g7311" + transform="translate(-55.624791,-12.879445)"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3473" + d="m 228.38939,734.95655 38.80729,0" + style="fill:none;stroke:#000000;stroke-width:0.72156626px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /> + <text + sodipodi:linespacing="125%" + id="text4842" + y="738.67773" + x="269.16052" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:10px;text-align:start;text-anchor:start" + y="738.67773" + x="269.16052" + id="tspan4844" + sodipodi:role="line">sum</tspan></text> + </g> + <g + id="g7334" + transform="translate(4,-1.343911)"> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3479" + d="m 100.25253,750.77635 28.77974,0" + style="fill:none;stroke:#000000;stroke-width:0.722;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-84)" /> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="99.672684" + y="754.49744" + id="text4544" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4546" + x="99.672684" + y="754.49744" + style="font-size:10px;text-align:end;text-anchor:end">cin</tspan></text> + </g> + <g + id="g7329" + transform="translate(4,18.051762)"> + <text + sodipodi:linespacing="125%" + id="text4540" + y="718.38263" + x="98.744949" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:10px;text-align:end;text-anchor:end" + y="718.38263" + x="98.744949" + id="tspan4542" + sodipodi:role="line">b</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.72156626px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-84)" + d="m 100.25253,714.66155 23.98151,0" + id="path4564" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g7324" + transform="translate(4,38)"> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="99.357742" + y="679.95911" + id="text4571-2-26-5-4-0-9-3" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4573-8-17-4-0-3-9-6" + x="99.357742" + y="679.95911" + style="font-size:10px;text-align:end;text-anchor:end">a</tspan></text> + <path + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path4578" + d="m 100.25253,677.23657 25.2442,0" + style="fill:none;stroke:#000000;stroke-width:0.72156626px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-84)" /> + </g> + <g + id="g7316" + transform="translate(-56.82108,6.1252705)"> + <path + style="fill:none;stroke:#000000;stroke-width:0.72156626px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" + d="m 228.38939,734.95655 38.80729,0" + id="path7318" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-size:25px;font-style:normal;font-weight:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="269.16052" + y="738.67773" + id="text7320" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan7322" + x="269.16052" + y="738.67773" + style="font-size:10px;text-align:start;text-anchor:start">cout</tspan></text> + </g> + <g + id="g4588-7" + transform="matrix(1.3967302,-0.07736975,0.07736975,1.3967302,-268.81539,99.247323)" + style="fill:#ffffff;fill-opacity:1"> + <path + inkscape:connector-curvature="0" + id="path3025-2" + d="m 271.36867,449.49999 c -5.60955,0 -10.16791,3.19124 -10.16791,7.13361 0,1.31412 0.51377,2.54215 1.39523,3.59967 -1.92616,1.6158 -3.13447,3.95719 -3.13447,6.55832 0,3.11989 1.74772,5.84264 4.37678,7.41303 -0.97741,1.12428 -1.54812,2.48591 -1.54812,3.94484 0,3.8905 4.07212,7.05142 9.07849,7.05142 2.12811,0 4.07248,-0.57452 5.61911,-1.52863 1.75212,1.19045 3.92823,1.89024 6.28804,1.89024 2.85716,0 5.42903,-1.03504 7.32013,-2.71208 0.45423,0.0604 0.93479,0.0822 1.41433,0.0822 4.10161,0 7.41569,-2.30814 7.41569,-5.16117 0,-1.20548 -0.59137,-2.30988 -1.58634,-3.18876 3.8109,-0.9174 6.61296,-4.02157 6.61296,-7.70889 0,-2.66515 -1.45666,-5.00957 -3.70785,-6.45969 0.001,-0.0668 0,-0.13006 0,-0.19724 0,-5.29108 -3.87379,-9.5827 -8.63889,-9.5827 -2.03295,0 -3.89604,0.78134 -5.37065,2.08748 -1.20858,-0.95409 -2.70562,-1.52863 -4.33856,-1.52863 -1.18245,0 -2.30273,0.29581 -3.28736,0.82185 -1.86307,-1.54077 -4.63817,-2.51485 -7.74061,-2.51485 z" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + <text + sodipodi:linespacing="125%" + id="text4571-27" + y="472.17093" + x="284.53082" + style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:16px;fill:#ffffff;fill-opacity:1" + y="472.17093" + x="284.53082" + id="tspan4573-3" + sodipodi:role="line" /></text> + </g> + </g> +</svg>
diff --git a/tests/vtr/fig41-full-adder/golden.model.xml b/tests/vtr/full-adder/golden.model.xml similarity index 100% rename from tests/vtr/fig41-full-adder/golden.model.xml rename to tests/vtr/full-adder/golden.model.xml
diff --git a/tests/vtr/fig41-full-adder/golden.pb_type.xml b/tests/vtr/full-adder/golden.pb_type.xml similarity index 100% rename from tests/vtr/fig41-full-adder/golden.pb_type.xml rename to tests/vtr/full-adder/golden.pb_type.xml
diff --git a/tests/vtr/lutff-pair/README.md b/tests/vtr/lutff-pair/README.md new file mode 100644 index 0000000..dbd5796 --- /dev/null +++ b/tests/vtr/lutff-pair/README.md
@@ -0,0 +1,20 @@ +# LUT with FlipFlop Example + +An example of the classical LUT with FlipFlop pair. + +This is shown in `Figure 28` of the +[Architecture Reference section of the Verilog to Routing Documentation](https://docs.verilogtorouting.org/en/latest/arch/reference) +and reproduced below; + +>  +> *Fig. 28 Pack Pattern Example.* + +## Blackbox detection + + - [ ] model of the leaf `pb_type` is generated + - [ ] leaf `pb_type` XML is generated + - [ ] all dependency models and `pb_type`s are included in the output files + +## Carry chain inference + + - [ ] `pack_pattern` inference - `pack_pattern`s defined on wires with `pack` attributes should be propagated to `pb_type` XMLs
diff --git a/tests/vtr/fig28-lutff-pair/ff/ff.sim.v b/tests/vtr/lutff-pair/ff/ff.sim.v similarity index 100% rename from tests/vtr/fig28-lutff-pair/ff/ff.sim.v rename to tests/vtr/lutff-pair/ff/ff.sim.v
diff --git a/tests/vtr/fig28-lutff-pair/ff/golden.model.xml b/tests/vtr/lutff-pair/ff/golden.model.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/ff/golden.model.xml rename to tests/vtr/lutff-pair/ff/golden.model.xml
diff --git a/tests/vtr/fig28-lutff-pair/ff/golden.pb_type.xml b/tests/vtr/lutff-pair/ff/golden.pb_type.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/ff/golden.pb_type.xml rename to tests/vtr/lutff-pair/ff/golden.pb_type.xml
diff --git a/tests/vtr/fig28-lutff-pair/golden.model.xml b/tests/vtr/lutff-pair/golden.model.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/golden.model.xml rename to tests/vtr/lutff-pair/golden.model.xml
diff --git a/tests/vtr/fig28-lutff-pair/golden.pb_type.xml b/tests/vtr/lutff-pair/golden.pb_type.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/golden.pb_type.xml rename to tests/vtr/lutff-pair/golden.pb_type.xml
diff --git a/tests/vtr/fig28-lutff-pair/lut/golden.model.xml b/tests/vtr/lutff-pair/lut/golden.model.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/lut/golden.model.xml rename to tests/vtr/lutff-pair/lut/golden.model.xml
diff --git a/tests/vtr/fig28-lutff-pair/lut/golden.pb_type.xml b/tests/vtr/lutff-pair/lut/golden.pb_type.xml similarity index 100% rename from tests/vtr/fig28-lutff-pair/lut/golden.pb_type.xml rename to tests/vtr/lutff-pair/lut/golden.pb_type.xml
diff --git a/tests/vtr/fig28-lutff-pair/lut/lut4.sim.v b/tests/vtr/lutff-pair/lut/lut4.sim.v similarity index 100% rename from tests/vtr/fig28-lutff-pair/lut/lut4.sim.v rename to tests/vtr/lutff-pair/lut/lut4.sim.v
diff --git a/tests/vtr/lutff-pair/lutff-pair.png b/tests/vtr/lutff-pair/lutff-pair.png new file mode 100644 index 0000000..e0f9c36 --- /dev/null +++ b/tests/vtr/lutff-pair/lutff-pair.png Binary files differ
diff --git a/tests/vtr/fig28-lutff-pair/pair.sim.v b/tests/vtr/lutff-pair/pair.sim.v similarity index 100% rename from tests/vtr/fig28-lutff-pair/pair.sim.v rename to tests/vtr/lutff-pair/pair.sim.v