clean up
This commit is contained in:
parent
74b5af1852
commit
44d64ca579
@ -1,11 +0,0 @@
|
||||
digraph ICache{
|
||||
splines=ortho
|
||||
compound=true
|
||||
node [shape=Mrecord]
|
||||
edge [arrowhead=normal]
|
||||
|
||||
IDLE->LOOKUP[xlabel="req" weight=5 color=green]
|
||||
LOOKUP->REPLACE[xlabel="~hit" color=blue]
|
||||
LOOKUP->IDLE[xlabel="hit" color=red]
|
||||
REPLACE->IDLE[xlabel="refilled" color=orange]
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.48.0 (0)
|
||||
-->
|
||||
<!-- Title: ICache Pages: 1 -->
|
||||
<svg width="137pt" height="191pt"
|
||||
viewBox="0.00 0.00 136.50 191.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 187)">
|
||||
<title>ICache</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-187 132.5,-187 132.5,4 -4,4"/>
|
||||
<!-- IDLE -->
|
||||
<g id="node1" class="node">
|
||||
<title>IDLE</title>
|
||||
<path fill="none" stroke="black" d="M20.5,-146.5C20.5,-146.5 50.5,-146.5 50.5,-146.5 56.5,-146.5 62.5,-152.5 62.5,-158.5 62.5,-158.5 62.5,-170.5 62.5,-170.5 62.5,-176.5 56.5,-182.5 50.5,-182.5 50.5,-182.5 20.5,-182.5 20.5,-182.5 14.5,-182.5 8.5,-176.5 8.5,-170.5 8.5,-170.5 8.5,-158.5 8.5,-158.5 8.5,-152.5 14.5,-146.5 20.5,-146.5"/>
|
||||
<text text-anchor="middle" x="35.5" y="-160.8" font-family="Times,serif" font-size="14.00">IDLE</text>
|
||||
</g>
|
||||
<!-- LOOKUP -->
|
||||
<g id="node2" class="node">
|
||||
<title>LOOKUP</title>
|
||||
<path fill="none" stroke="black" d="M12,-73.5C12,-73.5 59,-73.5 59,-73.5 65,-73.5 71,-79.5 71,-85.5 71,-85.5 71,-97.5 71,-97.5 71,-103.5 65,-109.5 59,-109.5 59,-109.5 12,-109.5 12,-109.5 6,-109.5 0,-103.5 0,-97.5 0,-97.5 0,-85.5 0,-85.5 0,-79.5 6,-73.5 12,-73.5"/>
|
||||
<text text-anchor="middle" x="35.5" y="-87.8" font-family="Times,serif" font-size="14.00">LOOKUP</text>
|
||||
</g>
|
||||
<!-- IDLE->LOOKUP -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>IDLE->LOOKUP</title>
|
||||
<path fill="none" stroke="green" d="M26.5,-146.46C26.5,-146.46 26.5,-119.59 26.5,-119.59"/>
|
||||
<polygon fill="green" stroke="green" points="30,-119.59 26.5,-109.59 23,-119.59 30,-119.59"/>
|
||||
<text text-anchor="middle" x="17.5" y="-121.82" font-family="Times,serif" font-size="14.00">req</text>
|
||||
</g>
|
||||
<!-- LOOKUP->IDLE -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>LOOKUP->IDLE</title>
|
||||
<path fill="none" stroke="red" d="M44.5,-109.54C44.5,-109.54 44.5,-136.41 44.5,-136.41"/>
|
||||
<polygon fill="red" stroke="red" points="41,-136.41 44.5,-146.41 48,-136.41 41,-136.41"/>
|
||||
<text text-anchor="middle" x="37" y="-126.78" font-family="Times,serif" font-size="14.00">hit</text>
|
||||
</g>
|
||||
<!-- REPLACE -->
|
||||
<g id="node3" class="node">
|
||||
<title>REPLACE</title>
|
||||
<path fill="none" stroke="black" d="M41,-0.5C41,-0.5 94,-0.5 94,-0.5 100,-0.5 106,-6.5 106,-12.5 106,-12.5 106,-24.5 106,-24.5 106,-30.5 100,-36.5 94,-36.5 94,-36.5 41,-36.5 41,-36.5 35,-36.5 29,-30.5 29,-24.5 29,-24.5 29,-12.5 29,-12.5 29,-6.5 35,-0.5 41,-0.5"/>
|
||||
<text text-anchor="middle" x="67.5" y="-14.8" font-family="Times,serif" font-size="14.00">REPLACE</text>
|
||||
</g>
|
||||
<!-- LOOKUP->REPLACE -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>LOOKUP->REPLACE</title>
|
||||
<path fill="none" stroke="blue" d="M50,-73.46C50,-73.46 50,-46.59 50,-46.59"/>
|
||||
<polygon fill="blue" stroke="blue" points="53.5,-46.59 50,-36.59 46.5,-46.59 53.5,-46.59"/>
|
||||
<text text-anchor="middle" x="39" y="-48.82" font-family="Times,serif" font-size="14.00">~hit</text>
|
||||
</g>
|
||||
<!-- REPLACE->IDLE -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>REPLACE->IDLE</title>
|
||||
<path fill="none" stroke="orange" d="M88.5,-36.63C88.5,-75.64 88.5,-164 88.5,-164 88.5,-164 72.62,-164 72.62,-164"/>
|
||||
<polygon fill="orange" stroke="orange" points="72.62,-160.5 62.62,-164 72.62,-167.5 72.62,-160.5"/>
|
||||
<text text-anchor="middle" x="108.5" y="-112.06" font-family="Times,serif" font-size="14.00">refilled</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.5 KiB |
@ -1,23 +0,0 @@
|
||||
digraph drState{
|
||||
splines=polyline
|
||||
compound=true
|
||||
node [shape=Mrecord]
|
||||
edge [arrowhead=normal]
|
||||
|
||||
IDLE -> REFILL [label=<write <br/> ~cached or hit>]
|
||||
IDLE -> IDLE [label=<cached <br/> & hit>]
|
||||
IDLE -> WA [label=<cached <br/> ~hit <br/> ~axi.addr_ok>]
|
||||
IDLE -> WD1 [label=<cached <br/> ~hit <br/> axi.addr_ok>]
|
||||
|
||||
WA -> WA [label="~axi.addr_ok"]
|
||||
WA -> WD1 [label="~axi.rvalid"]
|
||||
WA -> WD2 [label=<axi.rvalid <br/>& cached>]
|
||||
WA -> IDLE [label=<axi.rvalid <br/>& ~cached>]
|
||||
|
||||
WD1 -> IDLE [label="axi.rvalid & ~cached"]
|
||||
WD1 -> WD2 [label="axi.rvalid & cached"]
|
||||
WD2 -> WD3 [label="axi.rvalid"]
|
||||
WD3 -> WD4 [label="axi.rvalid"]
|
||||
WD4 -> REFILL [label="axi.rvalid"]
|
||||
REFILL -> IDLE [label="sync with dwState"]
|
||||
}
|
@ -1,161 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.48.0 (0)
|
||||
-->
|
||||
<!-- Title: drState Pages: 1 -->
|
||||
<svg width="505pt" height="611pt"
|
||||
viewBox="0.00 0.00 505.00 611.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 607)">
|
||||
<title>drState</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-607 501,-607 501,4 -4,4"/>
|
||||
<!-- IDLE -->
|
||||
<g id="node1" class="node">
|
||||
<title>IDLE</title>
|
||||
<path fill="none" stroke="black" d="M185,-566.5C185,-566.5 215,-566.5 215,-566.5 221,-566.5 227,-572.5 227,-578.5 227,-578.5 227,-590.5 227,-590.5 227,-596.5 221,-602.5 215,-602.5 215,-602.5 185,-602.5 185,-602.5 179,-602.5 173,-596.5 173,-590.5 173,-590.5 173,-578.5 173,-578.5 173,-572.5 179,-566.5 185,-566.5"/>
|
||||
<text text-anchor="middle" x="200" y="-580.8" font-family="Times,serif" font-size="14.00">IDLE</text>
|
||||
</g>
|
||||
<!-- IDLE->IDLE -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>IDLE->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M227.24,-595.36C237.02,-595.6 245,-591.98 245,-584.5 245,-579.83 241.88,-576.66 237.16,-575"/>
|
||||
<polygon fill="black" stroke="black" points="237.62,-571.53 227.24,-573.64 236.67,-578.47 237.62,-571.53"/>
|
||||
<text text-anchor="start" x="245" y="-588.3" font-family="Times,serif" font-size="14.00">cached </text>
|
||||
<text text-anchor="start" x="249" y="-573.3" font-family="Times,serif" font-size="14.00"> & hit</text>
|
||||
</g>
|
||||
<!-- REFILL -->
|
||||
<g id="node2" class="node">
|
||||
<title>REFILL</title>
|
||||
<path fill="none" stroke="black" d="M99,-0.5C99,-0.5 137,-0.5 137,-0.5 143,-0.5 149,-6.5 149,-12.5 149,-12.5 149,-24.5 149,-24.5 149,-30.5 143,-36.5 137,-36.5 137,-36.5 99,-36.5 99,-36.5 93,-36.5 87,-30.5 87,-24.5 87,-24.5 87,-12.5 87,-12.5 87,-6.5 93,-0.5 99,-0.5"/>
|
||||
<text text-anchor="middle" x="118" y="-14.8" font-family="Times,serif" font-size="14.00">REFILL</text>
|
||||
</g>
|
||||
<!-- IDLE->REFILL -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>IDLE->REFILL</title>
|
||||
<path fill="none" stroke="black" d="M172.75,-573.42C144.37,-562.93 104,-548 104,-548 104,-548 0,-463.5 0,-463.5 0,-463.5 0,-463.5 0,-105.5 0,-105.5 50.96,-68.36 85.91,-42.89"/>
|
||||
<polygon fill="black" stroke="black" points="88.38,-45.42 94.4,-36.7 84.26,-39.76 88.38,-45.42"/>
|
||||
<text text-anchor="start" x="25" y="-286.3" font-family="Times,serif" font-size="14.00">write </text>
|
||||
<text text-anchor="start" x="0" y="-271.3" font-family="Times,serif" font-size="14.00"> ~cached or hit</text>
|
||||
</g>
|
||||
<!-- WA -->
|
||||
<g id="node3" class="node">
|
||||
<title>WA</title>
|
||||
<path fill="none" stroke="black" d="M158,-444.5C158,-444.5 188,-444.5 188,-444.5 194,-444.5 200,-450.5 200,-456.5 200,-456.5 200,-468.5 200,-468.5 200,-474.5 194,-480.5 188,-480.5 188,-480.5 158,-480.5 158,-480.5 152,-480.5 146,-474.5 146,-468.5 146,-468.5 146,-456.5 146,-456.5 146,-450.5 152,-444.5 158,-444.5"/>
|
||||
<text text-anchor="middle" x="173" y="-458.8" font-family="Times,serif" font-size="14.00">WA</text>
|
||||
</g>
|
||||
<!-- IDLE->WA -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>IDLE->WA</title>
|
||||
<path fill="none" stroke="black" d="M176.84,-566.37C164.57,-557.3 152,-548 152,-548 152,-548 152,-503 152,-503 152,-503 155.15,-497.07 159.01,-489.81"/>
|
||||
<polygon fill="black" stroke="black" points="162.12,-491.41 163.73,-480.94 155.94,-488.13 162.12,-491.41"/>
|
||||
<text text-anchor="start" x="169" y="-536.8" font-family="Times,serif" font-size="14.00">cached </text>
|
||||
<text text-anchor="start" x="175" y="-521.8" font-family="Times,serif" font-size="14.00"> ~hit </text>
|
||||
<text text-anchor="start" x="152" y="-506.8" font-family="Times,serif" font-size="14.00"> ~axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- WD1 -->
|
||||
<g id="node4" class="node">
|
||||
<title>WD1</title>
|
||||
<path fill="none" stroke="black" d="M284,-352.5C284,-352.5 314,-352.5 314,-352.5 320,-352.5 326,-358.5 326,-364.5 326,-364.5 326,-376.5 326,-376.5 326,-382.5 320,-388.5 314,-388.5 314,-388.5 284,-388.5 284,-388.5 278,-388.5 272,-382.5 272,-376.5 272,-376.5 272,-364.5 272,-364.5 272,-358.5 278,-352.5 284,-352.5"/>
|
||||
<text text-anchor="middle" x="299" y="-366.8" font-family="Times,serif" font-size="14.00">WD1</text>
|
||||
</g>
|
||||
<!-- IDLE->WD1 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>IDLE->WD1</title>
|
||||
<path fill="none" stroke="black" d="M227.4,-573.04C254.83,-562.57 293,-548 293,-548 293,-548 311,-422 311,-422 311,-422 311,-407 311,-407 311,-407 309.79,-403.42 308.14,-398.54"/>
|
||||
<polygon fill="black" stroke="black" points="311.38,-397.19 304.86,-388.83 304.75,-399.43 311.38,-397.19"/>
|
||||
<text text-anchor="start" x="321.5" y="-473.8" font-family="Times,serif" font-size="14.00">cached </text>
|
||||
<text text-anchor="start" x="327.5" y="-458.8" font-family="Times,serif" font-size="14.00"> ~hit </text>
|
||||
<text text-anchor="start" x="308" y="-443.8" font-family="Times,serif" font-size="14.00"> axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- REFILL->IDLE -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>REFILL->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M118,-36.9C118,-62.03 118,-105.5 118,-105.5 118,-463.5 118,-463.5 118,-463.5 118,-463.5 148,-548 148,-548 148,-548 156.48,-553.79 166.59,-560.69"/>
|
||||
<polygon fill="black" stroke="black" points="164.68,-563.63 174.91,-566.37 168.63,-557.84 164.68,-563.63"/>
|
||||
<text text-anchor="middle" x="168" y="-278.8" font-family="Times,serif" font-size="14.00">sync with dwState</text>
|
||||
</g>
|
||||
<!-- WA->IDLE -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>WA->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M196.96,-480.71C211.79,-491.35 228,-503 228,-503 228,-503 228,-548 228,-548 228,-548 224.59,-552.33 220.14,-557.96"/>
|
||||
<polygon fill="black" stroke="black" points="217.12,-556.15 213.67,-566.17 222.61,-560.48 217.12,-556.15"/>
|
||||
<text text-anchor="start" x="230.5" y="-529.3" font-family="Times,serif" font-size="14.00">axi.rvalid </text>
|
||||
<text text-anchor="start" x="228" y="-514.3" font-family="Times,serif" font-size="14.00">& ~cached</text>
|
||||
</g>
|
||||
<!-- WA->WA -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>WA->WA</title>
|
||||
<path fill="none" stroke="black" d="M200.24,-471.49C210.02,-471.68 218,-468.69 218,-462.5 218,-458.73 215.04,-456.14 210.51,-454.74"/>
|
||||
<polygon fill="black" stroke="black" points="210.59,-451.23 200.24,-453.51 209.75,-458.18 210.59,-451.23"/>
|
||||
<text text-anchor="middle" x="254.5" y="-458.8" font-family="Times,serif" font-size="14.00">~axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- WA->WD1 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>WA->WD1</title>
|
||||
<path fill="none" stroke="black" d="M197,-444.36C216.79,-430.22 245.05,-410.04 266.81,-394.49"/>
|
||||
<polygon fill="black" stroke="black" points="268.99,-397.24 275.09,-388.58 264.92,-391.54 268.99,-397.24"/>
|
||||
<text text-anchor="middle" x="277" y="-410.8" font-family="Times,serif" font-size="14.00">~axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD2 -->
|
||||
<g id="node5" class="node">
|
||||
<title>WD2</title>
|
||||
<path fill="none" stroke="black" d="M248,-264.5C248,-264.5 278,-264.5 278,-264.5 284,-264.5 290,-270.5 290,-276.5 290,-276.5 290,-288.5 290,-288.5 290,-294.5 284,-300.5 278,-300.5 278,-300.5 248,-300.5 248,-300.5 242,-300.5 236,-294.5 236,-288.5 236,-288.5 236,-276.5 236,-276.5 236,-270.5 242,-264.5 248,-264.5"/>
|
||||
<text text-anchor="middle" x="263" y="-278.8" font-family="Times,serif" font-size="14.00">WD2</text>
|
||||
</g>
|
||||
<!-- WA->WD2 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>WA->WD2</title>
|
||||
<path fill="none" stroke="black" d="M178.31,-444.39C187.88,-413.59 207,-352 207,-352 207,-352 226.53,-328.11 242.52,-308.55"/>
|
||||
<polygon fill="black" stroke="black" points="245.25,-310.74 248.87,-300.79 239.83,-306.31 245.25,-310.74"/>
|
||||
<text text-anchor="start" x="207" y="-374.3" font-family="Times,serif" font-size="14.00">axi.rvalid </text>
|
||||
<text text-anchor="start" x="208.5" y="-359.3" font-family="Times,serif" font-size="14.00">& cached</text>
|
||||
</g>
|
||||
<!-- WD1->IDLE -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>WD1->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M319.69,-388.79C343.98,-409.08 381,-440 381,-440 381,-440 381,-485 381,-485 381,-485 310,-548 310,-548 310,-548 268.74,-561.31 236.76,-571.64"/>
|
||||
<polygon fill="black" stroke="black" points="235.63,-568.32 227.19,-574.72 237.78,-574.98 235.63,-568.32"/>
|
||||
<text text-anchor="middle" x="439" y="-458.8" font-family="Times,serif" font-size="14.00">axi.rvalid & ~cached</text>
|
||||
</g>
|
||||
<!-- WD1->WD2 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>WD1->WD2</title>
|
||||
<path fill="none" stroke="black" d="M291.71,-352.1C286.66,-340.01 279.82,-323.68 274.09,-309.99"/>
|
||||
<polygon fill="black" stroke="black" points="277.24,-308.46 270.15,-300.58 270.78,-311.16 277.24,-308.46"/>
|
||||
<text text-anchor="middle" x="337.5" y="-322.8" font-family="Times,serif" font-size="14.00">axi.rvalid & cached</text>
|
||||
</g>
|
||||
<!-- WD3 -->
|
||||
<g id="node6" class="node">
|
||||
<title>WD3</title>
|
||||
<path fill="none" stroke="black" d="M203,-176.5C203,-176.5 233,-176.5 233,-176.5 239,-176.5 245,-182.5 245,-188.5 245,-188.5 245,-200.5 245,-200.5 245,-206.5 239,-212.5 233,-212.5 233,-212.5 203,-212.5 203,-212.5 197,-212.5 191,-206.5 191,-200.5 191,-200.5 191,-188.5 191,-188.5 191,-182.5 197,-176.5 203,-176.5"/>
|
||||
<text text-anchor="middle" x="218" y="-190.8" font-family="Times,serif" font-size="14.00">WD3</text>
|
||||
</g>
|
||||
<!-- WD2->WD3 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>WD2->WD3</title>
|
||||
<path fill="none" stroke="black" d="M253.89,-264.1C247.51,-251.89 238.86,-235.37 231.65,-221.59"/>
|
||||
<polygon fill="black" stroke="black" points="234.68,-219.82 226.94,-212.58 228.47,-223.07 234.68,-219.82"/>
|
||||
<text text-anchor="middle" x="269" y="-234.8" font-family="Times,serif" font-size="14.00">axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD4 -->
|
||||
<g id="node7" class="node">
|
||||
<title>WD4</title>
|
||||
<path fill="none" stroke="black" d="M158,-88.5C158,-88.5 188,-88.5 188,-88.5 194,-88.5 200,-94.5 200,-100.5 200,-100.5 200,-112.5 200,-112.5 200,-118.5 194,-124.5 188,-124.5 188,-124.5 158,-124.5 158,-124.5 152,-124.5 146,-118.5 146,-112.5 146,-112.5 146,-100.5 146,-100.5 146,-94.5 152,-88.5 158,-88.5"/>
|
||||
<text text-anchor="middle" x="173" y="-102.8" font-family="Times,serif" font-size="14.00">WD4</text>
|
||||
</g>
|
||||
<!-- WD3->WD4 -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>WD3->WD4</title>
|
||||
<path fill="none" stroke="black" d="M208.89,-176.1C202.51,-163.89 193.86,-147.37 186.65,-133.59"/>
|
||||
<polygon fill="black" stroke="black" points="189.68,-131.82 181.94,-124.58 183.47,-135.07 189.68,-131.82"/>
|
||||
<text text-anchor="middle" x="224" y="-146.8" font-family="Times,serif" font-size="14.00">axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD4->REFILL -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>WD4->REFILL</title>
|
||||
<path fill="none" stroke="black" d="M161.87,-88.1C153.99,-75.78 143.29,-59.05 134.43,-45.2"/>
|
||||
<polygon fill="black" stroke="black" points="137.26,-43.12 128.93,-36.58 131.37,-46.89 137.26,-43.12"/>
|
||||
<text text-anchor="middle" x="174" y="-58.8" font-family="Times,serif" font-size="14.00">axi.rvalid</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 11 KiB |
@ -1,29 +0,0 @@
|
||||
digraph dwState{
|
||||
splines=polyline
|
||||
compound=true
|
||||
node [shape=Mrecord]
|
||||
edge [arrowhead=normal]
|
||||
|
||||
IDLE -> WD1 [label="~axi.wready"]
|
||||
IDLE -> WD2 [label=<axi.wready <br/> & cached>]
|
||||
IDLE -> WB [label=<axi.wready <br/> & ~cached <br/> & ~axi.data_ok>]
|
||||
IDLE -> WAITR [label="sync with drState"]
|
||||
|
||||
WD1 -> WD2 [label=<axi.wready <br/> & cached>]
|
||||
WD1 -> WB [label=<axi.wready <br/> & ~cached <br/> & ~axi.data_ok>]
|
||||
WD1 -> IDLE [label=<axi.wready <br/> & ~cached <br/> & axi.data_ok>]
|
||||
|
||||
WD2 -> WD3 [label="axi.wready"]
|
||||
|
||||
WD3 -> WD4 [label="axi.wready"]
|
||||
|
||||
WD4 -> WB [label=<axi.wready<br/> & ~axi.data_ok>]
|
||||
WD4 -> IDLE [label="sync with drState"]
|
||||
WD4 -> WAITR [label="sync with drState"]
|
||||
|
||||
WB -> IDLE [label="sync with drState"]
|
||||
WB -> IDLE [label="sync with drState"]
|
||||
WB -> WAITR [label="sync with drState"]
|
||||
|
||||
WAITR -> IDLE [label="sync with drState"]
|
||||
}
|
@ -1,176 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.48.0 (0)
|
||||
-->
|
||||
<!-- Title: dwState Pages: 1 -->
|
||||
<svg width="877pt" height="671pt"
|
||||
viewBox="0.00 0.00 877.00 671.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 667)">
|
||||
<title>dwState</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-667 873,-667 873,4 -4,4"/>
|
||||
<!-- IDLE -->
|
||||
<g id="node1" class="node">
|
||||
<title>IDLE</title>
|
||||
<path fill="none" stroke="black" d="M359,-626.5C359,-626.5 389,-626.5 389,-626.5 395,-626.5 401,-632.5 401,-638.5 401,-638.5 401,-650.5 401,-650.5 401,-656.5 395,-662.5 389,-662.5 389,-662.5 359,-662.5 359,-662.5 353,-662.5 347,-656.5 347,-650.5 347,-650.5 347,-638.5 347,-638.5 347,-632.5 353,-626.5 359,-626.5"/>
|
||||
<text text-anchor="middle" x="374" y="-640.8" font-family="Times,serif" font-size="14.00">IDLE</text>
|
||||
</g>
|
||||
<!-- WD1 -->
|
||||
<g id="node2" class="node">
|
||||
<title>WD1</title>
|
||||
<path fill="none" stroke="black" d="M345,-508.5C345,-508.5 375,-508.5 375,-508.5 381,-508.5 387,-514.5 387,-520.5 387,-520.5 387,-532.5 387,-532.5 387,-538.5 381,-544.5 375,-544.5 375,-544.5 345,-544.5 345,-544.5 339,-544.5 333,-538.5 333,-532.5 333,-532.5 333,-520.5 333,-520.5 333,-514.5 339,-508.5 345,-508.5"/>
|
||||
<text text-anchor="middle" x="360" y="-522.8" font-family="Times,serif" font-size="14.00">WD1</text>
|
||||
</g>
|
||||
<!-- IDLE->WD1 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>IDLE->WD1</title>
|
||||
<path fill="none" stroke="black" d="M371.93,-626.38C369.66,-607.54 365.97,-576.97 363.3,-554.8"/>
|
||||
<polygon fill="black" stroke="black" points="366.75,-554.19 362.07,-544.69 359.8,-555.03 366.75,-554.19"/>
|
||||
<text text-anchor="middle" x="403" y="-581.8" font-family="Times,serif" font-size="14.00">~axi.wready</text>
|
||||
</g>
|
||||
<!-- WD2 -->
|
||||
<g id="node3" class="node">
|
||||
<title>WD2</title>
|
||||
<path fill="none" stroke="black" d="M554,-405.5C554,-405.5 584,-405.5 584,-405.5 590,-405.5 596,-411.5 596,-417.5 596,-417.5 596,-429.5 596,-429.5 596,-435.5 590,-441.5 584,-441.5 584,-441.5 554,-441.5 554,-441.5 548,-441.5 542,-435.5 542,-429.5 542,-429.5 542,-417.5 542,-417.5 542,-411.5 548,-405.5 554,-405.5"/>
|
||||
<text text-anchor="middle" x="569" y="-419.8" font-family="Times,serif" font-size="14.00">WD2</text>
|
||||
</g>
|
||||
<!-- IDLE->WD2 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>IDLE->WD2</title>
|
||||
<path fill="none" stroke="black" d="M401.02,-633.61C429.72,-623.11 471,-608 471,-608 471,-608 555,-490 555,-490 555,-490 559.35,-469.63 563.21,-451.61"/>
|
||||
<polygon fill="black" stroke="black" points="566.65,-452.22 565.32,-441.71 559.81,-450.76 566.65,-452.22"/>
|
||||
<text text-anchor="start" x="541" y="-530.3" font-family="Times,serif" font-size="14.00">axi.wready </text>
|
||||
<text text-anchor="start" x="544.5" y="-515.3" font-family="Times,serif" font-size="14.00"> & cached</text>
|
||||
</g>
|
||||
<!-- WB -->
|
||||
<g id="node4" class="node">
|
||||
<title>WB</title>
|
||||
<path fill="none" stroke="black" d="M356,-88.5C356,-88.5 386,-88.5 386,-88.5 392,-88.5 398,-94.5 398,-100.5 398,-100.5 398,-112.5 398,-112.5 398,-118.5 392,-124.5 386,-124.5 386,-124.5 356,-124.5 356,-124.5 350,-124.5 344,-118.5 344,-112.5 344,-112.5 344,-100.5 344,-100.5 344,-94.5 350,-88.5 356,-88.5"/>
|
||||
<text text-anchor="middle" x="371" y="-102.8" font-family="Times,serif" font-size="14.00">WB</text>
|
||||
</g>
|
||||
<!-- IDLE->WB -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>IDLE->WB</title>
|
||||
<path fill="none" stroke="black" d="M346.83,-637.15C303.1,-626.94 222,-608 222,-608 222,-608 123,-527.5 123,-527.5 123,-527.5 123,-527.5 123,-208.5 123,-208.5 222,-143 222,-143 222,-143 289.7,-126.87 333.83,-116.36"/>
|
||||
<polygon fill="black" stroke="black" points="334.75,-119.73 343.67,-114.01 333.13,-112.92 334.75,-119.73"/>
|
||||
<text text-anchor="start" x="136" y="-375.8" font-family="Times,serif" font-size="14.00">axi.wready </text>
|
||||
<text text-anchor="start" x="134" y="-360.8" font-family="Times,serif" font-size="14.00"> & ~cached </text>
|
||||
<text text-anchor="start" x="123" y="-345.8" font-family="Times,serif" font-size="14.00"> & ~axi.data_ok</text>
|
||||
</g>
|
||||
<!-- WAITR -->
|
||||
<g id="node5" class="node">
|
||||
<title>WAITR</title>
|
||||
<path fill="none" stroke="black" d="M545,-0.5C545,-0.5 581,-0.5 581,-0.5 587,-0.5 593,-6.5 593,-12.5 593,-12.5 593,-24.5 593,-24.5 593,-30.5 587,-36.5 581,-36.5 581,-36.5 545,-36.5 545,-36.5 539,-36.5 533,-30.5 533,-24.5 533,-24.5 533,-12.5 533,-12.5 533,-6.5 539,-0.5 545,-0.5"/>
|
||||
<text text-anchor="middle" x="563" y="-14.8" font-family="Times,serif" font-size="14.00">WAITR</text>
|
||||
</g>
|
||||
<!-- IDLE->WAITR -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>IDLE->WAITR</title>
|
||||
<path fill="none" stroke="black" d="M346.81,-638.86C290.43,-629.24 166,-608 166,-608 166,-608 0,-527.5 0,-527.5 0,-527.5 0,-527.5 0,-105.5 0,-105.5 393.36,-45.41 522.48,-25.69"/>
|
||||
<polygon fill="black" stroke="black" points="523.37,-29.09 532.73,-24.12 522.32,-22.17 523.37,-29.09"/>
|
||||
<text text-anchor="middle" x="47.5" y="-297.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WD1->IDLE -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>WD1->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M332.7,-539.32C308.84,-549.65 278,-563 278,-563 278,-563 278,-608 278,-608 278,-608 310.02,-619.84 337.07,-629.84"/>
|
||||
<polygon fill="black" stroke="black" points="336.15,-633.24 346.75,-633.42 338.58,-626.67 336.15,-633.24"/>
|
||||
<text text-anchor="start" x="287" y="-596.8" font-family="Times,serif" font-size="14.00">axi.wready </text>
|
||||
<text text-anchor="start" x="285" y="-581.8" font-family="Times,serif" font-size="14.00"> & ~cached </text>
|
||||
<text text-anchor="start" x="278" y="-566.8" font-family="Times,serif" font-size="14.00"> & axi.data_ok</text>
|
||||
</g>
|
||||
<!-- WD1->WD2 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>WD1->WD2</title>
|
||||
<path fill="none" stroke="black" d="M387.14,-511.93C425.51,-492.74 491,-460 491,-460 491,-460 512.23,-450.34 532.53,-441.1"/>
|
||||
<polygon fill="black" stroke="black" points="534.07,-444.24 541.72,-436.92 531.17,-437.87 534.07,-444.24"/>
|
||||
<text text-anchor="start" x="491" y="-478.8" font-family="Times,serif" font-size="14.00">axi.wready </text>
|
||||
<text text-anchor="start" x="494.5" y="-463.8" font-family="Times,serif" font-size="14.00"> & cached</text>
|
||||
</g>
|
||||
<!-- WD1->WB -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>WD1->WB</title>
|
||||
<path fill="none" stroke="black" d="M359.4,-508.32C357.71,-459.59 353,-324 353,-324 353,-324 353,-279 353,-279 353,-279 363.07,-183.02 368.15,-134.66"/>
|
||||
<polygon fill="black" stroke="black" points="371.65,-134.88 369.21,-124.57 364.68,-134.15 371.65,-134.88"/>
|
||||
<text text-anchor="start" x="366" y="-312.8" font-family="Times,serif" font-size="14.00">axi.wready </text>
|
||||
<text text-anchor="start" x="364" y="-297.8" font-family="Times,serif" font-size="14.00"> & ~cached </text>
|
||||
<text text-anchor="start" x="353" y="-282.8" font-family="Times,serif" font-size="14.00"> & ~axi.data_ok</text>
|
||||
</g>
|
||||
<!-- WD3 -->
|
||||
<g id="node6" class="node">
|
||||
<title>WD3</title>
|
||||
<path fill="none" stroke="black" d="M560,-283.5C560,-283.5 590,-283.5 590,-283.5 596,-283.5 602,-289.5 602,-295.5 602,-295.5 602,-307.5 602,-307.5 602,-313.5 596,-319.5 590,-319.5 590,-319.5 560,-319.5 560,-319.5 554,-319.5 548,-313.5 548,-307.5 548,-307.5 548,-295.5 548,-295.5 548,-289.5 554,-283.5 560,-283.5"/>
|
||||
<text text-anchor="middle" x="575" y="-297.8" font-family="Times,serif" font-size="14.00">WD3</text>
|
||||
</g>
|
||||
<!-- WD2->WD3 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>WD2->WD3</title>
|
||||
<path fill="none" stroke="black" d="M569.86,-405.31C570.84,-385.61 572.47,-353.08 573.63,-329.89"/>
|
||||
<polygon fill="black" stroke="black" points="577.14,-329.82 574.14,-319.66 570.15,-329.47 577.14,-329.82"/>
|
||||
<text text-anchor="middle" x="602.5" y="-360.8" font-family="Times,serif" font-size="14.00">axi.wready</text>
|
||||
</g>
|
||||
<!-- WB->IDLE -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>WB->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M348.1,-124.63C309.58,-153.45 236,-208.5 236,-208.5 236,-527.5 236,-527.5 236,-527.5 236,-527.5 274,-608 274,-608 274,-608 308.67,-620.31 337.18,-630.43"/>
|
||||
<polygon fill="black" stroke="black" points="336.34,-633.85 346.94,-633.89 338.69,-627.25 336.34,-633.85"/>
|
||||
<text text-anchor="middle" x="283.5" y="-360.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WB->IDLE -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>WB->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M385.59,-124.63C410.12,-153.45 457,-208.5 457,-208.5 457,-527.5 457,-527.5 457,-527.5 457,-527.5 441,-608 441,-608 441,-608 426.19,-615.85 410.49,-624.17"/>
|
||||
<polygon fill="black" stroke="black" points="408.45,-621.29 401.25,-629.06 411.73,-627.47 408.45,-621.29"/>
|
||||
<text text-anchor="middle" x="504.5" y="-360.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WB->WAITR -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>WB->WAITR</title>
|
||||
<path fill="none" stroke="black" d="M398.1,-93.36C430.74,-78.74 485.85,-54.06 523.29,-37.29"/>
|
||||
<polygon fill="black" stroke="black" points="525.18,-40.28 532.87,-32.99 522.32,-33.89 525.18,-40.28"/>
|
||||
<text text-anchor="middle" x="525.5" y="-58.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WAITR->IDLE -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>WAITR->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M593.23,-31.82C651.57,-55.6 774,-105.5 774,-105.5 774,-527.5 774,-527.5 774,-527.5 774,-527.5 554,-608 554,-608 554,-608 464.08,-625.73 411.35,-636.13"/>
|
||||
<polygon fill="black" stroke="black" points="410.47,-632.74 401.34,-638.11 411.83,-639.61 410.47,-632.74"/>
|
||||
<text text-anchor="middle" x="821.5" y="-297.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WD4 -->
|
||||
<g id="node7" class="node">
|
||||
<title>WD4</title>
|
||||
<path fill="none" stroke="black" d="M570,-191.5C570,-191.5 600,-191.5 600,-191.5 606,-191.5 612,-197.5 612,-203.5 612,-203.5 612,-215.5 612,-215.5 612,-221.5 606,-227.5 600,-227.5 600,-227.5 570,-227.5 570,-227.5 564,-227.5 558,-221.5 558,-215.5 558,-215.5 558,-203.5 558,-203.5 558,-197.5 564,-191.5 570,-191.5"/>
|
||||
<text text-anchor="middle" x="585" y="-205.8" font-family="Times,serif" font-size="14.00">WD4</text>
|
||||
</g>
|
||||
<!-- WD3->WD4 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>WD3->WD4</title>
|
||||
<path fill="none" stroke="black" d="M575.32,-283.26C575.61,-267.29 576,-246 576,-246 576,-246 576.91,-242.42 578.14,-237.54"/>
|
||||
<polygon fill="black" stroke="black" points="581.54,-238.39 580.61,-227.83 574.76,-236.67 581.54,-238.39"/>
|
||||
<text text-anchor="middle" x="606.5" y="-249.8" font-family="Times,serif" font-size="14.00">axi.wready</text>
|
||||
</g>
|
||||
<!-- WD4->IDLE -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>WD4->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M610.09,-227.63C623.38,-236.7 637,-246 637,-246 637,-246 651,-300.5 651,-300.5 651,-527.5 651,-527.5 651,-527.5 651,-527.5 500,-608 500,-608 500,-608 448.24,-622.58 411.07,-633.06"/>
|
||||
<polygon fill="black" stroke="black" points="409.71,-629.8 401.03,-635.88 411.6,-636.54 409.71,-629.8"/>
|
||||
<text text-anchor="middle" x="698.5" y="-419.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
<!-- WD4->WB -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>WD4->WB</title>
|
||||
<path fill="none" stroke="black" d="M557.81,-198.23C530.05,-187.75 491,-173 491,-173 491,-173 468,-143 468,-143 468,-143 434.97,-130.91 407.46,-120.84"/>
|
||||
<polygon fill="black" stroke="black" points="408.61,-117.54 398.02,-117.39 406.21,-124.11 408.61,-117.54"/>
|
||||
<text text-anchor="start" x="505.5" y="-161.8" font-family="Times,serif" font-size="14.00">axi.wready</text>
|
||||
<text text-anchor="start" x="491" y="-146.8" font-family="Times,serif" font-size="14.00"> & ~axi.data_ok</text>
|
||||
</g>
|
||||
<!-- WD4->WAITR -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>WD4->WAITR</title>
|
||||
<path fill="none" stroke="black" d="M584.11,-191.49C582.03,-151.52 577,-55 577,-55 577,-55 575.52,-51.24 573.52,-46.17"/>
|
||||
<polygon fill="black" stroke="black" points="576.76,-44.85 569.84,-36.83 570.25,-47.42 576.76,-44.85"/>
|
||||
<text text-anchor="middle" x="627.5" y="-102.8" font-family="Times,serif" font-size="14.00">sync with drState</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 12 KiB |
@ -1,9 +0,0 @@
|
||||
digraph dwaState{
|
||||
splines=polyline
|
||||
compound=true
|
||||
node [shape=Mrecord]
|
||||
edge [arrowhead=normal]
|
||||
|
||||
IDLE -> WA [label=<req <br/> & ~axi.addr_ok>]
|
||||
WA -> IDLE [label="axi.addr_ok"]
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.48.0 (0)
|
||||
-->
|
||||
<!-- Title: dwaState Pages: 1 -->
|
||||
<svg width="164pt" height="148pt"
|
||||
viewBox="0.00 0.00 164.00 148.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 144)">
|
||||
<title>dwaState</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-144 160,-144 160,4 -4,4"/>
|
||||
<!-- IDLE -->
|
||||
<g id="node1" class="node">
|
||||
<title>IDLE</title>
|
||||
<path fill="none" stroke="black" d="M41,-103.5C41,-103.5 71,-103.5 71,-103.5 77,-103.5 83,-109.5 83,-115.5 83,-115.5 83,-127.5 83,-127.5 83,-133.5 77,-139.5 71,-139.5 71,-139.5 41,-139.5 41,-139.5 35,-139.5 29,-133.5 29,-127.5 29,-127.5 29,-115.5 29,-115.5 29,-109.5 35,-103.5 41,-103.5"/>
|
||||
<text text-anchor="middle" x="56" y="-117.8" font-family="Times,serif" font-size="14.00">IDLE</text>
|
||||
</g>
|
||||
<!-- WA -->
|
||||
<g id="node2" class="node">
|
||||
<title>WA</title>
|
||||
<path fill="none" stroke="black" d="M41,-0.5C41,-0.5 71,-0.5 71,-0.5 77,-0.5 83,-6.5 83,-12.5 83,-12.5 83,-24.5 83,-24.5 83,-30.5 77,-36.5 71,-36.5 71,-36.5 41,-36.5 41,-36.5 35,-36.5 29,-30.5 29,-24.5 29,-24.5 29,-12.5 29,-12.5 29,-6.5 35,-0.5 41,-0.5"/>
|
||||
<text text-anchor="middle" x="56" y="-14.8" font-family="Times,serif" font-size="14.00">WA</text>
|
||||
</g>
|
||||
<!-- IDLE->WA -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>IDLE->WA</title>
|
||||
<path fill="none" stroke="black" d="M28.98,-103.37C14.66,-94.3 0,-85 0,-85 0,-85 0,-55 0,-55 0,-55 9.31,-49.1 20.34,-42.11"/>
|
||||
<polygon fill="black" stroke="black" points="22.41,-44.94 28.98,-36.63 18.66,-39.02 22.41,-44.94"/>
|
||||
<text text-anchor="start" x="34.5" y="-73.8" font-family="Times,serif" font-size="14.00">req </text>
|
||||
<text text-anchor="start" x="0" y="-58.8" font-family="Times,serif" font-size="14.00"> & ~axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- WA->IDLE -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>WA->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M73.09,-36.83C81.97,-45.85 91,-55 91,-55 91,-55 91,-85 91,-85 91,-85 86.34,-89.73 80.42,-95.74"/>
|
||||
<polygon fill="black" stroke="black" points="77.62,-93.59 73.09,-103.17 82.6,-98.5 77.62,-93.59"/>
|
||||
<text text-anchor="middle" x="123.5" y="-66.3" font-family="Times,serif" font-size="14.00">axi.addr_ok</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,20 +0,0 @@
|
||||
digraph iState{
|
||||
splines=polyline
|
||||
compound=true
|
||||
node [shape=Mrecord]
|
||||
edge [arrowhead=normal]
|
||||
|
||||
IDLE -> WA [label=<cached <br/>& ~hit <br/>& ~axi.addr_ok>]
|
||||
IDLE -> WD1 [label=<cached <br/>& ~hit <br/>& axi.addr_ok>]
|
||||
|
||||
WA -> WD1 [label=<axi.addr_ok<br/>&~axi.rvalid>]
|
||||
WA -> WD2 [label=<axi.addr_ok<br/>&axi.rvalid>]
|
||||
|
||||
WD1 -> WD2 [label="axi.rvalid"]
|
||||
|
||||
WD2 -> WD3 [label=<axi.rvalid <br/>& cached>]
|
||||
WD2 -> IDLE [label=<axi.rvalid <br/>& ~cached>]
|
||||
WD3 -> WD8 [style=dashed label="axi.rvalid"]
|
||||
WD8 -> REFILL [label="sync with dwState"]
|
||||
REFILL -> IDLE
|
||||
}
|
@ -1,132 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.48.0 (0)
|
||||
-->
|
||||
<!-- Title: iState Pages: 1 -->
|
||||
<svg width="322pt" height="641pt"
|
||||
viewBox="0.00 0.00 322.00 641.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 637)">
|
||||
<title>iState</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-637 318,-637 318,4 -4,4"/>
|
||||
<!-- IDLE -->
|
||||
<g id="node1" class="node">
|
||||
<title>IDLE</title>
|
||||
<path fill="none" stroke="black" d="M169,-596.5C169,-596.5 199,-596.5 199,-596.5 205,-596.5 211,-602.5 211,-608.5 211,-608.5 211,-620.5 211,-620.5 211,-626.5 205,-632.5 199,-632.5 199,-632.5 169,-632.5 169,-632.5 163,-632.5 157,-626.5 157,-620.5 157,-620.5 157,-608.5 157,-608.5 157,-602.5 163,-596.5 169,-596.5"/>
|
||||
<text text-anchor="middle" x="184" y="-610.8" font-family="Times,serif" font-size="14.00">IDLE</text>
|
||||
</g>
|
||||
<!-- WA -->
|
||||
<g id="node2" class="node">
|
||||
<title>WA</title>
|
||||
<path fill="none" stroke="black" d="M12,-474.5C12,-474.5 42,-474.5 42,-474.5 48,-474.5 54,-480.5 54,-486.5 54,-486.5 54,-498.5 54,-498.5 54,-504.5 48,-510.5 42,-510.5 42,-510.5 12,-510.5 12,-510.5 6,-510.5 0,-504.5 0,-498.5 0,-498.5 0,-486.5 0,-486.5 0,-480.5 6,-474.5 12,-474.5"/>
|
||||
<text text-anchor="middle" x="27" y="-488.8" font-family="Times,serif" font-size="14.00">WA</text>
|
||||
</g>
|
||||
<!-- IDLE->WA -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>IDLE->WA</title>
|
||||
<path fill="none" stroke="black" d="M156.83,-607.32C112.13,-597.15 28,-578 28,-578 28,-578 27.62,-545.59 27.32,-520.92"/>
|
||||
<polygon fill="black" stroke="black" points="30.82,-520.56 27.2,-510.6 23.82,-520.64 30.82,-520.56"/>
|
||||
<text text-anchor="start" x="51" y="-566.8" font-family="Times,serif" font-size="14.00">cached </text>
|
||||
<text text-anchor="start" x="51.5" y="-551.8" font-family="Times,serif" font-size="14.00">& ~hit </text>
|
||||
<text text-anchor="start" x="28" y="-536.8" font-family="Times,serif" font-size="14.00">& ~axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- WD1 -->
|
||||
<g id="node3" class="node">
|
||||
<title>WD1</title>
|
||||
<path fill="none" stroke="black" d="M115,-367.5C115,-367.5 145,-367.5 145,-367.5 151,-367.5 157,-373.5 157,-379.5 157,-379.5 157,-391.5 157,-391.5 157,-397.5 151,-403.5 145,-403.5 145,-403.5 115,-403.5 115,-403.5 109,-403.5 103,-397.5 103,-391.5 103,-391.5 103,-379.5 103,-379.5 103,-373.5 109,-367.5 115,-367.5"/>
|
||||
<text text-anchor="middle" x="130" y="-381.8" font-family="Times,serif" font-size="14.00">WD1</text>
|
||||
</g>
|
||||
<!-- IDLE->WD1 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>IDLE->WD1</title>
|
||||
<path fill="none" stroke="black" d="M177.03,-596.34C165.57,-568.12 144,-515 144,-515 144,-515 137.1,-451.64 132.99,-413.91"/>
|
||||
<polygon fill="black" stroke="black" points="136.42,-413.13 131.86,-403.56 129.46,-413.88 136.42,-413.13"/>
|
||||
<text text-anchor="start" x="163" y="-503.8" font-family="Times,serif" font-size="14.00">cached </text>
|
||||
<text text-anchor="start" x="163.5" y="-488.8" font-family="Times,serif" font-size="14.00">& ~hit </text>
|
||||
<text text-anchor="start" x="144" y="-473.8" font-family="Times,serif" font-size="14.00">& axi.addr_ok</text>
|
||||
</g>
|
||||
<!-- WA->WD1 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>WA->WD1</title>
|
||||
<path fill="none" stroke="black" d="M31.45,-474.32C36.78,-453.74 45,-422 45,-422 45,-422 70.33,-411.42 93.33,-401.81"/>
|
||||
<polygon fill="black" stroke="black" points="94.76,-405.01 102.64,-397.93 92.06,-398.55 94.76,-405.01"/>
|
||||
<text text-anchor="start" x="48" y="-440.8" font-family="Times,serif" font-size="14.00">axi.addr_ok</text>
|
||||
<text text-anchor="start" x="45" y="-425.8" font-family="Times,serif" font-size="14.00">&~axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD2 -->
|
||||
<g id="node4" class="node">
|
||||
<title>WD2</title>
|
||||
<path fill="none" stroke="black" d="M157,-279.5C157,-279.5 187,-279.5 187,-279.5 193,-279.5 199,-285.5 199,-291.5 199,-291.5 199,-303.5 199,-303.5 199,-309.5 193,-315.5 187,-315.5 187,-315.5 157,-315.5 157,-315.5 151,-315.5 145,-309.5 145,-303.5 145,-303.5 145,-291.5 145,-291.5 145,-285.5 151,-279.5 157,-279.5"/>
|
||||
<text text-anchor="middle" x="172" y="-293.8" font-family="Times,serif" font-size="14.00">WD2</text>
|
||||
</g>
|
||||
<!-- WA->WD2 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>WA->WD2</title>
|
||||
<path fill="none" stroke="black" d="M27.27,-474.45C27.82,-440.35 29,-367 29,-367 29,-367 93.2,-336.25 135.57,-315.95"/>
|
||||
<polygon fill="black" stroke="black" points="137.26,-319.02 144.77,-311.55 134.24,-312.71 137.26,-319.02"/>
|
||||
<text text-anchor="start" x="29" y="-389.3" font-family="Times,serif" font-size="14.00">axi.addr_ok</text>
|
||||
<text text-anchor="start" x="29.5" y="-374.3" font-family="Times,serif" font-size="14.00">&axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD1->WD2 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>WD1->WD2</title>
|
||||
<path fill="none" stroke="black" d="M138.5,-367.1C144.46,-354.89 152.53,-338.37 159.26,-324.59"/>
|
||||
<polygon fill="black" stroke="black" points="162.41,-326.11 163.66,-315.58 156.12,-323.03 162.41,-326.11"/>
|
||||
<text text-anchor="middle" x="179" y="-337.8" font-family="Times,serif" font-size="14.00">axi.rvalid</text>
|
||||
</g>
|
||||
<!-- WD2->IDLE -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>WD2->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M190.07,-315.83C199.46,-324.85 209,-334 209,-334 209,-334 224,-470 224,-470 224,-470 224,-515 224,-515 224,-515 206.59,-557.88 194.74,-587.06"/>
|
||||
<polygon fill="black" stroke="black" points="191.49,-585.76 190.97,-596.34 197.97,-588.39 191.49,-585.76"/>
|
||||
<text text-anchor="start" x="223.5" y="-440.8" font-family="Times,serif" font-size="14.00">axi.rvalid </text>
|
||||
<text text-anchor="start" x="221" y="-425.8" font-family="Times,serif" font-size="14.00">& ~cached</text>
|
||||
</g>
|
||||
<!-- WD3 -->
|
||||
<g id="node5" class="node">
|
||||
<title>WD3</title>
|
||||
<path fill="none" stroke="black" d="M178,-176.5C178,-176.5 208,-176.5 208,-176.5 214,-176.5 220,-182.5 220,-188.5 220,-188.5 220,-200.5 220,-200.5 220,-206.5 214,-212.5 208,-212.5 208,-212.5 178,-212.5 178,-212.5 172,-212.5 166,-206.5 166,-200.5 166,-200.5 166,-188.5 166,-188.5 166,-182.5 172,-176.5 178,-176.5"/>
|
||||
<text text-anchor="middle" x="193" y="-190.8" font-family="Times,serif" font-size="14.00">WD3</text>
|
||||
</g>
|
||||
<!-- WD2->WD3 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>WD2->WD3</title>
|
||||
<path fill="none" stroke="black" d="M175.56,-279.37C178.79,-263.84 183.6,-240.7 187.35,-222.66"/>
|
||||
<polygon fill="black" stroke="black" points="190.81,-223.22 189.42,-212.72 183.96,-221.8 190.81,-223.22"/>
|
||||
<text text-anchor="start" x="185" y="-249.8" font-family="Times,serif" font-size="14.00">axi.rvalid </text>
|
||||
<text text-anchor="start" x="186.5" y="-234.8" font-family="Times,serif" font-size="14.00">& cached</text>
|
||||
</g>
|
||||
<!-- WD8 -->
|
||||
<g id="node6" class="node">
|
||||
<title>WD8</title>
|
||||
<path fill="none" stroke="black" d="M183,-88.5C183,-88.5 213,-88.5 213,-88.5 219,-88.5 225,-94.5 225,-100.5 225,-100.5 225,-112.5 225,-112.5 225,-118.5 219,-124.5 213,-124.5 213,-124.5 183,-124.5 183,-124.5 177,-124.5 171,-118.5 171,-112.5 171,-112.5 171,-100.5 171,-100.5 171,-94.5 177,-88.5 183,-88.5"/>
|
||||
<text text-anchor="middle" x="198" y="-102.8" font-family="Times,serif" font-size="14.00">WD8</text>
|
||||
</g>
|
||||
<!-- WD3->WD8 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>WD3->WD8</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M194.01,-176.1C194.7,-164.25 195.63,-148.32 196.41,-134.79"/>
|
||||
<polygon fill="black" stroke="black" points="199.92,-134.77 197.01,-124.58 192.93,-134.36 199.92,-134.77"/>
|
||||
<text text-anchor="middle" x="221" y="-146.8" font-family="Times,serif" font-size="14.00">axi.rvalid</text>
|
||||
</g>
|
||||
<!-- REFILL -->
|
||||
<g id="node7" class="node">
|
||||
<title>REFILL</title>
|
||||
<path fill="none" stroke="black" d="M237,-0.5C237,-0.5 275,-0.5 275,-0.5 281,-0.5 287,-6.5 287,-12.5 287,-12.5 287,-24.5 287,-24.5 287,-30.5 281,-36.5 275,-36.5 275,-36.5 237,-36.5 237,-36.5 231,-36.5 225,-30.5 225,-24.5 225,-24.5 225,-12.5 225,-12.5 225,-6.5 231,-0.5 237,-0.5"/>
|
||||
<text text-anchor="middle" x="256" y="-14.8" font-family="Times,serif" font-size="14.00">REFILL</text>
|
||||
</g>
|
||||
<!-- WD8->REFILL -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>WD8->REFILL</title>
|
||||
<path fill="none" stroke="black" d="M198.68,-88.4C199.26,-73.75 200,-55 200,-55 200,-55 209.31,-49.1 220.34,-42.11"/>
|
||||
<polygon fill="black" stroke="black" points="222.41,-44.94 228.98,-36.63 218.66,-39.02 222.41,-44.94"/>
|
||||
<text text-anchor="middle" x="250" y="-58.8" font-family="Times,serif" font-size="14.00">sync with dwState</text>
|
||||
</g>
|
||||
<!-- REFILL->IDLE -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>REFILL->IDLE</title>
|
||||
<path fill="none" stroke="black" d="M277.23,-36.63C288.48,-45.7 300,-55 300,-55 300,-55 314,-105.5 314,-105.5 314,-493.5 314,-493.5 314,-493.5 314,-493.5 248.26,-554.19 210.28,-589.25"/>
|
||||
<polygon fill="black" stroke="black" points="207.6,-586.95 202.63,-596.31 212.35,-592.1 207.6,-586.95"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 8.8 KiB |
7
resources/project/.gitignore
vendored
7
resources/project/.gitignore
vendored
@ -1,7 +0,0 @@
|
||||
.idea/
|
||||
obj/
|
||||
*.a
|
||||
*.o
|
||||
bin.lds
|
||||
convert
|
||||
compile_commands.json
|
@ -1,69 +0,0 @@
|
||||
CROSS_COMPILE ?= mipsel-linux-gnu-
|
||||
CC = ${CROSS_COMPILE}gcc
|
||||
LD = ${CROSS_COMPILE}ld
|
||||
OBJCOPY = ${CROSS_COMPILE}objcopy
|
||||
OBJDUMP = ${CROSS_COMPILE}objdump
|
||||
AR = ${CROSS_COMPILE}ar
|
||||
|
||||
CFLAGS = -O3 -fno-pic -mno-branch-likely -mno-abicalls -msoft-float -fno-builtin -mno-shared -mips1 -EL -nostdinc -nostdlib
|
||||
|
||||
OBJ_DIR = obj
|
||||
|
||||
USER_DIR = src
|
||||
USER_OBJ_DIR = obj/user
|
||||
USER_SRC = $(wildcard $(USER_DIR)/*.S) $(wildcard $(USER_DIR)/*.c)
|
||||
USER_OBJ := $(patsubst $(USER_DIR)/%.S, $(USER_OBJ_DIR)/%.o, $(USER_SRC))
|
||||
USER_OBJ := $(patsubst $(USER_DIR)/%.c, $(USER_OBJ_DIR)/%.o, $(USER_OBJ))
|
||||
|
||||
TINY_C_DIR = lib
|
||||
TINY_C_OBJ_DIR = obj/tinyc
|
||||
TINY_C_SRC = $(wildcard $(TINY_C_DIR)/*.S) $(wildcard $(TINY_C_DIR)/*.c)
|
||||
TINY_C_OBJ := $(patsubst $(TINY_C_DIR)/%.S, $(TINY_C_OBJ_DIR)/%.o, $(TINY_C_SRC))
|
||||
TINY_C_OBJ := $(patsubst $(TINY_C_DIR)/%.c, $(TINY_C_OBJ_DIR)/%.o, $(TINY_C_OBJ))
|
||||
TINY_C_TARGET = $(TINY_C_OBJ_DIR)/libtinyc.a
|
||||
|
||||
default: all
|
||||
|
||||
%.o : %.S
|
||||
$(CC) -c -I include $(CFLAGS) -o $@ $<
|
||||
|
||||
%.o : %.c
|
||||
$(CC) -c -I include $(CFLAGS) -o $@ $<
|
||||
|
||||
$(TINY_C_TARGET): $(TINY_C_OBJ)
|
||||
$(AR) -cr $@ $^
|
||||
|
||||
bin.lds: bin.lds.S
|
||||
$(CC) -EL -E -P -o $@ $<
|
||||
|
||||
main.elf: start.o bin.lds $(TINY_C_TARGET) $(USER_OBJ)
|
||||
$(LD) -g -EL -T bin.lds start.o $(USER_OBJ) $(TINY_C_TARGET) -o $(OBJ_DIR)/$@
|
||||
$(OBJDUMP) -alD $(OBJ_DIR)/$@ > $(OBJ_DIR)/test.s
|
||||
|
||||
axi_ram.bin: main.elf
|
||||
$(OBJCOPY) -O binary -j .text -j .data $(OBJ_DIR)/$< $(OBJ_DIR)/$@
|
||||
|
||||
all: env convert axi_ram.bin
|
||||
./convert axi_ram.bin $(OBJ_DIR)/
|
||||
|
||||
convert: convert.c
|
||||
clang -o convert convert.c
|
||||
|
||||
env:
|
||||
mkdir -p $(USER_OBJ_DIR)
|
||||
mkdir -p $(TINY_C_OBJ_DIR)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.bin *.elf *.a testbin *.s *.vlog *.coe *.data *.mif
|
||||
rm -f bin.lds convert
|
||||
rm -rf obj
|
||||
|
||||
help:
|
||||
@echo "####################################################################"
|
||||
@echo "### help for compiling our awesome project ###"
|
||||
@echo "####################################################################"
|
||||
@echo "### options: ###"
|
||||
@echo "### make : get compiled result, which is saved in ./obj ###"
|
||||
@echo "### make clean: remove *.o, *.a, and ./obj ###"
|
||||
@echo "### make help : show help information ###"
|
||||
@echo "####################################################################"
|
@ -1,54 +0,0 @@
|
||||
ENTRY(_init)
|
||||
OUTPUT("main.elf")
|
||||
OUTPUT_ARCH("mips:isa32r2")
|
||||
OUTPUT_FORMAT("elf32-tradlittlemips")
|
||||
|
||||
PROVIDE(MEM_SIZE = 0x88000000);
|
||||
SECTIONS
|
||||
{
|
||||
/* SPI-FLASH mapped to bfc0_0000 */
|
||||
. = 0x80000000;
|
||||
.text : {
|
||||
*(.text.init)
|
||||
|
||||
. = 0x380;
|
||||
*(.text.exception)
|
||||
|
||||
. = 0x1000;
|
||||
_text_ebase_begin = .;
|
||||
*(.text.ebase)
|
||||
_text_ebase_end = .;
|
||||
|
||||
. = ALIGN(0x1000);
|
||||
_text_code_begin = .;
|
||||
*(.text)
|
||||
_text_code_end = .;
|
||||
}
|
||||
|
||||
/* . = 0x807F0000; */
|
||||
.data : {
|
||||
*(.rodata*)
|
||||
*(.data)
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
*(.got.plt) *(.got)
|
||||
*(.sdata) *(.sdata.*) *(.lit8) *(.lit4)
|
||||
. = ALIGN(16);
|
||||
}
|
||||
.bss : {
|
||||
_sbss = .;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
_ebss = .;
|
||||
}
|
||||
|
||||
. = ALIGN(0x1000);
|
||||
_heap = . ;
|
||||
|
||||
_stack = MEM_SIZE - 4;
|
||||
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.MIPS.abiflags)
|
||||
}
|
||||
}
|
@ -1,84 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
void binary_out(FILE* out,unsigned char* mem)
|
||||
{
|
||||
char tmp;
|
||||
unsigned char num[8];
|
||||
num[0] = 1;
|
||||
num[1] = 2;
|
||||
num[2] = 4;
|
||||
num[3] = 8;
|
||||
num[4] = 16;
|
||||
num[5] = 32;
|
||||
num[6] = 64;
|
||||
num[7] = 128;
|
||||
for(int i=3;i>=0;i--)
|
||||
{
|
||||
for(int j=7;j>=0;j--)
|
||||
{
|
||||
if( (mem[i] & num[j] ) != 0)
|
||||
tmp = '1';
|
||||
else
|
||||
tmp = '0';
|
||||
fprintf(out,"%c",tmp);
|
||||
}
|
||||
}
|
||||
fprintf(out,"\n");
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
FILE *in;
|
||||
FILE *out;
|
||||
|
||||
if(argc < 3){
|
||||
fprintf(stderr, "Usage: convert main.bin main.data directory\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
char str_bin[256];
|
||||
char str_coe[256], str_mif[256];
|
||||
strncpy(str_bin, argv[2], 256);
|
||||
strncpy(str_coe, argv[2], 256);
|
||||
strncpy(str_mif, argv[2], 256);
|
||||
strncat(str_bin, argv[1], 256);
|
||||
strncat(str_coe, "axi_ram.coe", 256);
|
||||
strncat(str_mif, "axi_ram.mif", 256);
|
||||
//printf("%s\n%s\n%s\n%s\n%s\n%s\n", str_bin, str_data, str_inst_coe, str_inst_mif, str_data_coe, str_data_mif);
|
||||
|
||||
int i,j,k;
|
||||
unsigned char mem[32];
|
||||
|
||||
in = fopen(str_bin, "rb");
|
||||
out = fopen(str_coe,"w");
|
||||
|
||||
fprintf(out, "memory_initialization_radix = 16;\n");
|
||||
fprintf(out, "memory_initialization_vector =\n");
|
||||
while(!feof(in)) {
|
||||
if(fread(mem,1,4,in)!=4) {
|
||||
fprintf(out, "%02x%02x%02x%02x\n", mem[3], mem[2], mem[1], mem[0]);
|
||||
break;
|
||||
}
|
||||
fprintf(out, "%02x%02x%02x%02x\n", mem[3], mem[2], mem[1],mem[0]);
|
||||
}
|
||||
fclose(in);
|
||||
fclose(out);
|
||||
|
||||
in = fopen(str_bin, "rb");
|
||||
out = fopen(str_mif,"w");
|
||||
|
||||
while(!feof(in)) {
|
||||
if(fread(mem,1,4,in)!=4) {
|
||||
binary_out(out,mem);
|
||||
break;
|
||||
}
|
||||
binary_out(out,mem);
|
||||
}
|
||||
fclose(in);
|
||||
fclose(out);
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,254 +0,0 @@
|
||||
/* $OpenBSD: asm.h,v 1.2 1998/03/16 09:03:02 pefo Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Ralph Campbell.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* Copyright (C) 1989 Digital Equipment Corporation.
|
||||
* Permission to use, copy, modify, and distribute this software and
|
||||
* its documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appears in all copies.
|
||||
* Digital Equipment Corporation makes no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _MIPS_ASM_H
|
||||
#define _MIPS_ASM_H
|
||||
|
||||
#include <asm/regdef.h>
|
||||
|
||||
#ifndef ABICALLS
|
||||
#define ABICALLS .abicalls
|
||||
#endif
|
||||
|
||||
#if defined(ABICALLS) && !defined(_KERNEL)
|
||||
ABICALLS
|
||||
#endif
|
||||
|
||||
#define RCSID(x)
|
||||
|
||||
/*
|
||||
* Define how to access unaligned data word
|
||||
*/
|
||||
#if defined(__MIPSEL__)
|
||||
#define LWLO lwl
|
||||
#define LWHI lwr
|
||||
#define SWLO swl
|
||||
#define SWHI swr
|
||||
#else
|
||||
#if defined(__MIPSEB__)
|
||||
#define LWLO lwr
|
||||
#define LWHI lwl
|
||||
#define SWLO swr
|
||||
#define SWHI swl
|
||||
#else
|
||||
#error "__MIPSEL__ or __MIPSEB__ must be defined"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Code for setting gp reg if abicalls are used.
|
||||
*/
|
||||
#if defined(ABICALLS) && !defined(_KERNEL)
|
||||
#define ABISETUP \
|
||||
.set noreorder; \
|
||||
.cpload t9; \
|
||||
.set reorder;
|
||||
#else
|
||||
#define ABISETUP
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define -pg profile entry code.
|
||||
*/
|
||||
#if defined(GPROF) || defined(PROF)
|
||||
#define MCOUNT \
|
||||
subu sp, sp, 32; \
|
||||
.cprestore 16; \
|
||||
sw ra, 28(sp); \
|
||||
sw gp, 24(sp); \
|
||||
.set noat; \
|
||||
.set noreorder; \
|
||||
move AT, ra; \
|
||||
jal _mcount; \
|
||||
subu sp, sp, 8; \
|
||||
lw ra, 28(sp); \
|
||||
addu sp, sp, 32; \
|
||||
.set reorder; \
|
||||
.set at;
|
||||
#else
|
||||
#define MCOUNT
|
||||
#endif
|
||||
|
||||
/*
|
||||
* LEAF(x)
|
||||
*
|
||||
* Declare a leaf routine.
|
||||
*/
|
||||
#define LEAF(x) \
|
||||
.align 3; \
|
||||
.globl x; \
|
||||
.ent x, 0; \
|
||||
x: ; \
|
||||
.frame sp, 0, ra; \
|
||||
ABISETUP \
|
||||
MCOUNT
|
||||
|
||||
#define ALEAF(x) \
|
||||
.globl x; \
|
||||
x:
|
||||
|
||||
/*
|
||||
* NLEAF(x)
|
||||
*
|
||||
* Declare a non-profiled leaf routine.
|
||||
*/
|
||||
#define NLEAF(x) \
|
||||
.align 3; \
|
||||
.globl x; \
|
||||
.ent x, 0; \
|
||||
x: ; \
|
||||
.frame sp, 0, ra; \
|
||||
ABISETUP
|
||||
|
||||
/*
|
||||
* NON_LEAF(x)
|
||||
*
|
||||
* Declare a non-leaf routine (a routine that makes other C calls).
|
||||
*/
|
||||
#define NON_LEAF(x, fsize, retpc) \
|
||||
.align 3; \
|
||||
.globl x; \
|
||||
.ent x, 0; \
|
||||
x: ; \
|
||||
.frame sp, fsize, retpc; \
|
||||
ABISETUP \
|
||||
MCOUNT
|
||||
|
||||
/*
|
||||
* NNON_LEAF(x)
|
||||
*
|
||||
* Declare a non-profiled non-leaf routine
|
||||
* (a routine that makes other C calls).
|
||||
*/
|
||||
#define NNON_LEAF(x, fsize, retpc) \
|
||||
.align 3; \
|
||||
.globl x; \
|
||||
.ent x, 0; \
|
||||
x: ; \
|
||||
.frame sp, fsize, retpc \
|
||||
ABISETUP
|
||||
|
||||
/*
|
||||
* END(x)
|
||||
*
|
||||
* Mark end of a procedure.
|
||||
*/
|
||||
#define END(x) \
|
||||
.end x
|
||||
|
||||
/*
|
||||
* Macros to panic and printf from assembly language.
|
||||
*/
|
||||
#define PANIC(msg) \
|
||||
la a0, 9f; \
|
||||
jal panic; \
|
||||
MSG(msg)
|
||||
|
||||
#define PRINTF(msg) \
|
||||
la a0, 9f; \
|
||||
jal printf; \
|
||||
MSG(msg)
|
||||
|
||||
#define MSG(msg) \
|
||||
.rdata; \
|
||||
9: .asciiz msg; \
|
||||
.text
|
||||
|
||||
#define ASMSTR(str) \
|
||||
.asciiz str; \
|
||||
.align 3
|
||||
|
||||
#if (_MIPS_SZPTR == 32)
|
||||
#define PTR_ADD add
|
||||
#define PTR_ADDU addu
|
||||
#define PTR_ADDI addi
|
||||
#define PTR_ADDIU addiu
|
||||
#define PTR_SUB sub
|
||||
#define PTR_SUBU subu
|
||||
#define PTR_L lw
|
||||
#define PTR_S sw
|
||||
#define PTR_LA la
|
||||
#define PTR_LI li
|
||||
#define PTR_SLL sll
|
||||
#define PTR_SLLV sllv
|
||||
#define PTR_SRL srl
|
||||
#define PTR_SRLV srlv
|
||||
#define PTR_SRA sra
|
||||
#define PTR_SRAV srav
|
||||
|
||||
#define PTR_SCALESHIFT 2
|
||||
|
||||
#define PTR .word
|
||||
#define PTRSIZE 4
|
||||
#define PTRLOG 2
|
||||
#endif
|
||||
|
||||
#if (_MIPS_SZPTR == 64)
|
||||
#define PTR_ADD dadd
|
||||
#define PTR_ADDU daddu
|
||||
#define PTR_ADDI daddi
|
||||
#define PTR_ADDIU daddiu
|
||||
#define PTR_SUB dsub
|
||||
#define PTR_SUBU dsubu
|
||||
#define PTR_L ld
|
||||
#define PTR_S sd
|
||||
#define PTR_LA dla
|
||||
#define PTR_LI dli
|
||||
#define PTR_SLL dsll
|
||||
#define PTR_SLLV dsllv
|
||||
#define PTR_SRL dsrl
|
||||
#define PTR_SRLV dsrlv
|
||||
#define PTR_SRA dsra
|
||||
#define PTR_SRAV dsrav
|
||||
|
||||
#define PTR_SCALESHIFT 3
|
||||
|
||||
#define PTR .dword
|
||||
#define PTRSIZE 8
|
||||
#define PTRLOG 3
|
||||
#endif
|
||||
|
||||
#endif /* !_MIPS_ASM_H */
|
File diff suppressed because it is too large
Load Diff
@ -1,113 +0,0 @@
|
||||
/* $OpenBSD: regdef.h,v 1.3 1999/01/27 04:46:06 imp Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Ralph Campbell. This file is derived from the MIPS RISC
|
||||
* Architecture book by Gerry Kane.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)regdef.h 8.1 (Berkeley) 6/10/93
|
||||
*/
|
||||
#ifndef _MIPS_REGDEF_H_
|
||||
#define _MIPS_REGDEF_H_
|
||||
|
||||
#define zero $0 /* always zero */
|
||||
#define AT $at /* assembler temp */
|
||||
#define v0 $2 /* return value */
|
||||
#define v1 $3
|
||||
#define a0 $4 /* argument registers */
|
||||
#define a1 $5
|
||||
#define a2 $6
|
||||
#define a3 $7
|
||||
#define t0 $8 /* temp registers (not saved across subroutine calls) */
|
||||
#define t1 $9
|
||||
#define t2 $10
|
||||
#define t3 $11
|
||||
#define t4 $12
|
||||
#define t5 $13
|
||||
#define t6 $14
|
||||
#define t7 $15
|
||||
#define s0 $16 /* saved across subroutine calls (callee saved) */
|
||||
#define s1 $17
|
||||
#define s2 $18
|
||||
#define s3 $19
|
||||
#define s4 $20
|
||||
#define s5 $21
|
||||
#define s6 $22
|
||||
#define s7 $23
|
||||
#define t8 $24 /* two more temp registers */
|
||||
#define t9 $25
|
||||
#define k0 $26 /* kernel temporary */
|
||||
#define k1 $27
|
||||
#define gp $28 /* global pointer */
|
||||
#define sp $29 /* stack pointer */
|
||||
#define s8 $30 /* one more callee saved */
|
||||
#define ra $31 /* return address */
|
||||
#define fp $30
|
||||
|
||||
#define c0_index $0
|
||||
#define c0_random $1
|
||||
#define c0_entrylo0 $2
|
||||
#define c0_entrylo1 $3
|
||||
#define c0_conf $3
|
||||
#define c0_context $4
|
||||
#define c0_pagemask $5
|
||||
#define c0_wired $6
|
||||
#define c0_info $7
|
||||
#define c0_badvaddr $8
|
||||
#define c0_count $9
|
||||
#define c0_entryhi $10
|
||||
#define c0_compare $11
|
||||
#define c0_status $12
|
||||
#define c0_cause $13
|
||||
#define c0_epc $14
|
||||
#define c0_prid $15
|
||||
#define c0_config $16
|
||||
#define c0_lladdr $17
|
||||
#define c0_watchlo $18
|
||||
#define c0_watchhi $19
|
||||
#define c0_xcontext $20
|
||||
#define c0_framemask $21
|
||||
#define c0_diagnostic $22
|
||||
#define c0_debug $23
|
||||
#define c0_depc $24
|
||||
#define c0_performance $25
|
||||
#define c0_ecc $26
|
||||
#define c0_cacheerr $27
|
||||
#define c0_taglo $28
|
||||
#define c0_taghi $29
|
||||
#define c0_errorepc $30
|
||||
#define c0_desave $31
|
||||
|
||||
|
||||
#endif /* !_MIPS_REGDEF_H_ */
|
@ -1,35 +0,0 @@
|
||||
//soc confreg
|
||||
|
||||
#define CONFREG_CR0 0xbfd00000
|
||||
#define CONFREG_CR1 0xbfd00004
|
||||
#define CONFREG_CR2 0xbfd00008
|
||||
#define CONFREG_CR3 0xbfd0000c
|
||||
#define CONFREG_CR4 0xbfd00010
|
||||
#define CONFREG_CR5 0xbfd00014
|
||||
#define CONFREG_CR6 0xbfd00018
|
||||
#define CONFREG_CR7 0xbfd0001c
|
||||
|
||||
#define UART_ADDR 0xbfe40000
|
||||
#define LED_ADDR 0xbfd0f000
|
||||
#define LED_RG0_ADDR 0xbfd0f004
|
||||
#define LED_RG1_ADDR 0xbfd0f008
|
||||
#define NUM_ADDR 0xbfd0f010
|
||||
#define SWITCH_ADDR 0xbfd0f020
|
||||
#define BTN_KEY_ADDR 0xbfd0f024
|
||||
#define BTN_STEP_ADDR 0xbfd0f028
|
||||
#define TIMER_ADDR 0xbfd0e000
|
||||
|
||||
#define SOC_LED (* (volatile unsigned *) LED_ADDR )
|
||||
#define SOC_LED_RG0 (* (volatile unsigned *) LED_RG0_ADDR )
|
||||
#define SOC_LED_RG1 (* (volatile unsigned *) LED_RG1_ADDR )
|
||||
#define SOC_NUM (* (volatile unsigned *) NUM_ADDR )
|
||||
#define SOC_SWITCHE (* (volatile unsigned *) SWITCH_ADDR )
|
||||
#define SOC_BTN_KEY (* (volatile unsigned *) BTN_KEY_ADDR )
|
||||
#define SOC_BTN_STEP (* (volatile unsigned *) BTN_STEP_ADDR )
|
||||
#define SOC_TIMER (* (volatile unsigned *) TIMER_ADDR )
|
||||
|
||||
#define write_confreg_cr(num,data) *((volatile int *)(CONFREG_CR0+4*num)) = data
|
||||
#define read_confreg_cr(num,data) data=*((volatile int *)(CONFREG_CR0+4*num))
|
||||
#define NOP addu zero, zero, zero
|
||||
#define LI(reg, imm) \
|
||||
li reg, imm
|
@ -1,13 +0,0 @@
|
||||
#ifndef PROJECT_INCLUDE_TINY_H_
|
||||
#define PROJECT_INCLUDE_TINY_H_
|
||||
|
||||
void WRITESERIAL(char);
|
||||
char READSERIAL();
|
||||
unsigned READSERIALWORD();
|
||||
|
||||
char* itoa(int num, char* str, int base);
|
||||
int putchar(char c);
|
||||
int vsprintf(char* buf, const char* fmt, va_list args);
|
||||
int printf(const char* fmt, ...);
|
||||
|
||||
#endif //PROJECT_INCLUDE_TINY_H_
|
@ -1,79 +0,0 @@
|
||||
#include <asm/asm.h>
|
||||
#include <asm/regdef.h>
|
||||
#include <cpu_cde.h>
|
||||
|
||||
.text
|
||||
.set noreorder
|
||||
.set noat
|
||||
.p2align 2
|
||||
.global WRITESERIAL
|
||||
.global READSERIAL
|
||||
.global READSERIALWORD
|
||||
|
||||
WRITESERIAL: // 写串口:将a0的低八位写入串口
|
||||
li t1, UART_ADDR
|
||||
.TESTW:
|
||||
lb t0, 5(t1) // 查看串口状态, LSR
|
||||
andi t0, t0, 0x20 // 截取写状态位, TXRDY
|
||||
beq t0, zero, .TESTW // 状态位为零则循环检测
|
||||
nop
|
||||
.WSERIAL: // 否则可写入
|
||||
sb a0, 0(t1) // 写入, DATA
|
||||
jr ra
|
||||
nop
|
||||
|
||||
READSERIAL: // 读串口:将读到的数据写入v0低八位
|
||||
li t1, UART_ADDR
|
||||
.TESTR:
|
||||
lb t0, 5(t1) // 查看串口状态, LSR
|
||||
andi t0, t0, 0x01 // 截取读状态位, RXRDY
|
||||
bne t0, zero, .RSERIAL // 状态位非零可读进入读
|
||||
nop
|
||||
j .TESTR // 检测验证
|
||||
nop
|
||||
.RSERIAL:
|
||||
lb v0, 0(t1) // 读出, DATA
|
||||
jr ra
|
||||
nop
|
||||
|
||||
READSERIALWORD:
|
||||
addiu sp, sp, -0x14 // 保存ra,s0
|
||||
sw ra, 0x0(sp)
|
||||
sw s0, 0x4(sp)
|
||||
sw s1, 0x8(sp)
|
||||
sw s2, 0xC(sp)
|
||||
sw s3, 0x10(sp)
|
||||
|
||||
jal READSERIAL // 读串口获得八个比特
|
||||
nop
|
||||
or s0, zero, v0 // 结果存入s0
|
||||
jal READSERIAL // 读串口获得八个比特
|
||||
nop
|
||||
or s1, zero, v0 // 结果存入s1
|
||||
jal READSERIAL // 读串口获得八个比特
|
||||
nop
|
||||
or s2, zero, v0 // 结果存入s2
|
||||
jal READSERIAL // 读串口获得八个比特
|
||||
nop
|
||||
or s3, zero, v0 // 结果存入s3
|
||||
|
||||
andi s0, s0, 0x00FF // 截取低八位
|
||||
andi s3, s3, 0x00FF
|
||||
andi s2, s2, 0x00FF
|
||||
andi s1, s1, 0x00FF
|
||||
or v0, zero, s3 // 存高八位
|
||||
sll v0, v0, 8 // 左移
|
||||
or v0, v0, s2 // 存八位
|
||||
sll v0, v0, 8 // 左移
|
||||
or v0, v0, s1 // 存八位
|
||||
sll v0, v0, 8 // 左移
|
||||
or v0, v0, s0 // 存低八位
|
||||
|
||||
lw ra, 0x0(sp) // 恢复ra,s0
|
||||
lw s0, 0x4(sp)
|
||||
lw s1, 0x8(sp)
|
||||
lw s2, 0xC(sp)
|
||||
lw s3, 0x10(sp)
|
||||
addiu sp, sp, 0x14
|
||||
jr ra
|
||||
nop
|
@ -1,110 +0,0 @@
|
||||
#include "tiny.h"
|
||||
|
||||
int putchar(char c)
|
||||
{
|
||||
WRITESERIAL(c);
|
||||
return c;
|
||||
}
|
||||
|
||||
char* itoa(int num, char* str, int base)
|
||||
{
|
||||
if (num == 0 || base <= 1)
|
||||
{
|
||||
str[0] = '0';
|
||||
str[1] = '\0';
|
||||
return str;
|
||||
}
|
||||
|
||||
int neg = 0, i = 0;
|
||||
if (num < 0 && base == 10)
|
||||
{
|
||||
neg = 1;
|
||||
num = -num;
|
||||
}
|
||||
|
||||
while (num != 0)
|
||||
{
|
||||
int rem = num % base;
|
||||
str[i] = (rem > 9) ? (rem - 10) + 'A' : rem + '0';
|
||||
num /= base;
|
||||
i++;
|
||||
}
|
||||
|
||||
if (neg == 1)
|
||||
{
|
||||
str[i++] = '-';
|
||||
str[i] = '\0';
|
||||
}
|
||||
else
|
||||
str[i] = '\0';
|
||||
|
||||
i--;
|
||||
|
||||
int start = 0;
|
||||
while (start < i)
|
||||
{
|
||||
char tmp = *(str + i);
|
||||
*(str + i) = *(str + start);
|
||||
*(str + start) = tmp;
|
||||
start++;
|
||||
i--;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int vsprintf(char* buf, const char* fmt, va_list args)
|
||||
{
|
||||
char* p;
|
||||
char tmp[256];
|
||||
va_list p_next_arg = args;
|
||||
|
||||
for (p = buf; *fmt; fmt++)
|
||||
{
|
||||
if (*fmt != '%')
|
||||
{
|
||||
*p++ = *fmt;
|
||||
continue;
|
||||
}
|
||||
|
||||
fmt++;
|
||||
|
||||
switch (*fmt)
|
||||
{
|
||||
case 'x':
|
||||
// itoa(tmp, *((int *)p_next_arg));
|
||||
itox(*((int*)p_next_arg), tmp, 16);
|
||||
strcpy(p, tmp);
|
||||
p_next_arg += 4;
|
||||
p += strlen(tmp);
|
||||
break;
|
||||
case 'd':
|
||||
itox(*((int*)p_next_arg), tmp, 10);
|
||||
strcpy(p, tmp);
|
||||
p_next_arg += 4;
|
||||
p += strlen(tmp);
|
||||
break;
|
||||
case 's':
|
||||
strcpy(p, (char*)(*((unsigned*)p_next_arg)));
|
||||
p += strlen((char*)(*((unsigned*)p_next_arg)));
|
||||
p_next_arg += 4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (p - buf);
|
||||
}
|
||||
|
||||
int printf(const char* fmt, ...)
|
||||
{
|
||||
int i;
|
||||
char buf[256];
|
||||
|
||||
va_list arg = (va_list)((char*)(&fmt) + 4); /*4是参数fmt所占堆栈中的大小*/
|
||||
i = vsprintf(buf, fmt, arg);
|
||||
write(buf, i);
|
||||
|
||||
return i;
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
#include "soc.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
#ifndef PROJECT_SRC_SOC_H_
|
||||
#define PROJECT_SRC_SOC_H_
|
||||
|
||||
#include "cpu_cde.h"
|
||||
|
||||
#endif //PROJECT_SRC_SOC_H_
|
@ -1,39 +0,0 @@
|
||||
#include <asm/asm.h>
|
||||
#include <asm/regdef.h>
|
||||
#include <cpu_cde.h>
|
||||
|
||||
.set noreorder
|
||||
.section .text.init
|
||||
.globl _init
|
||||
_init:
|
||||
lui t2, 0x0040
|
||||
mtc0 t2, c0_status # turn off timer interrupt
|
||||
mtc0 zero, c0_cause # clear cause
|
||||
la sp, _stack # setup stack
|
||||
la gp, _gp # setup small data
|
||||
|
||||
# Copy text to a000_0000 -> 8000_0000
|
||||
la t0, _text_code_begin
|
||||
la t1, _text_code_end
|
||||
li t2, 0xa0000000
|
||||
or t0, t0, t2
|
||||
or t1, t1, t2
|
||||
li t2, 0xbfc00000
|
||||
or t2, t2, t0
|
||||
copy:
|
||||
lw t3, 0(t2)
|
||||
addiu t2, t2, 4
|
||||
sw t3, 0(t0)
|
||||
addiu t0, t0, 4
|
||||
bne t0, t1, copy
|
||||
nop
|
||||
|
||||
lui k0, %hi(main)
|
||||
addiu k0, %lo(main)
|
||||
jr k0
|
||||
nop
|
||||
|
||||
.section .text.exception
|
||||
_EXCEPTION:
|
||||
b _EXCEPTION
|
||||
nop
|
Loading…
Reference in New Issue
Block a user