first commit

This commit is contained in:
mii
2023-06-15 14:29:24 +09:00
commit d0c583fca6
33 changed files with 725074 additions and 0 deletions

11
MDIO.gprj Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1" encoding="UTF-8"?>
<!DOCTYPE gowin-fpga-project>
<Project>
<Template>FPGA</Template>
<Version>5</Version>
<Device name="GW2A-18C" pn="GW2A-LV18PG256C8/I7">gw2a18c-011</Device>
<FileList>
<File path="src/Top.v" type="file.verilog" enable="1"/>
<File path="src/MDIO.cst" type="file.cst" enable="1"/>
</FileList>
</Project>

24
MDIO.gprj.user Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1" encoding="UTF-8"?>
<!DOCTYPE ProjectUserData>
<UserConfig>
<Version>1.0</Version>
<FlowState>
<Process ID="Synthesis" State="2"/>
<Process ID="Pnr" State="2"/>
<Process ID="Gao" State="2"/>
<Process ID="Rtl_Gao" State="2"/>
</FlowState>
<ResultFileList>
<ResultFile ResultFileType="RES.netlist" ResultFilePath="impl/gwsynthesis/MDIO.vg"/>
<ResultFile ResultFileType="RES.pnr.bitstream" ResultFilePath="impl/pnr/MDIO.fs"/>
<ResultFile ResultFileType="RES.pnr.pin.rpt" ResultFilePath="impl/pnr/MDIO.pin.html"/>
<ResultFile ResultFileType="RES.pnr.posp.bin" ResultFilePath="impl/pnr/MDIO.db"/>
<ResultFile ResultFileType="RES.pnr.pwr.rpt" ResultFilePath="impl/pnr/MDIO.power.html"/>
<ResultFile ResultFileType="RES.pnr.report" ResultFilePath="impl/pnr/MDIO.rpt.html"/>
<ResultFile ResultFileType="RES.pnr.timing.paths" ResultFilePath="impl/pnr/MDIO.timing_paths"/>
<ResultFile ResultFileType="RES.pnr.timing.rpt" ResultFilePath="impl/pnr/MDIO.tr.html"/>
<ResultFile ResultFileType="RES.syn.report" ResultFilePath="impl/gwsynthesis/MDIO_syn.rpt.html"/>
<ResultFile ResultFileType="RES.syn.resource" ResultFilePath="impl/gwsynthesis/MDIO_syn_rsc.xml"/>
</ResultFileList>
<Ui>000000ff00000001fd0000000200000000000001000000044dfc0200000001fc000000380000044d0000008a01000018fa000000000200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000005600fffffffb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000005200fffffffb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000007100ffffff0000000300000494000000f2fc0100000001fc0000000000000494000000a100fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000004700fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000a100ffffff0000038e0000044d00000004000000040000000800000008fc000000010000000200000004000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e0045006400690074010000009bffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c00730100000157ffffffff0000000000000000ffffffff0100000207ffffffff0000000000000000</Ui>
</UserConfig>

32
impl/gwsynthesis/MDIO.log Normal file
View File

@ -0,0 +1,32 @@
GowinSynthesis start
Running parser ...
Analyzing Verilog file '/home/mii/work/MDIO/src/Top.v'
WARN (EX2810) : Extra semicolon in $unit (global) scope("/home/mii/work/MDIO/src/Top.v":203)
Compiling module 'Top'("/home/mii/work/MDIO/src/Top.v":1)
WARN (EX3780) : Using initial value of 'reg_mdc_cnt_max' since it is never assigned("/home/mii/work/MDIO/src/Top.v":13)
WARN (EX3780) : Using initial value of 'read_preamble' since it is never assigned("/home/mii/work/MDIO/src/Top.v":39)
WARN (EX3780) : Using initial value of 'write_preamble' since it is never assigned("/home/mii/work/MDIO/src/Top.v":40)
WARN (EX3780) : Using initial value of 'reg_phy_address' since it is never assigned("/home/mii/work/MDIO/src/Top.v":42)
WARN (EX3780) : Using initial value of 'reg_register_address' since it is never assigned("/home/mii/work/MDIO/src/Top.v":43)
WARN (EX3780) : Using initial value of 'write' since it is never assigned("/home/mii/work/MDIO/src/Top.v":46)
WARN (EX3791) : Expression size 6 truncated to fit in target size 5("/home/mii/work/MDIO/src/Top.v":16)
NOTE (EX0101) : Current top module is "Top"
[5%] Running netlist conversion ...
Running device independent optimization ...
[10%] Optimizing Phase 0 completed
[15%] Optimizing Phase 1 completed
[25%] Optimizing Phase 2 completed
Running inference ...
[30%] Inferring Phase 0 completed
[40%] Inferring Phase 1 completed
[50%] Inferring Phase 2 completed
[55%] Inferring Phase 3 completed
Running technical mapping ...
[60%] Tech-Mapping Phase 0 completed
[65%] Tech-Mapping Phase 1 completed
[75%] Tech-Mapping Phase 2 completed
[80%] Tech-Mapping Phase 3 completed
[90%] Tech-Mapping Phase 4 completed
[95%] Generate netlist file "/home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg" completed
[100%] Generate report file "/home/mii/work/MDIO/impl/gwsynthesis/MDIO_syn.rpt.html" completed
GowinSynthesis finish

19
impl/gwsynthesis/MDIO.prj Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gowin-synthesis-project>
<Project>
<Version>beta</Version>
<Device id="GW2A-18C" package="PBGA256" speed="8" partNumber="GW2A-LV18PG256C8/I7"/>
<FileList>
<File path="/home/mii/work/MDIO/src/Top.v" type="verilog"/>
</FileList>
<OptionList>
<Option type="disable_insert_pad" value="0"/>
<Option type="dsp_balance" value="0"/>
<Option type="looplimit" value="2000"/>
<Option type="output_file" value="/home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg"/>
<Option type="print_all_synthesis_warning" value="0"/>
<Option type="ram_rw_check" value="1"/>
<Option type="verilog_language" value="verilog-2001"/>
<Option type="vhdl_language" value="vhdl-1993"/>
</OptionList>
</Project>

461
impl/gwsynthesis/MDIO.vg Normal file
View File

@ -0,0 +1,461 @@
//
//Written by GowinSynthesis
//Product Version "V1.9.8.11 Education"
//Thu Jun 15 14:25:43 2023
//Source file index table:
//file0 "\/home/mii/work/MDIO/src/Top.v"
`pragma protect begin_protected
`pragma protect version="2.2"
`pragma protect author="default"
`pragma protect author_info="default"
`pragma protect encrypt_agent="GOWIN"
`pragma protect encrypt_agent_info="GOWIN Encrypt Version 2.2"
`pragma protect encoding=(enctype="base64", line_length=76, bytes=256)
`pragma protect key_keyowner="GOWIN",key_keyname="GWK2022-10",key_method="rsa"
`pragma protect key_block
NdvpwEPj5aqQ4cslQUzqD9IZPazC4sVYulYHXt4c3M3oY1bGwbTrp+9SjQ8zGrF/MbMg+yYhBE4I
r/q2ADrBtjfTW22dzmncFbLU6quYjHrM21JJeyRVekwZt4RdHp31P7zfLfCKLXzzaq/knv6i/Xua
XKrsxodVjpWbjrR4TM5FAVvPaKGOx+ENcOzjfQuXXsm63aY5WF8RP3ep4DLZAJZWKpp/BwgqnRFJ
0gV3RzjWW4+Wr4fREgTC+qPJy7K1JPHnmi23VGDe+TAN4QlvA1K/D9ky070RVwTqWtWZSjlkwhw/
90BZ6omW6HgeYjTJBAvnYOvFkRlMGPQOhVLPXg==
`pragma protect encoding=(enctype="base64", line_length=76, bytes=24608)
`pragma protect data_keyowner="default-ip-vendor"
`pragma protect data_keyname="default-ip-key"
`pragma protect data_method="aes128-cbc"
`pragma protect data_block
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
`pragma protect end_protected

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Hierarchy Module Resource</title>
<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 14px; }
div#main_wrapper{ width: 100%; }
h1 {text-align: center; }
h1 {margin-top: 36px; }
table, th, td { border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { align = "center"; padding: 5px 2px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table td.label { width: 20%; white-space: nowrap; min-width: 20px; background-color: #dee8f4; }
</style>
</head>
<body>
<div id="main_wrapper">
<div id="content">
<h1>Hierarchy Module Resource</h1>
<table>
<tr>
<th class="label">MODULE NAME</th>
<th class="label">REG NUMBER</th>
<th class="label">ALU NUMBER</th>
<th class="label">LUT NUMBER</th>
<th class="label">DSP NUMBER</th>
<th class="label">BSRAM NUMBER</th>
<th class="label">SSRAM NUMBER</th>
</tr>
<tr>
<td class="label">Top (/home/mii/work/MDIO/src/Top.v)</td>
<td align = "center">47</td>
<td align = "center">4</td>
<td align = "center">122</td>
<td align = "center">-</td>
<td align = "center">-</td>
<td align = "center">-</td>
</tr>
</table>
</div><!-- content -->
</div><!-- main_wrapper -->
</body>
</html>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Module name="Top" Register="47" Alu="4" Lut="122"/>

BIN
impl/pnr/MDIO.bin Executable file

Binary file not shown.

BIN
impl/pnr/MDIO.binx Executable file

Binary file not shown.

BIN
impl/pnr/MDIO.db Normal file

Binary file not shown.

1378
impl/pnr/MDIO.fs Executable file

File diff suppressed because it is too large Load Diff

29
impl/pnr/MDIO.log Normal file
View File

@ -0,0 +1,29 @@
Reading netlist file: "/home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg"
Parsing netlist file "/home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg" completed
Processing netlist completed
Reading constraint file: "/home/mii/work/MDIO/src/MDIO.cst"
Physical Constraint parsed completed
Running placement......
[10%] Placement Phase 0 completed
[20%] Placement Phase 1 completed
[30%] Placement Phase 2 completed
[50%] Placement Phase 3 completed
Running routing......
[60%] Routing Phase 0 completed
[70%] Routing Phase 1 completed
[80%] Routing Phase 2 completed
[90%] Routing Phase 3 completed
Running timing analysis......
[95%] Timing analysis completed
Placement and routing completed
Bitstream generation in progress......
Bitstream generation completed
Running power analysis......
[100%] Power analysis completed
Generate file "/home/mii/work/MDIO/impl/pnr/MDIO.power.html" completed
Generate file "/home/mii/work/MDIO/impl/pnr/MDIO.pin.html" completed
Generate file "/home/mii/work/MDIO/impl/pnr/MDIO.rpt.html" completed
Generate file "/home/mii/work/MDIO/impl/pnr/MDIO.rpt.txt" completed
Generate file "/home/mii/work/MDIO/impl/pnr/MDIO.tr.html" completed
Thu Jun 15 14:25:46 2023

3573
impl/pnr/MDIO.pin.html Normal file

File diff suppressed because it is too large Load Diff

269
impl/pnr/MDIO.power.html Normal file
View File

@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Power Analysis Report</title>
<style type="text/css">
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#main_wrapper { width: 100%; }
div#content { margin-left: 350px; margin-right: 30px; }
div#catalog_wrapper {position: fixed; top: 30px; width: 350px; float: left; }
div#catalog ul { list-style-type: none; }
div#catalog li { text-align: left; list-style-type:circle; color: #0084ff; margin-top: 3px; margin-bottom: 3px; }
div#catalog a { display:inline-block; text-decoration: none; color: #0084ff; font-weight: bold; padding: 3px; }
div#catalog a:visited { color: #0084ff; }
div#catalog a:hover { color: #fff; background: #0084ff; }
hr { margin-top: 30px; margin-bottom: 30px; }
h1, h3 { text-align: center; }
h1 {margin-top: 50px; }
table, th, td {white-space:pre; border: 1px solid #aaa; }
table { border-collapse:collapse; margin-top: 10px; margin-bottom: 20px; width: 100%; }
th, td { padding: 5px 5px 5px 5px; }
th { color: #fff; font-weight: bold; background-color: #0084ff; }
table.summary_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.thermal_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.Configure_table td.label { width: 24%; min-width: 200px; background-color: #dee8f4; }
table.detail_table th.label { min-width: 8%; width: 8%; }
</style>
</head>
<body>
<div id="main_wrapper">
<div id="catalog_wrapper">
<div id="catalog">
<ul>
<li><a href="#Message" style=" font-size: 16px;">Power Messages</a>
</li>
<li><a href="#Summary" style=" font-size: 16px;">Power Summary</a>
<ul>
<li><a href="#Power_Info" style=" font-size: 14px;">Power Information</a></li>
<li><a href="#Thermal_Info" style=" font-size: 14px;">Thermal Information</a></li>
<li><a href="#Configure_Info" style=" font-size: 14px;">Configure Information</a></li>
<li><a href="#Supply_Summary" style=" font-size: 14px;">Supply Information</a></li>
</ul>
</li>
<li><a href="#Detail" style=" font-size: 16px;">Power Details</a>
<ul>
<li><a href="#By_Block_Type" style=" font-size: 14px;">Power By Block Type</a></li>
<li><a href="#By_Hierarchy" style=" font-size: 14px;">Power By Hierarchy</a></li>
<li><a href="#By_Clock_Domain" style=" font-size: 14px;">Power By Clock Domain</a></li>
</ul>
</li>
</ul>
</div><!-- catalog -->
</div><!-- catalog_wrapper -->
<div id="content">
<h1><a name="Message">Power Messages</a></h1>
<table class="summary_table">
<tr>
<td class="label">Report Title</td>
<td>Power Analysis Report</td>
</tr>
<tr>
<td class="label">Design File</td>
<td>/home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg</td>
</tr>
<tr>
<td class="label">Physical Constraints File</td>
<td>/home/mii/work/MDIO/src/MDIO.cst</td>
</tr>
<tr>
<td class="label">Timing Constraints File</td>
<td>---</td>
</tr>
<tr>
<td class="label">Version</td>
<td>V1.9.8.11 Education</td>
</tr>
<tr>
<td class="label">Part Number</td>
<td>GW2A-LV18PG256C8/I7</td>
</tr>
<tr>
<td class="label">Device</td>
<td>GW2A-18</td>
</tr>
<tr>
<td class="label">Device Version</td>
<td>C</td>
</tr>
<tr>
<td class="label">Created Time</td>
<td>Thu Jun 15 14:25:46 2023
</td>
</tr>
<tr>
<td class="label">Legal Announcement</td>
<td>Copyright (C)2014-2023 Gowin Semiconductor Corporation. All rights reserved.</td>
</tr>
</table>
<h1><a name="Summary">Power Summary</a></h1>
<h2><a name="Power_Info">Power Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Total Power (mW)</td>
<td>164.593</td>
</tr>
<tr>
<td class="label">Quiescent Power (mW)</td>
<td>160.886</td>
</tr>
<tr>
<td class="label">Dynamic Power (mW)</td>
<td>3.707</td>
</tr>
</table>
<h2><a name="Thermal_Info">Thermal Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Junction Temperature</td>
<td>30.270</td>
</tr>
<tr>
<td class="label">Theta JA</td>
<td>32.020</td>
</tr>
<tr>
<td class="label">Max Allowed Ambient Temperature</td>
<td>79.730</td>
</tr>
</table>
<h2><a name="Configure_Info">Configure Information:</a></h2>
<table class="summary_table">
<tr>
<td class="label">Default IO Toggle Rate</td>
<td>0.125</td>
</tr>
<td class="label">Default Remain Toggle Rate</td>
<td>0.125</td>
</tr>
<tr>
<td class="label">Use Vectorless Estimation</td>
<td>false</td>
</tr>
<tr>
<td class="label">Filter Glitches</td>
<td>false</td>
</tr>
<tr>
<td class="label">Related Vcd File</td>
<td></td>
</tr>
<tr>
<td class="label">Related Saif File</td>
<td></td>
</tr>
<tr>
<td class="label">Use Custom Theta JA</td>
<td>false</td>
</tr>
<tr>
<td class="label">Air Flow</td>
<td>LFM_0</td>
</tr>
<tr>
<td class="label">Heat Sink</td>
<td>None</td>
</tr>
<tr>
<td class="label">Use Custom Theta SA</td>
<td>false</td>
</tr>
<tr>
<td class="label">Board Thermal Model</td>
<td>None</td>
</tr>
<tr>
<td class="label">Use Custom Theta JB</td>
<td>false</td>
</tr>
<tr>
<td class="label">Ambient Temperature</td>
<td>25.000
</tr>
</table>
<h2><a name="Supply_Summary">Supply Information:</a></h2>
<table class="summary_table">
<tr>
<th class="label">Voltage Source</th>
<th class="label">Voltage</th>
<th class="label">Dynamic Current(mA)</th>
<th class="label">Quiescent Current(mA)</th>
<th class="label">Power(mW)</th>
</tr>
<tr>
<td>VCC</td>
<td>1.000</td>
<td>0.902</td>
<td>101.983</td>
<td>102.885</td>
</tr>
<tr>
<td>VCCX</td>
<td>2.500</td>
<td>0.654</td>
<td>23.366</td>
<td>60.050</td>
</tr>
<tr>
<td>VCCIO18</td>
<td>1.800</td>
<td>0.650</td>
<td>0.272</td>
<td>1.658</td>
</tr>
</table>
<h1><a name="Detail">Power Details</a></h1>
<h2><a name="By_Block_Type">Power By Block Type:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Block Type</th>
<th class="label">Total Power(mW)</th>
<th class="label">Static Power(mW)</th>
<th class="label">Average Toggle Rate(millions of transitions/sec)</th>
</tr>
<tr>
<td>Logic</td>
<td>0.203</td>
<td>NA</td>
<td>16.020</td>
</tr>
<tr>
<td>IO</td>
<td>4.911
<td>1.448
<td>23.438
</tr>
</table>
<h2><a name="By_Hierarchy">Power By Hierarchy:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Hierarchy Entity</th>
<th class="label">Total Power(mW)</th>
<th class="label">Block Dynamic Power(mW)</th>
</tr>
<tr>
<td>Top</td>
<td>0.203</td>
<td>0.203(0.000)</td>
</table>
<h2><a name="By_Clock_Domain">Power By Clock Domain:</a></h2>
<table class="detail_table">
<tr>
<th class="label">Clock Domain</th>
<th class="label">Clock Frequency(Mhz)</th>
<th class="label">Total Dynamic Power(mW)</th>
</tr>
<tr>
<td>MDC_d</td>
<td>100.000</td>
<td>0.166</td>
</tr>
<tr>
<td>CLK</td>
<td>100.000</td>
<td>0.078</td>
</tr>
</table>
</div><!-- content -->
</div><!-- main_wrapper -->
</body>
</html>

3829
impl/pnr/MDIO.rpt.html Normal file

File diff suppressed because it is too large Load Diff

347
impl/pnr/MDIO.rpt.txt Normal file
View File

@ -0,0 +1,347 @@
//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
//All rights reserved.
1. PnR Messages
<Report Title>: PnR Report
<Design File>: /home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg
<Physical Constraints File>: /home/mii/work/MDIO/src/MDIO.cst
<Timing Constraints File>: ---
<PnR Version>: V1.9.8.11 Education
<Part Number>: GW2A-LV18PG256C8/I7
<Device>: GW2A-18
<Device Version>: C
<Created Time>:Thu Jun 15 14:25:46 2023
2. PnR Details
Running placement:
Placement Phase 0: CPU time = 0h 0m 0.013s, Elapsed time = 0h 0m 0.013s
Placement Phase 1: CPU time = 0h 0m 0.341s, Elapsed time = 0h 0m 0.339s
Placement Phase 2: CPU time = 0h 0m 0.011s, Elapsed time = 0h 0m 0.011s
Placement Phase 3: CPU time = 0h 0m 1s, Elapsed time = 0h 0m 1s
Total Placement: CPU time = 0h 0m 2s, Elapsed time = 0h 0m 2s
Running routing:
Routing Phase 0: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s
Routing Phase 1: CPU time = 0h 0m 0.19s, Elapsed time = 0h 0m 0.189s
Routing Phase 2: CPU time = 0h 0m 0.156s, Elapsed time = 0h 0m 0.153s
Routing Phase 3: CPU time = 0h 0m 0s, Elapsed time = 0h 0m 0s
Total Routing: CPU time = 0h 0m 0.346s, Elapsed time = 0h 0m 0.342s
Generate output files:
CPU time = 0h 0m 0.732s, Elapsed time = 0h 0m 0.727s
Total Time and Memory Usage: CPU time = 0h 0m 3s, Elapsed time = 0h 0m 3s, Peak memory usage = 487MB
3. Resource Usage Summary
----------------------------------------------------------
Resources | Usage
----------------------------------------------------------
Logic | 125/20736 <1%
--LUT,ALU,ROM16 | 125(120 LUT, 5 ALU, 0 ROM16)
--SSRAM(RAM16) | 0
Register | 47/16173 <1%
--Logic Register as Latch | 0/15552 0%
--Logic Register as FF | 46/15552 <1%
--I/O Register as Latch | 0/621 0%
--I/O Register as FF | 1/621 <1%
CLS | 74/10368 <1%
I/O Port | 7
I/O Buf | 7
--Input Buf | 1
--Output Buf | 5
--Inout Buf | 1
IOLOGIC | 0%
BSRAM | 0%
DSP | 0%
PLL | 0/4 0%
DCS | 0/8 0%
DQCE | 0/24 0%
OSC | 0/1 0%
CLKDIV | 0/8 0%
DLLDLY | 0/8 0%
DQS | 0/9 0%
DHCEN | 0/16 0%
==========================================================
4. I/O Bank Usage Summary
-----------------------
I/O Bank | Usage
-----------------------
bank 0 | 3/29(10%)
bank 1 | 4/20(20%)
bank 2 | 0/20(0%)
bank 3 | 0/32(0%)
bank 4 | 0/36(0%)
bank 5 | 0/36(0%)
bank 6 | 0/18(0%)
bank 7 | 0/16(0%)
=======================
5. Global Clock Usage Summary
-------------------------------
Global Clock | Usage
-------------------------------
PRIMARY | 2/8(25%)
LW | 0/8(0%)
GCLK_PIN | 1/8(13%)
PLL | 0/4(0%)
CLKDIV | 0/8(0%)
DLLDLY | 0/8(0%)
===============================
6. Global Clock Signals
-------------------------------------------
Signal | Global Clock | Location
-------------------------------------------
CLK_d | PRIMARY | TR TL
MDC_d | PRIMARY | TR TL BR BL
===========================================
7. Pinout by Port Name
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Port Name | Diff Pair | Loc./Bank | Constraint | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | BankVccio
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CLK | | H11/0 | Y | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
MDC | | F14/0 | Y | out | IOT9[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
LED[0] | | N16/1 | Y | out | IOT52[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
LED[1] | | N14/1 | Y | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
LED[2] | | L14/1 | Y | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
LED[3] | | L16/1 | Y | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
MDIO | | F16/0 | Y | io | IOT9[B] | LVCMOS18 | 8 | UP | NA | NONE | OFF | NA | NA | NA | 1.8
==================================================================================================================================================================================================================
8. All Package Pins
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Loc./Bank| Signal | Dir. | Site | IO Type | Drive | Pull Mode | PCI Clamp | Hysteresis | Open Drain | Vref | Single Resistor | Diff Resistor | Bank Vccio
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
L15/0 | - | in | IOT2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D16/0 | - | in | IOT4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E14/0 | - | in | IOT4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
C16/0 | - | in | IOT5[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D15/0 | - | in | IOT5[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E16/0 | - | in | IOT6[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F15/0 | - | in | IOT6[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F13/0 | - | in | IOT8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G12/0 | - | in | IOT8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
F14/0 | MDC | out | IOT9[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
F16/0 | MDIO | io | IOT9[B] | LVCMOS18 | 8 | UP | NA | NONE | OFF | NA | NA | NA | 1.8
F12/0 | - | in | IOT12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G13/0 | - | in | IOT12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G15/0 | - | in | IOT13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G14/0 | - | in | IOT13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G11/0 | - | in | IOT14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H12/0 | - | in | IOT14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
G16/0 | - | in | IOT16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H15/0 | - | in | IOT16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H13/0 | - | in | IOT18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J12/0 | - | in | IOT18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H14/0 | - | in | IOT20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H16/0 | - | in | IOT20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J16/0 | - | in | IOT22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J14/0 | - | in | IOT22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J15/0 | - | in | IOT24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K16/0 | - | in | IOT24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
H11/0 | CLK | in | IOT27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J13/0 | - | in | IOT27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K14/1 | - | in | IOT30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K15/1 | - | in | IOT30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
J11/1 | - | in | IOT32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L12/1 | - | in | IOT32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L16/1 | LED[3] | out | IOT34[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
L14/1 | LED[2] | out | IOT34[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
K13/1 | - | in | IOT36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K12/1 | - | in | IOT36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
K11/1 | - | in | IOT38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
L13/1 | - | in | IOT38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M14/1 | - | in | IOT40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
M15/1 | - | in | IOT40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
D14/1 | - | in | IOT44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
E15/1 | - | in | IOT44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N15/1 | - | in | IOT48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
P16/1 | - | in | IOT48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
N16/1 | LED[0] | out | IOT52[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
N14/1 | LED[1] | out | IOT52[B] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | 1.8
P15/1 | - | in | IOT54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
R16/1 | - | in | IOT54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | 1.8
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A4/5 | - | in | IOB2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C5/5 | - | in | IOB2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D6/5 | - | in | IOB3[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E7/5 | - | in | IOB3[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A3/5 | - | in | IOB4[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B4/5 | - | in | IOB4[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A5/5 | - | in | IOB7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B6/5 | - | in | IOB7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B1/5 | - | in | IOB8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C2/5 | - | in | IOB8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D3/5 | - | in | IOB9[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D1/5 | - | in | IOB9[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E2/5 | - | in | IOB12[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E3/5 | - | in | IOB12[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B3/5 | - | in | IOB13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A2/5 | - | in | IOB13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C1/5 | - | in | IOB14[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D2/5 | - | in | IOB14[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E1/5 | - | in | IOB16[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F2/5 | - | in | IOB16[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F4/5 | - | in | IOB18[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G6/5 | - | in | IOB18[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F3/5 | - | in | IOB19[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F1/5 | - | in | IOB19[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G5/5 | - | in | IOB20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G4/5 | - | in | IOB20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G2/5 | - | in | IOB21[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G3/5 | - | in | IOB21[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F5/5 | - | in | IOB22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H6/5 | - | in | IOB22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
G1/5 | - | in | IOB24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H2/5 | - | in | IOB24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H4/5 | - | in | IOB26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J6/5 | - | in | IOB26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J1/5 | - | in | IOB27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J3/5 | - | in | IOB27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L2/4 | - | in | IOB30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M1/4 | - | in | IOB30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H3/4 | - | in | IOB32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H1/4 | - | in | IOB32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J2/4 | - | in | IOB34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K1/4 | - | in | IOB34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
H5/4 | - | in | IOB35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J4/4 | - | in | IOB35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K3/4 | - | in | IOB36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K2/4 | - | in | IOB36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
J5/4 | - | in | IOB37[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K6/4 | - | in | IOB37[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L1/4 | - | in | IOB38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L3/4 | - | in | IOB38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K4/4 | - | in | IOB39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L5/4 | - | in | IOB39[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
K5/4 | - | in | IOB40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L4/4 | - | in | IOB40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N2/4 | - | in | IOB41[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P1/4 | - | in | IOB41[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M3/4 | - | in | IOB42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N1/4 | - | in | IOB42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M2/4 | - | in | IOB43[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N3/4 | - | in | IOB43[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R1/4 | - | in | IOB44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P2/4 | - | in | IOB44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P4/4 | - | in | IOB45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T4/4 | - | in | IOB45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R3/4 | - | in | IOB48[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T2/4 | - | in | IOB48[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P5/4 | - | in | IOB50[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R5/4 | - | in | IOB50[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R4/4 | - | in | IOB52[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T3/4 | - | in | IOB52[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R6/4 | - | in | IOB54[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T5/4 | - | in | IOB54[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
B14/7 | - | in | IOL2[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A15/7 | - | in | IOL2[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C12/7 | - | in | IOL7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B12/7 | - | in | IOL7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B13/7 | - | in | IOL8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A14/7 | - | in | IOL8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F10/7 | - | in | IOL11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B11/7 | - | in | IOL13[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A12/7 | - | in | IOL13[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A11/7 | - | in | IOL15[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C11/7 | - | in | IOL15[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D10/7 | - | in | IOL17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E10/7 | - | in | IOL17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D11/7 | - | in | IOL22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A9/7 | - | in | IOL27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C9/7 | - | in | IOL27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C8/6 | - | in | IOL29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A8/6 | - | in | IOL29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F9/6 | - | in | IOL31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E11/6 | - | in | IOL31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B9/6 | - | in | IOL33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A10/6 | - | in | IOL33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F8/6 | - | in | IOL35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D9/6 | - | in | IOL35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D8/6 | - | in | IOL38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E9/6 | - | in | IOL38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B7/6 | - | in | IOL40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C7/6 | - | in | IOL40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
F7/6 | - | in | IOL45[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E8/6 | - | in | IOL45[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C4/6 | - | in | IOL47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B5/6 | - | in | IOL47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
E6/6 | - | in | IOL53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
D7/6 | - | in | IOL53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T15/2 | - | in | IOR7[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R14/2 | - | in | IOR7[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P12/2 | - | in | IOR8[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T13/2 | - | in | IOR8[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R12/2 | - | in | IOR11[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P13/2 | - | in | IOR11[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R11/2 | - | in | IOR17[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T12/2 | - | in | IOR17[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R13/2 | - | in | IOR20[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T14/2 | - | in | IOR20[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M10/2 | - | in | IOR22[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N11/2 | - | in | IOR22[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T11/2 | - | in | IOR24[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P11/2 | - | in | IOR24[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C6/2 | - | out | IOR25[A] | LVCMOS18 | 8 | UP | NA | NA | OFF | NA | NA | NA | -
B8/2 | - | in | IOR25[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A7/2 | - | in | IOR26[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A6/2 | - | in | IOR26[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N10/2 | - | in | IOR27[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M11/2 | - | in | IOR27[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T7/3 | - | in | IOR29[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R8/3 | - | in | IOR29[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M16/3 | - | in | IOR30[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B16/3 | - | in | IOR30[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C15/3 | - | in | IOR31[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
B10/3 | - | in | IOR31[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
A13/3 | - | in | IOR32[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C13/3 | - | in | IOR32[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P10/3 | - | in | IOR33[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R10/3 | - | in | IOR33[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M9/3 | - | in | IOR34[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L10/3 | - | in | IOR34[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R9/3 | - | in | IOR35[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T10/3 | - | in | IOR35[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M8/3 | - | in | IOR36[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N9/3 | - | in | IOR36[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T9/3 | - | in | IOR38[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P9/3 | - | in | IOR38[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
C10/3 | - | in | IOR39[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N8/3 | - | in | IOR40[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L9/3 | - | in | IOR40[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P8/3 | - | in | IOR42[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T8/3 | - | in | IOR42[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M6/3 | - | in | IOR44[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
L8/3 | - | in | IOR44[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
M7/3 | - | in | IOR47[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N7/3 | - | in | IOR47[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
R7/3 | - | in | IOR49[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P7/3 | - | in | IOR49[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
N6/3 | - | in | IOR51[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
P6/3 | - | in | IOR53[A] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
T6/3 | - | in | IOR53[B] | LVCMOS18 | NA | UP | ON | NONE | NA | NA | NA | NA | -
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
====================================================================================================================================================================================

857
impl/pnr/MDIO.timing_paths Normal file
View File

@ -0,0 +1,857 @@
=====
SETUP
4.849
5.898
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.864
n646_s42
3.038
3.491
n646_s27
3.935
4.397
n646_s44
4.570
5.023
n646_s43
5.436
5.898
state_0_s1
5.898
=====
SETUP
5.713
5.034
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n647_s23
3.654
4.025
n651_s22
4.464
5.034
cnt_27_s1
5.034
=====
SETUP
5.716
5.031
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n647_s23
3.654
4.025
n649_s22
4.461
5.031
cnt_29_s1
5.031
=====
SETUP
5.716
5.031
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n647_s23
3.654
4.025
n648_s22
4.461
5.031
cnt_30_s1
5.031
=====
SETUP
5.722
5.025
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n647_s23
3.654
4.025
n653_s22
4.455
5.025
cnt_25_s1
5.025
=====
SETUP
5.724
5.023
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n656_s24
3.746
4.295
n659_s22
4.474
5.023
cnt_19_s1
5.023
=====
SETUP
5.724
5.023
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n656_s24
3.746
4.295
n656_s22
4.474
5.023
cnt_22_s1
5.023
=====
SETUP
5.818
4.928
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_28_s1
4.928
=====
SETUP
5.818
4.928
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_29_s1
4.928
=====
SETUP
5.818
4.928
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_30_s1
4.928
=====
SETUP
5.818
4.928
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_31_s1
4.928
=====
SETUP
5.822
4.925
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_9_s1
4.925
=====
SETUP
5.822
4.925
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_10_s1
4.925
=====
SETUP
5.822
4.925
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_11_s1
4.925
=====
SETUP
5.822
4.925
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_19_s1
4.925
=====
SETUP
5.822
4.925
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_22_s1
4.925
=====
SETUP
5.826
4.921
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_7_s1
4.921
=====
SETUP
5.826
4.921
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_24_s1
4.921
=====
SETUP
5.826
4.921
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_25_s1
4.921
=====
SETUP
5.829
4.917
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_14_s1
4.917
=====
SETUP
5.829
4.917
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_15_s1
4.917
=====
SETUP
5.829
4.917
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_17_s1
4.917
=====
SETUP
5.829
4.917
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_18_s1
4.917
=====
SETUP
5.830
4.917
10.747
cnt_0_s1
0.782
1.014
n674_s23
1.700
2.153
n661_s24
2.606
3.059
n647_s23
3.654
4.025
n654_s22
4.455
4.917
cnt_24_s1
4.917
=====
SETUP
5.830
4.917
10.747
cnt_29_s1
0.782
1.014
n646_s41
1.178
1.733
n643_s24
2.402
2.855
n643_s23
3.287
3.857
cnt_31_s3
4.031
4.358
cnt_27_s1
4.917
=====
HOLD
-0.081
0.825
0.906
mdc_cnt_0_s0
0.825
=====
HOLD
-0.078
0.828
0.906
mdc_cnt_4_s0
0.828
=====
HOLD
-0.078
0.828
0.906
mdc_cnt_1_s0
0.828
=====
HOLD
-0.078
0.828
0.906
mdc_cnt_2_s0
0.828
=====
HOLD
-0.078
0.828
0.906
mdc_cnt_3_s0
0.828
=====
HOLD
0.228
1.134
0.906
state_2_s0
0.565
0.767
n1024_s22
0.902
1.134
mdio_out_en_s1
1.134
=====
HOLD
0.425
1.296
0.871
CLK_ibuf
0.000
0.675
mdc_cnt_0_s0
0.860
1.062
n60_s2
1.064
1.296
mdc_cnt_0_s0
1.296
=====
HOLD
0.425
1.296
0.871
CLK_ibuf
0.000
0.675
mdc_cnt_3_s0
0.860
1.062
n57_s
1.064
1.296
mdc_cnt_3_s0
1.296
=====
HOLD
0.425
1.002
0.576
cnt_8_s1
0.565
0.767
n670_s22
0.770
1.002
cnt_8_s1
1.002
=====
HOLD
0.425
1.002
0.576
cnt_21_s1
0.565
0.767
n657_s22
0.770
1.002
cnt_21_s1
1.002
=====
HOLD
0.425
1.002
0.576
cnt_25_s1
0.565
0.767
n653_s22
0.770
1.002
cnt_25_s1
1.002
=====
HOLD
0.427
1.003
0.576
cnt_11_s1
0.565
0.767
n667_s23
0.771
1.003
cnt_11_s1
1.003
=====
HOLD
0.427
1.003
0.576
cnt_13_s1
0.565
0.767
n665_s23
0.771
1.003
cnt_13_s1
1.003
=====
HOLD
0.427
1.003
0.576
cnt_14_s1
0.565
0.767
n664_s23
0.771
1.003
cnt_14_s1
1.003
=====
HOLD
0.427
1.003
0.576
cnt_17_s1
0.565
0.767
n661_s22
0.771
1.003
cnt_17_s1
1.003
=====
HOLD
0.427
1.003
0.576
cnt_30_s1
0.565
0.767
n648_s22
0.771
1.003
cnt_30_s1
1.003
=====
HOLD
0.428
1.004
0.576
cnt_4_s1
0.565
0.767
n674_s22
0.772
1.004
cnt_4_s1
1.004
=====
HOLD
0.428
1.004
0.576
cnt_9_s1
0.565
0.767
n669_s22
0.772
1.004
cnt_9_s1
1.004
=====
HOLD
0.428
1.004
0.576
cnt_20_s1
0.565
0.767
n658_s23
0.772
1.004
cnt_20_s1
1.004
=====
HOLD
0.428
1.004
0.576
cnt_23_s1
0.565
0.767
n655_s23
0.772
1.004
cnt_23_s1
1.004
=====
HOLD
0.428
1.004
0.576
cnt_27_s1
0.565
0.767
n651_s22
0.772
1.004
cnt_27_s1
1.004
=====
HOLD
0.429
1.006
0.576
state_2_s0
0.565
0.767
n644_s22
0.774
1.006
state_2_s0
1.006
=====
HOLD
0.483
1.060
0.576
cnt_29_s1
0.565
0.767
n649_s22
0.770
1.060
cnt_29_s1
1.060
=====
HOLD
0.485
1.061
0.576
cnt_19_s1
0.565
0.767
n659_s22
0.771
1.061
cnt_19_s1
1.061
=====
HOLD
0.488
1.065
0.576
cnt_1_s1
0.565
0.767
n677_s22
0.775
1.065
cnt_1_s1
1.065

10
impl/pnr/MDIO.tr.html Normal file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Timing Analysis Report</title>
</head>
<frameset cols="20%, 80%">
<frame src="MDIO_tr_cata.html" name="cataFrame" />
<frame src="MDIO_tr_content.html" name="mainFrame"/>
</frameset>
</html>

132
impl/pnr/MDIO_tr_cata.html Normal file
View File

@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Timing Report Navigation</title>
<style type="text/css">
@import url(../temp/style.css);
body { font-family: Verdana, Arial, sans-serif; font-size: 12px; }
div#catalog_wrapper { width: 100%; }
div#catalog ul { list-style: none; margin-left: -15px; }
div#catalog ul li { margin: 3px 0 3px 0; text-align: left; color: #0084ff; white-space: nowrap; word-break: keep-all; }
div#catalog a { display:inline-block; text-decoration: none; color: #0084ff; font-weight: bold; padding: 4px; margin: 0 0 0 0; }
div#catalog a:visited { color: #0084ff; }
div#catalog a:hover { color: #fff; background: #0084ff; }
div.triangle_fake, div.triangle { display: inline-block; cursor: pointer; width: 8px; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
div.triangle_fake { border-left: 5px solid transparent; }
div.triangle { border-left: 5px solid #0084ff; }
div.triangle:hover { border-left-color: #000; }
</style>
<script>
function onClick(obj){var childs=obj.parentNode.childNodes;for(var i=0;i<childs.length;i++){if(childs[i].tagName=="UL"){if(childs[i].style.display=="none"){childs[i].style.display="block"}else{childs[i].style.display="none"}}}};
</script>
</head>
<body>
<div id="catalog_wrapper">
<div id="catalog">
<ul>
<!-- messages begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Message" target="mainFrame" style=" font-size: 16px;">Timing Messages</a></li>
<!-- messages end-->
<!-- summaries begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#Summary" style=" font-size: 16px;" target="mainFrame">Timing Summaries</a>
<ul>
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#STA_Tool_Run_Summary" style=" font-size: 14px;" target="mainFrame">STA Tool Run Summary</a></li>
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Clock_Report" style=" font-size: 14px;" target="mainFrame">Clock Summary</a></li>
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Max_Frequency_Report" style=" font-size: 14px;" target="mainFrame">Max Frequency Summary</a></li>
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Total_Negative_Slack_Report" style=" font-size: 14px;" target="mainFrame">Total Negative Slack Summary</a></li>
</ul>
</li>
<!-- summaries end-->
<!-- details begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#Detail" style=" font-size: 16px;" target="mainFrame">Timing Details</a>
<ul>
<!--All_Path_Slack_Table begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#All_Path_Slack_Table" style=" font-size: 14px;" target="mainFrame">Path Slacks Table</a>
<ul>
<!--Setup_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Setup_Slack_Table" style=" font-size: 13px;" target="mainFrame">Setup Paths Table</a>
</li>
<!--Setup_Slack_Table end-->
<!--Hold_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Hold_Slack_Table" style=" font-size: 13px;color: #FF0000;" class = "error" target="mainFrame">Hold Paths Table</a>
</li>
<!--Hold_Slack_Table end-->
<!--Recovery_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Recovery_Slack_Table" style=" font-size: 13px;" target="mainFrame">Recovery Paths Table</a>
</li>
<!--Recovery_Slack_Table end-->
<!--Removal_Slack_Table begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Removal_Slack_Table" style=" font-size: 13px;" target="mainFrame">Removal Paths Table</a>
</li>
<!--Removal_Slack_Table end-->
</ul>
</li><!--All_Path_Slack_Table end-->
<!--MIN_PULSE_WIDTH_TABLE begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#MIN_PULSE_WIDTH_TABLE" style=" font-size: 14px;" target="mainFrame">Minimum Pulse Width Table</a>
</li>
<!--MIN_PULSE_WIDTH_TABLE end-->
<!--Timing_Report_by_Analysis_Type begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#Timing_Report_by_Analysis_Type" style=" font-size: 14px;" target="mainFrame">Timing Report By Analysis Type</a>
<ul>
<!--Setup_Analysis begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Setup_Analysis" style=" font-size: 13px;" target="mainFrame">Setup Analysis Report</a>
</li>
<!--Setup_Analysis end-->
<!--Hold_Analysis begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Hold_Analysis" style=" font-size: 13px;" target="mainFrame">Hold Analysis Report</a>
</li>
<!--Hold_Analysis end-->
<!--Recovery_Analysis begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Recovery_Analysis" style=" font-size: 13px;" target="mainFrame">Recovery Analysis Report</a>
</li>
<!--Recovery_Analysis end-->
<!--Removal_Analysis begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Removal_Analysis" style=" font-size: 13px;" target="mainFrame">Removal Analysis Report</a>
</li>
<!--Removal_Analysis end-->
</ul>
</li>
<!--Timing_Report_by_Analysis_Type end-->
<!--Minimum_Pulse_Width_Report begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Minimum_Pulse_Width_Report" style=" font-size: 14px;" target="mainFrame">Minimum Pulse Width Report</a>
</li>
<!--Minimum_Pulse_Width_Report end-->
<!--High_Fanout_Nets_Report begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#High_Fanout_Nets_Report" style=" font-size: 14px;" target="mainFrame">High Fanout Nets Report</a></li>
<!--High_Fanout_Nets_Report end-->
<!--Route_Congestions_Report begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Route_Congestions_Report" style=" font-size: 14px;" target="mainFrame">Route Congestions Report</a></li>
<!--Route_Congestions_Report end-->
<!--Timing_Exceptions_Report begin-->
<li><div class="triangle" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#Timing_Exceptions_Report" style=" font-size: 14px;" target="mainFrame">Timing Exceptions Report</a>
<ul>
<!--Setup_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Setup_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Setup Analysis Report</a>
</li>
<!--Setup_Analysis_Exceptions end-->
<!--Hold_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Hold_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Hold Analysis Report</a>
</li>
<!--Hold_Analysis_Exceptions end-->
<!--Recovery_Analysis_Exceptions begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#Recovery_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Recovery Analysis Report</a>
</li>
<!--Recovery_Analysis_Exceptions end-->
<!--Removal_Analysis_Exceptions begin-->
<li><div class="triangle_fake" onclick="onClick(this)"></div><a href="MDIO_tr_content.html#Removal_Analysis_Exceptions" style=" font-size: 13px;" target="mainFrame">Removal Analysis Report</a>
</li>
<!--Removal_Analysis_Exceptions end-->
</ul>
</li>
<!--Timing_Exceptions_Report end-->
<!--SDC_Report begin-->
<li><div class="triangle_fake"></div><a href="MDIO_tr_content.html#SDC_Report" style=" font-size: 14px;" target="mainFrame">Timing Constraints Report</a></li>
<!--SDC_Report end-->
</ul>
</li>
<!-- details end-->
</ul>
</div><!-- catalog -->
</div><!-- catalog_wrapper -->
</body>
</html>

13429
impl/pnr/MDIO_tr_content.html Normal file

File diff suppressed because it is too large Load Diff

12
impl/pnr/cmd.do Normal file
View File

@ -0,0 +1,12 @@
-d /home/mii/work/MDIO/impl/gwsynthesis/MDIO.vg
-p GW2A-18C-PBGA256-8
-pn GW2A-LV18PG256C8/I7
-cst /home/mii/work/MDIO/src/MDIO.cst
-cfg /home/mii/work/MDIO/impl/pnr/device.cfg
-bit
-tr
-ph
-timing
-cst_error
-correct_hold 1
-route_maxfan 23

20
impl/pnr/device.cfg Normal file
View File

@ -0,0 +1,20 @@
set JTAG regular_io = false
set SSPI regular_io = false
set MSPI regular_io = false
set READY regular_io = false
set DONE regular_io = false
set RECONFIG_N regular_io = false
set I2C regular_io = false
set CRC_check = true
set compress = false
set encryption = false
set security_bit_enable = true
set bsram_init_fuse_print = true
set background_programming = off
set secure_mode = false
set program_done_bypass = false
set wake_up = 0
set spi_flash_address = 0x00000000
set format = binary
set power_on_reset_monitor = true
set unused_pin = default

View File

@ -0,0 +1,86 @@
{
"Allow_Duplicate_Modules" : false,
"Annotated_Properties_for_Analyst" : true,
"BACKGROUND_PROGRAMMING" : "off",
"COMPRESS" : false,
"CRC_CHECK" : true,
"Clock_Conversion" : true,
"Clock_Route_Order" : 0,
"Correct_Hold_Violation" : true,
"DONE" : false,
"DOWNLOAD_SPEED" : "default",
"Default_Enum_Encoding" : "default",
"Disable_Insert_Pad" : false,
"ENCRYPTION_KEY" : false,
"ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000",
"FORMAT" : "binary",
"FSM Compiler" : true,
"Fanout_Guide" : 10000,
"Frequency" : "Auto",
"Generate_Constraint_File_of_Ports" : false,
"Generate_IBIS_File" : false,
"Generate_Plain_Text_Timing_Report" : false,
"Generate_Post_PNR_Simulation_Model_File" : false,
"Generate_Post_Place_File" : false,
"Generate_SDF_File" : false,
"Generate_VHDL_Post_PNR_Simulation_Model_File" : false,
"GwSyn_Loop_Limit" : 2000,
"HOTBOOT" : false,
"I2C" : false,
"I2C_SLAVE_ADDR" : "00",
"Implicit_Initial_Value_Support" : false,
"IncludePath" : [
],
"Incremental_Compile" : "",
"Initialize_Primitives" : false,
"JTAG" : false,
"MODE_IO" : false,
"MSPI" : false,
"Multiple_File_Compilation_Unit" : true,
"Number_of_Critical_Paths" : "",
"Number_of_Start/End_Points" : "",
"OUTPUT_BASE_NAME" : "MDIO",
"POWER_ON_RESET_MONITOR" : true,
"PRINT_BSRAM_VALUE" : true,
"PROGRAM_DONE_BYPASS" : false,
"Pipelining" : true,
"PlaceInRegToIob" : true,
"PlaceIoRegToIob" : true,
"PlaceOutRegToIob" : true,
"Place_Option" : "0",
"Process_Configuration_Verion" : "1.0",
"Promote_Physical_Constraint_Warning_to_Error" : true,
"Push_Tristates" : true,
"READY" : false,
"RECONFIG_N" : false,
"Ram_RW_Check" : true,
"Report_Auto-Placed_Io_Information" : false,
"Resolve_Mixed_Drivers" : false,
"Resource_Sharing" : true,
"Retiming" : false,
"Route_Maxfan" : "23",
"Route_Option" : "0",
"Run_Timing_Driven" : true,
"SECURE_MODE" : false,
"SECURITY_BIT" : true,
"SPI_FLASH_ADDR" : "00000000",
"SSPI" : false,
"Show_All_Warnings" : false,
"Synthesis On/Off Implemented as Translate On/Off" : false,
"Synthesize_tool" : "GowinSyn",
"TclPre" : "",
"TopModule" : "",
"USERCODE" : "default",
"Unused_Pin" : "As_input_tri_stated_with_pull_up",
"Update_Compile_Point_Timing_Data" : false,
"Use_Clock_Period_for_Unconstrainted IO" : false,
"VCCAUX" : "3.3",
"VHDL_Standard" : "VHDL_Std_1993",
"Verilog_Standard" : "Vlg_Std_2001",
"WAKE_UP" : "0",
"Write_Vendor_Constraint_File" : true,
"dsp_balance" : false,
"show_all_warnings" : false,
"turn_off_bg" : false
}

View File

@ -0,0 +1,10 @@
[
{
"InstFile" : "/home/mii/work/MDIO/src/Top.v",
"InstLine" : 1,
"InstName" : "Top",
"ModuleFile" : "/home/mii/work/MDIO/src/Top.v",
"ModuleLine" : 1,
"ModuleName" : "Top"
}
]

View File

@ -0,0 +1,16 @@
{
"Files" : [
{
"Path" : "/home/mii/work/MDIO/src/Top.v",
"Type" : "verilog"
}
],
"IncludePath" : [
],
"LoopLimit" : 2000,
"ResultFile" : "/home/mii/work/MDIO/impl/temp/rtl_parser.result",
"Top" : "",
"VerilogStd" : "verilog_2001",
"VhdlStd" : "vhdl_93"
}

23
src/MDIO.cst Normal file
View File

@ -0,0 +1,23 @@
//Copyright (C)2014-2023 Gowin Semiconductor Corporation.
//All rights reserved.
//File Title: Physical Constraints file
//GOWIN Version: 1.9.8.11 Education
//Part Number: GW2A-LV18PG256C8/I7
//Device: GW2A-18
//Device Version: C
//Created Time: Wed 06 14 23:01:49 2023
IO_LOC "LED[3]" L16;
IO_PORT "LED[3]" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "LED[2]" L14;
IO_PORT "LED[2]" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "LED[1]" N14;
IO_PORT "LED[1]" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "LED[0]" N16;
IO_PORT "LED[0]" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "MDC" F14;
IO_PORT "MDC" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "MDIO" F16;
IO_PORT "MDIO" PULL_MODE=UP DRIVE=8 BANK_VCCIO=1.8;
IO_LOC "CLK" H11;
IO_PORT "CLK" PULL_MODE=UP BANK_VCCIO=1.8;

203
src/Top.v Normal file
View File

@ -0,0 +1,203 @@
module Top(
input CLK,
output MDC,
inout MDIO,
output [3:0] LED
);
reg [4:0] mdc_cnt = 0;
reg mdc_cnt_half = 0;
reg mdc_cnt_half_flag = 1;
wire mdclock;
wire [15:0] mdc_cnt_max;
reg [15:0] reg_mdc_cnt_max = 30;
always @(posedge CLK) begin
mdc_cnt <= mdclock ? 0 : mdc_cnt + 1;
end
localparam S_IDLE = 0;
localparam S_PREAMBLE = 1;
localparam S_READ = 2;
localparam S_WRITE = 3;
localparam S_READ_PREAMBLE = 4;
localparam S_WRITE_PREAMBLE = 5;
localparam S_PHY = 6;
localparam S_REG = 7;
localparam S_TURN = 8;
reg [3:0] state = S_IDLE;
reg [31:0] cnt = 0;
reg read_flag = 1;
reg mdio_write = 0;
reg mdio_out_en = 0;
assign MDIO = mdio_out_en ? mdio_write : 1'bz;
reg [3:0] read_preamble = 4'b0110;
reg [3:0] write_preamble = 4'b0101;
reg [4:0] reg_phy_address = 5'b00001;
reg [4:0] reg_register_address = 5'b00000;
reg [15:0] read = 16'b0;
reg [15:0] write = 16'b0000111111111010;
reg [15:0] led_read = 0;
// STATE MACHINE
always @(posedge mdclock) begin
case (state)
S_IDLE: begin
state <= S_PREAMBLE;
mdc_cnt_half <= 0;
end
S_PREAMBLE: begin
if (cnt == 31) begin
cnt = 0;
if (read_flag == 1'b1)
state <= S_READ_PREAMBLE;
else
state <= S_WRITE_PREAMBLE;
end else begin
state <= S_PREAMBLE;
cnt <= cnt + 1;
end
end
S_READ_PREAMBLE: begin
if (cnt == 3) begin
state <= S_PHY;
cnt <= 0;
end else begin
state <= S_READ_PREAMBLE;
cnt <= cnt + 1;
end
end
S_WRITE_PREAMBLE: begin
if (cnt == 3) begin
state <= S_PHY;
cnt <= 0;
end else begin
state <= S_WRITE_PREAMBLE;
cnt <= cnt + 1;
end
end
S_PHY: begin
if (cnt == 4) begin
state <= S_REG;
cnt <= 0;
end else begin
state <= S_PHY;
cnt <= cnt + 1;
end
end
S_REG: begin
if (cnt == 4) begin
state <= S_TURN;
cnt <= 0;
end else begin
state <= S_REG;
cnt <= cnt + 1;
end
end
S_TURN: begin
if (cnt == 1) begin
if (read_flag == 1)
state <= S_READ;
else
state <= S_WRITE;
end else begin
state <= S_TURN;
cnt <= cnt + 1;
end
end
S_READ: begin
if (cnt == 15) begin
state <= S_IDLE;
cnt <= 0;
end else begin
state <= S_READ;
cnt <= cnt + 1;
end
end
S_WRITE: begin
if (cnt == 15) begin
state <= S_IDLE;
cnt <= 0;
end else begin
state <= S_WRITE;
cnt <= cnt + 1;
end
end
endcase
end
// REG
always @(posedge CLK) begin
case (state)
S_IDLE: begin
mdio_out_en = 1;
mdio_write = 0;
led_read <= read;
end
S_PREAMBLE: begin
mdio_out_en = 1;
mdio_write = 1;
end
S_READ_PREAMBLE: begin
mdio_out_en = 1;
mdio_write = read_preamble[cnt];
end
S_WRITE_PREAMBLE: begin
mdio_out_en = 1;
mdio_write = write_preamble[cnt];
end
S_PHY: begin
mdio_out_en = 1;
mdio_write = reg_phy_address[4 - cnt];
end
S_REG: begin
mdio_out_en = 1;
mdio_write = reg_register_address[4 - cnt];
end
S_TURN: begin
mdio_out_en = ~read_flag;
mdio_write = 0;
end
S_READ: begin
mdio_out_en = 0;
read[15 - cnt] <= MDIO;
end
S_WRITE: begin
mdio_out_en = 1;
mdio_write <= write[15 - cnt];
read_flag <= 1;
end
endcase
end
assign mdc_cnt_max = reg_mdc_cnt_max;
assign mdclock = mdc_cnt == mdc_cnt_max;
assign MDC = mdclock;
assign LED = ~read[9:6];
endmodule;

473
src/a.out Executable file
View File

@ -0,0 +1,473 @@
#! /usr/bin/vvp
:ivl_version "12.0 (stable)" "(v12_0-dirty)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision + 0;
:vpi_module "/usr/lib/ivl/system.vpi";
:vpi_module "/usr/lib/ivl/vhdl_sys.vpi";
:vpi_module "/usr/lib/ivl/vhdl_textio.vpi";
:vpi_module "/usr/lib/ivl/v2005_math.vpi";
:vpi_module "/usr/lib/ivl/va_math.vpi";
S_0x55a7b8470680 .scope module, "tb" "tb" 2 1;
.timescale 0 0;
P_0x55a7b846b8b0 .param/l "RATE" 0 2 3, +C4<00000000000000000000000000000001>;
v0x55a7b84a5cf0_0 .var "clk", 0 0;
S_0x55a7b8470860 .scope module, "top" "Top" 2 15, 3 1 0, S_0x55a7b8470680;
.timescale 0 0;
.port_info 0 /INPUT 1 "CLK";
.port_info 1 /OUTPUT 1 "MDC";
.port_info 2 /INOUT 1 "MDIO";
.port_info 3 /OUTPUT 4 "LED";
P_0x55a7b846bde0 .param/l "S_IDLE" 1 3 19, +C4<00000000000000000000000000000000>;
P_0x55a7b846be20 .param/l "S_PHY" 1 3 25, +C4<00000000000000000000000000000110>;
P_0x55a7b846be60 .param/l "S_PREAMBLE" 1 3 20, +C4<00000000000000000000000000000001>;
P_0x55a7b846bea0 .param/l "S_READ" 1 3 21, +C4<00000000000000000000000000000010>;
P_0x55a7b846bee0 .param/l "S_READ_PREAMBLE" 1 3 23, +C4<00000000000000000000000000000100>;
P_0x55a7b846bf20 .param/l "S_REG" 1 3 26, +C4<00000000000000000000000000000111>;
P_0x55a7b846bf60 .param/l "S_TURN" 1 3 27, +C4<00000000000000000000000000001000>;
P_0x55a7b846bfa0 .param/l "S_WRITE" 1 3 22, +C4<00000000000000000000000000000011>;
P_0x55a7b846bfe0 .param/l "S_WRITE_PREAMBLE" 1 3 24, +C4<00000000000000000000000000000101>;
L_0x55a7b84b6260 .functor BUFZ 1, L_0x55a7b84b6120, C4<0>, C4<0>, C4<0>;
L_0x55a7b84b63f0 .functor NOT 4, L_0x55a7b84b6320, C4<0000>, C4<0000>, C4<0000>;
v0x55a7b84631f0_0 .net "CLK", 0 0, v0x55a7b84a5cf0_0; 1 drivers
v0x55a7b845fa40_0 .net "LED", 3 0, L_0x55a7b84b63f0; 1 drivers
v0x55a7b84a4810_0 .net "MDC", 0 0, L_0x55a7b84b6260; 1 drivers
v0x55a7b84a48e0_0 .net "MDIO", 0 0, L_0x55a7b84a5db0; 1 drivers
o0x7ff6977b10d8 .functor BUFZ 1, C4<z>; HiZ drive
; Elide local net with no drivers, v0x55a7b84a49a0_0 name=_ivl_0
v0x55a7b84a4ad0_0 .net *"_ivl_15", 3 0, L_0x55a7b84b6320; 1 drivers
v0x55a7b84a4bb0_0 .net *"_ivl_6", 15 0, L_0x55a7b84a5fe0; 1 drivers
L_0x7ff697768018 .functor BUFT 1, C4<00000000000>, C4<0>, C4<0>, C4<0>;
v0x55a7b84a4c90_0 .net *"_ivl_9", 10 0, L_0x7ff697768018; 1 drivers
v0x55a7b84a4d70_0 .var "cnt", 31 0;
v0x55a7b84a4e50_0 .var "led_read", 15 0;
v0x55a7b84a4f30_0 .var "mdc_cnt", 4 0;
v0x55a7b84a5010_0 .var "mdc_cnt_half", 0 0;
v0x55a7b84a50d0_0 .var "mdc_cnt_half_flag", 0 0;
v0x55a7b84a5190_0 .net "mdc_cnt_max", 15 0, v0x55a7b84a5730_0; 1 drivers
v0x55a7b84a5270_0 .net "mdclock", 0 0, L_0x55a7b84b6120; 1 drivers
v0x55a7b84a5330_0 .var "mdio_out_en", 0 0;
v0x55a7b84a53f0_0 .var "mdio_write", 0 0;
v0x55a7b84a54b0_0 .var "read", 15 0;
v0x55a7b84a5590_0 .var "read_flag", 0 0;
v0x55a7b84a5650_0 .var "read_preamble", 3 0;
v0x55a7b84a5730_0 .var "reg_mdc_cnt_max", 15 0;
v0x55a7b84a5810_0 .var "reg_phy_address", 4 0;
v0x55a7b84a58f0_0 .var "reg_register_address", 4 0;
v0x55a7b84a59d0_0 .var "state", 3 0;
v0x55a7b84a5ab0_0 .var "write", 15 0;
v0x55a7b84a5b90_0 .var "write_preamble", 3 0;
E_0x55a7b84744f0 .event posedge, v0x55a7b84631f0_0;
E_0x55a7b84777f0 .event posedge, v0x55a7b84a5270_0;
L_0x55a7b84a5db0 .functor MUXZ 1, o0x7ff6977b10d8, v0x55a7b84a53f0_0, v0x55a7b84a5330_0, C4<>;
L_0x55a7b84a5fe0 .concat [ 5 11 0 0], v0x55a7b84a4f30_0, L_0x7ff697768018;
L_0x55a7b84b6120 .cmp/eq 16, L_0x55a7b84a5fe0, v0x55a7b84a5730_0;
L_0x55a7b84b6320 .part v0x55a7b84a4e50_0, 0, 4;
.scope S_0x55a7b8470860;
T_0 ;
%pushi/vec4 0, 0, 5;
%store/vec4 v0x55a7b84a4f30_0, 0, 5;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a5010_0, 0, 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a50d0_0, 0, 1;
%pushi/vec4 30, 0, 16;
%store/vec4 v0x55a7b84a5730_0, 0, 16;
%pushi/vec4 0, 0, 4;
%store/vec4 v0x55a7b84a59d0_0, 0, 4;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x55a7b84a4d70_0, 0, 32;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5590_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%pushi/vec4 6, 0, 4;
%store/vec4 v0x55a7b84a5650_0, 0, 4;
%pushi/vec4 5, 0, 4;
%store/vec4 v0x55a7b84a5b90_0, 0, 4;
%pushi/vec4 1, 0, 5;
%store/vec4 v0x55a7b84a5810_0, 0, 5;
%pushi/vec4 0, 0, 5;
%store/vec4 v0x55a7b84a58f0_0, 0, 5;
%pushi/vec4 0, 0, 16;
%store/vec4 v0x55a7b84a54b0_0, 0, 16;
%pushi/vec4 4090, 0, 16;
%store/vec4 v0x55a7b84a5ab0_0, 0, 16;
%pushi/vec4 0, 0, 16;
%store/vec4 v0x55a7b84a4e50_0, 0, 16;
%end;
.thread T_0;
.scope S_0x55a7b8470860;
T_1 ;
%wait E_0x55a7b84744f0;
%load/vec4 v0x55a7b84a5270_0;
%flag_set/vec4 8;
%jmp/0 T_1.0, 8;
%pushi/vec4 0, 0, 5;
%jmp/1 T_1.1, 8;
T_1.0 ; End of true expr.
%load/vec4 v0x55a7b84a4f30_0;
%addi 1, 0, 5;
%jmp/0 T_1.1, 8;
; End of false expr.
%blend;
T_1.1;
%assign/vec4 v0x55a7b84a4f30_0, 0;
%jmp T_1;
.thread T_1;
.scope S_0x55a7b8470860;
T_2 ;
%wait E_0x55a7b84777f0;
%load/vec4 v0x55a7b84a59d0_0;
%dup/vec4;
%pushi/vec4 0, 0, 4;
%cmp/u;
%jmp/1 T_2.0, 6;
%dup/vec4;
%pushi/vec4 1, 0, 4;
%cmp/u;
%jmp/1 T_2.1, 6;
%dup/vec4;
%pushi/vec4 4, 0, 4;
%cmp/u;
%jmp/1 T_2.2, 6;
%dup/vec4;
%pushi/vec4 5, 0, 4;
%cmp/u;
%jmp/1 T_2.3, 6;
%dup/vec4;
%pushi/vec4 6, 0, 4;
%cmp/u;
%jmp/1 T_2.4, 6;
%dup/vec4;
%pushi/vec4 7, 0, 4;
%cmp/u;
%jmp/1 T_2.5, 6;
%dup/vec4;
%pushi/vec4 8, 0, 4;
%cmp/u;
%jmp/1 T_2.6, 6;
%dup/vec4;
%pushi/vec4 2, 0, 4;
%cmp/u;
%jmp/1 T_2.7, 6;
%dup/vec4;
%pushi/vec4 3, 0, 4;
%cmp/u;
%jmp/1 T_2.8, 6;
%jmp T_2.9;
T_2.0 ;
%pushi/vec4 1, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 1;
%assign/vec4 v0x55a7b84a5010_0, 0;
%jmp T_2.9;
T_2.1 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 31, 0, 32;
%jmp/0xz T_2.10, 4;
%pushi/vec4 0, 0, 32;
%store/vec4 v0x55a7b84a4d70_0, 0, 32;
%load/vec4 v0x55a7b84a5590_0;
%cmpi/e 1, 0, 1;
%jmp/0xz T_2.12, 4;
%pushi/vec4 4, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%jmp T_2.13;
T_2.12 ;
%pushi/vec4 5, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
T_2.13 ;
%jmp T_2.11;
T_2.10 ;
%pushi/vec4 1, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.11 ;
%jmp T_2.9;
T_2.2 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 3, 0, 32;
%jmp/0xz T_2.14, 4;
%pushi/vec4 6, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.15;
T_2.14 ;
%pushi/vec4 4, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.15 ;
%jmp T_2.9;
T_2.3 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 3, 0, 32;
%jmp/0xz T_2.16, 4;
%pushi/vec4 6, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.17;
T_2.16 ;
%pushi/vec4 5, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.17 ;
%jmp T_2.9;
T_2.4 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 4, 0, 32;
%jmp/0xz T_2.18, 4;
%pushi/vec4 7, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.19;
T_2.18 ;
%pushi/vec4 6, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.19 ;
%jmp T_2.9;
T_2.5 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 4, 0, 32;
%jmp/0xz T_2.20, 4;
%pushi/vec4 8, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.21;
T_2.20 ;
%pushi/vec4 7, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.21 ;
%jmp T_2.9;
T_2.6 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 1, 0, 32;
%jmp/0xz T_2.22, 4;
%load/vec4 v0x55a7b84a5590_0;
%pad/u 32;
%cmpi/e 1, 0, 32;
%jmp/0xz T_2.24, 4;
%pushi/vec4 2, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%jmp T_2.25;
T_2.24 ;
%pushi/vec4 3, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
T_2.25 ;
%jmp T_2.23;
T_2.22 ;
%pushi/vec4 8, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.23 ;
%jmp T_2.9;
T_2.7 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 15, 0, 32;
%jmp/0xz T_2.26, 4;
%pushi/vec4 0, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.27;
T_2.26 ;
%pushi/vec4 2, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.27 ;
%jmp T_2.9;
T_2.8 ;
%load/vec4 v0x55a7b84a4d70_0;
%cmpi/e 15, 0, 32;
%jmp/0xz T_2.28, 4;
%pushi/vec4 0, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%pushi/vec4 0, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
%jmp T_2.29;
T_2.28 ;
%pushi/vec4 3, 0, 4;
%assign/vec4 v0x55a7b84a59d0_0, 0;
%load/vec4 v0x55a7b84a4d70_0;
%addi 1, 0, 32;
%assign/vec4 v0x55a7b84a4d70_0, 0;
T_2.29 ;
%jmp T_2.9;
T_2.9 ;
%pop/vec4 1;
%jmp T_2;
.thread T_2;
.scope S_0x55a7b8470860;
T_3 ;
%wait E_0x55a7b84744f0;
%load/vec4 v0x55a7b84a59d0_0;
%dup/vec4;
%pushi/vec4 0, 0, 4;
%cmp/u;
%jmp/1 T_3.0, 6;
%dup/vec4;
%pushi/vec4 1, 0, 4;
%cmp/u;
%jmp/1 T_3.1, 6;
%dup/vec4;
%pushi/vec4 4, 0, 4;
%cmp/u;
%jmp/1 T_3.2, 6;
%dup/vec4;
%pushi/vec4 5, 0, 4;
%cmp/u;
%jmp/1 T_3.3, 6;
%dup/vec4;
%pushi/vec4 6, 0, 4;
%cmp/u;
%jmp/1 T_3.4, 6;
%dup/vec4;
%pushi/vec4 7, 0, 4;
%cmp/u;
%jmp/1 T_3.5, 6;
%dup/vec4;
%pushi/vec4 8, 0, 4;
%cmp/u;
%jmp/1 T_3.6, 6;
%dup/vec4;
%pushi/vec4 2, 0, 4;
%cmp/u;
%jmp/1 T_3.7, 6;
%dup/vec4;
%pushi/vec4 3, 0, 4;
%cmp/u;
%jmp/1 T_3.8, 6;
%jmp T_3.9;
T_3.0 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%load/vec4 v0x55a7b84a54b0_0;
%assign/vec4 v0x55a7b84a4e50_0, 0;
%jmp T_3.9;
T_3.1 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.2 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a5650_0;
%load/vec4 v0x55a7b84a4d70_0;
%part/u 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.3 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a5b90_0;
%load/vec4 v0x55a7b84a4d70_0;
%part/u 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.4 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a5810_0;
%pushi/vec4 4, 0, 32;
%load/vec4 v0x55a7b84a4d70_0;
%sub;
%part/u 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.5 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a58f0_0;
%pushi/vec4 4, 0, 32;
%load/vec4 v0x55a7b84a4d70_0;
%sub;
%part/u 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.6 ;
%load/vec4 v0x55a7b84a5590_0;
%inv;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a53f0_0, 0, 1;
%jmp T_3.9;
T_3.7 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a48e0_0;
%ix/load 5, 0, 0;
%pushi/vec4 15, 0, 32;
%load/vec4 v0x55a7b84a4d70_0;
%sub;
%ix/vec4 4;
%assign/vec4/off/d v0x55a7b84a54b0_0, 4, 5;
%jmp T_3.9;
T_3.8 ;
%pushi/vec4 1, 0, 1;
%store/vec4 v0x55a7b84a5330_0, 0, 1;
%load/vec4 v0x55a7b84a5ab0_0;
%pushi/vec4 15, 0, 32;
%load/vec4 v0x55a7b84a4d70_0;
%sub;
%part/u 1;
%assign/vec4 v0x55a7b84a53f0_0, 0;
%pushi/vec4 1, 0, 1;
%assign/vec4 v0x55a7b84a5590_0, 0;
%jmp T_3.9;
T_3.9 ;
%pop/vec4 1;
%jmp T_3;
.thread T_3;
.scope S_0x55a7b8470680;
T_4 ;
%pushi/vec4 0, 0, 1;
%store/vec4 v0x55a7b84a5cf0_0, 0, 1;
%end;
.thread T_4;
.scope S_0x55a7b8470680;
T_5 ;
%vpi_call 2 6 "$dumpfile", "tb.vcd" {0 0 0};
%vpi_call 2 7 "$dumpvars", 32'sb00000000000000000000000000000011, S_0x55a7b8470680 {0 0 0};
%delay 270000, 0;
%vpi_call 2 9 "$finish" {0 0 0};
%end;
.thread T_5;
.scope S_0x55a7b8470680;
T_6 ;
%delay 1, 0;
%load/vec4 v0x55a7b84a5cf0_0;
%nor/r;
%store/vec4 v0x55a7b84a5cf0_0, 0, 1;
%jmp T_6;
.thread T_6;
# The file index is used to find the file name in the following table.
:file_names 4;
"N/A";
"<interactive>";
"tb.v";
"Top.v";

82
src/nohup.out Normal file
View File

@ -0,0 +1,82 @@
(process:11056): Gtk-WARNING **: 22:48:31.855: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:5898): Gtk-WARNING **: 12:05:13.803: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:6131): Gtk-WARNING **: 12:06:52.470: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:6375): Gtk-WARNING **: 12:10:49.216: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:6576): Gtk-WARNING **: 12:11:42.201: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:6779): Gtk-WARNING **: 12:12:46.998: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:7037): Gtk-WARNING **: 12:16:17.036: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:7226): Gtk-WARNING **: 12:18:07.087: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
WM Destroy
(process:7489): Gtk-WARNING **: 12:22:07.139: Locale not supported by C library.
Using the fallback 'C' locale.
GTKWave Analyzer v3.3.115 (w)1999-2023 BSI
[0] start time.
[270000] end time.
[0] start time.
[270000] end time.

5
src/simulate.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
iverilog tb.v Top.v
vvp a.out
nohup gtkwave tb.vcd

19
src/tb.v Normal file
View File

@ -0,0 +1,19 @@
module tb;
parameter RATE = 1;
initial begin
$dumpfile("tb.vcd");
$dumpvars(3, tb);
# (270000) $finish;
end
reg clk = 0;
always #(RATE) clk = !clk;
Top top(
.CLK(clk)
);
endmodule

698304
src/tb.vcd Normal file

File diff suppressed because it is too large Load Diff