Merge pull request #19 from LNIS-Projects/xt_dev

Add Online Documentation about Chip Designs
This commit is contained in:
Laboratory for Nano Integrated Systems (LNIS) 2020-11-12 22:03:50 -07:00 committed by GitHub
commit 368af5a182
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 67296 additions and 9 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@
**/*_task/skywater **/*_task/skywater
**/*_Verilog/SRC_Skeleton **/*_Verilog/SRC_Skeleton
**/*_Verilog/SRCBackup **/*_Verilog/SRCBackup
**/DOC/build

20
.readthedocs.yml Normal file
View File

@ -0,0 +1,20 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required configuration file version
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: dirhtml
configuration: DOC/source/conf.py
# Optionally build your docs in additional formats such as PDF and ePub
formats: all
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: DOC/requirements.txt

View File

@ -0,0 +1,678 @@
<?xml version="1.0" ?>
<fabric_key>
<region id="0">
<key id="0" alias="sb_12__12_"/>
<key id="1" alias="cbx_12__12_"/>
<key id="2" alias="grid_io_top_top_12__13_"/>
<key id="3" alias="sb_11__12_"/>
<key id="4" alias="cbx_11__12_"/>
<key id="5" alias="grid_io_top_top_11__13_"/>
<key id="6" alias="sb_10__12_"/>
<key id="7" alias="cbx_10__12_"/>
<key id="8" alias="grid_io_top_top_10__13_"/>
<key id="9" alias="sb_9__12_"/>
<key id="10" alias="cbx_9__12_"/>
<key id="11" alias="grid_io_top_top_9__13_"/>
<key id="12" alias="sb_8__12_"/>
<key id="13" alias="cbx_8__12_"/>
<key id="14" alias="grid_io_top_top_8__13_"/>
<key id="15" alias="sb_7__12_"/>
<key id="16" alias="cbx_7__12_"/>
<key id="17" alias="grid_io_top_top_7__13_"/>
<key id="18" alias="sb_6__12_"/>
<key id="19" alias="cbx_6__12_"/>
<key id="20" alias="grid_io_top_top_6__13_"/>
<key id="21" alias="sb_5__12_"/>
<key id="22" alias="cbx_5__12_"/>
<key id="23" alias="grid_io_top_top_5__13_"/>
<key id="24" alias="sb_4__12_"/>
<key id="25" alias="cbx_4__12_"/>
<key id="26" alias="grid_io_top_top_4__13_"/>
<key id="27" alias="sb_3__12_"/>
<key id="28" alias="cbx_3__12_"/>
<key id="29" alias="grid_io_top_top_3__13_"/>
<key id="30" alias="sb_2__12_"/>
<key id="31" alias="cbx_2__12_"/>
<key id="32" alias="grid_io_top_top_2__13_"/>
<key id="33" alias="sb_1__12_"/>
<key id="34" alias="cbx_1__12_"/>
<key id="35" alias="grid_io_top_top_1__13_"/>
<key id="36" alias="sb_0__12_"/>
<key id="37" alias="cby_0__12_"/>
<key id="38" alias="grid_io_left_left_0__12_"/>
<key id="39" alias="grid_clb_1__12_"/>
<key id="40" alias="cby_1__12_"/>
<key id="41" alias="grid_clb_2__12_"/>
<key id="42" alias="cby_2__12_"/>
<key id="43" alias="grid_clb_3__12_"/>
<key id="44" alias="cby_3__12_"/>
<key id="45" alias="grid_clb_4__12_"/>
<key id="46" alias="cby_4__12_"/>
<key id="47" alias="grid_clb_5__12_"/>
<key id="48" alias="cby_5__12_"/>
<key id="49" alias="grid_clb_6__12_"/>
<key id="50" alias="cby_6__12_"/>
<key id="51" alias="grid_clb_7__12_"/>
<key id="52" alias="cby_7__12_"/>
<key id="53" alias="grid_clb_8__12_"/>
<key id="54" alias="cby_8__12_"/>
<key id="55" alias="grid_clb_9__12_"/>
<key id="56" alias="cby_9__12_"/>
<key id="57" alias="grid_clb_10__12_"/>
<key id="58" alias="cby_10__12_"/>
<key id="59" alias="grid_clb_11__12_"/>
<key id="60" alias="cby_11__12_"/>
<key id="61" alias="grid_clb_12__12_"/>
<key id="62" alias="cby_12__12_"/>
<key id="63" alias="grid_io_right_right_13__12_"/>
<key id="64" alias="sb_12__11_"/>
<key id="65" alias="cbx_12__11_"/>
<key id="66" alias="sb_11__11_"/>
<key id="67" alias="cbx_11__11_"/>
<key id="68" alias="sb_10__11_"/>
<key id="69" alias="cbx_10__11_"/>
<key id="70" alias="sb_9__11_"/>
<key id="71" alias="cbx_9__11_"/>
<key id="72" alias="sb_8__11_"/>
<key id="73" alias="cbx_8__11_"/>
<key id="74" alias="sb_7__11_"/>
<key id="75" alias="cbx_7__11_"/>
<key id="76" alias="sb_6__11_"/>
<key id="77" alias="cbx_6__11_"/>
<key id="78" alias="sb_5__11_"/>
<key id="79" alias="cbx_5__11_"/>
<key id="80" alias="sb_4__11_"/>
<key id="81" alias="cbx_4__11_"/>
<key id="82" alias="sb_3__11_"/>
<key id="83" alias="cbx_3__11_"/>
<key id="84" alias="sb_2__11_"/>
<key id="85" alias="cbx_2__11_"/>
<key id="86" alias="sb_1__11_"/>
<key id="87" alias="cbx_1__11_"/>
<key id="88" alias="sb_0__11_"/>
<key id="89" alias="cby_0__11_"/>
<key id="90" alias="grid_io_left_left_0__11_"/>
<key id="91" alias="grid_clb_1__11_"/>
<key id="92" alias="cby_1__11_"/>
<key id="93" alias="grid_clb_2__11_"/>
<key id="94" alias="cby_2__11_"/>
<key id="95" alias="grid_clb_3__11_"/>
<key id="96" alias="cby_3__11_"/>
<key id="97" alias="grid_clb_4__11_"/>
<key id="98" alias="cby_4__11_"/>
<key id="99" alias="grid_clb_5__11_"/>
<key id="100" alias="cby_5__11_"/>
<key id="101" alias="grid_clb_6__11_"/>
<key id="102" alias="cby_6__11_"/>
<key id="103" alias="grid_clb_7__11_"/>
<key id="104" alias="cby_7__11_"/>
<key id="105" alias="grid_clb_8__11_"/>
<key id="106" alias="cby_8__11_"/>
<key id="107" alias="grid_clb_9__11_"/>
<key id="108" alias="cby_9__11_"/>
<key id="109" alias="grid_clb_10__11_"/>
<key id="110" alias="cby_10__11_"/>
<key id="111" alias="grid_clb_11__11_"/>
<key id="112" alias="cby_11__11_"/>
<key id="113" alias="grid_clb_12__11_"/>
<key id="114" alias="cby_12__11_"/>
<key id="115" alias="grid_io_right_right_13__11_"/>
<key id="116" alias="sb_12__10_"/>
<key id="117" alias="cbx_12__10_"/>
<key id="118" alias="sb_11__10_"/>
<key id="119" alias="cbx_11__10_"/>
<key id="120" alias="sb_10__10_"/>
<key id="121" alias="cbx_10__10_"/>
<key id="122" alias="sb_9__10_"/>
<key id="123" alias="cbx_9__10_"/>
<key id="124" alias="sb_8__10_"/>
<key id="125" alias="cbx_8__10_"/>
<key id="126" alias="sb_7__10_"/>
<key id="127" alias="cbx_7__10_"/>
<key id="128" alias="sb_6__10_"/>
<key id="129" alias="cbx_6__10_"/>
<key id="130" alias="sb_5__10_"/>
<key id="131" alias="cbx_5__10_"/>
<key id="132" alias="sb_4__10_"/>
<key id="133" alias="cbx_4__10_"/>
<key id="134" alias="sb_3__10_"/>
<key id="135" alias="cbx_3__10_"/>
<key id="136" alias="sb_2__10_"/>
<key id="137" alias="cbx_2__10_"/>
<key id="138" alias="sb_1__10_"/>
<key id="139" alias="cbx_1__10_"/>
<key id="140" alias="sb_0__10_"/>
<key id="141" alias="cby_0__10_"/>
<key id="142" alias="grid_io_left_left_0__10_"/>
<key id="143" alias="grid_clb_1__10_"/>
<key id="144" alias="cby_1__10_"/>
<key id="145" alias="grid_clb_2__10_"/>
<key id="146" alias="cby_2__10_"/>
<key id="147" alias="grid_clb_3__10_"/>
<key id="148" alias="cby_3__10_"/>
<key id="149" alias="grid_clb_4__10_"/>
<key id="150" alias="cby_4__10_"/>
<key id="151" alias="grid_clb_5__10_"/>
<key id="152" alias="cby_5__10_"/>
<key id="153" alias="grid_clb_6__10_"/>
<key id="154" alias="cby_6__10_"/>
<key id="155" alias="grid_clb_7__10_"/>
<key id="156" alias="cby_7__10_"/>
<key id="157" alias="grid_clb_8__10_"/>
<key id="158" alias="cby_8__10_"/>
<key id="159" alias="grid_clb_9__10_"/>
<key id="160" alias="cby_9__10_"/>
<key id="161" alias="grid_clb_10__10_"/>
<key id="162" alias="cby_10__10_"/>
<key id="163" alias="grid_clb_11__10_"/>
<key id="164" alias="cby_11__10_"/>
<key id="165" alias="grid_clb_12__10_"/>
<key id="166" alias="cby_12__10_"/>
<key id="167" alias="grid_io_right_right_13__10_"/>
<key id="168" alias="sb_12__9_"/>
<key id="169" alias="cbx_12__9_"/>
<key id="170" alias="sb_11__9_"/>
<key id="171" alias="cbx_11__9_"/>
<key id="172" alias="sb_10__9_"/>
<key id="173" alias="cbx_10__9_"/>
<key id="174" alias="sb_9__9_"/>
<key id="175" alias="cbx_9__9_"/>
<key id="176" alias="sb_8__9_"/>
<key id="177" alias="cbx_8__9_"/>
<key id="178" alias="sb_7__9_"/>
<key id="179" alias="cbx_7__9_"/>
<key id="180" alias="sb_6__9_"/>
<key id="181" alias="cbx_6__9_"/>
<key id="182" alias="sb_5__9_"/>
<key id="183" alias="cbx_5__9_"/>
<key id="184" alias="sb_4__9_"/>
<key id="185" alias="cbx_4__9_"/>
<key id="186" alias="sb_3__9_"/>
<key id="187" alias="cbx_3__9_"/>
<key id="188" alias="sb_2__9_"/>
<key id="189" alias="cbx_2__9_"/>
<key id="190" alias="sb_1__9_"/>
<key id="191" alias="cbx_1__9_"/>
<key id="192" alias="sb_0__9_"/>
<key id="193" alias="cby_0__9_"/>
<key id="194" alias="grid_io_left_left_0__9_"/>
<key id="195" alias="grid_clb_1__9_"/>
<key id="196" alias="cby_1__9_"/>
<key id="197" alias="grid_clb_2__9_"/>
<key id="198" alias="cby_2__9_"/>
<key id="199" alias="grid_clb_3__9_"/>
<key id="200" alias="cby_3__9_"/>
<key id="201" alias="grid_clb_4__9_"/>
<key id="202" alias="cby_4__9_"/>
<key id="203" alias="grid_clb_5__9_"/>
<key id="204" alias="cby_5__9_"/>
<key id="205" alias="grid_clb_6__9_"/>
<key id="206" alias="cby_6__9_"/>
<key id="207" alias="grid_clb_7__9_"/>
<key id="208" alias="cby_7__9_"/>
<key id="209" alias="grid_clb_8__9_"/>
<key id="210" alias="cby_8__9_"/>
<key id="211" alias="grid_clb_9__9_"/>
<key id="212" alias="cby_9__9_"/>
<key id="213" alias="grid_clb_10__9_"/>
<key id="214" alias="cby_10__9_"/>
<key id="215" alias="grid_clb_11__9_"/>
<key id="216" alias="cby_11__9_"/>
<key id="217" alias="grid_clb_12__9_"/>
<key id="218" alias="cby_12__9_"/>
<key id="219" alias="grid_io_right_right_13__9_"/>
<key id="220" alias="sb_12__8_"/>
<key id="221" alias="cbx_12__8_"/>
<key id="222" alias="sb_11__8_"/>
<key id="223" alias="cbx_11__8_"/>
<key id="224" alias="sb_10__8_"/>
<key id="225" alias="cbx_10__8_"/>
<key id="226" alias="sb_9__8_"/>
<key id="227" alias="cbx_9__8_"/>
<key id="228" alias="sb_8__8_"/>
<key id="229" alias="cbx_8__8_"/>
<key id="230" alias="sb_7__8_"/>
<key id="231" alias="cbx_7__8_"/>
<key id="232" alias="sb_6__8_"/>
<key id="233" alias="cbx_6__8_"/>
<key id="234" alias="sb_5__8_"/>
<key id="235" alias="cbx_5__8_"/>
<key id="236" alias="sb_4__8_"/>
<key id="237" alias="cbx_4__8_"/>
<key id="238" alias="sb_3__8_"/>
<key id="239" alias="cbx_3__8_"/>
<key id="240" alias="sb_2__8_"/>
<key id="241" alias="cbx_2__8_"/>
<key id="242" alias="sb_1__8_"/>
<key id="243" alias="cbx_1__8_"/>
<key id="244" alias="sb_0__8_"/>
<key id="245" alias="cby_0__8_"/>
<key id="246" alias="grid_io_left_left_0__8_"/>
<key id="247" alias="grid_clb_1__8_"/>
<key id="248" alias="cby_1__8_"/>
<key id="249" alias="grid_clb_2__8_"/>
<key id="250" alias="cby_2__8_"/>
<key id="251" alias="grid_clb_3__8_"/>
<key id="252" alias="cby_3__8_"/>
<key id="253" alias="grid_clb_4__8_"/>
<key id="254" alias="cby_4__8_"/>
<key id="255" alias="grid_clb_5__8_"/>
<key id="256" alias="cby_5__8_"/>
<key id="257" alias="grid_clb_6__8_"/>
<key id="258" alias="cby_6__8_"/>
<key id="259" alias="grid_clb_7__8_"/>
<key id="260" alias="cby_7__8_"/>
<key id="261" alias="grid_clb_8__8_"/>
<key id="262" alias="cby_8__8_"/>
<key id="263" alias="grid_clb_9__8_"/>
<key id="264" alias="cby_9__8_"/>
<key id="265" alias="grid_clb_10__8_"/>
<key id="266" alias="cby_10__8_"/>
<key id="267" alias="grid_clb_11__8_"/>
<key id="268" alias="cby_11__8_"/>
<key id="269" alias="grid_clb_12__8_"/>
<key id="270" alias="cby_12__8_"/>
<key id="271" alias="grid_io_right_right_13__8_"/>
<key id="272" alias="sb_12__7_"/>
<key id="273" alias="cbx_12__7_"/>
<key id="274" alias="sb_11__7_"/>
<key id="275" alias="cbx_11__7_"/>
<key id="276" alias="sb_10__7_"/>
<key id="277" alias="cbx_10__7_"/>
<key id="278" alias="sb_9__7_"/>
<key id="279" alias="cbx_9__7_"/>
<key id="280" alias="sb_8__7_"/>
<key id="281" alias="cbx_8__7_"/>
<key id="282" alias="sb_7__7_"/>
<key id="283" alias="cbx_7__7_"/>
<key id="284" alias="sb_6__7_"/>
<key id="285" alias="cbx_6__7_"/>
<key id="286" alias="sb_5__7_"/>
<key id="287" alias="cbx_5__7_"/>
<key id="288" alias="sb_4__7_"/>
<key id="289" alias="cbx_4__7_"/>
<key id="290" alias="sb_3__7_"/>
<key id="291" alias="cbx_3__7_"/>
<key id="292" alias="sb_2__7_"/>
<key id="293" alias="cbx_2__7_"/>
<key id="294" alias="sb_1__7_"/>
<key id="295" alias="cbx_1__7_"/>
<key id="296" alias="sb_0__7_"/>
<key id="297" alias="cby_0__7_"/>
<key id="298" alias="grid_io_left_left_0__7_"/>
<key id="299" alias="grid_clb_1__7_"/>
<key id="300" alias="cby_1__7_"/>
<key id="301" alias="grid_clb_2__7_"/>
<key id="302" alias="cby_2__7_"/>
<key id="303" alias="grid_clb_3__7_"/>
<key id="304" alias="cby_3__7_"/>
<key id="305" alias="grid_clb_4__7_"/>
<key id="306" alias="cby_4__7_"/>
<key id="307" alias="grid_clb_5__7_"/>
<key id="308" alias="cby_5__7_"/>
<key id="309" alias="grid_clb_6__7_"/>
<key id="310" alias="cby_6__7_"/>
<key id="311" alias="grid_clb_7__7_"/>
<key id="312" alias="cby_7__7_"/>
<key id="313" alias="grid_clb_8__7_"/>
<key id="314" alias="cby_8__7_"/>
<key id="315" alias="grid_clb_9__7_"/>
<key id="316" alias="cby_9__7_"/>
<key id="317" alias="grid_clb_10__7_"/>
<key id="318" alias="cby_10__7_"/>
<key id="319" alias="grid_clb_11__7_"/>
<key id="320" alias="cby_11__7_"/>
<key id="321" alias="grid_clb_12__7_"/>
<key id="322" alias="cby_12__7_"/>
<key id="323" alias="grid_io_right_right_13__7_"/>
<key id="324" alias="sb_12__6_"/>
<key id="325" alias="cbx_12__6_"/>
<key id="326" alias="sb_11__6_"/>
<key id="327" alias="cbx_11__6_"/>
<key id="328" alias="sb_10__6_"/>
<key id="329" alias="cbx_10__6_"/>
<key id="330" alias="sb_9__6_"/>
<key id="331" alias="cbx_9__6_"/>
<key id="332" alias="sb_8__6_"/>
<key id="333" alias="cbx_8__6_"/>
<key id="334" alias="sb_7__6_"/>
<key id="335" alias="cbx_7__6_"/>
<key id="336" alias="sb_6__6_"/>
<key id="337" alias="cbx_6__6_"/>
<key id="338" alias="sb_5__6_"/>
<key id="339" alias="cbx_5__6_"/>
<key id="340" alias="sb_4__6_"/>
<key id="341" alias="cbx_4__6_"/>
<key id="342" alias="sb_3__6_"/>
<key id="343" alias="cbx_3__6_"/>
<key id="344" alias="sb_2__6_"/>
<key id="345" alias="cbx_2__6_"/>
<key id="346" alias="sb_1__6_"/>
<key id="347" alias="cbx_1__6_"/>
<key id="348" alias="sb_0__6_"/>
<key id="349" alias="cby_0__6_"/>
<key id="350" alias="grid_io_left_left_0__6_"/>
<key id="351" alias="grid_clb_1__6_"/>
<key id="352" alias="cby_1__6_"/>
<key id="353" alias="grid_clb_2__6_"/>
<key id="354" alias="cby_2__6_"/>
<key id="355" alias="grid_clb_3__6_"/>
<key id="356" alias="cby_3__6_"/>
<key id="357" alias="grid_clb_4__6_"/>
<key id="358" alias="cby_4__6_"/>
<key id="359" alias="grid_clb_5__6_"/>
<key id="360" alias="cby_5__6_"/>
<key id="361" alias="grid_clb_6__6_"/>
<key id="362" alias="cby_6__6_"/>
<key id="363" alias="grid_clb_7__6_"/>
<key id="364" alias="cby_7__6_"/>
<key id="365" alias="grid_clb_8__6_"/>
<key id="366" alias="cby_8__6_"/>
<key id="367" alias="grid_clb_9__6_"/>
<key id="368" alias="cby_9__6_"/>
<key id="369" alias="grid_clb_10__6_"/>
<key id="370" alias="cby_10__6_"/>
<key id="371" alias="grid_clb_11__6_"/>
<key id="372" alias="cby_11__6_"/>
<key id="373" alias="grid_clb_12__6_"/>
<key id="374" alias="cby_12__6_"/>
<key id="375" alias="grid_io_right_right_13__6_"/>
<key id="376" alias="sb_12__5_"/>
<key id="377" alias="cbx_12__5_"/>
<key id="378" alias="sb_11__5_"/>
<key id="379" alias="cbx_11__5_"/>
<key id="380" alias="sb_10__5_"/>
<key id="381" alias="cbx_10__5_"/>
<key id="382" alias="sb_9__5_"/>
<key id="383" alias="cbx_9__5_"/>
<key id="384" alias="sb_8__5_"/>
<key id="385" alias="cbx_8__5_"/>
<key id="386" alias="sb_7__5_"/>
<key id="387" alias="cbx_7__5_"/>
<key id="388" alias="sb_6__5_"/>
<key id="389" alias="cbx_6__5_"/>
<key id="390" alias="sb_5__5_"/>
<key id="391" alias="cbx_5__5_"/>
<key id="392" alias="sb_4__5_"/>
<key id="393" alias="cbx_4__5_"/>
<key id="394" alias="sb_3__5_"/>
<key id="395" alias="cbx_3__5_"/>
<key id="396" alias="sb_2__5_"/>
<key id="397" alias="cbx_2__5_"/>
<key id="398" alias="sb_1__5_"/>
<key id="399" alias="cbx_1__5_"/>
<key id="400" alias="sb_0__5_"/>
<key id="401" alias="cby_0__5_"/>
<key id="402" alias="grid_io_left_left_0__5_"/>
<key id="403" alias="grid_clb_1__5_"/>
<key id="404" alias="cby_1__5_"/>
<key id="405" alias="grid_clb_2__5_"/>
<key id="406" alias="cby_2__5_"/>
<key id="407" alias="grid_clb_3__5_"/>
<key id="408" alias="cby_3__5_"/>
<key id="409" alias="grid_clb_4__5_"/>
<key id="410" alias="cby_4__5_"/>
<key id="411" alias="grid_clb_5__5_"/>
<key id="412" alias="cby_5__5_"/>
<key id="413" alias="grid_clb_6__5_"/>
<key id="414" alias="cby_6__5_"/>
<key id="415" alias="grid_clb_7__5_"/>
<key id="416" alias="cby_7__5_"/>
<key id="417" alias="grid_clb_8__5_"/>
<key id="418" alias="cby_8__5_"/>
<key id="419" alias="grid_clb_9__5_"/>
<key id="420" alias="cby_9__5_"/>
<key id="421" alias="grid_clb_10__5_"/>
<key id="422" alias="cby_10__5_"/>
<key id="423" alias="grid_clb_11__5_"/>
<key id="424" alias="cby_11__5_"/>
<key id="425" alias="grid_clb_12__5_"/>
<key id="426" alias="cby_12__5_"/>
<key id="427" alias="grid_io_right_right_13__5_"/>
<key id="428" alias="sb_12__4_"/>
<key id="429" alias="cbx_12__4_"/>
<key id="430" alias="sb_11__4_"/>
<key id="431" alias="cbx_11__4_"/>
<key id="432" alias="sb_10__4_"/>
<key id="433" alias="cbx_10__4_"/>
<key id="434" alias="sb_9__4_"/>
<key id="435" alias="cbx_9__4_"/>
<key id="436" alias="sb_8__4_"/>
<key id="437" alias="cbx_8__4_"/>
<key id="438" alias="sb_7__4_"/>
<key id="439" alias="cbx_7__4_"/>
<key id="440" alias="sb_6__4_"/>
<key id="441" alias="cbx_6__4_"/>
<key id="442" alias="sb_5__4_"/>
<key id="443" alias="cbx_5__4_"/>
<key id="444" alias="sb_4__4_"/>
<key id="445" alias="cbx_4__4_"/>
<key id="446" alias="sb_3__4_"/>
<key id="447" alias="cbx_3__4_"/>
<key id="448" alias="sb_2__4_"/>
<key id="449" alias="cbx_2__4_"/>
<key id="450" alias="sb_1__4_"/>
<key id="451" alias="cbx_1__4_"/>
<key id="452" alias="sb_0__4_"/>
<key id="453" alias="cby_0__4_"/>
<key id="454" alias="grid_io_left_left_0__4_"/>
<key id="455" alias="grid_clb_1__4_"/>
<key id="456" alias="cby_1__4_"/>
<key id="457" alias="grid_clb_2__4_"/>
<key id="458" alias="cby_2__4_"/>
<key id="459" alias="grid_clb_3__4_"/>
<key id="460" alias="cby_3__4_"/>
<key id="461" alias="grid_clb_4__4_"/>
<key id="462" alias="cby_4__4_"/>
<key id="463" alias="grid_clb_5__4_"/>
<key id="464" alias="cby_5__4_"/>
<key id="465" alias="grid_clb_6__4_"/>
<key id="466" alias="cby_6__4_"/>
<key id="467" alias="grid_clb_7__4_"/>
<key id="468" alias="cby_7__4_"/>
<key id="469" alias="grid_clb_8__4_"/>
<key id="470" alias="cby_8__4_"/>
<key id="471" alias="grid_clb_9__4_"/>
<key id="472" alias="cby_9__4_"/>
<key id="473" alias="grid_clb_10__4_"/>
<key id="474" alias="cby_10__4_"/>
<key id="475" alias="grid_clb_11__4_"/>
<key id="476" alias="cby_11__4_"/>
<key id="477" alias="grid_clb_12__4_"/>
<key id="478" alias="cby_12__4_"/>
<key id="479" alias="grid_io_right_right_13__4_"/>
<key id="480" alias="sb_12__3_"/>
<key id="481" alias="cbx_12__3_"/>
<key id="482" alias="sb_11__3_"/>
<key id="483" alias="cbx_11__3_"/>
<key id="484" alias="sb_10__3_"/>
<key id="485" alias="cbx_10__3_"/>
<key id="486" alias="sb_9__3_"/>
<key id="487" alias="cbx_9__3_"/>
<key id="488" alias="sb_8__3_"/>
<key id="489" alias="cbx_8__3_"/>
<key id="490" alias="sb_7__3_"/>
<key id="491" alias="cbx_7__3_"/>
<key id="492" alias="sb_6__3_"/>
<key id="493" alias="cbx_6__3_"/>
<key id="494" alias="sb_5__3_"/>
<key id="495" alias="cbx_5__3_"/>
<key id="496" alias="sb_4__3_"/>
<key id="497" alias="cbx_4__3_"/>
<key id="498" alias="sb_3__3_"/>
<key id="499" alias="cbx_3__3_"/>
<key id="500" alias="sb_2__3_"/>
<key id="501" alias="cbx_2__3_"/>
<key id="502" alias="sb_1__3_"/>
<key id="503" alias="cbx_1__3_"/>
<key id="504" alias="sb_0__3_"/>
<key id="505" alias="cby_0__3_"/>
<key id="506" alias="grid_io_left_left_0__3_"/>
<key id="507" alias="grid_clb_1__3_"/>
<key id="508" alias="cby_1__3_"/>
<key id="509" alias="grid_clb_2__3_"/>
<key id="510" alias="cby_2__3_"/>
<key id="511" alias="grid_clb_3__3_"/>
<key id="512" alias="cby_3__3_"/>
<key id="513" alias="grid_clb_4__3_"/>
<key id="514" alias="cby_4__3_"/>
<key id="515" alias="grid_clb_5__3_"/>
<key id="516" alias="cby_5__3_"/>
<key id="517" alias="grid_clb_6__3_"/>
<key id="518" alias="cby_6__3_"/>
<key id="519" alias="grid_clb_7__3_"/>
<key id="520" alias="cby_7__3_"/>
<key id="521" alias="grid_clb_8__3_"/>
<key id="522" alias="cby_8__3_"/>
<key id="523" alias="grid_clb_9__3_"/>
<key id="524" alias="cby_9__3_"/>
<key id="525" alias="grid_clb_10__3_"/>
<key id="526" alias="cby_10__3_"/>
<key id="527" alias="grid_clb_11__3_"/>
<key id="528" alias="cby_11__3_"/>
<key id="529" alias="grid_clb_12__3_"/>
<key id="530" alias="cby_12__3_"/>
<key id="531" alias="grid_io_right_right_13__3_"/>
<key id="532" alias="sb_12__2_"/>
<key id="533" alias="cbx_12__2_"/>
<key id="534" alias="sb_11__2_"/>
<key id="535" alias="cbx_11__2_"/>
<key id="536" alias="sb_10__2_"/>
<key id="537" alias="cbx_10__2_"/>
<key id="538" alias="sb_9__2_"/>
<key id="539" alias="cbx_9__2_"/>
<key id="540" alias="sb_8__2_"/>
<key id="541" alias="cbx_8__2_"/>
<key id="542" alias="sb_7__2_"/>
<key id="543" alias="cbx_7__2_"/>
<key id="544" alias="sb_6__2_"/>
<key id="545" alias="cbx_6__2_"/>
<key id="546" alias="sb_5__2_"/>
<key id="547" alias="cbx_5__2_"/>
<key id="548" alias="sb_4__2_"/>
<key id="549" alias="cbx_4__2_"/>
<key id="550" alias="sb_3__2_"/>
<key id="551" alias="cbx_3__2_"/>
<key id="552" alias="sb_2__2_"/>
<key id="553" alias="cbx_2__2_"/>
<key id="554" alias="sb_1__2_"/>
<key id="555" alias="cbx_1__2_"/>
<key id="556" alias="sb_0__2_"/>
<key id="557" alias="cby_0__2_"/>
<key id="558" alias="grid_io_left_left_0__2_"/>
<key id="559" alias="grid_clb_1__2_"/>
<key id="560" alias="cby_1__2_"/>
<key id="561" alias="grid_clb_2__2_"/>
<key id="562" alias="cby_2__2_"/>
<key id="563" alias="grid_clb_3__2_"/>
<key id="564" alias="cby_3__2_"/>
<key id="565" alias="grid_clb_4__2_"/>
<key id="566" alias="cby_4__2_"/>
<key id="567" alias="grid_clb_5__2_"/>
<key id="568" alias="cby_5__2_"/>
<key id="569" alias="grid_clb_6__2_"/>
<key id="570" alias="cby_6__2_"/>
<key id="571" alias="grid_clb_7__2_"/>
<key id="572" alias="cby_7__2_"/>
<key id="573" alias="grid_clb_8__2_"/>
<key id="574" alias="cby_8__2_"/>
<key id="575" alias="grid_clb_9__2_"/>
<key id="576" alias="cby_9__2_"/>
<key id="577" alias="grid_clb_10__2_"/>
<key id="578" alias="cby_10__2_"/>
<key id="579" alias="grid_clb_11__2_"/>
<key id="580" alias="cby_11__2_"/>
<key id="581" alias="grid_clb_12__2_"/>
<key id="582" alias="cby_12__2_"/>
<key id="583" alias="grid_io_right_right_13__2_"/>
<key id="584" alias="sb_12__1_"/>
<key id="585" alias="cbx_12__1_"/>
<key id="586" alias="sb_11__1_"/>
<key id="587" alias="cbx_11__1_"/>
<key id="588" alias="sb_10__1_"/>
<key id="589" alias="cbx_10__1_"/>
<key id="590" alias="sb_9__1_"/>
<key id="591" alias="cbx_9__1_"/>
<key id="592" alias="sb_8__1_"/>
<key id="593" alias="cbx_8__1_"/>
<key id="594" alias="sb_7__1_"/>
<key id="595" alias="cbx_7__1_"/>
<key id="596" alias="sb_6__1_"/>
<key id="597" alias="cbx_6__1_"/>
<key id="598" alias="sb_5__1_"/>
<key id="599" alias="cbx_5__1_"/>
<key id="600" alias="sb_4__1_"/>
<key id="601" alias="cbx_4__1_"/>
<key id="602" alias="sb_3__1_"/>
<key id="603" alias="cbx_3__1_"/>
<key id="604" alias="sb_2__1_"/>
<key id="605" alias="cbx_2__1_"/>
<key id="606" alias="sb_1__1_"/>
<key id="607" alias="cbx_1__1_"/>
<key id="608" alias="sb_0__1_"/>
<key id="609" alias="cby_0__1_"/>
<key id="610" alias="grid_io_left_left_0__1_"/>
<key id="611" alias="grid_clb_1__1_"/>
<key id="612" alias="cby_1__1_"/>
<key id="613" alias="grid_clb_2__1_"/>
<key id="614" alias="cby_2__1_"/>
<key id="615" alias="grid_clb_3__1_"/>
<key id="616" alias="cby_3__1_"/>
<key id="617" alias="grid_clb_4__1_"/>
<key id="618" alias="cby_4__1_"/>
<key id="619" alias="grid_clb_5__1_"/>
<key id="620" alias="cby_5__1_"/>
<key id="621" alias="grid_clb_6__1_"/>
<key id="622" alias="cby_6__1_"/>
<key id="623" alias="grid_clb_7__1_"/>
<key id="624" alias="cby_7__1_"/>
<key id="625" alias="grid_clb_8__1_"/>
<key id="626" alias="cby_8__1_"/>
<key id="627" alias="grid_clb_9__1_"/>
<key id="628" alias="cby_9__1_"/>
<key id="629" alias="grid_clb_10__1_"/>
<key id="630" alias="cby_10__1_"/>
<key id="631" alias="grid_clb_11__1_"/>
<key id="632" alias="cby_11__1_"/>
<key id="633" alias="grid_clb_12__1_"/>
<key id="634" alias="cby_12__1_"/>
<key id="635" alias="grid_io_right_right_13__1_"/>
<key id="636" alias="sb_12__0_"/>
<key id="637" alias="cbx_12__0_"/>
<key id="638" alias="grid_io_bottom_bottom_12__0_"/>
<key id="639" alias="sb_11__0_"/>
<key id="640" alias="cbx_11__0_"/>
<key id="641" alias="grid_io_bottom_bottom_11__0_"/>
<key id="642" alias="sb_10__0_"/>
<key id="643" alias="cbx_10__0_"/>
<key id="644" alias="grid_io_bottom_bottom_10__0_"/>
<key id="645" alias="sb_9__0_"/>
<key id="646" alias="cbx_9__0_"/>
<key id="647" alias="grid_io_bottom_bottom_9__0_"/>
<key id="648" alias="sb_8__0_"/>
<key id="649" alias="cbx_8__0_"/>
<key id="650" alias="grid_io_bottom_bottom_8__0_"/>
<key id="651" alias="sb_7__0_"/>
<key id="652" alias="cbx_7__0_"/>
<key id="653" alias="grid_io_bottom_bottom_7__0_"/>
<key id="654" alias="sb_6__0_"/>
<key id="655" alias="cbx_6__0_"/>
<key id="656" alias="grid_io_bottom_bottom_6__0_"/>
<key id="657" alias="sb_5__0_"/>
<key id="658" alias="cbx_5__0_"/>
<key id="659" alias="grid_io_bottom_bottom_5__0_"/>
<key id="660" alias="sb_4__0_"/>
<key id="661" alias="cbx_4__0_"/>
<key id="662" alias="grid_io_bottom_bottom_4__0_"/>
<key id="663" alias="sb_3__0_"/>
<key id="664" alias="cbx_3__0_"/>
<key id="665" alias="grid_io_bottom_bottom_3__0_"/>
<key id="666" alias="sb_2__0_"/>
<key id="667" alias="cbx_2__0_"/>
<key id="668" alias="grid_io_bottom_bottom_2__0_"/>
<key id="669" alias="sb_1__0_"/>
<key id="670" alias="cbx_1__0_"/>
<key id="671" alias="grid_io_bottom_bottom_1__0_"/>
<key id="672" alias="sb_0__0_"/>
</region>
</fabric_key>

View File

@ -157,7 +157,7 @@
<port type="input" prefix="Test_en" lib_name="SCE" size="1" is_global="true" default_val="0"/> <port type="input" prefix="Test_en" lib_name="SCE" size="1" is_global="true" default_val="0"/>
<!-- <port type="input" prefix="reset" lib_name="RESET_B" size="1" is_global="true" default_val="1" is_reset="true"/> --> <!-- <port type="input" prefix="reset" lib_name="RESET_B" size="1" is_global="true" default_val="1" is_reset="true"/> -->
<port type="output" prefix="Q" size="1"/> <port type="output" prefix="Q" size="1"/>
<port type="clock" prefix="clk" lib_name="CLK" size="1" is_global="true" default_val="0" /> <port type="clock" prefix="clk" lib_name="CLK" size="1" is_global="false" default_val="0" />
</circuit_model> </circuit_model>
<circuit_model type="lut" name="frac_lut4" prefix="frac_lut4" dump_structural_verilog="true"> <circuit_model type="lut" name="frac_lut4" prefix="frac_lut4" dump_structural_verilog="true">
<design_technology type="cmos" fracturable_lut="true"/> <design_technology type="cmos" fracturable_lut="true"/>
@ -214,6 +214,9 @@
<direct name="shift_register" circuit_model_name="direct_interc" type="column" x_dir="positive" y_dir="positive"/> <direct name="shift_register" circuit_model_name="direct_interc" type="column" x_dir="positive" y_dir="positive"/>
<direct name="scan_chain" circuit_model_name="direct_interc" type="column" x_dir="positive" y_dir="positive"/> <direct name="scan_chain" circuit_model_name="direct_interc" type="column" x_dir="positive" y_dir="positive"/>
</direct_connection> </direct_connection>
<tile_annotations>
<global_port name="clk" tile_port="clb.clk" is_clock="true" default_val="0"/>
</tile_annotations>
<pb_type_annotations> <pb_type_annotations>
<!-- physical pb_type binding in complex block IO --> <!-- physical pb_type binding in complex block IO -->
<pb_type name="io" physical_mode_name="physical" idle_mode_name="inpad"/> <pb_type name="io" physical_mode_name="physical" idle_mode_name="inpad"/>

33
DOC/Makefile Normal file
View File

@ -0,0 +1,33 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SOURCEDIR = source
BUILDDIR = build
PAPER =
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALL_SPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCEDIR)
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
livehtml:
sphinx-autobuild -b html $(ALL_SPHINXOPTS) $(BUILDDIR)/html
clean:
rm -rf $(BUILDDIR)/*
.PHONY: help clean Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
#html:
# $(SPHINXBUILD) -b html $@ "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS)

35
DOC/make.bat Normal file
View File

@ -0,0 +1,35 @@
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
popd

16
DOC/requirements.txt Normal file
View File

@ -0,0 +1,16 @@
#Python requirements file for building documentation
# used by Read The Docs to install python required
# modules with pip.
# Support Markdown
#recommonmark
#Handle references in bibtex format
sphinxcontrib-bibtex
sphinxcontrib-tikz
#Work-around bug "AttributeError: 'Values' object has no attribute 'character_level_inline_markup'" with docutils 0.13.1
#See:
# * https://github.com/sphinx-doc/sphinx/issues/3951
# * https://sourceforge.net/p/docutils/bugs/304/
#docutils>=0.14

View File

@ -0,0 +1,13 @@
Acknowledgment
--------------
.. figure:: ./figures/uofu_logo.png
:scale: 50%
.. figure:: ./figures/lnis_logo.png
:scale: 50%
Supported by DARPA PoSH program
.. figure:: ./figures/darpa_logo.png
:scale: 50%

22
DOC/source/arch/clb.rst Normal file
View File

@ -0,0 +1,22 @@
Configurable Logic Block User Guide
-----------------------------------
Each Configurable Logic Block (CLB) consists of 8 logic elements as shown in :numref:`fig_fle_arch`.
.. _fig_fle_arch:
.. figure:: ./figures/fle_arch.png
:scale: 100%
:alt: Logic element schematic
Schematic of a logic element
.. _fig_clb_arch:
.. figure:: ./figures/clb_arch.png
:scale: 60%
:alt: Configurable Logic Block schematic
Configurable logic block and its chain connections across FPGA

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -0,0 +1,7 @@
.. _arch:
Architecture
.. toctree::
:maxdepth: 2
clb

201
DOC/source/conf.py Normal file
View File

@ -0,0 +1,201 @@
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import sys
import os
import shlex
# sys.path.insert(0, os.path.abspath('.'))
import sphinx_rtd_theme
# Uncomment for local build
#html_theme = "sphinx_rtd_theme"
#html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
# Import sphinxcontrib.bibtex
have_sphinxcontrib_bibtex = True
try:
import sphinxcontrib.bibtex
except ImportError:
have_sphinxcontrib_bibtex = False
# -- Project information -----------------------------------------------------
project = u'Skywater-OpenFPGA Chips'
copyright = u'2020, Xifan Tang'
author = u'Xifan Tang'
# The short X.Y version
version = u''
# The full version, including alpha/beta/rc tags
release = u'1.0'
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.todo',
'sphinx.ext.mathjax',
'sphinx.ext.graphviz',
'sphinxcontrib.bibtex',
'sphinx.ext.autosectionlabel',
]
# Add any paths that contain templates here, relative to this directory.
#templates_path = ['ytemplates']
templates_path = [sphinx_rtd_theme.get_html_theme_path()]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
# Number figures for referencing
numfig = True
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
#html_theme = 'alabaster'
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# Comment when using local build
# Uncomment when using readthedocs build
#html_theme_options = {sphinx_rtd_theme}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['ystatic']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'OpenFPGAdoc'
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'OpenFPGA.tex', u'OpenFPGA Documentation',
u'Xifan Tang', 'manual'),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'openfpga', u'OpenFPGA Documentation',
[author], 1)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'Skywater-OpenFPGA', u'Skywater-OpenFPGA Documentation',
author, 'Skywater-OpenFPGA', 'Open-source FPGA chips built with Skywater PDK and OpenFPGA.',
'Miscellaneous'),
]
# -- Options for Epub output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']

22
DOC/source/contact.rst Normal file
View File

@ -0,0 +1,22 @@
.. _contact:
Contacts
~~~~~~~~
.. option:: General Questions
Prof. Pierre-Emmanuel Gaillardon
pierre-emmanuel.gaillardon@utah.edu
.. option:: Technical Questions about OpenFPGA
Prof. Xifan Tang
xifan.tang@utah.edu
.. option:: Technical Questions about Physical Design
Ganesh Gore
ganesh.gore@utah.edu

View File

@ -0,0 +1,68 @@
DC and AC Characteristics
-------------------------
Each FPGA device contains 37 I/O pins, whose details are summarized in the following tables.
I/O usage and port information
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. table:: I/O usage and sizes
+-----------+------------------------------------------------------------------------+-------------+
| I/O Type | Description | No. of Pins |
+===========+========================================================================+=============+
| Data I/O | Datapath I/Os of FPGA fabric | 30 |
+-----------+------------------------------------------------------------------------+-------------+
| Clk | Operating clock of FPGA core | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| ProgClk | Clock used by configuration protocol to program FPGA fabric | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| CCin | Input of configuation protocol to load bitstream | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| CCout | Output of configuration protocol to read back bitstream | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| TestEn | Activate the test mode of FPGA fabric | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| SCin | Input of built-in scan-chain to load data to flip-flops of FPGA fabric | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| SCout | Output of built-in scan-chain to read back flip-flops from FPGA fabric | 1 |
+-----------+------------------------------------------------------------------------+-------------+
| Total | | 37 |
+-----------+------------------------------------------------------------------------+-------------+
Recommended Operating Conditions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. table:: Recommended Operating Conditions
+----------+------------------------------+------+------+-------+
| Symbol | Description | Min | Max | Units |
+==========+==============================+======+======+=======+
| VDD_io | Supply voltage for I/Os | TBD | TBD | V |
+----------+------------------------------+------+------+-------+
| VDD_core | Supply voltage for FPGA core | TBD | TBD | V |
+----------+------------------------------+------+------+-------+
| V_in | Input voltage for other I/Os | TBD | TBD | V |
+----------+------------------------------+------+------+-------+
| I_in | Maximum current through pins | N/A | TBD | mA |
+----------+------------------------------+------+------+-------+
| f_max | Maximum frequency of I/Os | N/A | TBD | MHz |
+----------+------------------------------+------+------+-------+
Typical AC Characteristics
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. table:: Typical AC characteristics for FPGA I/Os
+-----------------+-------------------------------------------+------+------+-------+
| Symbol | Description | Min | Max | Units |
+=================+===========================================+======+======+=======+
| V_in Overshoot | Maximum allowed overshoot voltage for Vin | TBD | TBD | V |
+-----------------+-------------------------------------------+------+------+-------+
| V_in Undershoot | Minimum allowed overshoot voltage for Vin | TBD | TBD | V |
+-----------------+-------------------------------------------+------+------+-------+
| I_VDD_core | Quiescent VDD_core supply current | TBD | TBD | mA |
+-----------------+-------------------------------------------+------+------+-------+
| I_VDD_io | Quiescent VDD_io supply current | TBD | TBD | mA |
+-----------------+-------------------------------------------+------+------+-------+

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

43
DOC/source/index.rst Normal file
View File

@ -0,0 +1,43 @@
.. OpenFPGA documentation master file, created by
sphinx-quickstart on Thu Sep 13 12:15:14 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to FROG's documentation!
====================================
.. toctree::
:caption: Device
technical_highlights
dc_ac_character
.. toctree::
:maxdepth: 2
:caption: Architecture
arch/index
.. toctree::
:maxdepth: 2
:caption: Appendix
contact
acknowledgment
For more information on the OpenFPGA see openfpga_doc_ or openfpga_github_
For more information on the original FPGA architecture description language see xml_vtr_
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. _openfpga_doc: https://docs.verilogtorouting.org/en/latest/
.. _openfpga_github: https://github.com/verilog-to-routing/vtr-verilog-to-routing
.. _xml_vtr: https://docs.verilogtorouting.org/en/latest/arch/reference/

View File

@ -0,0 +1,36 @@
Device Overview
---------------
All the FPGA devices in this project are fully open-source, from the architecture description to the physical design outputs, e.g., GDSII.
All the devices are designed through the OpenFPGA framework and the Skywater 130nm PDK.
The devices are embedded FPGA IPs, which are designed to interface the caravel SoC interface.
We aims to empower embedded applications with its low-cost design approach but high-density architecture.
- Native support on shift registers
- Operating temperature ranging from 0 :math:`^\circ C` to 85 :math:`^\circ C`
.. table:: Logic capacity of High Density (HD) FPGA IP
+--------------------------+------------+
| Resource Type | Capacity |
+==========================+============+
| Look-Up Tables [1]_ | 1152 |
+--------------------------+------------+
| Flip-flops | 2204 |
+--------------------------+------------+
| Max. Configuration Speed | TBD |
+--------------------------+------------+
| Max. Operating Speed | TBD |
+--------------------------+------------+
| User I/O Pins | 30 |
+--------------------------+------------+
| Max. I/O Speed | TBD |
+--------------------------+------------+
| Core Voltage | 1.8V |
+--------------------------+------------+
.. [1] counted by 4-input fracturable Look-Up Tables (LUTs), each of which can operate as dual-output 3-input LUTs or single-output 4-input LUT.

View File

@ -57,6 +57,9 @@ module caravel_fpga_wrapper (
wire sc_head; wire sc_head;
wire sc_tail; wire sc_tail;
// Switch between wishbone and logic analyzer
wire wb_la_switch;
// Wire-bond TOP side I/O of FPGA to LEFT-side of Caravel interface // Wire-bond TOP side I/O of FPGA to LEFT-side of Caravel interface
assign gfpga_pad_EMBEDDED_IO_SOC_IN[0] = io_in[24]; assign gfpga_pad_EMBEDDED_IO_SOC_IN[0] = io_in[24];
assign io_out[24] = gfpga_pad_EMBEDDED_IO_SOC_OUT[0]; assign io_out[24] = gfpga_pad_EMBEDDED_IO_SOC_OUT[0];
@ -88,7 +91,7 @@ module caravel_fpga_wrapper (
assign io_out[0] = 1'b0; assign io_out[0] = 1'b0;
assign io_oeb[0] = 1'b1; assign io_oeb[0] = 1'b1;
// Wire-bond RIGHT side I/O of FPGA to BOTTOm-side of Caravel interface // Wire-bond RIGHT side I/O of FPGA to BOTTOM-side of Caravel interface
assign gfpga_pad_EMBEDDED_IO_SOC_IN[22:23] = la_data_in[0:1]; assign gfpga_pad_EMBEDDED_IO_SOC_IN[22:23] = la_data_in[0:1];
assign la_data_in[0:1] = gfpga_pad_EMBEDDED_IO_SOC_OUT[22:23]; assign la_data_in[0:1] = gfpga_pad_EMBEDDED_IO_SOC_OUT[22:23];
assign la_data_in[0:1] = gfpga_pad_EMBEDDED_IO_SOC_DIR[22:23]; assign la_data_in[0:1] = gfpga_pad_EMBEDDED_IO_SOC_DIR[22:23];
@ -99,9 +102,9 @@ module caravel_fpga_wrapper (
assign la_data_in[2:73] = gfpga_pad_EMBEDDED_IO_SOC_DIR[24:95]; assign la_data_in[2:73] = gfpga_pad_EMBEDDED_IO_SOC_DIR[24:95];
// Wire-bond LEFT side I/O of FPGA to BOTTOM-side of Caravel interface // Wire-bond LEFT side I/O of FPGA to BOTTOM-side of Caravel interface
assign gfpga_pad_EMBEDDED_IO_SOC_IN[96:98] = la_data_in[74:76]; assign gfpga_pad_EMBEDDED_IO_SOC_IN[96:99] = la_data_in[74:77];
assign la_data_in[74:76] = gfpga_pad_EMBEDDED_IO_SOC_OUT[96:98]; assign la_data_in[74:77] = gfpga_pad_EMBEDDED_IO_SOC_OUT[96:99];
assign la_data_in[74:76] = gfpga_pad_EMBEDDED_IO_SOC_DIR[96:98]; assign la_data_in[74:77] = gfpga_pad_EMBEDDED_IO_SOC_DIR[96:99];
// Wire-bond LEFT side I/O of FPGA to LEFT-side of Caravel interface // Wire-bond LEFT side I/O of FPGA to LEFT-side of Caravel interface
assign prog_clk = io_in[37]; assign prog_clk = io_in[37];
@ -115,11 +118,17 @@ module caravel_fpga_wrapper (
assign io_out[35] = ccff_tail; assign io_out[35] = ccff_tail;
assign io_oeb[35] = 1'b0; assign io_oeb[35] = 1'b0;
assign gfpga_pad_EMBEDDED_IO_SOC_IN[99:107] = io_in[34:26]; assign gfpga_pad_EMBEDDED_IO_SOC_IN[100:107] = io_in[34:27];
assign io_out[34:26] = gfpga_pad_EMBEDDED_IO_SOC_OUT[99:107]; assign io_out[34:27] = gfpga_pad_EMBEDDED_IO_SOC_OUT[100:107];
assign io_oeb[34:26] = gfpga_pad_EMBEDDED_IO_SOC_DIR[99:107]; assign io_oeb[34:27] = gfpga_pad_EMBEDDED_IO_SOC_DIR[100:107];
assign sc_in = io_in[25]; assign sc_in = io_in[26];
assign io_out[26] = 1'b0;
assign io_oeb[26] = 1'b1;
// I/O[25] is reserved for a switch between wishbone interface
// and logic analyzer
assign wb_la_switch = io_in[25];
assign io_out[25] = 1'b0; assign io_out[25] = 1'b0;
assign io_oeb[25] = 1'b1; assign io_oeb[25] = 1'b1;

View File

@ -0,0 +1,38 @@
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configuration file for running experiments
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs
# Each job execute fpga_flow script on combination of architecture & benchmark
# timeout_each_job is timeout for each job
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
[GENERAL]
run_engine=openfpga_shell
power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml
power_analysis = true
spice_output=false
verilog_output=true
timeout_each_job = 1*60
fpga_flow=yosys_vpr
[OpenFPGA_SHELL]
openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_fabric_using_key_example_script.openfpga
openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_caravel_io_skywater130nm_fdhd_cc_openfpga.xml
openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml
openfpga_vpr_device_layout=12x12
openfpga_vpr_route_chan_width=40
openfpga_verilog_output_dir=${SKYWATER_OPENFPGA_HOME}/HDL/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc
openfpga_sdc_output_dir=${SKYWATER_OPENFPGA_HOME}/SDC/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc
external_fabric_key_file=${SKYWATER_OPENFPGA_HOME}/ARCH/fabric_key/fabric_key_12x12.xml
[ARCHITECTURES]
arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_caravel_io_skywater130nm.xml
[BENCHMARKS]
bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v
[SYNTHESIS_PARAM]
bench0_top = and2
[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH]
#end_flow_with_test=

View File

@ -0,0 +1,37 @@
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configuration file for running experiments
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs
# Each job execute fpga_flow script on combination of architecture & benchmark
# timeout_each_job is timeout for each job
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
[GENERAL]
run_engine=openfpga_shell
power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml
power_analysis = true
spice_output=false
verilog_output=true
timeout_each_job = 1*60
fpga_flow=yosys_vpr
[OpenFPGA_SHELL]
openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_sdc_using_key_example_script.openfpga
openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_caravel_io_skywater130nm_fdhd_cc_openfpga.xml
openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml
openfpga_vpr_device_layout=12x12
openfpga_vpr_route_chan_width=40
openfpga_sdc_output_dir=${SKYWATER_OPENFPGA_HOME}/SDC/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc
external_fabric_key_file=${SKYWATER_OPENFPGA_HOME}/ARCH/fabric_key/fabric_key_12x12.xml
[ARCHITECTURES]
arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_caravel_io_skywater130nm.xml
[BENCHMARKS]
bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v
[SYNTHESIS_PARAM]
bench0_top = and2
[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH]
#end_flow_with_test=

View File

@ -0,0 +1,38 @@
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# Configuration file for running experiments
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
# timeout_each_job : FPGA Task script splits fpga flow into multiple jobs
# Each job execute fpga_flow script on combination of architecture & benchmark
# timeout_each_job is timeout for each job
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
[GENERAL]
run_engine=openfpga_shell
power_tech_file = ${PATH:OPENFPGA_PATH}/openfpga_flow/tech/PTM_45nm/45nm.xml
power_analysis = true
spice_output=false
verilog_output=true
timeout_each_job = 1*60
fpga_flow=yosys_vpr
[OpenFPGA_SHELL]
openfpga_shell_template=${SKYWATER_OPENFPGA_HOME}/SCRIPT/openfpga_shell_script/skywater_generate_testbench_using_key_example_script.openfpga
openfpga_arch_file=${SKYWATER_OPENFPGA_HOME}/ARCH/openfpga_arch/k4_frac_N8_register_scan_chain_caravel_io_skywater130nm_fdhd_cc_openfpga.xml
openfpga_sim_setting_file=${PATH:OPENFPGA_PATH}/openfpga_flow/openfpga_simulation_settings/auto_sim_openfpga.xml
openfpga_vpr_device_layout=12x12
openfpga_vpr_route_chan_width=40
openfpga_verilog_output_dir=${SKYWATER_OPENFPGA_HOME}/TESTBENCH/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc
openfpga_fabric_verilog_netlist=${SKYWATER_OPENFPGA_HOME}/HDL/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc/SRC/fabric_netlists.v
external_fabric_key_file=${SKYWATER_OPENFPGA_HOME}/ARCH/fabric_key/fabric_key_12x12.xml
[ARCHITECTURES]
arch0=${SKYWATER_OPENFPGA_HOME}/ARCH/vpr_arch/k4_frac_N8_tileable_register_scan_chain_nonLR_caravel_io_skywater130nm.xml
[BENCHMARKS]
bench0=${PATH:OPENFPGA_PATH}/openfpga_flow/benchmarks/micro_benchmark/and2/and2.v
[SYNTHESIS_PARAM]
bench0_top = and2
[SCRIPT_PARAM_MIN_ROUTE_CHAN_WIDTH]
#end_flow_with_test=

View File

@ -0,0 +1,67 @@
//-------------------------------------------
// FPGA Synthesizable Verilog Netlist
// Description: Netlist Summary
// Author: Xifan TANG
// Organization: University of Utah
// Date: Wed Nov 11 16:01:30 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
// ------ Include simulation defines -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc/verilog_testbench/define_simulation.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/HDL/common/skywater_function_verification.v"
// ------ Include Skywater cell netlists -----
// Cells already used pre-PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/sdfxtp/sky130_fd_sc_hd__sdfxtp_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dfxtp/sky130_fd_sc_hd__dfxtp_1.v"
// Cells added due to their use in PnR
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/or2/sky130_fd_sc_hd__or2_0.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/mux2/sky130_fd_sc_hd__mux2_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/conb/sky130_fd_sc_hd__conb_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd1/sky130_fd_sc_hd__dlygate4sd1_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd2/sky130_fd_sc_hd__dlygate4sd2_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s2s/sky130_fd_sc_hd__dlymetal6s2s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlymetal6s6s/sky130_fd_sc_hd__dlymetal6s6s_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/dlygate4sd3/sky130_fd_sc_hd__dlygate4sd3_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_6.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_12.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_16.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/bufinv/sky130_fd_sc_hd__bufinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinvlp/sky130_fd_sc_hd__clkinvlp_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkinv/sky130_fd_sc_hd__clkinv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/inv/sky130_fd_sc_hd__inv_4.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkbuf/sky130_fd_sc_hd__clkbuf_1.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_8.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/clkdlybuf4s50/sky130_fd_sc_hd__clkdlybuf4s50_2.v"
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/PDK/skywater-pdk/libraries/sky130_fd_sc_hd/latest/cells/buf/sky130_fd_sc_hd__buf_12.v"
// ------ Include fabric top-level netlists -----
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/FPGA1212_FC_HD_SKY_PNR/fpga_core/fpga_core_icv_in_design.pt.v"
`ifdef AUTOCHECKED_SIMULATION
`include "and2_output_verilog.v"
`endif
`ifdef AUTOCHECKED_SIMULATION
`include "/research/ece/lnis/USERS/tang/github/skywater-openfpga/TESTBENCH/k4_non_adder_caravel_io_FPGA_12x12_fdhd_cc/verilog_testbench/and2_post_pnr_autocheck_top_tb.v"
`endif