diff --git a/docs/arch.svg b/docs/arch.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6b084f2005df99406207062fef57e406c28fbba1
--- /dev/null
+++ b/docs/arch.svg
@@ -0,0 +1,770 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 612 792" style="enable-background:new 0 0 612 792;" xml:space="preserve">
+<style type="text/css">
+	.st0{clip-path:url(#SVGID_2_);}
+	.st1{font-family:'HelveticaNeue';}
+	.st2{font-size:24px;}
+	.st3{clip-path:url(#SVGID_4_);fill:none;stroke:#000000;stroke-width:2;}
+	.st4{clip-path:url(#SVGID_4_);}
+	.st5{clip-path:url(#SVGID_6_);fill:none;stroke:#000000;stroke-width:2;}
+	.st6{clip-path:url(#SVGID_6_);}
+	.st7{clip-path:url(#SVGID_8_);fill:none;stroke:#000000;stroke-width:2;}
+	.st8{clip-path:url(#SVGID_10_);}
+	.st9{font-size:12px;}
+	.st10{clip-path:url(#SVGID_12_);fill:none;stroke:#000000;stroke-width:2;}
+	.st11{clip-path:url(#SVGID_12_);}
+	.st12{clip-path:url(#SVGID_14_);fill:none;stroke:#000000;stroke-width:2;}
+	.st13{clip-path:url(#SVGID_14_);}
+	.st14{clip-path:url(#SVGID_16_);fill:none;stroke:#000000;stroke-width:2;}
+	.st15{clip-path:url(#SVGID_16_);}
+	.st16{clip-path:url(#SVGID_18_);fill:none;stroke:#000000;stroke-width:2;}
+	.st17{clip-path:url(#SVGID_18_);}
+	.st18{clip-path:url(#SVGID_20_);fill:none;stroke:#000000;stroke-width:2;}
+	.st19{clip-path:url(#SVGID_20_);}
+	.st20{clip-path:url(#SVGID_22_);fill:none;stroke:#000000;stroke-width:2;}
+	.st21{clip-path:url(#SVGID_22_);}
+	.st22{clip-path:url(#SVGID_24_);fill:none;stroke:#000000;stroke-width:2;}
+	.st23{clip-path:url(#SVGID_24_);}
+	.st24{clip-path:url(#SVGID_26_);fill:none;stroke:#000000;stroke-width:2;}
+	.st25{clip-path:url(#SVGID_26_);}
+	.st26{clip-path:url(#SVGID_28_);fill:none;stroke:#000000;stroke-width:2;}
+	.st27{clip-path:url(#SVGID_28_);}
+	.st28{clip-path:url(#SVGID_30_);fill:none;stroke:#000000;stroke-width:2;}
+	.st29{clip-path:url(#SVGID_32_);}
+	.st30{clip-path:url(#SVGID_34_);fill:none;stroke:#000000;stroke-width:2;}
+	.st31{clip-path:url(#SVGID_34_);}
+	.st32{clip-path:url(#SVGID_36_);fill:none;stroke:#000000;stroke-width:2;}
+	.st33{clip-path:url(#SVGID_36_);}
+	.st34{clip-path:url(#SVGID_38_);fill:none;stroke:#000000;stroke-width:2;}
+	.st35{clip-path:url(#SVGID_40_);}
+	.st36{clip-path:url(#SVGID_42_);fill:none;stroke:#000000;stroke-width:2;}
+	.st37{clip-path:url(#SVGID_42_);}
+	.st38{clip-path:url(#SVGID_44_);fill:none;stroke:#000000;stroke-width:2;}
+	.st39{clip-path:url(#SVGID_44_);}
+	.st40{clip-path:url(#SVGID_46_);fill:none;stroke:#000000;stroke-width:2;}
+	.st41{clip-path:url(#SVGID_48_);}
+	.st42{clip-path:url(#SVGID_50_);}
+	.st43{clip-path:url(#SVGID_52_);fill:none;stroke:#000000;stroke-width:2;}
+	.st44{clip-path:url(#SVGID_52_);}
+	.st45{clip-path:url(#SVGID_54_);}
+	.st46{clip-path:url(#SVGID_56_);fill:none;stroke:#000000;stroke-width:2;}
+	.st47{clip-path:url(#SVGID_56_);}
+	.st48{clip-path:url(#SVGID_58_);}
+	.st49{clip-path:url(#SVGID_60_);}
+	.st50{fill:#FFFFFF;}
+	.st51{clip-path:url(#SVGID_62_);}
+	.st52{clip-path:url(#SVGID_64_);}
+	.st53{clip-path:url(#SVGID_66_);}
+	.st54{clip-path:url(#SVGID_68_);}
+	.st55{clip-path:url(#SVGID_70_);fill:none;stroke:#000000;stroke-width:2;}
+	.st56{clip-path:url(#SVGID_72_);}
+	.st57{clip-path:url(#SVGID_74_);fill:none;stroke:#000000;stroke-width:2;}
+	.st58{clip-path:url(#SVGID_74_);}
+	.st59{clip-path:url(#SVGID_76_);fill:none;stroke:#000000;stroke-width:2;}
+	.st60{clip-path:url(#SVGID_78_);}
+	.st61{clip-path:url(#SVGID_80_);fill:none;stroke:#000000;stroke-width:2;}
+	.st62{clip-path:url(#SVGID_82_);}
+	.st63{clip-path:url(#SVGID_84_);fill:none;stroke:#000000;stroke-width:2;}
+	.st64{clip-path:url(#SVGID_86_);}
+	.st65{clip-path:url(#SVGID_88_);fill:none;stroke:#000000;stroke-width:2;}
+	.st66{clip-path:url(#SVGID_90_);}
+	.st67{clip-path:url(#SVGID_92_);fill:none;stroke:#000000;stroke-width:2;}
+	.st68{clip-path:url(#SVGID_94_);}
+	.st69{clip-path:url(#SVGID_96_);fill:none;stroke:#000000;stroke-width:2;}
+	.st70{clip-path:url(#SVGID_98_);}
+	.st71{clip-path:url(#SVGID_100_);fill:none;stroke:#000000;stroke-width:2;}
+	.st72{clip-path:url(#SVGID_100_);}
+	.st73{clip-path:url(#SVGID_102_);fill:none;stroke:#000000;stroke-width:2;}
+	.st74{clip-path:url(#SVGID_104_);}
+	.st75{clip-path:url(#SVGID_106_);fill:none;stroke:#000000;stroke-width:2;}
+	.st76{clip-path:url(#SVGID_108_);}
+	.st77{clip-path:url(#SVGID_110_);fill:none;stroke:#000000;stroke-width:2;}
+	.st78{clip-path:url(#SVGID_112_);}
+	.st79{clip-path:url(#SVGID_114_);fill:none;stroke:#000000;stroke-width:2;}
+	.st80{clip-path:url(#SVGID_116_);fill:none;stroke:#000000;stroke-width:2;}
+	.st81{clip-path:url(#SVGID_118_);}
+	.st82{clip-path:url(#SVGID_120_);}
+	.st83{clip-path:url(#SVGID_122_);}
+</style>
+<font horiz-adv-x="1000">
+<!-- &quot;Helvetica Neue&quot; is a trademark of Heidelberger Druckmaschinen AG, which may be registered in certain jurisdictions, exclusivly licensed through Linotype Library GmbH, a wholly owned subsidiary of Heidelberger Druckmaschinen AG. -->
+<font-face font-family="HelveticaNeue" units-per-em="1000" underline-position="-100" underline-thickness="50"/>
+<missing-glyph horiz-adv-x="500" d="M409,666l-307,0l0,-619l307,0M460,712l0,-711l-409,0l0,711z"/>
+<glyph unicode=" " horiz-adv-x="278"/>
+<glyph unicode="." horiz-adv-x="278" d="M83,111l0,-111l111,0l0,111z"/>
+<glyph unicode="/" horiz-adv-x="333" d="M278,731l-295,-747l72,0l296,747z"/>
+<glyph unicode="2" horiz-adv-x="556" d="M44,458l85,0C128,479 131,501 136,522C141,543 149,561 160,578C171,595 186,608 204,619C221,629 242,634 267,634C286,634 303,631 320,625C337,619 351,610 364,599C376,588 386,574 393,559C400,543 404,525 404,506C404,481 400,460 393,441C385,422 374,405 359,389C344,373 325,357 302,342C279,326 253,309 223,290C198,275 175,260 152,243C129,226 109,207 91,185C73,163 58,137 47,108C35,78 27,42 24,0l463,0l0,75l-364,0C127,97 136,117 149,134C162,151 177,166 196,181C214,196 234,210 256,223C278,236 300,249 322,262C344,276 365,291 386,306C407,321 425,339 441,358C457,377 470,398 480,422C489,446 494,474 494,505C494,538 488,568 477,593C465,618 449,640 429,657C409,674 386,687 359,696C332,705 303,709 272,709C235,709 201,703 172,690C143,677 118,660 99,638C79,615 64,589 55,558C46,527 42,494 44,458z"/>
+<glyph unicode="A" horiz-adv-x="648" d="M201,295l121,333l2,0l119,-333M272,714l-278,-714l97,0l80,215l302,0l78,-215l105,0l-279,714z"/>
+<glyph unicode="B" horiz-adv-x="685" d="M173,407l0,227l190,0C384,634 403,633 422,631C440,628 456,623 470,615C484,607 495,596 503,581C511,566 515,546 515,521C515,483 503,455 480,436C456,417 417,407 363,407M78,714l0,-714l345,0C458,0 490,6 517,18C544,29 566,45 585,64C603,83 617,104 626,129C635,154 640,179 640,205C640,249 628,286 605,317C582,348 548,368 504,377l0,2C538,392 564,413 583,441C601,468 610,501 610,539C610,575 602,605 586,630C569,655 549,674 526,688C515,695 503,700 488,703C473,706 456,709 439,711C422,712 404,713 387,714C369,714 352,714 337,714M173,80l0,247l217,0C410,327 429,325 448,322C467,318 483,312 498,303C512,294 523,281 532,266C541,251 545,231 545,208C545,168 533,137 510,114C486,91 453,80 411,80z"/>
+<glyph unicode="C" horiz-adv-x="722" d="M580,499l95,0C670,537 658,571 641,600C624,629 602,653 576,672C550,691 520,706 487,716C454,726 418,731 381,731C326,731 278,721 236,702C193,682 158,655 130,621C101,587 80,547 65,502C50,456 43,407 43,355C43,303 50,254 64,209C77,164 98,124 125,91C152,58 187,32 228,13C269,-6 318,-16 373,-16C464,-16 536,9 589,59C642,109 673,179 682,269l-95,0C585,240 579,212 569,187C559,162 545,140 528,122C510,103 489,89 465,79C440,68 412,63 381,63C338,63 302,71 271,87C240,103 215,125 196,152C176,179 161,210 152,247C143,283 138,321 138,362C138,399 143,435 152,470C161,505 176,536 196,563C215,590 240,611 271,627C301,643 337,651 380,651C430,651 473,638 510,613C546,588 569,550 580,499z"/>
+<glyph unicode="D" horiz-adv-x="704" d="M173,80l0,554l160,0C377,634 414,628 444,616C474,603 499,585 518,562C537,538 550,509 559,476C567,442 571,404 571,361C571,317 567,280 558,249C549,218 537,192 523,171C509,150 493,134 476,122C458,110 440,101 422,95C404,88 387,84 371,83C355,81 342,80 331,80M78,714l0,-714l245,0C382,0 434,8 477,25C520,42 556,66 584,98C612,129 633,168 646,215C659,261 666,314 666,374C666,489 636,574 577,630C518,686 433,714 323,714z"/>
+<glyph unicode="F" horiz-adv-x="574" d="M78,714l0,-714l95,0l0,327l328,0l0,80l-328,0l0,227l374,0l0,80z"/>
+<glyph unicode="G" horiz-adv-x="759" d="M612,89l25,-89l60,0l0,376l-313,0l0,-80l228,0C613,263 609,233 599,205C589,176 574,152 555,131C535,110 511,93 482,81C453,69 420,63 383,63C343,63 308,71 278,87C247,102 222,123 201,150C180,176 165,206 154,241C143,275 138,311 138,348C138,386 143,423 152,460C161,496 176,528 196,557C215,585 241,608 272,625C303,642 340,651 383,651C410,651 435,648 459,642C482,635 503,626 522,613C541,600 556,584 569,565C582,545 590,521 595,494l95,0C683,536 671,572 653,602C634,631 612,656 585,675C558,694 527,709 493,718C458,727 422,731 383,731C326,731 277,721 235,700C192,679 157,650 129,615C100,580 79,539 65,492C50,445 43,395 43,343C43,296 51,251 66,208C81,165 104,126 133,93C162,60 198,33 240,14C282,-6 330,-16 383,-16C425,-16 467,-8 508,9C549,25 584,52 612,89z"/>
+<glyph unicode="H" horiz-adv-x="722" d="M78,714l0,-714l95,0l0,327l376,0l0,-327l95,0l0,714l-95,0l0,-307l-376,0l0,307z"/>
+<glyph unicode="I" horiz-adv-x="259" d="M82,714l0,-714l95,0l0,714z"/>
+<glyph unicode="K" horiz-adv-x="667" d="M78,714l0,-714l95,0l0,250l119,111l258,-361l120,0l-313,426l301,288l-123,0l-362,-356l0,356z"/>
+<glyph unicode="M" horiz-adv-x="871" d="M80,714l0,-714l90,0l0,594l2,0l223,-594l81,0l223,594l2,0l0,-594l90,0l0,714l-130,0l-226,-600l-225,600z"/>
+<glyph unicode="O" horiz-adv-x="760" d="M133,357C133,393 138,429 147,464C156,499 171,530 191,558C211,586 237,609 268,626C299,643 337,651 380,651C423,651 461,643 492,626C523,609 549,586 569,558C589,530 604,499 613,464C622,429 627,393 627,357C627,321 622,286 613,251C604,216 589,184 569,156C549,128 523,106 492,89C461,72 423,63 380,63C337,63 299,72 268,89C237,106 211,128 191,156C171,184 156,216 147,251C138,286 133,321 133,357M38,357C38,308 45,262 60,217C74,172 95,132 124,97C153,62 188,35 231,15C274,-6 323,-16 380,-16C437,-16 486,-6 529,15C572,35 607,62 636,97C665,132 686,172 701,217C715,262 722,308 722,357C722,406 715,453 701,498C686,543 665,582 636,617C607,652 572,679 529,700C486,721 437,731 380,731C323,731 274,721 231,700C188,679 153,652 124,617C95,582 74,543 60,498C45,453 38,406 38,357z"/>
+<glyph unicode="P" horiz-adv-x="648" d="M173,372l0,262l186,0C413,634 453,623 478,601C503,578 515,546 515,503C515,460 503,428 478,405C453,382 413,371 359,372M78,714l0,-714l95,0l0,292l218,0C463,291 518,310 555,347C592,384 610,436 610,503C610,570 592,622 555,659C518,696 463,714 391,714z"/>
+<glyph unicode="R" horiz-adv-x="685" d="M78,714l0,-714l95,0l0,305l232,0C428,305 447,302 461,295C475,288 486,278 495,267C504,255 510,241 514,226C518,210 521,193 524,176C527,159 529,141 530,123C531,105 531,88 532,73C533,57 534,43 537,30C539,17 543,7 550,0l106,0C646,12 639,26 634,42C629,57 625,74 622,91C619,108 618,126 617,144C616,162 615,180 614,197C612,214 609,231 606,247C602,263 596,278 589,291C581,304 571,315 558,324C545,333 528,340 507,344l0,2C550,358 582,380 602,413C621,446 631,484 631,527C631,585 612,631 574,664C535,697 482,714 414,714M371,385l-198,0l0,249l236,0C454,634 486,623 506,600C526,577 536,548 536,512C536,486 532,465 523,449C514,432 502,419 487,410C472,400 454,393 434,390C414,387 393,385 371,385z"/>
+<glyph unicode="S" horiz-adv-x="648" d="M491,505l90,0C580,544 572,578 559,607C545,635 526,658 503,677C479,696 451,709 420,718C389,727 355,731 318,731C285,731 254,727 223,719C192,710 164,698 140,681C115,664 96,642 81,616C66,589 59,558 59,522C59,489 66,462 79,441C92,419 109,401 131,388C152,374 177,363 204,355C231,346 259,339 288,333C316,326 344,320 371,314C398,308 423,300 445,291C466,281 484,268 497,253C510,238 516,218 516,193C516,167 511,146 500,129C489,112 475,99 458,90C441,80 421,73 400,69C378,65 356,63 335,63C308,63 282,66 257,73C232,80 210,90 191,104C172,118 156,136 145,158C133,179 127,205 127,235l-90,0C37,192 45,154 61,123C76,91 98,65 125,45C152,24 183,9 219,-1C254,-11 292,-16 332,-16C365,-16 398,-12 431,-4C464,3 493,16 520,33C547,50 569,72 586,99C603,126 611,158 611,196C611,231 605,261 592,284C579,307 561,327 540,342C518,357 493,370 466,379C439,388 411,395 383,402C354,409 326,415 299,421C272,426 247,433 226,442C204,451 187,462 174,476C161,489 154,507 154,529C154,552 159,572 168,588C177,603 189,616 204,625C219,634 236,641 255,645C274,649 294,651 314,651C363,651 404,640 436,617C467,594 486,556 491,505z"/>
+<glyph unicode="U" horiz-adv-x="722" d="M648,258l0,456l-95,0l0,-456C553,194 537,146 506,113C474,80 428,63 367,63C303,63 254,80 220,113C186,146 169,194 169,258l0,456l-95,0l0,-456C74,163 100,93 152,50C203,6 275,-16 367,-16C457,-16 526,7 575,53C624,98 648,167 648,258z"/>
+<glyph unicode="V" horiz-adv-x="611" d="M359,0l254,714l-99,0l-206,-619l-2,0l-204,619l-102,0l251,-714z"/>
+<glyph unicode="a" horiz-adv-x="537" d="M522,2C507,-7 487,-11 461,-11C439,-11 422,-5 409,8C396,20 389,40 389,68C366,40 339,20 308,8C277,-5 243,-11 207,-11C184,-11 162,-8 141,-3C120,2 101,11 86,22C71,33 59,48 50,67C41,85 36,107 36,133C36,162 41,186 51,205C61,224 74,239 91,251C107,262 126,271 147,277C168,283 189,288 211,292C234,297 257,300 278,303C299,305 317,308 333,313C349,317 362,323 371,332C380,340 385,352 385,368C385,387 382,402 375,413C368,424 359,433 348,439C337,445 324,449 311,451C297,453 283,454 270,454C234,454 204,447 180,434C156,420 143,394 141,356l-85,0C57,388 64,415 76,437C88,459 104,477 124,491C144,504 167,514 193,520C218,526 246,529 275,529C298,529 322,527 345,524C368,521 388,514 407,504C426,493 441,479 452,460C463,441 469,417 469,387l0,-266C469,101 470,86 473,77C475,68 483,63 496,63C503,63 512,65 522,68M384,267C373,259 359,253 342,250C325,246 307,243 288,241C269,238 249,236 230,233C211,230 193,225 178,218C163,211 150,202 141,190C131,177 126,160 126,139C126,125 129,113 135,104C140,94 148,86 157,80C166,74 176,70 188,67C200,64 213,63 226,63C254,63 278,67 298,75C318,82 334,92 347,104C360,115 369,128 375,142C381,155 384,168 384,180z"/>
+<glyph unicode="c" horiz-adv-x="537" d="M415,351l88,0C500,382 492,408 479,431C466,453 450,471 431,486C411,501 388,512 363,519C337,526 309,529 280,529C239,529 204,522 173,508C142,493 117,474 97,449C76,424 61,394 51,361C41,327 36,291 36,252C36,213 41,178 52,146C62,113 77,85 98,62C118,39 143,21 174,8C204,-5 239,-11 278,-11C344,-11 396,6 435,41C473,76 497,125 506,189l-87,0C414,149 399,118 376,96C352,74 319,63 277,63C250,63 227,68 208,79C189,90 173,104 161,122C149,139 140,159 135,182C129,205 126,228 126,252C126,278 129,303 134,328C139,352 148,373 161,392C173,411 189,426 210,437C231,448 256,454 287,454C323,454 352,445 373,427C394,409 408,384 415,351z"/>
+<glyph unicode="d" horiz-adv-x="593" d="M126,254C126,279 129,304 134,328C139,352 148,373 160,392C172,411 188,426 208,437C228,448 252,454 281,454C310,454 335,449 356,438C377,427 394,412 407,394C420,376 429,355 435,332C441,308 444,283 444,258C444,234 441,210 436,187C430,164 421,143 408,125C395,106 379,91 359,80C339,69 315,63 286,63C259,63 235,68 215,79C194,90 178,104 165,122C152,140 142,161 136,184C129,207 126,230 126,254M526,0l0,714l-85,0l0,-266l-2,0C430,463 418,476 405,487C391,497 376,505 361,512C346,518 330,522 315,525C300,528 285,529 272,529C233,529 198,522 169,508C139,493 114,474 95,450C75,425 60,397 51,364C41,331 36,297 36,260C36,223 41,189 51,156C61,123 76,95 96,70C115,45 140,26 170,11C199,-4 234,-11 274,-11C310,-11 343,-5 373,8C403,21 425,41 439,70l2,0l0,-70z"/>
+<glyph unicode="e" horiz-adv-x="537" d="M423,308l-297,0C127,328 132,347 139,365C146,382 156,398 169,411C182,424 197,435 215,443C232,450 252,454 274,454C295,454 315,450 333,443C350,435 366,425 379,412C392,399 402,383 410,365C417,347 422,328 423,308M505,164l-84,0C414,130 399,105 376,88C353,71 323,63 287,63C259,63 235,68 214,77C193,86 176,99 163,115C150,130 140,148 134,169C128,189 125,210 126,233l387,0C514,264 512,297 505,332C498,367 485,399 467,428C448,457 424,482 394,501C363,520 325,529 279,529C244,529 211,522 182,509C152,496 126,477 105,453C83,429 66,401 54,368C42,335 36,299 36,260C37,221 43,184 54,151C64,118 79,89 100,65C121,41 146,22 177,9C207,-4 243,-11 284,-11C343,-11 391,4 430,33C469,62 494,106 505,164z"/>
+<glyph unicode="f" horiz-adv-x="296" d="M99,442l0,-442l85,0l0,442l100,0l0,75l-100,0l0,72C184,612 190,627 201,635C212,643 228,647 249,647C256,647 264,647 273,646C282,645 290,643 297,640l0,74C289,717 280,719 270,720C259,721 250,722 242,722C195,722 160,711 136,690C111,668 99,636 99,594l0,-77l-87,0l0,-75z"/>
+<glyph unicode="h" horiz-adv-x="556" d="M64,714l0,-714l85,0l0,292C149,315 152,337 159,357C165,376 174,393 187,408C200,423 216,434 235,442C254,450 276,454 302,454C335,454 360,445 379,426C398,407 407,382 407,350l0,-350l85,0l0,340C492,368 489,394 484,417C478,440 468,459 454,476C440,493 422,506 399,515C376,524 348,529 314,529C299,529 283,527 267,524C250,521 235,516 220,509C205,502 191,493 179,482C167,471 158,457 151,441l-2,0l0,273z"/>
+<glyph unicode="i" horiz-adv-x="222" d="M154,610l0,104l-85,0l0,-104M69,517l0,-517l85,0l0,517z"/>
+<glyph unicode="l" horiz-adv-x="222" d="M69,714l0,-714l85,0l0,714z"/>
+<glyph unicode="m" horiz-adv-x="853" d="M64,517l0,-517l85,0l0,322C149,332 152,345 157,360C162,375 170,389 181,403C192,417 206,429 224,439C241,449 262,454 287,454C306,454 322,451 335,446C347,440 357,432 364,422C371,411 377,399 380,385C383,371 384,356 384,339l0,-339l85,0l0,322C469,362 481,394 505,418C529,442 562,454 604,454C625,454 642,451 655,445C668,439 678,431 685,421C692,410 697,398 700,384C703,370 704,355 704,339l0,-339l85,0l0,379C789,406 785,429 777,448C768,467 757,482 742,494C727,506 709,515 688,521C667,526 643,529 617,529C583,529 552,521 524,506C495,491 472,469 455,441C444,473 426,496 400,509C374,522 345,529 313,529C240,529 185,500 146,441l-2,0l0,76z"/>
+<glyph unicode="n" horiz-adv-x="556" d="M64,517l0,-517l85,0l0,292C149,315 152,337 159,357C165,376 174,393 187,408C200,423 216,434 235,442C254,450 276,454 302,454C335,454 360,445 379,426C398,407 407,382 407,350l0,-350l85,0l0,340C492,368 489,394 484,417C478,440 468,459 454,476C440,493 422,506 399,515C376,524 348,529 314,529C237,529 181,498 146,435l-2,0l0,82z"/>
+<glyph unicode="o" horiz-adv-x="574" d="M126,258C126,289 130,317 139,342C147,366 158,386 173,403C188,420 205,432 225,441C244,450 265,454 287,454C309,454 330,450 350,441C369,432 386,420 401,403C416,386 427,366 436,342C444,317 448,289 448,258C448,227 444,199 436,175C427,150 416,130 401,114C386,97 369,85 350,76C330,67 309,63 287,63C265,63 244,67 225,76C205,85 188,97 173,114C158,130 147,150 139,175C130,199 126,227 126,258M36,258C36,220 41,185 52,152C63,119 79,91 100,67C121,42 148,23 179,10C210,-4 246,-11 287,-11C328,-11 365,-4 396,10C427,23 453,42 474,67C495,91 511,119 522,152C533,185 538,220 538,258C538,296 533,332 522,365C511,398 495,426 474,451C453,475 427,494 396,508C365,522 328,529 287,529C246,529 210,522 179,508C148,494 121,475 100,451C79,426 63,398 52,365C41,332 36,296 36,258z"/>
+<glyph unicode="p" horiz-adv-x="593" d="M67,517l0,-714l85,0l0,266l2,0C163,54 175,41 189,31C202,20 217,12 232,6C247,0 263,-4 279,-7C294,-10 308,-11 321,-11C360,-11 395,-4 425,10C454,24 479,43 499,68C518,92 533,120 543,153C552,186 557,220 557,257C557,294 552,328 542,361C532,394 517,423 498,448C478,473 453,492 424,507C394,522 359,529 319,529C283,529 250,523 220,510C190,497 168,476 154,447l-2,0l0,70M467,263C467,238 464,213 459,189C454,165 445,144 433,125C421,106 405,91 386,80C366,69 341,63 312,63C283,63 258,69 237,80C216,91 200,105 187,123C174,141 164,162 158,186C152,209 149,234 149,259C149,283 152,307 158,330C163,353 172,374 185,393C198,411 214,426 234,437C254,448 278,454 307,454C334,454 358,449 379,438C399,427 416,413 429,395C442,377 451,357 458,334C464,311 467,287 467,263z"/>
+<glyph unicode="r" horiz-adv-x="333" d="M61,517l0,-517l85,0l0,230C146,263 149,293 156,319C163,344 173,366 188,384C203,402 222,416 246,425C270,434 299,439 333,439l0,90C287,530 249,521 219,501C189,481 164,450 143,408l-2,0l0,109z"/>
+<glyph unicode="s" horiz-adv-x="500" d="M116,163l-85,0C32,131 39,104 51,82C63,59 79,41 99,28C119,14 142,4 168,-2C194,-8 221,-11 250,-11C276,-11 302,-8 329,-3C355,2 379,10 400,23C421,36 438,52 451,73C464,94 470,120 470,151C470,176 465,196 456,213C446,230 433,244 418,255C402,266 384,274 364,281C343,288 322,293 301,298C281,303 261,307 241,312C221,316 203,321 187,328C171,334 158,342 148,352C137,361 132,373 132,388C132,401 135,412 142,421C149,429 157,436 168,441C179,446 191,449 204,451C217,453 229,454 242,454C256,454 270,453 284,450C297,447 310,442 321,435C332,428 342,420 349,409C356,398 361,384 362,367l85,0C445,398 438,425 427,446C416,467 401,483 382,496C363,508 341,517 316,522C291,527 264,529 235,529C212,529 190,526 167,521C144,515 123,506 105,495C86,483 71,468 60,449C48,430 42,408 42,382C42,349 50,323 67,304C84,285 105,271 130,261C155,250 182,242 211,237C240,231 268,225 293,218C318,211 338,201 355,190C372,179 380,162 380,140C380,124 376,111 368,101C360,90 350,82 338,77C325,72 312,68 297,66C282,64 268,63 255,63C238,63 221,65 205,68C188,71 174,77 161,85C148,92 137,103 129,116C121,129 117,144 116,163z"/>
+<glyph unicode="t" horiz-adv-x="315" d="M182,517l0,155l-85,0l0,-155l-88,0l0,-75l88,0l0,-329C97,89 99,70 104,55C109,40 116,29 126,21C135,13 148,8 164,5C179,2 198,0 220,0l65,0l0,75l-39,0C233,75 222,76 214,77C205,78 199,80 194,83C189,86 186,91 185,97C183,103 182,111 182,121l0,321l103,0l0,75z"/>
+<glyph unicode="u" horiz-adv-x="556" d="M492,0l0,517l-85,0l0,-292C407,202 404,180 398,161C391,141 382,124 369,109C356,94 341,83 322,75C303,67 280,63 254,63C221,63 196,72 177,91C158,110 149,135 149,167l0,350l-85,0l0,-340C64,149 67,124 73,101C78,78 88,58 102,41C116,24 134,12 157,3C180,-6 208,-11 242,-11C280,-11 313,-3 341,12C369,27 392,50 410,82l2,0l0,-82z"/>
+<glyph unicode="y" horiz-adv-x="500" d="M267,-69C257,-94 247,-116 238,-133C228,-150 217,-164 206,-175C194,-186 181,-194 167,-199C152,-204 136,-207 117,-207C107,-207 97,-206 87,-205C77,-204 67,-201 58,-198l0,78C65,-123 74,-126 84,-128C93,-131 101,-132 108,-132C125,-132 140,-128 152,-119C163,-111 172,-99 178,-84l35,87l-205,514l96,0l151,-423l2,0l145,423l90,0z"/>
+</font>
+
+	<g>
+	<defs>
+		<rect id="SVGID_1_" x="290.9" y="162.4" width="108.5" height="33"/>
+	</defs>
+	<clipPath id="SVGID_2_">
+		<use xlink:href="#SVGID_1_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st0">
+		<text transform="matrix(1 0 0 1 305 194)" class="st1 st2"> . . . . . .</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_3_" x="464.3" y="157.4" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_4_">
+		<use xlink:href="#SVGID_3_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st3" points="470.1,177.4 470.1,168 470.1,167 	"/>
+	<polygon class="st4" points="474.9,168 470.1,158.4 465.3,168 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_5_" x="464.3" y="208.6" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_6_">
+		<use xlink:href="#SVGID_5_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st5" points="470.1,228.6 470.1,219.2 470.1,218.2 	"/>
+	<polygon class="st6" points="474.9,219.2 470.1,209.6 465.3,219.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_7_" x="432.1" y="175" width="75.9" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_8_">
+		<use xlink:href="#SVGID_7_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="434.1" y="177" class="st7" width="71.9" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_9_" x="435.1" y="178" width="69.9" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_10_">
+		<use xlink:href="#SVGID_9_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st8">
+		<text transform="matrix(1 0 0 1 448 197)" class="st1 st9">Painters</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_11_" x="420.1" y="741.6" width="51.8" height="11.6"/>
+	</defs>
+	<clipPath id="SVGID_12_">
+		<use xlink:href="#SVGID_11_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st10" points="429.7,747.4 430.7,747.4 470.9,747.4 	"/>
+	<polygon class="st11" points="430.7,742.6 421.1,747.4 430.7,752.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_13_" x="377.3" y="685.4" width="11.6" height="26"/>
+	</defs>
+	<clipPath id="SVGID_14_">
+		<use xlink:href="#SVGID_13_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st12" points="383.1,710.4 383.1,696 383.1,695 	"/>
+	<polygon class="st13" points="387.9,696 383.1,686.4 378.3,696 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_15_" x="228" y="633.3" width="11.6" height="20.5"/>
+	</defs>
+	<clipPath id="SVGID_16_">
+		<use xlink:href="#SVGID_15_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st14" points="233.8,634.3 233.8,643.2 233.8,644.2 	"/>
+	<polygon class="st15" points="229,643.2 233.8,652.8 238.6,643.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_17_" x="377.3" y="547.8" width="11.6" height="106"/>
+	</defs>
+	<clipPath id="SVGID_18_">
+		<use xlink:href="#SVGID_17_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st16" points="383.1,557.4 383.1,558.4 383.1,643.2 383.1,644.2 	"/>
+	<polygon class="st17" points="378.3,643.2 383.1,652.8 387.9,643.2 	"/>
+	<polygon class="st17" points="387.9,558.4 383.1,548.8 378.3,558.4 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_19_" x="227.1" y="685.4" width="11.6" height="26"/>
+	</defs>
+	<clipPath id="SVGID_20_">
+		<use xlink:href="#SVGID_19_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st18" points="232.9,686.4 232.9,700.8 232.9,701.8 	"/>
+	<polygon class="st19" points="228.1,700.8 232.9,710.4 237.7,700.8 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_21_" x="227.1" y="548.5" width="11.6" height="33"/>
+	</defs>
+	<clipPath id="SVGID_22_">
+		<use xlink:href="#SVGID_21_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st20" points="232.9,580.5 232.9,559.1 232.9,558.1 	"/>
+	<polygon class="st21" points="237.7,559.1 232.9,549.5 228.1,559.1 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_23_" x="301.3" y="261.2" width="11.6" height="36.9"/>
+	</defs>
+	<clipPath id="SVGID_24_">
+		<use xlink:href="#SVGID_23_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st22" points="307.1,297.1 307.1,271.8 307.1,270.8 	"/>
+	<polygon class="st23" points="311.9,271.8 307.1,262.2 302.3,271.8 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_25_" x="227.1" y="157.4" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_26_">
+		<use xlink:href="#SVGID_25_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st24" points="232.9,177.4 232.9,168 232.9,167 	"/>
+	<polygon class="st25" points="237.7,168 232.9,158.4 228.1,168 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_27_" x="227.1" y="208.6" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_28_">
+		<use xlink:href="#SVGID_27_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st26" points="232.9,228.6 232.9,219.2 232.9,218.2 	"/>
+	<polygon class="st27" points="237.7,219.2 232.9,209.6 228.1,219.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_29_" x="194.9" y="175" width="75.9" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_30_">
+		<use xlink:href="#SVGID_29_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="196.9" y="177" class="st28" width="71.9" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_31_" x="197.9" y="178" width="69.9" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_32_">
+		<use xlink:href="#SVGID_31_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st29">
+		<text transform="matrix(1 0 0 1 218 197)"><tspan x="0" y="0" class="st1 st9">Ci</tspan><tspan x="11.3" y="0" class="st1 st9">r</tspan><tspan x="15.1" y="0" class="st1 st9">cle</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_33_" x="139.2" y="157.4" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_34_">
+		<use xlink:href="#SVGID_33_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st30" points="145,177.4 145,168 145,167 	"/>
+	<polygon class="st31" points="149.8,168 145,158.4 140.2,168 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_35_" x="139.2" y="208.6" width="11.6" height="21.1"/>
+	</defs>
+	<clipPath id="SVGID_36_">
+		<use xlink:href="#SVGID_35_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st32" points="145,228.6 145,219.2 145,218.2 	"/>
+	<polygon class="st33" points="149.8,219.2 145,209.6 140.2,219.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_37_" x="107.1" y="175" width="75.9" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_38_">
+		<use xlink:href="#SVGID_37_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="109.1" y="177" class="st34" width="71.9" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_39_" x="110.1" y="178" width="69.9" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_40_">
+		<use xlink:href="#SVGID_39_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st35">
+		<text transform="matrix(1 0 0 1 133 197)" class="st1 st9">Rect</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_41_" x="375.3" y="91.4" width="11.6" height="34.4"/>
+	</defs>
+	<clipPath id="SVGID_42_">
+		<use xlink:href="#SVGID_41_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st36" points="381.1,116.2 381.1,115.2 381.1,102 381.1,101 	"/>
+	<polygon class="st37" points="385.9,102 381.1,92.4 376.3,102 	"/>
+	<polygon class="st37" points="376.3,115.2 381.1,124.8 385.9,115.2 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_43_" x="227.1" y="91.4" width="11.6" height="34.4"/>
+	</defs>
+	<clipPath id="SVGID_44_">
+		<use xlink:href="#SVGID_43_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st38" points="232.9,124.8 232.9,102 232.9,101 	"/>
+	<polygon class="st39" points="237.7,102 232.9,92.4 228.1,102 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_45_" x="71" y="309.1" width="75.9" height="75.9"/>
+	</defs>
+	<clipPath id="SVGID_46_">
+		<use xlink:href="#SVGID_45_"  style="overflow:visible;"/>
+	</clipPath>
+	<circle class="st40" cx="109" cy="347.1" r="36"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_47_" x="73" y="311.1" width="71.9" height="71.9"/>
+	</defs>
+	<clipPath id="SVGID_48_">
+		<use xlink:href="#SVGID_47_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st41">
+		<text transform="matrix(1 0 0 1 96 344)" class="st1 st9">PS/2</text>
+	</g>
+	<g class="st41">
+		<text transform="matrix(1 0 0 1 101 358)" class="st1 st9">KB</text>
+	</g>
+</g>
+<g>
+	<defs>
+		
+			<rect id="SVGID_49_" x="352.4" y="391.8" transform="matrix(0.9045 -0.4264 0.4264 0.9045 -157.0934 195.54)" width="11.6" height="113.6"/>
+	</defs>
+	<clipPath id="SVGID_50_">
+		<use xlink:href="#SVGID_49_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st42">
+		<defs>
+			<rect id="SVGID_51_" width="612" height="792"/>
+		</defs>
+		<clipPath id="SVGID_52_">
+			<use xlink:href="#SVGID_51_"  style="overflow:visible;"/>
+		</clipPath>
+		<polyline class="st43" points="378.3,491.3 377.9,490.4 338.5,406.8 338.1,405.9 		"/>
+		<polygon class="st44" points="342.8,404.8 334.4,398.2 334.1,408.9 		"/>
+		<polygon class="st44" points="373.5,492.5 382,499.1 382.2,488.4 		"/>
+	</g>
+</g>
+<g>
+	<defs>
+		
+			<rect id="SVGID_53_" x="199.9" y="442.8" transform="matrix(0.4294 -0.9031 0.9031 0.4294 -257.4012 489.7528)" width="118.1" height="11.6"/>
+	</defs>
+	<clipPath id="SVGID_54_">
+		<use xlink:href="#SVGID_53_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st45">
+		<defs>
+			<rect id="SVGID_55_" width="612" height="792"/>
+		</defs>
+		<clipPath id="SVGID_56_">
+			<use xlink:href="#SVGID_55_"  style="overflow:visible;"/>
+		</clipPath>
+		<polyline class="st46" points="234,501 279.7,404.8 280.1,403.9 		"/>
+		<polygon class="st47" points="284,406.9 283.8,396.2 275.4,402.8 		"/>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_57_" x="256.1" y="296.1" width="102" height="102"/>
+	</defs>
+	<clipPath id="SVGID_58_">
+		<use xlink:href="#SVGID_57_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="257.1" y="297.1" class="st48" width="100" height="100"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_59_" x="257.1" y="297.1" width="100" height="100"/>
+	</defs>
+	<clipPath id="SVGID_60_">
+		<use xlink:href="#SVGID_59_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st49">
+		<text transform="matrix(1 0 0 1 281 352)"><tspan x="0" y="0" class="st50 st1 st9">Main Co</tspan><tspan x="45.1" y="0" class="st50 st1 st9">r</tspan><tspan x="48.9" y="0" class="st50 st1 st9">e</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_61_" x="182.1" y="499.5" width="102" height="51"/>
+	</defs>
+	<clipPath id="SVGID_62_">
+		<use xlink:href="#SVGID_61_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="183.1" y="500.5" class="st51" width="100" height="49"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_63_" x="183.1" y="500.5" width="100" height="49"/>
+	</defs>
+	<clipPath id="SVGID_64_">
+		<use xlink:href="#SVGID_63_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st52">
+		<text transform="matrix(1 0 0 1 206 529)"><tspan x="0" y="0" class="st50 st1 st9">USB Co</tspan><tspan x="43.5" y="0" class="st50 st1 st9">r</tspan><tspan x="47.3" y="0" class="st50 st1 st9">e</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_65_" x="330.1" y="499.5" width="102" height="51"/>
+	</defs>
+	<clipPath id="SVGID_66_">
+		<use xlink:href="#SVGID_65_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="331.1" y="500.5" class="st53" width="100" height="49"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_67_" x="331.1" y="500.5" width="100" height="49"/>
+	</defs>
+	<clipPath id="SVGID_68_">
+		<use xlink:href="#SVGID_67_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st54">
+		<text transform="matrix(1 0 0 1 339 529)"><tspan x="0" y="0" class="st50 st1 st9">Multimedi</tspan><tspan x="50.1" y="0" class="st50 st1 st9">a</tspan><tspan x="56.5" y="0" class="st50 st1 st9"> </tspan><tspan x="59.2" y="0" class="st50 st1 st9">Co</tspan><tspan x="74.2" y="0" class="st50 st1 st9">r</tspan><tspan x="77.7" y="0" class="st50 st1 st9">e</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_69_" x="107.1" y="431.4" width="400" height="37"/>
+	</defs>
+	<clipPath id="SVGID_70_">
+		<use xlink:href="#SVGID_69_"  style="overflow:visible;"/>
+	</clipPath>
+	<path class="st55" d="M125.5,433.4h363c0,0,1.3,0,3,0.1c7.1,0.6,12.7,6.3,13.3,13.3c0.1,1.7,0.1,3,0.1,3s0,1.3-0.1,3
+		c-0.6,7.1-6.3,12.7-13.3,13.3c-1.7,0.1-3,0.1-3,0.1h-363c0,0-1.3,0-3-0.1c-7.1-0.6-12.7-6.3-13.3-13.3c-0.1-1.7-0.1-3-0.1-3
+		s0-1.3,0.1-3c0.6-7.1,6.3-12.7,13.3-13.3C124.2,433.4,125.5,433.4,125.5,433.4z"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_71_" x="109.1" y="433.4" width="396" height="33"/>
+	</defs>
+	<clipPath id="SVGID_72_">
+		<use xlink:href="#SVGID_71_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st56">
+		<text transform="matrix(1 0 0 1 229 455)"><tspan x="0" y="0" class="st1 st9">Interp</tspan><tspan x="31.1" y="0" class="st1 st9">r</tspan><tspan x="34.9" y="0" class="st1 st9">ocess Sha</tspan><tspan x="90.9" y="0" class="st1 st9">r</tspan><tspan x="94.7" y="0" class="st1 st9">ed Memory</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_73_" x="144.9" y="340.9" width="112.1" height="11.6"/>
+	</defs>
+	<clipPath id="SVGID_74_">
+		<use xlink:href="#SVGID_73_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st57" points="145.9,346.7 246.5,346.7 247.5,346.7 	"/>
+	<polygon class="st58" points="246.5,351.5 256.1,346.7 246.5,341.9 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_75_" x="107.1" y="227.6" width="400" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_76_">
+		<use xlink:href="#SVGID_75_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="109.1" y="229.6" class="st59" width="396" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_77_" x="110.1" y="230.6" width="394" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_78_">
+		<use xlink:href="#SVGID_77_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st60">
+		<text transform="matrix(1 0 0 1 255 250)"><tspan x="0" y="0" class="st1 st9">Graphics Cont</tspan><tspan x="77.8" y="0" class="st1 st9">r</tspan><tspan x="81.6" y="0" class="st1 st9">oller</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_79_" x="107.1" y="123.8" width="400" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_80_">
+		<use xlink:href="#SVGID_79_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="109.1" y="125.8" class="st61" width="396" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_81_" x="110.1" y="126.8" width="394" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_82_">
+		<use xlink:href="#SVGID_81_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st62">
+		<text transform="matrix(1 0 0 1 272 146)" class="st1 st9">Frame Bu</text>
+	</g>
+	<path class="st62" d="M328.8,140.7h-2.4v5.3h-1v-5.3h-1v-0.9h1v-0.9c0-0.5,0.1-0.9,0.4-1.1c0.3-0.3,0.7-0.4,1.3-0.4
+		c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0.1v0.9c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.2,0-0.4,0-0.6,0.1
+		c-0.1,0.1-0.2,0.3-0.2,0.6v0.9h2.4v-0.9c0-0.5,0.1-0.9,0.4-1.1c0.3-0.3,0.7-0.4,1.3-0.4c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0,0.3,0.1v0.9
+		c-0.1,0-0.2-0.1-0.3-0.1c-0.1,0-0.2,0-0.3,0c-0.2,0-0.4,0-0.6,0.1c-0.1,0.1-0.2,0.3-0.2,0.6v0.9h1.2v0.9h-1.2v5.3h-1V140.7z"/>
+	<g class="st62">
+		<text transform="matrix(1 0 0 1 331.1602 146)" class="st1 st9">er</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_83_" x="195.1" y="17.4" width="75.9" height="75.9"/>
+	</defs>
+	<clipPath id="SVGID_84_">
+		<use xlink:href="#SVGID_83_"  style="overflow:visible;"/>
+	</clipPath>
+	<circle class="st63" cx="233.1" cy="55.4" r="36"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_85_" x="197.1" y="19.4" width="71.9" height="71.9"/>
+	</defs>
+	<clipPath id="SVGID_86_">
+		<use xlink:href="#SVGID_85_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st64">
+		<text transform="matrix(1 0 0 1 221 52)" class="st1 st9">VGA</text>
+	</g>
+	<g class="st64">
+		<text transform="matrix(1 0 0 1 218 66)"><tspan x="0" y="0" class="st1 st9">V</tspan><tspan x="7.1" y="0" class="st1 st9">ideo</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_87_" x="342.1" y="15.4" width="77.9" height="77.9"/>
+	</defs>
+	<clipPath id="SVGID_88_">
+		<use xlink:href="#SVGID_87_"  style="overflow:visible;"/>
+	</clipPath>
+	<path class="st65" d="M367,17.4h28.1c6.6,0,9.9,0,13.5,1.1c3.9,1.4,6.9,4.5,8.3,8.3c1.1,3.5,1.1,6.9,1.1,13.6v28
+		c0,6.6,0,9.9-1.1,13.5c-1.4,3.9-4.5,6.9-8.3,8.3c-3.5,1.1-6.9,1.1-13.6,1.1h-28c-6.6,0-9.9,0-13.5-1.1c-3.9-1.4-6.9-4.5-8.3-8.3
+		c-1.1-3.5-1.1-6.9-1.1-13.6v-28c0-6.6,0-9.9,1.1-13.5c1.4-3.9,4.5-6.9,8.3-8.3c3.5-1.1,6.9-1.1,13.6-1.1H367z"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_89_" x="344.1" y="17.4" width="73.9" height="73.9"/>
+	</defs>
+	<clipPath id="SVGID_90_">
+		<use xlink:href="#SVGID_89_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st66">
+		<text transform="matrix(1 0 0 1 364 59)" class="st1 st9">SRAM</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_91_" x="71" y="559.4" width="75.9" height="75.9"/>
+	</defs>
+	<clipPath id="SVGID_92_">
+		<use xlink:href="#SVGID_91_"  style="overflow:visible;"/>
+	</clipPath>
+	<circle class="st67" cx="109" cy="597.3" r="36"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_93_" x="73" y="561.4" width="71.9" height="71.9"/>
+	</defs>
+	<clipPath id="SVGID_94_">
+		<use xlink:href="#SVGID_93_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st68">
+		<text transform="matrix(1 0 0 1 97 594)" class="st1 st9">USB</text>
+	</g>
+	<g class="st68">
+		<text transform="matrix(1 0 0 1 91 608)" class="st1 st9">Mouse</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_95_" x="183" y="579.5" width="101.6" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_96_">
+		<use xlink:href="#SVGID_95_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="185" y="581.5" class="st69" width="97.6" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_97_" x="186" y="582.5" width="95.6" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_98_">
+		<use xlink:href="#SVGID_97_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st70">
+		<text transform="matrix(1 0 0 1 200 602)" class="st1 st9">HPI Interface</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_99_" x="144.9" y="591.5" width="40" height="11.6"/>
+	</defs>
+	<clipPath id="SVGID_100_">
+		<use xlink:href="#SVGID_99_"  style="overflow:visible;"/>
+	</clipPath>
+	<polyline class="st71" points="145.9,597.3 174.4,597.3 175.4,597.3 	"/>
+	<polygon class="st72" points="174.4,602.1 184,597.3 174.4,592.5 	"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_101_" x="330.1" y="651.8" width="102" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_102_">
+		<use xlink:href="#SVGID_101_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="332.1" y="653.8" class="st73" width="98" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_103_" x="333.1" y="654.8" width="96" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_104_">
+		<use xlink:href="#SVGID_103_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st74">
+		<text transform="matrix(1 0 0 1 348 674)" class="st1 st9">SD Interface</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_105_" x="182.8" y="651.8" width="102" height="35.6"/>
+	</defs>
+	<clipPath id="SVGID_106_">
+		<use xlink:href="#SVGID_105_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="184.8" y="653.8" class="st75" width="98" height="31.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_107_" x="185.8" y="654.8" width="96" height="29.6"/>
+	</defs>
+	<clipPath id="SVGID_108_">
+		<use xlink:href="#SVGID_107_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st76">
+		<text transform="matrix(1 0 0 1 194 674)"><tspan x="0" y="0" class="st1 st9">Audi</tspan><tspan x="24" y="0" class="st1 st9">o</tspan><tspan x="30.9" y="0" class="st1 st9"> </tspan><tspan x="33.7" y="0" class="st1 st9">Interfac</tspan><tspan x="73.6" y="0" class="st1 st9">e</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_109_" x="195.1" y="709.4" width="75.9" height="75.9"/>
+	</defs>
+	<clipPath id="SVGID_110_">
+		<use xlink:href="#SVGID_109_"  style="overflow:visible;"/>
+	</clipPath>
+	<circle class="st77" cx="233.1" cy="747.4" r="36"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_111_" x="197.1" y="711.4" width="71.9" height="71.9"/>
+	</defs>
+	<clipPath id="SVGID_112_">
+		<use xlink:href="#SVGID_111_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st78">
+		<text transform="matrix(1 0 0 1 218 744)" class="st1 st9">Audio</text>
+	</g>
+	<g class="st78">
+		<text transform="matrix(1 0 0 1 221 758)" class="st1 st9">DAC</text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_113_" x="233.1" y="631.6" width="150.1" height="4"/>
+	</defs>
+	<clipPath id="SVGID_114_">
+		<use xlink:href="#SVGID_113_"  style="overflow:visible;"/>
+	</clipPath>
+	<line class="st79" x1="234.1" y1="633.6" x2="382.2" y2="633.6"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_115_" x="344.2" y="709.4" width="77.9" height="75.9"/>
+	</defs>
+	<clipPath id="SVGID_116_">
+		<use xlink:href="#SVGID_115_"  style="overflow:visible;"/>
+	</clipPath>
+	<path class="st80" d="M369.1,711.4h28.1c6.6,0,9.9,0,13.5,1.1c3.9,1.4,6.9,4.5,8.3,8.3c1.1,3.5,1.1,6.9,1.1,13.6v26
+		c0,6.6,0,9.9-1.1,13.5c-1.4,3.9-4.5,6.9-8.3,8.3c-3.5,1.1-6.9,1.1-13.6,1.1h-28c-6.6,0-9.9,0-13.5-1.1c-3.9-1.4-6.9-4.5-8.3-8.3
+		c-1.1-3.5-1.1-6.9-1.1-13.6v-26c0-6.6,0-9.9,1.1-13.5c1.4-3.9,4.5-6.9,8.3-8.3c3.5-1.1,6.9-1.1,13.6-1.1H369.1z"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_117_" x="346.2" y="711.4" width="73.9" height="71.9"/>
+	</defs>
+	<clipPath id="SVGID_118_">
+		<use xlink:href="#SVGID_117_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st81">
+		<text transform="matrix(1 0 0 1 360 751)"><tspan x="0" y="0" class="st1 st9">SD Ca</tspan><tspan x="34.7" y="0" class="st1 st9">r</tspan><tspan x="38.4" y="0" class="st1 st9">d</tspan></text>
+	</g>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_119_" x="468.2" y="709.5" width="75.7" height="75.7"/>
+	</defs>
+	<clipPath id="SVGID_120_">
+		<use xlink:href="#SVGID_119_"  style="overflow:visible;"/>
+	</clipPath>
+	<rect x="469.2" y="710.5" class="st82" width="73.7" height="73.7"/>
+</g>
+<g>
+	<defs>
+		<rect id="SVGID_121_" x="469.2" y="710.5" width="73.7" height="73.7"/>
+	</defs>
+	<clipPath id="SVGID_122_">
+		<use xlink:href="#SVGID_121_"  style="overflow:visible;"/>
+	</clipPath>
+	<g class="st83">
+		<text transform="matrix(1 0 0 1 488 751)" class="st50 st1 st9">OsuFS</text>
+	</g>
+</g>
+</svg>
diff --git a/docs/final-report.md b/docs/final-report.md
new file mode 100644
index 0000000000000000000000000000000000000000..fce56594fe86edbff2cd3516bad8a4d7faf949e0
--- /dev/null
+++ b/docs/final-report.md
@@ -0,0 +1,986 @@
+## **ECE 385**
+
+### Fall 2017 Final Project
+
+<br><br><br><br><br><br>
+
+# **osu!fpga**
+
+<br><br><br><br><br><br><br><br>
+
+Fang Lu, Xutao Jumbo Jiang
+
+Section AB8 (Wed 9 am)
+
+TA: Byung Hoon Min
+
+### Introduction
+
+This project tries to construct the rhythm game *osu!* on the DE2-115 FPGA development board. Specifically, mimicking the design of modern computing systems, we built a set of interacting generic-purpose peripheral interfaces, device drivers, hardware accelerators and software frameworks to allow the implementation of game software with HID inputs and multimedia outputs at a relatively high level of abstraction efficiently. Osu is one example of such game software, yet the framework supports a wider variety, such as Maimai and SDVX, as we once considered.
+
+### Design Overview
+
+The system is designed to create layers of abstraction from the lowest physical hardware communication to the highest device-unaware software. The block diagram below shows the relationship between the major functional units in this system.
+
+![Architecture Block Diagram](arch.svg)
+
+The highest layer, the game software, is denoted by the center black square "Main Core". Running on a Nios II processor core, this unit only connects to the abstracted IO units through either shared memory with sub-processors or mapped memory to hardware modules. This core is mainly responsible for implementing game logic and send all painting commands.
+
+The USB sub-processor interfaces with the on-board EZ-OTG chip through HPI connection and handles all the USB enumeration procedures. It is separated from the main core so as any issue with USB, such as the hot-plug routine, will not interrupt the graphics.
+
+The multimedia core interfaces with the SD controller and audio controller. On one hand it provides abstraction over the SD control commands, and on the other hand it handles streamed audio from sdcard, which is a blocking process of continuous IO that cannot be executed on the main core.
+
+In order to simplify the game logic, we also created a helper tool *OsuFs*, as denoted by the black processor square "OsuFs", to write songs, resources and beatmaps to the sdcard. It runs on a computer instead of the FPGA to pre-process some computation-intensive tasks that are infeasible on Nios or unnecessarily complicated on hardware, such as audio resampling and image dithering, and save the results to the sdcard in a simple format.
+
+The graphics library, as denoted by the units above the main processor, takes painting commands from the main process and sends it to one of its painter modules. The painter modules fulfills the command by requesting changes to the frame buffer. The frame buffer structures the painted pixels into pixel buffer, background buffer, redraw control and color palette for efficient storage usage and lookup. Finally, the frame buffer reads itself in sequence and sends the pixels to VGA.
+
+In short, for the lifecycle of a gameplay is roughly as follows: a standard osu beatmap is parsed and converted on a computer and saved to the sdcard. The multimedia core reads from the sdcard, caches the resources into memory and passes the converted beatmap to the main processor for playing. During gameplay, the graphics library draws the frame buffer as commanded by the main core, the USB core continuously sends mouse coordinates to the main core, and the multimedia core streams the audio by reading from sdcard into the audio controller.
+
+The toplevel circuit block diagram is also shown below for reference, though it might not provide sufficient details about the system.
+
+![Toplevel block diagram](toplevel.svg)
+
+![Toplevel block diagram with Qsys expanded](toplevel-qsys.svg)
+
+The detailed operation of each functional unit will be described in the next section.
+
+### Descriptions of Functional Units
+
+#### Input Driver: PS/2 Keyboard
+
+> * **Module:** `input/ps2kb.sv`
+> * **Input/Output:** the commented module prototype is reproduced below
+
+```v
+module ps2kb (
+	// Clock
+	input logic CLK, RESET,
+
+	// Avalon-MM Slave Signals
+	input  logic AVL_READ, // Avalon-MM Read
+	input  logic AVL_WRITE, // Avalon-MM Write
+	input  logic AVL_CS, // Avalon-MM Chip Select
+	input  logic [3:0] AVL_BYTE_EN, // Avalon-MM Byte Enable
+	input  logic [1:0] AVL_ADDR, // Avalon-MM Address
+	input  logic [31:0] AVL_WRITEDATA, // Avalon-MM Write Data
+	output logic [31:0] AVL_READDATA, // Avalon-MM Read Data
+
+	// PS/2 Conduit
+	inout wire PS2_CLK, PS2_DATA
+);
+```
+
+This module interfaces with the keyboard connected to the on-board PS/2 socket. It contains an Avalon slave occupying 4 addresses for returning the results.
+
+This module returns the keystrokes from the keyboard as "keyboard events" to the accessing master. Address 0 and 1 contains the "keydown" events in the form of the keycode being pressed, and address 2 and 3 contains the "keyup" events in the form of the keycode being released. All four addresses can be read or written and behaves similarly to mailbox. Each time the module receives a keystroke from the keyboard, it will write the event into the first available register (which contains 0). The accessing master should set any event register to 0 after reading to signal "acknowledgment" and free the register for this module. If the hardware cannot find an available register to write to on an event, the event will be discarded and cannot be retrieved. The module will not modify any non-zero registers, unless it is being reset, which frees all registers back to 0.
+
+To implement the PS/2 protocol, this module contains a state machine to serially read the `PS2_DAT` on each positive edge trigger of `PS2_CLK` as pulled by the other device. At the end of the serial read, the machine either saves the value as a new event, changes the current event type due to a control code was received, or resets itself due to parity error. The state machine diagram is shown below.
+
+![PS/2 Keyboard State Machine](statemachine_ps2kb.svg)
+
+#### Input Driver: SD Card Reader
+
+This hardware module works as the interface for software and SD card. It is directly connected to the IO pins of the SD card socket: SD_CLK, SD_CMD, SD_DATA[3:0].
+
+```v
+module final_sd_interface (
+	input logic CLK,    // Clock
+	input logic RESET, // RESET
+
+	//Avalon
+	input logic [7:0] sd_addr,
+	input logic sd_cs, sd_read, sd_write,
+	input logic [31:0]  sd_writedata,
+	output logic [31:0] sd_readdata,
+
+	//export
+	output  logic SD_CLK,
+	inout wire SD_CMD,
+	inout wire [3:0] SD_DAT
+);
+```
+
+`SD_CLK` is the output signal, which the SD card module pulls to control the IO behavior of the SD card.
+
+`SD_CMD` is an input/output wire that is used to communicate protocols and commands. The SD card reader send a command through `SD_CMD` line to the SD card, and the SD card response on the same line back to the SD card reader.
+
+`SD_DATA` is a 4-bit serial port used to transfer read data. The port is bidirectional so that SD card could be read and written. But in our case, we only need to read data from SD card, so the lines are constantly set to input.
+
+The hardware implements a state machine to accepts commands from software via Avalon bus, and perform operations to the SD card. It stores the command registers, response registers, and data buffer, to temporarily hold the bits.
+
+The specific command sent is controlled by the software. The software put the command in command register, and issue a send command command to the reader. Then the software issues a receive response command. The SD card reader is going to probe the `SD_CMD` line (maybe high-Z at beginning) until SD card response with correct header, and then put the response into the response register waiting for the software to fetch response. If it is a data transfer (read in our case) process, the SD reader would probe SD_DATA lines (could be high-Z) until `SD_DATA` line comes with the heading 0 bit. Then the SD reader would accept a stream of 512 bytes of data, and put them into the data buffer waiting to be fetched by the software.
+
+The SD card protocol and library comes from DE2-115 board demonstration. 512 bytes of data is a block for the SD card. For the library given, only single block read command would be issued.
+
+State machine diagram for SD Controller:
+
+![SD Controller State Machine](statemachine-sdcard.svg)
+
+#### Output Driver: Audio DAC Interface
+
+This hardware module is actually an interface for the Avalon bus and an audio driver we found on the Internet.
+
+```v
+module audio(
+	input logic CLK,RESET,
+	//Avalon
+	input logic [8:0]AVL_ADDR,
+	input logic AVL_CS,
+	input logic AVL_RD,AVL_WR,
+	input logic [31:0] AVL_WDATA,
+	output logic [31:0] AVL_RDATA,
+
+	//export signals from audio driver
+	output logic AUD_DACDAT, I2C_SCLK,
+	input logic  AUD_ADCDAT,
+
+	inout wire AUD_BCLK,
+				AUD_ADCLRCK,
+				AUD_DACLRCK,
+				I2C_SDAT
+);
+```
+
+The audio hardware accepts audio data from the software and store it into audio buffer, and automatically feed audio data into the audio driver. The interface hardware that we wrote has two buffer of length 512 bytes, well, as you could guess, to store a block of audio data from Avalon bus. We used double buffering in case that SD card read is not that fast enough.
+
+Here is the file for the audio buffer, which is actually a M9K memory declaration and simple register operation
+
+```v
+module byte_enabled_simple_dual_port_ram
+	#(parameter int
+		ADDR_WIDTH = 6,
+		WIDTH = 8
+)
+(
+	input [ADDR_WIDTH-1:0] waddr,	//write addr
+	input [ADDR_WIDTH-1:0] raddr,	//read addr
+	input [WIDTH-1:0] wdata, 		//write data
+	input we, clk,					//write enable
+	output reg [WIDTH - 1:0] q 		//read output
+);
+```
+
+The audio driver we got consists of two parts, one for handling DAC and ADC streams for the audio hardware on the board, the other send command to change settings of the audio hardware on the board via I2C bus.
+
+Here is the audio driver that we connect to:
+
+```
+module Audio_Controller(
+	// Inputs
+	CLOCK_50,
+	reset,
+
+	clear_audio_in_memory,
+	read_audio_in,
+
+	clear_audio_out_memory,
+	left_channel_audio_out,
+	right_channel_audio_out,
+	write_audio_out,
+
+	AUD_ADCDAT,
+
+	// Bidirectionals
+	AUD_BCLK,
+	AUD_ADCLRCK,
+	AUD_DACLRCK,
+
+	// Outputs
+	left_channel_audio_in,
+	right_channel_audio_in,
+	audio_in_available,
+
+	audio_out_allowed,
+
+	AUD_XCK,
+	AUD_DACDAT
+);
+input				CLOCK_50;
+input				reset;
+
+input				clear_audio_in_memory;
+input				read_audio_in;
+
+input				clear_audio_out_memory;
+input		[AUDIO_DATA_WIDTH:1]	left_channel_audio_out;
+input		[AUDIO_DATA_WIDTH:1]	right_channel_audio_out;
+input				write_audio_out;
+
+input				AUD_ADCDAT;
+
+// Bidirectionals
+inout				AUD_BCLK;
+inout				AUD_ADCLRCK;
+inout				AUD_DACLRCK;
+
+// Outputs
+output	reg			audio_in_available;
+output		[AUDIO_DATA_WIDTH:1]	left_channel_audio_in;
+output		[AUDIO_DATA_WIDTH:1]	right_channel_audio_in;
+
+output	reg			audio_out_allowed;
+
+output				AUD_XCK;
+output				AUD_DACDAT;
+```
+
+Signals with AUD prefix are exported directly to the audio hardware. The rest of signals are for audio data I/O. We didn't use any of the ADC ports since we are just outputting audio data. `write_audio_out` is the audio data output port. `audio_out_allowed` indicates whether the audio driver could read in a sample of binary data yet. We need this kind of buffering and checking-if-available mechanism because the audio we played are at a rate that is much slower than processing clock. And the outputting sample rate we used is 44100 Hz/s.
+
+The audio driver could actually read left channel and right channel each at a sample length of 32 bits, but wave audio file actually is 16 bits for each sound channel. We add padding zeros at the end and sign extend at the beginning so that the sound wouldn't be too small or too loud.
+
+I2C part:
+
+```v
+module avconf (
+	//	Host Side
+	CLOCK_50,
+	reset,
+	AUD_VOL,
+
+	//	I2C Side
+	I2C_SCLK,
+	I2C_SDAT
+);
+//	Host Side
+input		CLOCK_50;
+input		reset;
+//	I2C Side
+output		I2C_SCLK;
+inout		I2C_SDAT;
+//  audio_volumn control
+input 		[6:0] AUD_VOL;
+```
+
+This module keeps all the configurations for the audio hardware and push them via I2C port. We create a port on the volume setting register so that we could change the volume of the audio from the software.
+
+State machine diagram for the audio controller:
+
+![Audio Controller State Machine](statemachine_audio.svg)
+
+#### Output Driver: the Graphics Library
+
+The graphic library is designed for high-performance graphics at `640x480@59fps`. It is based on frame buffer for more flexible drawing and varied graphics. Since the VGA pixel clock for this resolution is 25 MHz while our main clock frequency is only 50 MHz, it becomes a challenge to update the pixels no slower than their being read. On the SRAM, the only storage element on board that is large enough and fast enough, each pixel can only be accessed about 1.5 times per frame theoretically if the SRAM is being accessed every clock cycle. This module creates one strategy to reduce the necessary amount of pixels redrawn in each frame.
+
+##### Frame Buffer
+
+> * **Module**: `gl/gl_frame_buffer.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_frame_buffer (
+	// Clock
+	input logic CLK, RESET,
+	// VGA Read
+	input logic VGA_REQ,
+	input logic [9:0] VGA_X, VGA_Y,
+	output logic [23:0] VGA_RGB,
+
+	// GL Read
+	input logic GL_REQ,
+	input logic [9:0] GL_X, GL_Y,
+	input logic [19:0] GL_ADDR,
+	output logic [15:0] GL_DATA,
+	output logic GL_READY,
+
+	// Paint Write
+	input logic PAINT_REQ,
+	input logic [9:0] PAINT_X, PAINT_Y,
+	input logic [15:0] PAINT_RGB16,
+	output logic PAINT_READY,
+
+	// Avalon Write
+	input logic AVL_REQ,
+	input logic [19:0] AVL_ADDR,
+	input logic [15:0] AVL_DATA,
+	output logic AVL_READY,
+
+	// Frame-switch control
+	// Active: being drawn, Inactive: being displayed
+ 	input logic BUF_ACTIVE,
+
+	// Redraw control Conduit
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_IN,
+	output logic RC_WE,
+	input logic RC_DATA_OUT,
+
+	// Palette Conduit
+	output logic [7:0] PL_ADDR,
+	input logic [23:0] PL_DATA_OUT,
+
+	// SRAM Conduit
+	output logic [19:0] SRAM_ADDR,
+	inout wire [15:0] SRAM_DQ,
+	output logic SRAM_UB_N, SRAM_LB_N, SRAM_CE_N, SRAM_OE_N, SRAM_WE_N
+);
+```
+
+The frame buffer processes the updating and retrieval of pixels. It flags each pixel as either "foreground" or "background". A foreground pixel is drawn by one of the painter module at each frame, while a background pixel is pre-loaded into the background buffer. Any dynamic graphics are foreground pixels which can be drawn at high performance on each frame, while any background and static images are background pixels which can only be drawn at low perform during loading periods. There exists 2 pixel buffers for foreground pixels since they have to be udpated at each frame, but only 1 buffer for background pixels as they remain unchanged throughout rendering. In this way, during each frame, the total redraw area contains only foreground pixels, and it takes no time to set or reset any background pixel.
+
+In memory, the information about each pixel is stored in different locations as described in the table below. First, whether a pixel is foreground or background is stored as 1-bit boolean flag on a piece of on-chip memory. Both pixel buffer needs separate redraw flags. This will take 1 Mib of M9K out of 3.888 Mib. The foreground pixels are stored as 16-bit RGB, while the background are stored as 8-bit color index in another location on SRAM. The palette for these index colors are stored in another piece of on-chip memory in full 24-bit RGB. The remaining space on SRAM is left for storing image resources that will be used by `gl_painter_image` to draw images and fonts.
+
+| Device	| Address			| Content			| Format	|
+|-----------|-------------------|-------------------|-----------|
+| SRAM		| 0x00000 - 0x9FFFF	| Pixel buffer		| rgb565	|
+| SRAM		| 0xA0000 - 0xC7FFF	| Backgound buffer	| pal8		|
+| SRAM		| 0xC8000 - 0xFFFFF	| Image resources	| rgb565	|
+| M9K (1)	| 0x00000 - 0xFFFFF	| Redraw Flags		| bool		|
+| M9K (2)	| 0x00 - 0xFF		| Color Palette		| rgb24		|
+
+The mapping from coordinates to memory offset is calculated in the following way:
+
+```v
+logic [9:0] X, Y;
+logic BUF_ACTIVE;
+logic [19:0] FG_ADDR, BG_ADDR;
+assign FG_ADDR = {X, Y[8:0], BUF_ACTIVE};
+assign BG_ADDR = {2'b0, X[9:1], Y[8:0]} + 20'hA0000;
+```
+
+The frame buffer handles 4 sources of access requests: read request from VGA for pixel rendering, read request from a GL painter for reading from image resources or blending on existing pixels, write request from a GL painter, and write request from the Avalon interconnect for writing to background pixels or image resources by software. The connections for painter write and Avalon write are quite straightforward, but the read requests require more careful handling.
+
+For the VGA read, the full request will have four steps: querying the redraw flags, generate and register the right SRAM query address, wait for the SRAM to complete operation, and query the palette if necessary. However, the VGA will create a request every 2 `CLK` cycles and cannot wait for the full query for each pixel. As the three memory queries go to different locations, this module creates a pipeline to solve this issue. The three memory devices can then be queried at the same time, and the response can be served at full 50 MHz with 4 cycles of latency.
+
+The GL read is very similar to the VGA read in terms of datapath. However, since the `gl_sram` controller may not respond to the read request when a VGA read request occupies the SRAM, the pipeline will not work. However, since GL read does not require the same response rate as VGA does, the GL read operation will simply wait for every operation sequentially and return after all of them have been completed.
+
+> * **Module**: `gl/gl_vga.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_vga (
+	// Clock
+	input CLOCK_50, RESET,
+
+	// VGA Conduit
+	output logic VGA_HS, VGA_VS, VGA_BLANK_N, VGA_SYNC_N, VGA_CLK,
+	output logic [7:0] VGA_R, VGA_G, VGA_B,
+
+	// Frame buffer
+	output logic FB_REQ,
+	output logic [9:0] FB_X, FB_Y,
+	input logic [23:0] FB_RET,
+
+	// Informational
+	input logic RENDER_BUFFER,
+	output logic VGA_INTERFRAME
+);
+```
+
+This module is the VGA controller. It reads pixels from the frame buffer pipeline in advance and sends the pixel to the on-board VGA DAC. It also generates the corresponding clock, horizontal sync, vertical sync and blanking signals. When the VGA enters vertical sync, this module also notifies `gl_mgr` to perform frame finalization and buffer switching logic.
+
+> * **Module**: `gl/gl_sram.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_sram (
+	// Clock
+	input logic CLK, RESET,
+
+	// Read 1
+	input logic read1_req,
+	input logic [19:0] read1_addr,
+	output logic [15:0] read1_data,
+	output logic read1_ready,
+
+	// Read 2
+	input logic read2_req,
+	input logic [19:0] read2_addr,
+	output logic [15:0] read2_data,
+	output logic read2_ready,
+
+	// Write 1
+	input logic write1_req,
+	input logic [19:0] write1_addr,
+	input logic [15:0] write1_data,
+	output logic write1_ready,
+
+	// Write 2
+	input logic write2_req,
+	input logic [19:0] write2_addr,
+	input logic [15:0] write2_data,
+	output logic write2_ready,
+
+	// SRAM Conduit
+	output logic [19:0] SRAM_ADDR,
+	inout wire [15:0] SRAM_DQ,
+	output logic SRAM_UB_N, SRAM_LB_N, SRAM_CE_N, SRAM_OE_N, SRAM_WE_N
+);
+```
+
+This module wraps the SRAM and handles the arbitration of 2 read and 2 write signals. The SRAM is clocked at the `CLK` frequency, i.e. 50 MHz since unstable access starts to arise when clocked at 100 MHz. For each cycle only one operation is performed on the SRAM. The four incoming requests, `read1_req`, `write1_req`, `read2_req`, `write2_req` are processed in the priority of that order. I.e., if `read1_req` is constantly reading for consecutive cycles, `write1_req` will not be processed even though it has been waiting for a long time, not like a queue. This behavior is to ensure that `read1_req` is guaranteed to fulfill in the next clock edge since it is connected to the VGA requeset by `gl_frame_buffer`.
+
+> * **Module**: `gl/gl_redraw_cache.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_redraw_cache
+	#(parameter int
+		DATA_WIDTH = 1,
+		ADDRESS_WIDTH = 20
+	 ) (
+		input [ADDRESS_WIDTH-1:0] addr1,
+		input [ADDRESS_WIDTH-1:0] addr2,
+		input [DATA_WIDTH-1:0] data_in1,
+		input [DATA_WIDTH-1:0] data_in2,
+		input we1, we2, clk,
+		output reg [DATA_WIDTH-1:0] data_out1,
+		output reg [DATA_WIDTH-1:0] data_out2
+);
+```
+
+This module is derived from the Quartus Prime SystemVerilog Template *True Dual-Port RAM with single clock and different data width on the two ports*. It creates the memory for the redraw flags mentioned in `gl_frame_buffer` by synthesizing into a M9K memory megafunction.
+
+> * **Module**: `gl/gl_palette.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_palette
+	#(parameter int
+		DATA_WIDTH = 24,
+		ADDRESS_WIDTH = 8
+	 ) (
+		input [ADDRESS_WIDTH-1:0] addr1,
+		input [ADDRESS_WIDTH-1:0] addr2,
+		input [DATA_WIDTH-1:0] data_in1,
+		input [DATA_WIDTH-1:0] data_in2,
+		input we1, we2, clk,
+		output reg [DATA_WIDTH-1:0] data_out1,
+		output reg [DATA_WIDTH-1:0] data_out2,
+		input logic [7:0] background_dim
+);
+```
+
+This module is derived from the Quartus Prime SystemVerilog Template *True Dual-Port RAM with single clock and different data width on the two ports*. It creates the memory for the color palette mentioned in `gl_frame_buffer` by synthesizing into a M9K memory megafunction.
+
+In addition, this module also takes the parameter `background_dim` and transparently dims the entire palette by the value provided. A `background_dim` value of 128 results in no dimming at all (exact inputs returned) while a value of 0 results in all black. Values larger than 128 can cause undefined behavior.
+
+The background dimming works by multiplying the RGB components individually with the supplied factor. This implies that the colors store are in strict rgb24 format and any other data formats will likely be corrupted by the dimming behavior (unless the factor is 128 will keeps the values intact).
+
+##### Painter Modules
+
+The painter modules draws specific shapes and graphics to the foreground. They all read parameters and signals from `gl_mgr` and draws into `gl_frame_buffer`. They share similar behaviors and module prototypes.
+
+```v
+module gl_painter_generic (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	// input logic [9:0] X, Y,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory read conduit
+	output logic fb_GL_REQ,
+	output logic [19:0] fb_GL_ADDR,
+	input logic [15:0] fb_GL_DATA,
+	input logic fb_GL_READY,
+
+	// Memory write conduit
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache conduit
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+The module will start drawing as soon as `EN` goes high, or reset itself otherwise. The `PAINT_BUFFER` is passed in case the painter needs to calculate SRAM addresses for reading pixels. Once the drawing is completed, the painter will bring `DONE` to high when it is still enabled.
+
+All the painters should optimally use the same amount of cycles as there are pixels to read and write. However, practically some cycles has to be used for arithmetic approximation since the direct implementation of operations like division, square root and trigonometry functions can be complicated and inefficient. The description of each module will mention such behavior when reporting "wasted cycles".
+
+> * **Module**: `gl/painters/gl_painter_rect.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_painter_rect (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	input logic[9:0] X0, Y0, X1, Y1,
+	input logic[15:0] C0, C1, CSTROKE,
+	input logic GRAD_HORIZ,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory write connection
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache connection
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+This module draws a filled rectangle with upper-left corner `(X0, Y0)` and lower-right corner `(X1, Y1)`. Violating the ordering of the coordinates will cause undefined behavior, typically the painter filling outside regions. The gradient parameter are not implemented. Both boundaries are inclusive, and the outermost 1 pixel at the boundary will be painted with the stroke color `CSTROKE` instead of the fill color `C0`. To disable stroking, simply set the stroke color as the same as fill color.
+
+This module does not waste any cycles. The state diagram for this painter is shown below.
+
+![Rectangle Painter State Machine](statemachine_painter_rect.svg)
+
+> * **Module**: `gl/painters/gl_painter_circle.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_painter_circle (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	input logic[15:0] X0, Y0, R,
+	input logic[15:0] C0, C1, CSTROKE,
+	input logic GRAD_HORIZ,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory write connection
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache connection
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+This module draws a filled circle centered at `(X0, Y0)` with radius `R`. The gradient parameter are not implemented. The radius is inclusive, and the outermost 1 pixel at the boundary will be painted with the stroke color `CSTROKE` instead of the fill color `C0`. To disable stroking, simply set the stroke color as the same as fill color.
+
+This module will waste a total of $\frac{2 - \sqrt{2}}{2} R$ cycles doing Pythagorean calculation. The state diagram for this painter is shown below.
+
+![Circle Painter State Machine](statemachine_painter_circle.svg)
+
+> * **Module**: `gl/painters/gl_painter_ring.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_painter_ring (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	input logic[15:0] X0, Y0, R, W,
+	input logic[15:0] CSTROKE,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory write connection
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache connection
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+This module draws an approximated ring centered at `(X0, Y0)` with outer radius `R` and inner radius `R-W`. It is implemented in a way very similar to that of `gl_painter_circle`. This module is designed to draw very thin rings, and only the outer radius is calculated exactly. The inner radius is approximated by the outer radius and `W` and the error of such approximation will become more significant when `W` increases.
+
+This module will waste a total of $\frac{2 - \sqrt{2}}{2} R$ cycles doing Pythagorean calculation. The state diagram for this painter is shown below.
+
+![Ring Painter State Machine](statemachine_painter_ring.svg)
+
+> * **Module**: `gl/painters/gl_painter_polygon.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_painter_polygon (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	input logic[15:0] XT, YT, XB, YB, XL, YL, XR, YR,
+	input logic[15:0] C0, C1,
+	input logic GRAD_HORIZ,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory write connection
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache connection
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+This module draws a convex quadrilateral with the given top, bottom, left and right vertices. Violating the ordering of the coordinates will cause undefined behavior. This module was designed draw larger, more complex polygons with several calls to `gl_painter_polygon`, or to approximate shapes with non-circularly curved surfaces by differentiating the curve into multiple polygons.
+
+Although this modules uses `gl_line_scanner` for slope approximation, it approaches the edge from the painted side. So this painter does not waste any cycles. The state diagram for this painter is shown below.
+
+![Polygon Painter State Machine](statemachine_painter_polygon.svg)
+
+> * **Module**: `gl/painters/gl_painter_image.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_painter_image (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Arguments
+	input logic [19:0] IMG_BASE,
+	input logic [9:0] W, H,
+	input logic [9:0] X[6], Y[6],
+
+	// Transparency
+	input logic [15:0] TRANSPARENCY,
+
+	// Status Control
+	input logic EN,
+	output logic DONE,
+
+	input logic PAINT_BUFFER,
+
+	// Memory read connection
+	output logic fb_GL_REQ,
+	output logic [19:0] fb_GL_ADDR,
+	input logic [15:0] fb_GL_DATA,
+	input logic fb_GL_READY,
+
+	// Memory write connection
+	output logic fb_PAINT_REQ,
+	output logic [9:0] fb_PAINT_X, fb_PAINT_Y,
+	output logic [15:0] fb_PAINT_RGB16,
+	input logic fb_PAINT_READY,
+
+	// Redraw cache connection
+	output logic [19:0] RC_ADDR,
+	output logic RC_DATA_WR,
+	output logic RC_WE,
+	input logic RC_DATA_RD
+);
+```
+
+This module copies a rectangular image to at most 6 locations. The source image must be located at `BASE` on the SRAM, encoded in 16-bit RGB (rgb565), and its pixels arranged in row-major order. A partial of the source image may be drawn given that the subimage has the full width of the source image, the `BASE` address points to the first pixel of a row, and the height is calculated so as not to go beyond the bounds of the source image. The color specified by `TRANSPARENCY` will be treated as the transparent color, and all the pixels in the source image equal to the specified color will be treated as transparent pixel and skipped for all six possible destinations. The destination location specifies the upper-left corner of the copied image. Not all six destinations are required. A destination location of -1 (10'h3FF) in both X and Y denotes an unused location. All used destinations must use the first available space, as the painter will automatically treat all subsequent destinations as unused when it encounters the first one.
+
+Although transparent pixels are not painted, they still needs to be fetched. For each pixel, only one fetch is performed for all six possible locations to reduce reading waits. The state diagram for this painter is shown below.
+
+![Image Painter State Machine](statemachine_painter_image.svg)
+
+> * **Module**: `gl/utils/gl_line_scanner.sv`
+> * **Input**: `CLOCK`, `signed [15:0] X1, Y1, X2, Y2, X, Y`
+> * **Output**: `SIDE`
+
+This module calculates if the point `(X,Y)` lies to left of the line through `(X1, Y1)` and `(X2, Y2)` or not. The result `SIDE` will be available on the next clock edge. This module uses the following formula for linear function to perform the calculation. Since the calculation involves a lot of combinational arithmetics, the result is registered to shorten the combinational path.
+
+$$\frac{x-x_1}{y-y_1} = \frac{x_2-x_1}{y_2-y_1}$$
+
+$$\Delta x=(x-x_1)  (y_2-y1) - (y-y_1)(x_2-x_1)$$
+
+This module is used by `gl_painter_polygon` to approximate the edge of the polygon.
+
+##### Organizers and Interfaces
+
+> * **Module**: `gl/gl_mgr.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_mgr (
+	// Clock
+	input logic CLOCK, RESET,
+
+	// Status Control
+	output logic GL_FRAME_FINISHED, GL_TIMEOUT,
+	output logic[9:0] GL_DRAWTIME,
+
+	// GL Commands and arguments
+	input logic[3:0] GL_CMD,
+	input logic[31:0] GL_ARG1, GL_ARG2, GL_ARG3, GL_ARG4,
+	input logic[31:0] GL_ARG5, GL_ARG6, GL_ARG7, GL_ARG8,
+	input logic GL_EXEC,
+	output logic GL_DONE,
+
+	// Background processing
+	input logic [7:0] BG_DIM,
+	input logic [15:0] TRANSPARENCY,
+
+	// Avalon connection
+	input logic AVL_REQ,
+	input logic [19:0] AVL_ADDR,
+	input logic [15:0] AVL_DATA,
+	output logic AVL_READY,
+
+	input logic AVL_PLT_RD, AVL_PLT_WR,
+	input logic[7:0] AVL_PLT_INDEX,
+	output logic[23:0] AVL_PLT_RD_COLOR,
+	input logic[23:0] AVL_PLT_WR_COLOR,
+
+	// SRAM connection
+	output logic [19:0] SRAM_ADDR,
+	inout wire [15:0] SRAM_DQ,
+	output logic SRAM_UB_N, SRAM_LB_N, SRAM_CE_N, SRAM_OE_N, SRAM_WE_N,
+
+	// VGA connection
+	output logic VGA_HS, VGA_VS, VGA_BLANK_N, VGA_SYNC_N, VGA_CLK,
+	output logic [7:0] VGA_R, VGA_G, VGA_B
+);
+```
+
+This module is essentially the toplevel of the graphics library. It reads commands from the Avalon interface and routes them to the corresponding painters. It instantiates `gl_frame_buffer`, `gl_sram`, `gl_redraw_control`, `gl_palette` and all the painters and wires them together. It controls the switching of the 2 pixel buffers. It also reports the current status back to the Avalon interface.
+
+> * **Module**: `gl/gl_avalon_intf.sv`
+> * **Input/Output**: the commented module prototype is reproduced below
+
+```v
+module gl_avalon_intf (
+	// Avalon Clock Input
+	input logic CLOCK, RESET,
+
+	// GL Controller Slave
+	input  logic AVL_GL_READ,
+	input  logic AVL_GL_WRITE,
+	input  logic AVL_GL_CS,
+	input  logic [3:0] AVL_GL_BYTE_EN,
+	input  logic [3:0] AVL_GL_ADDR,
+	input  logic [31:0] AVL_GL_WRITEDATA,
+	output logic [31:0] AVL_GL_READDATA,
+
+	// SRAM Slave
+	input  logic AVL_SRAM_READ,
+	input  logic AVL_SRAM_WRITE,
+	input  logic AVL_SRAM_CS,
+	input  logic [3:0] AVL_SRAM_BYTE_EN,
+	input  logic [19:0] AVL_SRAM_ADDR,
+	input  logic [31:0] AVL_SRAM_WRITEDATA,
+	output logic [31:0] AVL_SRAM_READDATA,
+	output logic AVL_SRAM_WAITREQ,
+
+	// Palette Slave
+	input  logic AVL_PLT_READ,
+	input  logic AVL_PLT_WRITE,
+	input  logic AVL_PLT_CS,
+	input  logic [3:0] AVL_PLT_BYTE_EN,
+	input  logic [7:0] AVL_PLT_ADDR,
+	input  logic [31:0] AVL_PLT_WRITEDATA,
+	output logic [31:0] AVL_PLT_READDATA,
+
+	// SRAM Conduit
+	output logic [19:0] SRAM_ADDR,
+	inout wire [15:0] SRAM_DQ,
+	output logic SRAM_UB_N, SRAM_LB_N, SRAM_CE_N, SRAM_OE_N, SRAM_WE_N,
+
+	// VGA Conduit
+	output logic VGA_CLK,
+	output logic [7:0] VGA_R, VGA_G, VGA_B,
+	output logic VGA_SYNC_N, VGA_BLANK_N, VGA_VS, VGA_HS
+);
+```
+
+This module exports the control signals of the graphics library to the mapped registers on the Avalon interconnect. This module contains 3 Avalon slaves: the GL control registers slave, the palette slave and the SRAM slave.
+
+The GL control registers slave allows the software to send commands to the GL to perform painting as well as checking for GL status. A total of 16 addresses is allocated, each with size 32 bits. Reading and writing these registers are all combinational. The addresses are assigned as follow:
+
+| Addr	| Meaning				| Permissions	|
+|-------|-----------------------|---------------|
+| 0		| Status				| Readonly		|
+| 1		| Total draw time		| Readonly		|
+| 2		| Draw command			| Read-write	|
+| 3		| Background dimming	| Read-write	|
+| 4-7	| Unused				| No access		|
+| 8-16	| Painter arguments 1-8	| Read-write	|
+
+Before issuing any new commands, the software should first make sure no command is in progress by waiting for `GL_STATUS_DONE` flag of status going low. The `GL_TIMEOUT` flag should also be checked. To issue a drawing command, first set the args registers. Then set the draw command to the desired drawing command. Drawing will start instantly. The software could then wait for `GL_STATUS_DONE` flag to go low again, but postponing this waiting till the beginning of the next command is recommended so that software could utilize the meantime. To issue the next command, set the command register to the new command. If the command is the same as the previous one, the command must first be set to `GL_CMD_NOOP` (0) so that the painter is reset.
+
+After finishing all drawing commands, the software should send `GL_CMD_FIN` (16) to the command to indicate that it is safe to finalize the current frame. The frame will be finalized when VGA is in vertical blanking and the current command is `GL_CMD_FIN`. The `GL_STATUS_FRAME_DONE` will be brought to high when it happens. If the frame is still not finalized after VGA vertical blanking ends, the frame will be forced to finalize and a new frame started. In this case the `GL_STATUS_FRAME_TIMEOUT` will be set to signal this exception.
+
+#### Software Processor: USB Core
+
+The USB core interfaces to the HPI bus to access the EZ-OTG USB controller chip. It encapsulates all the USB enumeration and hot-plug routines necessary to connect one single HID mouse directly. All the HPI controller and USB enumeration logic are mostly taken from lab8, with the modification to parse the packets into mouse movements and buttons.
+
+This core is separated from the main core to reduce overhead and prevent exceptions from USB from interrupting the graphics. The parsed mouse coordinates is then passed to the main core using the interprocess shared memory. The USB core will update the mouse coordinates whenever it gets updates from the mouse, and the main core simply polls the coordinate whenever it needs it.
+
+#### Software Processor: Multimedia Core
+
+This core works as the data transferor that handles the SD card read to give the main core the data that it wants. All SD card protocols and command libraries are used in this core. It also handles audio. It play specific audio request from the main core to stream play the audio specified. It also supports audio mixing when a second channel audio request is also present.
+
+A block of M9K on-chip memory is connected to the Avalon bus to share the data and transfer command between the processor cores that we have. Most communication happens between the MPEG core and the main processing core. The communication protocols are encapsulated in the `interprocess.h` file, which marks what address means what for the process cores, and also the instructions to access the M9K on-chip memory. This header file is shared over all the cores.
+
+There is also a space in the `interprocess.h` for audio buffer that would be send to the audio interface. Writing from registers to M9K is much faster than writing to SDRAM.
+
+The way we communicate is: the main core sends a request by setting a data (usually a pointer, because Avalon max width 32 bits is the same as an address length) to a specifically designated address, and set the addresses afterwards as parameters. The MPEG core is constantly probing the meaningful addresses of functions. When it detects a request, it goes into the routine specified.
+
+The routines we have are:
+
+Audio Play: given the audio data SD address and number of SD blocks, it could start streaming audio play, and it could also handle mixing request at the playing time
+
+General Read: given SD card block address, number of blocks, and destination address, it could read the specified data from SD card to the address on SDRAM
+
+FX Audio Play: given the FX audio data SD address and number of SD blocks, it could start streaming FX audio play
+
+Image Read: given the image SD address, the width of the image, the height of the image, and the destination address on SRAM, it could read a image of the specified width and height from the SD card to the specific SRAM address because image resources are on SRAM (faster than SDRAM)
+
+Background Image Read: given a SD card block address, it could read the palettes of the background image and image matrix (full of indexes to palettes) to the background image address on SRAM. The length of palettes, the size of image, and the SRAM addresses are previously fixed.
+
+#### Software Processor: Main Core
+
+This is the main process core of our project. It is responsible for all the graphic drawing handling, file data analyzing, input handling, and main game logic handling.
+
+File Data Analysis: The main core knows how the data in the SD card is arranged. It gets data by requesting the MPEG core. When it gets a block's data, it would get where other data resources are located on the SD card. For example, when the meta data block is read, aka. block 0, it could know the SD block addresses of a bunch of resources.
+
+Input Handling: The main core fetches mouse and keyboard data at the start of each frame, and response to those inputs. In the song selection page, the main core could response to up/down arrow keys to select between songs (in the meanwhile request the MPEG core to load the background and play the preview audio), enter key to start playing a song. And the mouse is what the user uses to play the game, whether the mouse is moving round or clicking
+
+Game Logic Handling: The main core handles all the gaming logic. When loading a song resources, it will load the list of objects that would be drawn as the storyboard and time-line. When the core keeps track of the current time relative to the start time of playing, the logic looks up the time-line to determine whether next object should be drawn, and looks back into the objects that are currently in the frame to see if one object should disappear. Besides this, it also produce responses to user's mouse input during playing. Whether the user click on the object and how accurate the click is according to the song determine what feedback image to show and which FX sound to play.
+
+It also keeps track of the score during playing.
+
+Graphic Drawing: Game logic determines what to draw on the current frame. The main core goes through all the objects that should be drawn on the frame and determine how to draw the object. Sometimes the object depends on the current time of the frame. It then send draw requests to the GL hardwares to draw the objects into frame buffer in sequence. Also it perform some tricky drawings, like, the slider, it actually consists of a string of rings one over another.
+
+#### SDCard Storage Helper: osu filesystem
+
+The osu filesystem (osufs) is a helper tool for storing beatmaps on the sdcard. It is a C++ program that runs on a computer running a UNIX-like system (tested under MacOS and Ubuntu) that does preprocessing such as image dithering and audio resampling.
+
+This program was created because performing such tasks on the FPGA is either inefficient or overcomplicated. To decode a MP3-encoded audio into PCM samples, using [libmad](https://www.underbit.com/products/mad/) on Nios II produced 5 seconds of audio after 10 minutes of decoding. Hardware decoding is far from trivial and goes beyond the proposal of this project. At the same time, none of the FAT libraries available on Nios for sdcard could properly handle large wave files.
+
+This program efficiently solves the above program by doing preprocessing. First, as suggested by its name, this program creates a custom filesystem on the raw SD device to workaround the FAT issue. Taking the advantage of file IO to block devices on POSIX systems, the program is able to treat the SD card not as a directory, but as a block of continuous memory -- which the FPGA can also do reliably. Then the program can perform all the conversion fairly trivially using existing tools like ffmpeg and dump the raw PCM samples or pixels onto the sdcard. Detailed operations perform by this program is documented below.
+
+> **main**
+>
+> * `int main(int argc, char *argv[])`
+
+This file define the entry point for the program. It parses user inputs from the console and issues  function calls to the corresponding modules.
+
+> **blkio**
+>
+> * `mdev *blkio_open(const char *filename);`
+> * `void blkio_close(mdev *dev);`
+> * `void blkio_read(mdev *dev, uint32_t addr, void *buf);`
+> * `void blkio_write(mdev *dev, uint32_t addr, void *buf);`
+
+
+This file encapsulates IO system calls such as `open` and `pwrite` into a sdcard IO interface.
+
+> **osufs**
+>
+> * `osu_meta osu_read_meta(mdev *dev);`
+> * `osu_song osu_read_song(mdev *dev, int idx);`
+> * `void osu_write_meta(mdev *dev, osu_meta *meta);`
+> * `void osu_write_song(mdev *dev, int idx, osu_song *song);`
+> * `void osu_init_device(mdev *dev);`
+
+This file define the basic `struct` for storing metadata and song information. This file is also included in the main core for parsing. This file defined functions for reading and writing these `struct`s from and to the device.
+
+> **wavenc**
+>
+> * `uint32_t wav_write(const char *filename, mdev *dev, uint32_t addr);`
+
+This file imports an arbitrary audio file onto the specified address of the sdcard. It first does audio conversion and resampling with ffmpeg into 44100 Hz 2 channel signed 16-bit little-endian integer PCM (pcm_s16le) wave file. Then the program reads the binary content of the wave file and copies its RIFF wave data section onto the sdcard.
+
+> **imgenc**
+>
+> * `uint32_t img_write_dither128(const char *filename, mdev *dev, uint32_t addr);`
+> * `uint32_t img_write_dither64(const char *filename, mdev *dev, uint32_t addr, uint16_t *w, uint16_t *h);`
+> * `uint32_t img_write_rgb16(const char *filename, mdev *dev, uint32_t addr, uint16_t *w, uint16_t *h);`
+
+This file imports arbitrary image files onto the specified address of the sdcard using different pixel formats.
+
+For the background image of each song, `img_write_dither128` is called. This function calls ffmpeg to generate a 128-color palette from the colors in the image and convert the image file into indexed color using that palette with Floyd-Steinberg dithering algorithm to reduce color banding. The program then opens the product PNG image using libpng to get the palette and pixels encoded in the image and dump them into the sdcard.
+
+For the UI resources such as buttons and icons, `img_write_rgb16` is called. This function calls ffmpeg to first convert the image into standard PNG image with rgba (32-bit RGB) pixel format. The program then opens the product PNG image using libpng to get the pixels encoded in the image. The pixels are converted into rgb565 (16-bit RGB) and transparent pixels are replaced with pure green (0x00ff00) so that `gl_painter_image` could use them.
+
+For large static images used in the UI, such as the ranking letters and scoreboard backgrounds, which could be rendered only once during loading but are not part of the background, `img_write_dither64`. This function calls ffmpeg to generate a 64-color-dithered PNG image similar to `img_write_dither128`. The program then opens the product image with libpng and dumps the palette and pixels into the sdcard.
+
+Functions in this file significantly improves the quality and reduces the size of the images due to the usage of palette and modern dithering algorithms. They can also be directly dumped into the background buffer of the SRAM without exerting any computation load on Nios.
+
+> **fontenc**
+>
+> * `uint32_t font_write(const char *filename, int ptsize, mdev *dev, uint32_t addr);`
+> * `uint32_t font_score_write(const char *dirname, mdev *dev, uint32_t addr);`
+
+This file converts and imports any valid TTF font into the sdcard. The program invokes imagemagick to render all the printable ASCII character into image file with the specified font. Then the product image is imported as a resource image using `img_write_rgb16`.
+
+The function `font_score_write` handles score fonts from the skin instead of TTF UI fonts. Score fonts are already PNG files in the skin directory, so there is no need to call font rendering when importing score fonts.
+
+> **osu**
+>
+> * `void osu_install_skin(const char *dirname, mdev *dev, osu_meta *meta);`
+> * `void osu_install_font(const char *filename, mdev *dev, osu_meta *meta);`
+> * `osu_song osu_read_osu(const char *filename, mdev *dev, osu_meta *meta, osu_dir *cont);`
+> * `osu_dir osu_open_dir(const char *dirname);`
+> * `const char *osu_read_dir(osu_dir dir);`
+
+This file handles the parsing and import of osu! beatmaps and skin. osu! beatmaps are the definition of playable songs in the desktop osu! game. These functions parse the hit objects (circles, sliders, spinners) defined in the beatmap into the sdcard and also imports the linked song audio and background image.
+
+### Design Resources and Statistics
+
+| Attributes 		| OSU!FPGA	|
+|-------------------|-----------|
+| Total LE 			| 25573		|
+| LUT				| 20959		|
+| DSP				| 32     	|
+| Memory (BRAM)		| 2592 Kb   |
+| Flip-Flop			| 15253		|
+| Frequency			| 52.12 MHz	|
+| Core Static Power | 108.89 mW	|
+| Core Dynamic Power| 346.49 mW	|
+| I/O Power 		| 170.58 mW	|
+| Total Power		| 625.97 mW	|
+
+### Conclusion
+
+It was until halfway through the project did we realize that what we are building is actually a framework for audio-capable games instead of merely a rhythm game. The system was designed and constructed taking into consideration the needs we have and we may not have. In the end, we do have a nicely connected system of reliable hardware drivers, high-performance layered graphics renderer and structured file and memory systems. Coming up with, building and getting such a system to work is what we are most proud of during the development of this project. Although the final software on the main core that handles game logic is not fully tested and cannot perfectly utilize every feature of this underlying system, we believe that given a few more time to correct and fine tune the high level software, our framework could deliver a smooth and impressive gameplay experience in terms of input, graphics, audio and extensibility.
+
+#### Problems & Bugs & Complaints
+
+We have encountered so many problems that we had never thought about.
+
+Finding a usable audio driver took us some time. Given resource on the course wiki didn't work. University Programs' IP didn't work. DE2-demo programs were too hard to edit.
+
+SD interface also cost a lot of time. The University Programs' SD card hardware is too slow since it's using 1-bit mode for transferring SD card data. DE2-demo program's SD interface is also slow because it performs its logic all on the software. It was only after we wrote hardware logic, and changed the FAT16 file-system to our own file-system that we reached a relatively high data reading speed.
+
+The SRAM is supposed to finish a operation within 20ns, which means we could over-clock it to 100 MHz, but the reality was that it just couldn't.
+
+When playing with memory in the software, we found that in order to correctly load a 32 bit data, we had to align the data addresses.
+
+NIOS II E IS WAY TOO SLOW !!!!
+
+We were thinking about decoding mp3 files and png files on the boeard using software, but it seemed to take forever to do that when we tried that.
+
+The processors are so slow that we can't afford to do function calling since they push and pop the stack a lot.
+
+NIOS II E even performs multiplication by doing for loops in software!
+
+It is annoying that uploading software programs into hardware frequently meets problems. Sometimes it was connection problem, sometimes the processor didn't response and failed to load elf files, and sometimes the JTAG-UART is somehow dead.
diff --git a/docs/statemachine_audio.dot b/docs/statemachine_audio.dot
new file mode 100644
index 0000000000000000000000000000000000000000..9939babf0ae024deaa83a55fffd21120016e3702
--- /dev/null
+++ b/docs/statemachine_audio.dot
@@ -0,0 +1,15 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Audio Controller State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "INIT", shape = doublecircle]
+	1 -> 2 [label = "DATAIN"];
+2 [label = "BUFF_1", shape = circle]
+	2 -> 3 [label = "DATAIN && AUDIO_FLUSHED"];
+3 [label = "BUFF_2", shape = circle]
+	3 -> 2 [label = "DATAIN && AUDIO_FLUSHED"];
+}
diff --git a/docs/statemachine_audio.svg b/docs/statemachine_audio.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8e46a762bd8d1d2f619ea49a755325ddeca3c84a
--- /dev/null
+++ b/docs/statemachine_audio.svg
@@ -0,0 +1,54 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="653pt" height="112pt"
+ viewBox="0.00 0.00 652.96 112.14" 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 108.1438)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-108.1438 648.9604,-108.1438 648.9604,4 -4,4"/>
+<text text-anchor="middle" x="322.4802" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Audio Controller State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="31.7851" cy="-63.0719" rx="27.5985" ry="27.5985"/>
+<ellipse fill="none" stroke="#000000" cx="31.7851" cy="-63.0719" rx="31.5717" ry="31.5717"/>
+<text text-anchor="middle" x="31.7851" y="-58.8719" font-family="Times,serif" font-size="14.00" fill="#000000">INIT</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="241.6314" cy="-63.0719" rx="41.1439" ry="41.1439"/>
+<text text-anchor="middle" x="241.6314" y="-58.8719" font-family="Times,serif" font-size="14.00" fill="#000000">BUFF_1</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M63.6562,-63.0719C97.2312,-63.0719 150.6185,-63.0719 190.1725,-63.0719"/>
+<polygon fill="#000000" stroke="#000000" points="190.421,-66.572 200.4209,-63.0719 190.4209,-59.572 190.421,-66.572"/>
+<text text-anchor="middle" x="132.0649" y="-65.8719" font-family="Times,serif" font-size="14.00" fill="#000000">DATAIN</text>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="603.8885" cy="-63.0719" rx="41.1439" ry="41.1439"/>
+<text text-anchor="middle" x="603.8885" y="-58.8719" font-family="Times,serif" font-size="14.00" fill="#000000">BUFF_2</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge2" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M282.8342,-63.0719C349.2927,-63.0719 480.0104,-63.0719 552.4706,-63.0719"/>
+<polygon fill="#000000" stroke="#000000" points="552.7242,-66.572 562.7242,-63.0719 552.7242,-59.572 552.7242,-66.572"/>
+<text text-anchor="middle" x="422.7599" y="-65.8719" font-family="Times,serif" font-size="14.00" fill="#000000">DATAIN &amp;&amp; AUDIO_FLUSHED</text>
+</g>
+<!-- 3&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>3&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M565.0258,-49.5407C550.9657,-45.2978 534.849,-41.1755 519.8166,-39.0719 434.3765,-27.1154 411.1433,-27.1154 325.7033,-39.0719 314.0767,-40.6989 301.8014,-43.5335 290.3307,-46.6975"/>
+<polygon fill="#000000" stroke="#000000" points="289.1289,-43.4015 280.4941,-49.5407 291.0727,-50.1263 289.1289,-43.4015"/>
+<text text-anchor="middle" x="422.7599" y="-41.8719" font-family="Times,serif" font-size="14.00" fill="#000000">DATAIN &amp;&amp; AUDIO_FLUSHED</text>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_painter_circle.dot b/docs/statemachine_painter_circle.dot
new file mode 100644
index 0000000000000000000000000000000000000000..b243b98edb293b4abab4f0898e9c3d6143f8a39c
--- /dev/null
+++ b/docs/statemachine_painter_circle.dot
@@ -0,0 +1,25 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Circle Painter State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "s_idle", shape = doublecircle]
+	1 -> 1 [label = "!EN"];
+	1 -> 2;
+2 [label = "s_axis", shape = circle]
+	2 -> 2;
+	2 -> 4 [label = "PAINT_READY && x==R && quadrant==1"];
+3 [label = "s_calc_xbeg", shape = circle]
+	3 -> 3;
+	3 -> 4 [label = "(xlen*xlen + y*y) < R*R"];
+	3 -> 5 [label = "xlen < y"];
+4 [label = "s_paint", shape = circle]
+	4 -> 4;
+	4 -> 3 [label = "PAINT_READY && x==xlen && quadrant==7"];
+5 [label = "s_fin", shape = doublecircle]
+	5 -> 5;
+	5 -> 1 [label = "!EN"];
+}
diff --git a/docs/statemachine_painter_circle.svg b/docs/statemachine_painter_circle.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4505df6ce6c098e8d86798b7bca0d38a6529e10e
--- /dev/null
+++ b/docs/statemachine_painter_circle.svg
@@ -0,0 +1,118 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="156pt"
+ viewBox="0.00 0.00 792.00 156.31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.6081 .6081) rotate(0) translate(4 253.0456)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-253.0456 1298.4155,-253.0456 1298.4155,4 -4,4"/>
+<text text-anchor="middle" x="647.2078" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Circle Painter State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="31.437" ry="31.437"/>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="35.4634" ry="35.4634"/>
+<text text-anchor="middle" x="35.231" y="-53.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M22.0342,-90.1893C18.0352,-113.0011 22.4341,-135.4619 35.231,-135.4619 46.1283,-135.4619 50.9358,-119.1742 49.6534,-100.2521"/>
+<polygon fill="#000000" stroke="#000000" points="53.1113,-99.6927 48.4277,-90.1893 46.1626,-100.5391 53.1113,-99.6927"/>
+<text text-anchor="middle" x="35.231" y="-138.2619" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="189.6774" cy="-130.231" rx="32.4324" ry="32.4324"/>
+<text text-anchor="middle" x="189.6774" y="-126.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_axis</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M67.2324,-72.3566C91.6269,-83.8868 125.3174,-99.8109 151.1847,-112.0372"/>
+<polygon fill="#000000" stroke="#000000" points="149.7925,-115.2503 160.3291,-116.3593 152.7838,-108.9217 149.7925,-115.2503"/>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M177.4419,-160.352C173.1692,-182.8108 177.2477,-205.4464 189.6774,-205.4464 200.2621,-205.4464 204.7908,-189.032 203.2635,-170.2903"/>
+<polygon fill="#000000" stroke="#000000" points="206.7278,-169.7895 201.9129,-160.352 199.7915,-170.7323 206.7278,-169.7895"/>
+</g>
+<!-- 4 -->
+<g id="node3" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="599.6471" cy="-130.231" rx="35.806" ry="35.806"/>
+<text text-anchor="middle" x="599.6471" y="-126.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_paint</text>
+</g>
+<!-- 2&#45;&gt;4 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M222.1897,-130.231C294.7469,-130.231 470.0608,-130.231 553.7265,-130.231"/>
+<polygon fill="#000000" stroke="#000000" points="553.9435,-133.7311 563.9435,-130.231 553.9434,-126.7311 553.9435,-133.7311"/>
+<text text-anchor="middle" x="392.9437" y="-133.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; x==R &amp;&amp; quadrant==1</text>
+</g>
+<!-- 4&#45;&gt;4 -->
+<g id="edge8" class="edge">
+<title>4&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M571.6049,-152.3741C551.0712,-178.46 560.4186,-208.8836 599.6471,-208.8836 634.7383,-208.8836 645.919,-184.539 633.1892,-160.7318"/>
+<polygon fill="#000000" stroke="#000000" points="636.1103,-158.8036 627.6894,-152.3741 630.2628,-162.6516 636.1103,-158.8036"/>
+</g>
+<!-- 3 -->
+<g id="node4" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="1045.9816" cy="-152.231" rx="53.6299" ry="53.6299"/>
+<text text-anchor="middle" x="1045.9816" y="-148.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_calc_xbeg</text>
+</g>
+<!-- 4&#45;&gt;3 -->
+<g id="edge9" class="edge">
+<title>4&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M635.4181,-131.9941C710.7632,-135.7079 886.6824,-144.379 981.9524,-149.0749"/>
+<polygon fill="#000000" stroke="#000000" points="981.8763,-152.5753 992.0365,-149.572 982.221,-145.5838 981.8763,-152.5753"/>
+<text text-anchor="middle" x="813.7334" y="-149.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; x==xlen &amp;&amp; quadrant==7</text>
+</g>
+<!-- 3&#45;&gt;4 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M997.8965,-128.0256C982.6976,-121.5697 965.5783,-115.4877 949.167,-112.231 831.0842,-88.798 797.9244,-98.7174 678.2998,-112.231 667.1099,-113.4951 655.1917,-115.7402 644.1061,-118.2257"/>
+<polygon fill="#000000" stroke="#000000" points="643.1373,-114.858 634.2043,-120.5546 644.74,-121.672 643.1373,-114.858"/>
+<text text-anchor="middle" x="813.7334" y="-115.031" font-family="Times,serif" font-size="14.00" fill="#000000">(xlen*xlen + y*y) &lt; R*R</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge5" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M1024.5102,-202.044C1021.5393,-226.8865 1028.6965,-249.0456 1045.9816,-249.0456 1060.9036,-249.0456 1068.2776,-232.5314 1068.1036,-212.0331"/>
+<polygon fill="#000000" stroke="#000000" points="1071.5957,-211.7954 1067.453,-202.044 1064.6105,-212.2504 1071.5957,-211.7954"/>
+</g>
+<!-- 5 -->
+<g id="node5" class="node">
+<title>5</title>
+<ellipse fill="none" stroke="#000000" cx="1263.1054" cy="-68.231" rx="27.1455" ry="27.1455"/>
+<ellipse fill="none" stroke="#000000" cx="1263.1054" cy="-68.231" rx="31.1214" ry="31.1214"/>
+<text text-anchor="middle" x="1263.1054" y="-64.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fin</text>
+</g>
+<!-- 3&#45;&gt;5 -->
+<g id="edge7" class="edge">
+<title>3&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M1096.3399,-132.7485C1135.2729,-117.6863 1188.3851,-97.1384 1224.1186,-83.314"/>
+<polygon fill="#000000" stroke="#000000" points="1225.6467,-86.4757 1233.7102,-79.6032 1223.121,-79.9472 1225.6467,-86.4757"/>
+<text text-anchor="middle" x="1165.7958" y="-115.031" font-family="Times,serif" font-size="14.00" fill="#000000">xlen &lt; y</text>
+</g>
+<!-- 5&#45;&gt;1 -->
+<g id="edge11" class="edge">
+<title>5&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M1232.7902,-60.2013C1191.0464,-49.8681 1113.3723,-33.231 1045.9816,-33.231 189.6774,-33.231 189.6774,-33.231 189.6774,-33.231 152.2549,-33.231 110.3303,-40.196 79.6147,-46.6218"/>
+<polygon fill="#000000" stroke="#000000" points="78.6886,-43.241 69.6505,-48.7695 80.1635,-50.0838 78.6886,-43.241"/>
+<text text-anchor="middle" x="599.6471" y="-36.031" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 5&#45;&gt;5 -->
+<g id="edge10" class="edge">
+<title>5&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M1247.852,-95.669C1241.3334,-118.5905 1246.4179,-142.5411 1263.1054,-142.5411 1277.381,-142.5411 1283.1653,-125.0134 1280.4581,-105.5967"/>
+<polygon fill="#000000" stroke="#000000" points="1283.852,-104.7285 1278.3588,-95.669 1277.0034,-106.1767 1283.852,-104.7285"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_painter_image.dot b/docs/statemachine_painter_image.dot
new file mode 100644
index 0000000000000000000000000000000000000000..72d280b1dfa81c3c34924fdad22d1b28bbd40b4d
--- /dev/null
+++ b/docs/statemachine_painter_image.dot
@@ -0,0 +1,23 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Polygon Painter State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "s_idle", shape = doublecircle]
+	1 -> 1 [label = "!EN"];
+	1 -> 2;
+2 [label = "s_fetch", shape = circle]
+	2 -> 2;
+	2 -> 3 [label = "GL_READY && color_in!=TRANSPARENCY"];
+	2 -> 4 [label = "GL_READY && color_in==TRANSPARENCY && x_in==W && y_in==H"];
+3 [label = "s_scan_right", shape = circle]
+	3 -> 3;
+	3 -> 2 [label = "PAINT_READY && (Y[i_in][9] || i_in == 6)"];
+	3 -> 4 [label = "PAINT_READY && (Y[i_in][9] || i_in == 6) && x_in==W && y_in==H"];
+4 [label = "s_fin", shape = doublecircle]
+	4 -> 4;
+	4 -> 1 [label = "!EN"];
+}
diff --git a/docs/statemachine_painter_image.svg b/docs/statemachine_painter_image.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2e8cc98656bd96cb71f6ce66e5088cce64249864
--- /dev/null
+++ b/docs/statemachine_painter_image.svg
@@ -0,0 +1,106 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="176pt"
+ viewBox="0.00 0.00 792.00 175.87" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.4898 .4898) rotate(0) translate(4 355.0387)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-355.0387 1612.9004,-355.0387 1612.9004,4 -4,4"/>
+<text text-anchor="middle" x="804.4502" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Polygon Painter State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="31.437" ry="31.437"/>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="35.4634" ry="35.4634"/>
+<text text-anchor="middle" x="35.231" y="-53.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M22.0342,-90.1893C18.0352,-113.0011 22.4341,-135.4619 35.231,-135.4619 46.1283,-135.4619 50.9358,-119.1742 49.6534,-100.2521"/>
+<polygon fill="#000000" stroke="#000000" points="53.1113,-99.6927 48.4277,-90.1893 46.1626,-100.5391 53.1113,-99.6927"/>
+<text text-anchor="middle" x="35.231" y="-138.2619" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="193.106" cy="-176.231" rx="35.7887" ry="35.7887"/>
+<text text-anchor="middle" x="193.106" y="-172.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fetch</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M63.4558,-78.5058C89.4489,-98.0983 128.1642,-127.2804 156.5207,-148.6544"/>
+<polygon fill="#000000" stroke="#000000" points="154.5008,-151.5148 164.5931,-154.7391 158.7143,-145.9249 154.5008,-151.5148"/>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M179.9092,-209.3633C175.9102,-232.2956 180.3091,-254.875 193.106,-254.875 204.0033,-254.875 208.8108,-238.5013 207.5284,-219.4793"/>
+<polygon fill="#000000" stroke="#000000" points="210.9803,-218.8697 206.3027,-209.3633 204.0311,-219.7117 210.9803,-218.8697"/>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="804.0869" cy="-253.231" rx="54.6162" ry="54.6162"/>
+<text text-anchor="middle" x="804.0869" y="-249.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_scan_right</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M220.8073,-198.8408C235.1223,-209.1702 253.4056,-220.3852 271.75,-226.231 433.7105,-277.8425 637.3276,-269.2884 739.4318,-260.3384"/>
+<polygon fill="#000000" stroke="#000000" points="739.9438,-263.8064 749.5867,-259.4173 739.3113,-256.8351 739.9438,-263.8064"/>
+<text text-anchor="middle" x="407.4092" y="-269.031" font-family="Times,serif" font-size="14.00" fill="#000000">GL_READY &amp;&amp; color_in!=TRANSPARENCY</text>
+</g>
+<!-- 4 -->
+<g id="node4" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="1555.8746" cy="-141.231" rx="27.1455" ry="27.1455"/>
+<ellipse fill="none" stroke="#000000" cx="1555.8746" cy="-141.231" rx="31.1214" ry="31.1214"/>
+<text text-anchor="middle" x="1555.8746" y="-137.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fin</text>
+</g>
+<!-- 2&#45;&gt;4 -->
+<g id="edge5" class="edge">
+<title>2&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M228.7164,-173.6791C242.192,-172.7891 257.6725,-171.8574 271.75,-171.231 411.3542,-165.0188 446.3666,-166.5934 586.0684,-163.231 945.4727,-154.5807 1379.8223,-145.0595 1514.225,-142.1346"/>
+<polygon fill="#000000" stroke="#000000" points="1514.5555,-145.6283 1524.477,-141.9116 1514.4033,-138.63 1514.5555,-145.6283"/>
+<text text-anchor="middle" x="804.0869" y="-166.031" font-family="Times,serif" font-size="14.00" fill="#000000">GL_READY &amp;&amp; color_in==TRANSPARENCY &amp;&amp; x_in==W &amp;&amp; y_in==H</text>
+</g>
+<!-- 3&#45;&gt;2 -->
+<g id="edge7" class="edge">
+<title>3&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M750.3067,-242.3565C697.6785,-232.0461 615.1439,-216.7563 543.0684,-207.231 434.4412,-192.8751 305.9412,-183.4021 238.9473,-179.0282"/>
+<polygon fill="#000000" stroke="#000000" points="238.9402,-175.5205 228.7358,-178.37 238.4899,-182.506 238.9402,-175.5205"/>
+<text text-anchor="middle" x="407.4092" y="-210.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; (Y[i_in][9] || i_in == 6)</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M754.6534,-277.2962C709.4919,-310.4407 725.9698,-351.0387 804.0869,-351.0387 877.0167,-351.0387 896.2217,-315.6536 861.702,-283.9838"/>
+<polygon fill="#000000" stroke="#000000" points="863.4781,-280.9151 853.5205,-277.2962 859.048,-286.3349 863.4781,-280.9151"/>
+</g>
+<!-- 3&#45;&gt;4 -->
+<g id="edge8" class="edge">
+<title>3&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M859.1012,-252.0882C975.795,-248.5068 1255.9292,-233.7586 1481.5645,-173.231 1493.9653,-169.9044 1506.9843,-164.8737 1518.599,-159.7799"/>
+<polygon fill="#000000" stroke="#000000" points="1520.3209,-162.8421 1527.9807,-155.5224 1517.4281,-156.4678 1520.3209,-162.8421"/>
+<text text-anchor="middle" x="1273.335" y="-242.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; (Y[i_in][9] || i_in == 6) &amp;&amp; x_in==W &amp;&amp; y_in==H</text>
+</g>
+<!-- 4&#45;&gt;1 -->
+<g id="edge10" class="edge">
+<title>4&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M1524.8306,-136.9884C1511.5291,-135.2959 1495.8063,-133.4612 1481.5645,-132.231 930.7809,-84.6533 259.2045,-63.4774 80.6129,-58.4479"/>
+<polygon fill="#000000" stroke="#000000" points="80.6257,-54.947 70.5318,-58.1665 80.4303,-61.9443 80.6257,-54.947"/>
+<text text-anchor="middle" x="407.4092" y="-78.031" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 4&#45;&gt;4 -->
+<g id="edge9" class="edge">
+<title>4&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M1527.4265,-154.733C1487.1829,-180.5986 1496.6656,-215.5411 1555.8746,-215.5411 1610.6892,-215.5411 1622.8848,-185.5929 1592.4614,-160.6241"/>
+<polygon fill="#000000" stroke="#000000" points="1594.4755,-157.7613 1584.3227,-154.733 1590.371,-163.4317 1594.4755,-157.7613"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_painter_polygon.dot b/docs/statemachine_painter_polygon.dot
new file mode 100644
index 0000000000000000000000000000000000000000..7683cbd45c94f825c63c2d3e86c02c7a7f7497ad
--- /dev/null
+++ b/docs/statemachine_painter_polygon.dot
@@ -0,0 +1,22 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Polygon Painter State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "s_idle", shape = doublecircle]
+	1 -> 1 [label = "!EN"];
+	1 -> 2;
+2 [label = "s_scan_left", shape = circle]
+	2 -> 2;
+	2 -> 3 [label = "PAINT_READY && ~l_side"];
+3 [label = "s_scan_right", shape = circle]
+	3 -> 3;
+	3 -> 2 [label = "PAINT_READY && r_side"];
+	3 -> 4 [label = "PAINT_READY && r_side && y==YB"];
+4 [label = "s_fin", shape = doublecircle]
+	4 -> 4;
+	4 -> 1 [label = "!EN"];
+}
diff --git a/docs/statemachine_painter_polygon.svg b/docs/statemachine_painter_polygon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0b392b3aad4252febb9c29cdfd4d948fbba49829
--- /dev/null
+++ b/docs/statemachine_painter_polygon.svg
@@ -0,0 +1,99 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="204pt"
+ viewBox="0.00 0.00 792.00 203.79" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.7867 .7867) rotate(0) translate(4 255.0387)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-255.0387 1002.7127,-255.0387 1002.7127,4 -4,4"/>
+<text text-anchor="middle" x="499.3564" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Polygon Painter State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="31.437" ry="31.437"/>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="35.4634" ry="35.4634"/>
+<text text-anchor="middle" x="35.231" y="-53.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M22.0342,-90.1893C18.0352,-113.0011 22.4341,-135.4619 35.231,-135.4619 46.1283,-135.4619 50.9358,-119.1742 49.6534,-100.2521"/>
+<polygon fill="#000000" stroke="#000000" points="53.1113,-99.6927 48.4277,-90.1893 46.1626,-100.5391 53.1113,-99.6927"/>
+<text text-anchor="middle" x="35.231" y="-138.2619" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="207.3514" cy="-148.231" rx="49.7792" ry="49.7792"/>
+<text text-anchor="middle" x="207.3514" y="-144.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_scan_left</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M66.4007,-73.7104C90.7895,-86.6047 125.2725,-104.8359 154.0262,-120.038"/>
+<polygon fill="#000000" stroke="#000000" points="152.6641,-123.2768 163.1405,-124.8567 155.9359,-117.0885 152.6641,-123.2768"/>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M190.6583,-195.5474C188.2206,-219.5753 193.785,-241.1204 207.3514,-241.1204 218.957,-241.1204 224.7065,-225.3531 224.5999,-205.7526"/>
+<polygon fill="#000000" stroke="#000000" points="228.0829,-205.3424 224.0444,-195.5474 221.0932,-205.7229 228.0829,-205.3424"/>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="562.4871" cy="-153.231" rx="54.6162" ry="54.6162"/>
+<text text-anchor="middle" x="562.4871" y="-149.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_scan_right</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M257.4804,-148.9367C320.3138,-149.8214 428.1434,-151.3395 497.3211,-152.3135"/>
+<polygon fill="#000000" stroke="#000000" points="497.6096,-155.8178 507.6579,-152.459 497.7082,-148.8185 497.6096,-155.8178"/>
+<text text-anchor="middle" x="382.4601" y="-154.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; ~l_side</text>
+</g>
+<!-- 3&#45;&gt;2 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M510.5316,-135.4531C495.8814,-131.2391 479.8093,-127.354 464.6793,-125.231 392.3046,-115.0754 372.7871,-116.3831 300.2408,-125.231 288.8888,-126.6155 276.9256,-128.9184 265.5006,-131.5457"/>
+<polygon fill="#000000" stroke="#000000" points="264.5306,-128.1791 255.628,-133.9231 266.1695,-134.9846 264.5306,-128.1791"/>
+<text text-anchor="middle" x="382.4601" y="-128.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; r_side</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge5" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M530.9129,-198.2515C523.7495,-225.4085 534.2742,-251.0387 562.4871,-251.0387 587.1734,-251.0387 598.3172,-231.4156 595.9184,-208.3167"/>
+<polygon fill="#000000" stroke="#000000" points="599.3178,-207.4504 594.0613,-198.2515 592.434,-208.7206 599.3178,-207.4504"/>
+</g>
+<!-- 4 -->
+<g id="node4" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="963.2603" cy="-68.231" rx="27.1455" ry="27.1455"/>
+<ellipse fill="none" stroke="#000000" cx="963.2603" cy="-68.231" rx="31.1214" ry="31.1214"/>
+<text text-anchor="middle" x="963.2603" y="-64.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fin</text>
+</g>
+<!-- 3&#45;&gt;4 -->
+<g id="edge7" class="edge">
+<title>3&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M616.1213,-141.8557C697.2367,-124.6519 849.3701,-92.3859 922.2701,-76.9246"/>
+<polygon fill="#000000" stroke="#000000" points="923.3769,-80.2678 932.4331,-74.7691 921.9245,-73.4201 923.3769,-80.2678"/>
+<text text-anchor="middle" x="774.6225" y="-133.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; r_side &amp;&amp; y==YB</text>
+</g>
+<!-- 4&#45;&gt;1 -->
+<g id="edge9" class="edge">
+<title>4&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M931.8513,-67.8587C794.1199,-66.2261 243.1953,-59.696 80.6163,-57.7689"/>
+<polygon fill="#000000" stroke="#000000" points="80.5184,-54.2676 70.4776,-57.6487 80.4354,-61.2671 80.5184,-54.2676"/>
+<text text-anchor="middle" x="382.4601" y="-65.031" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 4&#45;&gt;4 -->
+<g id="edge8" class="edge">
+<title>4&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M938.5526,-88.017C918.6728,-112.9059 926.9087,-142.5411 963.2603,-142.5411 995.4939,-142.5411 1005.621,-119.2398 993.6416,-96.6081"/>
+<polygon fill="#000000" stroke="#000000" points="996.3994,-94.4328 987.968,-88.017 990.5582,-98.2904 996.3994,-94.4328"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_painter_rect.dot b/docs/statemachine_painter_rect.dot
new file mode 100644
index 0000000000000000000000000000000000000000..b23b2f2d7fe802a674f8613895580330ad79ed03
--- /dev/null
+++ b/docs/statemachine_painter_rect.dot
@@ -0,0 +1,18 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Rectangle Painter State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "s_idle", shape = doublecircle]
+	1 -> 1 [label = "!EN"];
+	1 -> 2;
+2 [label = "s_paint", shape = circle]
+	2 -> 2;
+	2 -> 3 [label = "PAINT_READY && x==X1 && y==Y1"];
+3 [label = "s_fin", shape = doublecircle]
+	3 -> 3;
+	3 -> 1 [label = "!EN"];
+}
diff --git a/docs/statemachine_painter_rect.svg b/docs/statemachine_painter_rect.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b403a19936e54e575c062a9f8cef740d526b6901
--- /dev/null
+++ b/docs/statemachine_painter_rect.svg
@@ -0,0 +1,73 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="622pt" height="213pt"
+ viewBox="0.00 0.00 621.97 212.88" 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 208.8836)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-208.8836 617.9709,-208.8836 617.9709,4 -4,4"/>
+<text text-anchor="middle" x="306.9855" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Rectangle Painter State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="31.437" ry="31.437"/>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="35.4634" ry="35.4634"/>
+<text text-anchor="middle" x="35.231" y="-53.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M22.0342,-90.1893C18.0352,-113.0011 22.4341,-135.4619 35.231,-135.4619 46.1283,-135.4619 50.9358,-119.1742 49.6534,-100.2521"/>
+<polygon fill="#000000" stroke="#000000" points="53.1113,-99.6927 48.4277,-90.1893 46.1626,-100.5391 53.1113,-99.6927"/>
+<text text-anchor="middle" x="35.231" y="-138.2619" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="193.1146" cy="-126.231" rx="35.806" ry="35.806"/>
+<text text-anchor="middle" x="193.1146" y="-122.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_paint</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M67.5621,-71.3606C91.6668,-81.8952 124.8049,-96.3775 150.9838,-107.8185"/>
+<polygon fill="#000000" stroke="#000000" points="149.7194,-111.0855 160.2842,-111.8831 152.5226,-104.6713 149.7194,-111.0855"/>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M179.9178,-159.367C175.9188,-182.3017 180.3177,-204.8836 193.1146,-204.8836 204.0119,-204.8836 208.8194,-188.5082 207.5371,-169.4841"/>
+<polygon fill="#000000" stroke="#000000" points="210.9888,-168.8734 206.3114,-159.367 204.0396,-169.7153 210.9888,-168.8734"/>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="578.0823" cy="-68.231" rx="27.1455" ry="27.1455"/>
+<ellipse fill="none" stroke="#000000" cx="578.0823" cy="-68.231" rx="31.1214" ry="31.1214"/>
+<text text-anchor="middle" x="578.0823" y="-64.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fin</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M228.6414,-120.8784C300.1071,-110.1113 460.8911,-85.8872 536.8492,-74.4432"/>
+<polygon fill="#000000" stroke="#000000" points="537.6192,-77.8668 546.9862,-72.916 536.5763,-70.9449 537.6192,-77.8668"/>
+<text text-anchor="middle" x="387.7697" y="-116.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; x==X1 &amp;&amp; y==Y1</text>
+</g>
+<!-- 3&#45;&gt;1 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M546.7807,-66.6753C485.6677,-63.7246 346.1762,-57.4149 228.7673,-55.231 197.0815,-54.6416 189.1521,-54.9717 157.4619,-55.231 132.0642,-55.4387 103.701,-55.8893 80.695,-56.3103"/>
+<polygon fill="#000000" stroke="#000000" points="80.4642,-52.8139 70.5315,-56.5006 80.5953,-59.8126 80.4642,-52.8139"/>
+<text text-anchor="middle" x="193.1146" y="-58.031" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge5" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M553.4183,-87.6403C532.9372,-112.6058 541.1585,-142.5411 578.0823,-142.5411 610.9676,-142.5411 621.0857,-118.7961 608.4366,-95.9648"/>
+<polygon fill="#000000" stroke="#000000" points="611.2789,-93.9208 602.7463,-87.6403 605.5,-97.871 611.2789,-93.9208"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_painter_ring.dot b/docs/statemachine_painter_ring.dot
new file mode 100644
index 0000000000000000000000000000000000000000..8e636f572b9036ddbef1f37133493fcc5988f275
--- /dev/null
+++ b/docs/statemachine_painter_ring.dot
@@ -0,0 +1,25 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "Ring Painter State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "s_idle", shape = doublecircle]
+	1 -> 1 [label = "!EN"];
+	1 -> 2;
+2 [label = "s_axis", shape = circle]
+	2 -> 2;
+	2 -> 4 [label = "PAINT_READY && x==R && quadrant==1"];
+3 [label = "s_calc_xbeg", shape = circle]
+	3 -> 3;
+	3 -> 4 [label = "(xlen*xlen + y*y) < R*R"];
+	3 -> 5 [label = "xlen < y"];
+4 [label = "s_paint", shape = circle]
+	4 -> 4;
+	4 -> 3 [label = "PAINT_READY && x==xlen && quadrant==7"];
+5 [label = "s_fin", shape = doublecircle]
+	5 -> 5;
+	5 -> 1 [label = "!EN"];
+}
diff --git a/docs/statemachine_painter_ring.svg b/docs/statemachine_painter_ring.svg
new file mode 100644
index 0000000000000000000000000000000000000000..11b839ff1ec1577b1ba5cee486e2490013605fd8
--- /dev/null
+++ b/docs/statemachine_painter_ring.svg
@@ -0,0 +1,118 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="156pt"
+ viewBox="0.00 0.00 792.00 156.31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.6081 .6081) rotate(0) translate(4 253.0456)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-253.0456 1298.4155,-253.0456 1298.4155,4 -4,4"/>
+<text text-anchor="middle" x="647.2078" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">Ring Painter State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="31.437" ry="31.437"/>
+<ellipse fill="none" stroke="#000000" cx="35.231" cy="-57.231" rx="35.4634" ry="35.4634"/>
+<text text-anchor="middle" x="35.231" y="-53.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M22.0342,-90.1893C18.0352,-113.0011 22.4341,-135.4619 35.231,-135.4619 46.1283,-135.4619 50.9358,-119.1742 49.6534,-100.2521"/>
+<polygon fill="#000000" stroke="#000000" points="53.1113,-99.6927 48.4277,-90.1893 46.1626,-100.5391 53.1113,-99.6927"/>
+<text text-anchor="middle" x="35.231" y="-138.2619" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="189.6774" cy="-130.231" rx="32.4324" ry="32.4324"/>
+<text text-anchor="middle" x="189.6774" y="-126.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_axis</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M67.2324,-72.3566C91.6269,-83.8868 125.3174,-99.8109 151.1847,-112.0372"/>
+<polygon fill="#000000" stroke="#000000" points="149.7925,-115.2503 160.3291,-116.3593 152.7838,-108.9217 149.7925,-115.2503"/>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M177.4419,-160.352C173.1692,-182.8108 177.2477,-205.4464 189.6774,-205.4464 200.2621,-205.4464 204.7908,-189.032 203.2635,-170.2903"/>
+<polygon fill="#000000" stroke="#000000" points="206.7278,-169.7895 201.9129,-160.352 199.7915,-170.7323 206.7278,-169.7895"/>
+</g>
+<!-- 4 -->
+<g id="node3" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="599.6471" cy="-130.231" rx="35.806" ry="35.806"/>
+<text text-anchor="middle" x="599.6471" y="-126.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_paint</text>
+</g>
+<!-- 2&#45;&gt;4 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M222.1897,-130.231C294.7469,-130.231 470.0608,-130.231 553.7265,-130.231"/>
+<polygon fill="#000000" stroke="#000000" points="553.9435,-133.7311 563.9435,-130.231 553.9434,-126.7311 553.9435,-133.7311"/>
+<text text-anchor="middle" x="392.9437" y="-133.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; x==R &amp;&amp; quadrant==1</text>
+</g>
+<!-- 4&#45;&gt;4 -->
+<g id="edge8" class="edge">
+<title>4&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M571.6049,-152.3741C551.0712,-178.46 560.4186,-208.8836 599.6471,-208.8836 634.7383,-208.8836 645.919,-184.539 633.1892,-160.7318"/>
+<polygon fill="#000000" stroke="#000000" points="636.1103,-158.8036 627.6894,-152.3741 630.2628,-162.6516 636.1103,-158.8036"/>
+</g>
+<!-- 3 -->
+<g id="node4" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="1045.9816" cy="-152.231" rx="53.6299" ry="53.6299"/>
+<text text-anchor="middle" x="1045.9816" y="-148.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_calc_xbeg</text>
+</g>
+<!-- 4&#45;&gt;3 -->
+<g id="edge9" class="edge">
+<title>4&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M635.4181,-131.9941C710.7632,-135.7079 886.6824,-144.379 981.9524,-149.0749"/>
+<polygon fill="#000000" stroke="#000000" points="981.8763,-152.5753 992.0365,-149.572 982.221,-145.5838 981.8763,-152.5753"/>
+<text text-anchor="middle" x="813.7334" y="-149.031" font-family="Times,serif" font-size="14.00" fill="#000000">PAINT_READY &amp;&amp; x==xlen &amp;&amp; quadrant==7</text>
+</g>
+<!-- 3&#45;&gt;4 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M997.8965,-128.0256C982.6976,-121.5697 965.5783,-115.4877 949.167,-112.231 831.0842,-88.798 797.9244,-98.7174 678.2998,-112.231 667.1099,-113.4951 655.1917,-115.7402 644.1061,-118.2257"/>
+<polygon fill="#000000" stroke="#000000" points="643.1373,-114.858 634.2043,-120.5546 644.74,-121.672 643.1373,-114.858"/>
+<text text-anchor="middle" x="813.7334" y="-115.031" font-family="Times,serif" font-size="14.00" fill="#000000">(xlen*xlen + y*y) &lt; R*R</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge5" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M1024.5102,-202.044C1021.5393,-226.8865 1028.6965,-249.0456 1045.9816,-249.0456 1060.9036,-249.0456 1068.2776,-232.5314 1068.1036,-212.0331"/>
+<polygon fill="#000000" stroke="#000000" points="1071.5957,-211.7954 1067.453,-202.044 1064.6105,-212.2504 1071.5957,-211.7954"/>
+</g>
+<!-- 5 -->
+<g id="node5" class="node">
+<title>5</title>
+<ellipse fill="none" stroke="#000000" cx="1263.1054" cy="-68.231" rx="27.1455" ry="27.1455"/>
+<ellipse fill="none" stroke="#000000" cx="1263.1054" cy="-68.231" rx="31.1214" ry="31.1214"/>
+<text text-anchor="middle" x="1263.1054" y="-64.031" font-family="Times,serif" font-size="14.00" fill="#000000">s_fin</text>
+</g>
+<!-- 3&#45;&gt;5 -->
+<g id="edge7" class="edge">
+<title>3&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M1096.3399,-132.7485C1135.2729,-117.6863 1188.3851,-97.1384 1224.1186,-83.314"/>
+<polygon fill="#000000" stroke="#000000" points="1225.6467,-86.4757 1233.7102,-79.6032 1223.121,-79.9472 1225.6467,-86.4757"/>
+<text text-anchor="middle" x="1165.7958" y="-115.031" font-family="Times,serif" font-size="14.00" fill="#000000">xlen &lt; y</text>
+</g>
+<!-- 5&#45;&gt;1 -->
+<g id="edge11" class="edge">
+<title>5&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M1232.7902,-60.2013C1191.0464,-49.8681 1113.3723,-33.231 1045.9816,-33.231 189.6774,-33.231 189.6774,-33.231 189.6774,-33.231 152.2549,-33.231 110.3303,-40.196 79.6147,-46.6218"/>
+<polygon fill="#000000" stroke="#000000" points="78.6886,-43.241 69.6505,-48.7695 80.1635,-50.0838 78.6886,-43.241"/>
+<text text-anchor="middle" x="599.6471" y="-36.031" font-family="Times,serif" font-size="14.00" fill="#000000">!EN</text>
+</g>
+<!-- 5&#45;&gt;5 -->
+<g id="edge10" class="edge">
+<title>5&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M1247.852,-95.669C1241.3334,-118.5905 1246.4179,-142.5411 1263.1054,-142.5411 1277.381,-142.5411 1283.1653,-125.0134 1280.4581,-105.5967"/>
+<polygon fill="#000000" stroke="#000000" points="1283.852,-104.7285 1278.3588,-95.669 1277.0034,-106.1767 1283.852,-104.7285"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_ps2kb.dot b/docs/statemachine_ps2kb.dot
new file mode 100644
index 0000000000000000000000000000000000000000..fccface98732c27e2701d60fb026b0434810d092
--- /dev/null
+++ b/docs/statemachine_ps2kb.dot
@@ -0,0 +1,30 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "PS/2 Keyboard State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.3";
+ranksep = "0.4";
+1 [label = "idle", shape = doublecircle]
+	1 -> 1;
+	1 -> 2 [label = "posedge PS2_CLK"];
+2 [label = "b_data", shape = circle]
+	2 -> 2;
+	2 -> 3 [label = "posedge PS2_CLK && counter==7"];
+3 [label = "b_parity", shape = circle]
+	3 -> 3;
+	3 -> 4 [label = "posedge PS2_CLK"];
+4 [label = "b_end", shape = circle]
+	4 -> 4;
+	4 -> 1 [label = "posedge PS2_CLK && keycode==0xE0"];
+	4 -> 1 [label = "posedge PS2_CLK && keycode==0xF0"];
+	4 -> 6 [label = "posedge PS2_CLK && error_count"];
+	4 -> 5 [label = "posedge PS2_CLK"];
+5 [label = "b_enqueue", shape = circle]
+	5 -> 7;
+6 [label = "b_error", shape = circle]
+	6 -> 7;
+7 [label = "b_fin", shape = doublecircle]
+	7 -> 1;
+}
diff --git a/docs/statemachine_ps2kb.svg b/docs/statemachine_ps2kb.svg
new file mode 100644
index 0000000000000000000000000000000000000000..33b39d8e1d9b5d6ded460afb7e28a1905734c6f0
--- /dev/null
+++ b/docs/statemachine_ps2kb.svg
@@ -0,0 +1,149 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="166pt"
+ viewBox="0.00 0.00 792.00 166.16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.6451 .6451) rotate(0) translate(4 253.5778)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-253.5778 1223.7332,-253.5778 1223.7332,4 -4,4"/>
+<text text-anchor="middle" x="609.8666" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">PS/2 Keyboard State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="27.3677" cy="-91" rx="23.2553" ry="23.2553"/>
+<ellipse fill="none" stroke="#000000" cx="27.3677" cy="-91" rx="27.236" ry="27.236"/>
+<text text-anchor="middle" x="27.3677" y="-86.8" font-family="Times,serif" font-size="14.00" fill="#000000">idle</text>
+</g>
+<!-- 1&#45;&gt;1 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M11.0605,-113.0827C6.9691,-127.0249 12.4048,-140.3677 27.3677,-140.3677 38.5899,-140.3677 44.453,-132.8624 44.9571,-123.2279"/>
+<polygon fill="#000000" stroke="#000000" points="48.4013,-122.5649 43.6749,-113.0827 41.4565,-123.4427 48.4013,-122.5649"/>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="225.363" cy="-185" rx="33.8596" ry="33.8596"/>
+<text text-anchor="middle" x="225.363" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_data</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge2" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M45.757,-111.6126C52.7301,-118.5017 61.0868,-125.753 69.7354,-131 104.9262,-152.3498 149.7377,-166.7616 182.2296,-175.2885"/>
+<polygon fill="#000000" stroke="#000000" points="181.7642,-178.7814 192.3182,-177.8516 183.4879,-171.997 181.7642,-178.7814"/>
+<text text-anchor="middle" x="123.2095" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK</text>
+</g>
+<!-- 2&#45;&gt;2 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M206.8555,-213.3622C204.1528,-227.7648 210.3219,-240.6793 225.363,-240.6793 236.7612,-240.6793 243.0646,-233.2628 244.273,-223.4024"/>
+<polygon fill="#000000" stroke="#000000" points="247.7684,-223.2139 243.8705,-213.3622 240.774,-223.4944 247.7684,-223.2139"/>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="556.332" cy="-188" rx="39.6558" ry="39.6558"/>
+<text text-anchor="middle" x="556.332" y="-183.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_parity</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M259.2271,-185.307C317.8356,-185.8382 438.4286,-186.9313 506.5792,-187.549"/>
+<polygon fill="#000000" stroke="#000000" points="506.6132,-191.0494 516.6445,-187.6403 506.6767,-184.0497 506.6132,-191.0494"/>
+<text text-anchor="middle" x="387.8982" y="-189.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK &amp;&amp; counter==7</text>
+</g>
+<!-- 3&#45;&gt;3 -->
+<g id="edge5" class="edge">
+<title>3&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M536.3243,-222.1947C534.6862,-236.9471 541.3555,-249.5778 556.332,-249.5778 567.6815,-249.5778 574.2602,-242.3242 576.0682,-232.3906"/>
+<polygon fill="#000000" stroke="#000000" points="579.5721,-232.2844 576.3398,-222.1947 572.5746,-232.0979 579.5721,-232.2844"/>
+</g>
+<!-- 4 -->
+<g id="node4" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="764.577" cy="-114" rx="31.9393" ry="31.9393"/>
+<text text-anchor="middle" x="764.577" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_end</text>
+</g>
+<!-- 3&#45;&gt;4 -->
+<g id="edge6" class="edge">
+<title>3&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M593.9027,-174.8583C626.6631,-163.3713 675.4469,-146.199 717.8581,-131 720.2398,-130.1465 722.6886,-129.2655 725.1579,-128.3746"/>
+<polygon fill="#000000" stroke="#000000" points="726.4734,-131.6208 734.6851,-124.9261 724.0908,-125.0387 726.4734,-131.6208"/>
+<text text-anchor="middle" x="664.384" y="-169.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK</text>
+</g>
+<!-- 4&#45;&gt;1 -->
+<g id="edge8" class="edge">
+<title>4&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M732.8294,-113.0095C613.7135,-109.2932 193.6596,-96.1881 65.063,-92.176"/>
+<polygon fill="#000000" stroke="#000000" points="65.026,-88.6733 54.9217,-91.8597 64.8077,-95.6699 65.026,-88.6733"/>
+<text text-anchor="middle" x="387.8982" y="-107.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK &amp;&amp; keycode==0xE0</text>
+</g>
+<!-- 4&#45;&gt;1 -->
+<g id="edge9" class="edge">
+<title>4&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M733.4942,-106.9135C728.2894,-105.8516 722.9326,-104.8346 717.8581,-104 522.9133,-71.9358 471.5686,-75.1342 274.0423,-79 183.187,-80.7781 160.4064,-80.9492 69.7354,-87 68.215,-87.1015 66.6645,-87.2125 65.0988,-87.331"/>
+<polygon fill="#000000" stroke="#000000" points="64.3741,-83.8792 54.699,-88.1971 64.955,-90.855 64.3741,-83.8792"/>
+<text text-anchor="middle" x="387.8982" y="-81.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK &amp;&amp; keycode==0xF0</text>
+</g>
+<!-- 4&#45;&gt;4 -->
+<g id="edge7" class="edge">
+<title>4&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M746.6613,-140.2565C743.4684,-154.5903 749.4403,-167.7189 764.577,-167.7189 776.0478,-167.7189 782.2555,-160.1794 783.1999,-150.2894"/>
+<polygon fill="#000000" stroke="#000000" points="786.6873,-149.9856 782.4928,-140.2565 779.7046,-150.4778 786.6873,-149.9856"/>
+</g>
+<!-- 6 -->
+<g id="node5" class="node">
+<title>6</title>
+<ellipse fill="none" stroke="#000000" cx="1075.7399" cy="-211" rx="36.2645" ry="36.2645"/>
+<text text-anchor="middle" x="1075.7399" y="-206.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_error</text>
+</g>
+<!-- 4&#45;&gt;6 -->
+<g id="edge10" class="edge">
+<title>4&#45;&gt;6</title>
+<path fill="none" stroke="#000000" d="M794.3988,-125.1293C799.9942,-127.1384 805.8091,-129.1733 811.2959,-131 888.0395,-156.5493 978.423,-183.1518 1031.177,-198.3339"/>
+<polygon fill="#000000" stroke="#000000" points="1030.3166,-201.7282 1040.8942,-201.1236 1032.2483,-195 1030.3166,-201.7282"/>
+<text text-anchor="middle" x="911.8116" y="-194.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK &amp;&amp; error_count</text>
+</g>
+<!-- 5 -->
+<g id="node6" class="node">
+<title>5</title>
+<ellipse fill="none" stroke="#000000" cx="1075.7399" cy="-104" rx="48.3255" ry="48.3255"/>
+<text text-anchor="middle" x="1075.7399" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_enqueue</text>
+</g>
+<!-- 4&#45;&gt;5 -->
+<g id="edge11" class="edge">
+<title>4&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M796.4146,-112.9768C848.2416,-111.3112 951.6238,-107.9888 1017.0428,-105.8864"/>
+<polygon fill="#000000" stroke="#000000" points="1017.32,-109.3794 1027.2024,-105.5599 1017.0951,-102.383 1017.32,-109.3794"/>
+<text text-anchor="middle" x="911.8116" y="-114.8" font-family="Times,serif" font-size="14.00" fill="#000000">posedge PS2_CLK</text>
+</g>
+<!-- 7 -->
+<g id="node7" class="node">
+<title>7</title>
+<ellipse fill="none" stroke="#000000" cx="1187.4429" cy="-104" rx="28.1078" ry="28.1078"/>
+<ellipse fill="none" stroke="#000000" cx="1187.4429" cy="-104" rx="32.082" ry="32.082"/>
+<text text-anchor="middle" x="1187.4429" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">b_fin</text>
+</g>
+<!-- 6&#45;&gt;7 -->
+<g id="edge13" class="edge">
+<title>6&#45;&gt;7</title>
+<path fill="none" stroke="#000000" d="M1101.9292,-185.9133C1118.2579,-170.2721 1139.3517,-150.0664 1156.5033,-133.6369"/>
+<polygon fill="#000000" stroke="#000000" points="1159.2748,-135.8288 1164.0751,-126.3839 1154.4326,-130.7738 1159.2748,-135.8288"/>
+</g>
+<!-- 5&#45;&gt;7 -->
+<g id="edge12" class="edge">
+<title>5&#45;&gt;7</title>
+<path fill="none" stroke="#000000" d="M1124.4095,-104C1131.2,-104 1138.1345,-104 1144.8025,-104"/>
+<polygon fill="#000000" stroke="#000000" points="1145.0025,-107.5001 1155.0024,-104 1145.0024,-100.5001 1145.0025,-107.5001"/>
+</g>
+<!-- 7&#45;&gt;1 -->
+<g id="edge14" class="edge">
+<title>7&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M1167.9595,-77.6033C1147.8172,-53.6321 1113.9909,-22 1075.7399,-22 225.363,-22 225.363,-22 225.363,-22 164.4555,-22 98.5848,-51.4759 60.2576,-71.897"/>
+<polygon fill="#000000" stroke="#000000" points="58.2344,-69.0135 51.1266,-76.8703 61.5826,-75.1608 58.2344,-69.0135"/>
+</g>
+</g>
+</svg>
diff --git a/docs/statemachine_sdcard.dot b/docs/statemachine_sdcard.dot
new file mode 100644
index 0000000000000000000000000000000000000000..a02bd912d157b8d36a9b548d958e0e80060e2db4
--- /dev/null
+++ b/docs/statemachine_sdcard.dot
@@ -0,0 +1,44 @@
+digraph state_machine {
+rankdir = LR;
+size = "11,8.5";
+label = "SD Controller State Machine";
+center = 1;
+orientation = Portrait;
+nodesep = "0.6";
+ranksep = "1.2";
+1 [label = "INIT", shape = doublecircle]
+	1 -> 2 [label = "INIT"];
+2 [label = "IDLE", shape = circle]
+	2 -> 3 [label = "SEND_CMD"];
+	2 -> 8 [label = "RECEIVE_CMD"];
+	2 -> 9 [label = "READ_DATA"];
+	2 -> 12 [label = "DUMMY_CLK1"];
+	2 -> 13 [label = "DUMMY_CLK2"];
+3 [label = "Send_cmd", shape = circle]
+	3 -> 2 [label = "TIME_UP"];
+4 [label = "Received_cmd", shape = circle]
+	4 -> 2 [label = "TIME_UP"];
+5 [label = "Received_cmd_probe_0", shape = circle]
+	5 -> 6 [label = "*"];
+6 [label = "Received_cmd_probe_1", shape = circle]
+	6 -> 7 [label = "PROBE_SUCCESS"];
+	6 -> 5 [label = "PROBE_FAIL"];
+	6 -> 1 [label = "TIMEOUT"];
+7 [label = "Received_cmd_probe_2", shape = circle]
+	7 -> 8 [label = "*"];
+8 [label = "Received_cmd_probe_3", shape = circle]
+	8 -> 4 [label = "PROBE_SUCCESS"];
+	8 -> 5 [label = "PROBE_FAIL"];
+	8 -> 1 [label = "TIMEOUT"];
+9 [label = "Read_data_probe_0", shape = circle]
+	9 -> 10 [label = "*"];
+10 [label = "Read_data_probe_1", shape = circle]
+	10 -> 9 [label = "PROBE_FAIL"];
+	10 -> 11 [label = "PROBE_SUCCESS"];
+11 [label = "Read_data", shape = circle]
+	11 -> 2 [label = "TIME_UP"];
+12 [label = "Dummy_clk", shape = circle]
+	12 -> 2 [label = "TIME_UP"];
+13 [label = "Dummy_clk2", shape = circle]
+	13 -> 2 [label = "TIME_UP"];
+}
diff --git a/docs/statemachine_sdcard.svg b/docs/statemachine_sdcard.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e3cd55af504d830a75ad7a601567c393f90069c8
--- /dev/null
+++ b/docs/statemachine_sdcard.svg
@@ -0,0 +1,247 @@
+<?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.40.1 (20161225.0304)
+ -->
+<!-- Title: state_machine Pages: 1 -->
+<svg width="792pt" height="525pt"
+ viewBox="0.00 0.00 792.00 525.02" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(.4406 .4406) rotate(0) translate(4 1187.5315)">
+<title>state_machine</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1187.5315 1793.4379,-1187.5315 1793.4379,4 -4,4"/>
+<text text-anchor="middle" x="894.7189" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">SD Controller State Machine</text>
+<!-- 1 -->
+<g id="node1" class="node">
+<title>1</title>
+<ellipse fill="none" stroke="#000000" cx="31.7851" cy="-559.4773" rx="27.5985" ry="27.5985"/>
+<ellipse fill="none" stroke="#000000" cx="31.7851" cy="-559.4773" rx="31.5717" ry="31.5717"/>
+<text text-anchor="middle" x="31.7851" y="-555.2773" font-family="Times,serif" font-size="14.00" fill="#000000">INIT</text>
+</g>
+<!-- 2 -->
+<g id="node2" class="node">
+<title>2</title>
+<ellipse fill="none" stroke="#000000" cx="209.0497" cy="-559.4773" rx="30.4862" ry="30.4862"/>
+<text text-anchor="middle" x="209.0497" y="-555.2773" font-family="Times,serif" font-size="14.00" fill="#000000">IDLE</text>
+</g>
+<!-- 1&#45;&gt;2 -->
+<g id="edge1" class="edge">
+<title>1&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M63.8864,-559.4773C93.198,-559.4773 136.6669,-559.4773 168.3949,-559.4773"/>
+<polygon fill="#000000" stroke="#000000" points="168.6674,-562.9774 178.6674,-559.4773 168.6674,-555.9774 168.6674,-562.9774"/>
+<text text-anchor="middle" x="120.5634" y="-562.2773" font-family="Times,serif" font-size="14.00" fill="#000000">INIT</text>
+</g>
+<!-- 3 -->
+<g id="node3" class="node">
+<title>3</title>
+<ellipse fill="none" stroke="#000000" cx="520.5971" cy="-736.4773" rx="47.3823" ry="47.3823"/>
+<text text-anchor="middle" x="520.5971" y="-732.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Send_cmd</text>
+</g>
+<!-- 2&#45;&gt;3 -->
+<g id="edge2" class="edge">
+<title>2&#45;&gt;3</title>
+<path fill="none" stroke="#000000" d="M235.6121,-574.5682C287.6478,-604.1313 403.7495,-670.0924 470.598,-708.0711"/>
+<polygon fill="#000000" stroke="#000000" points="468.8702,-711.1149 479.2939,-713.0116 472.3281,-705.0286 468.8702,-711.1149"/>
+<text text-anchor="middle" x="332.5429" y="-655.2773" font-family="Times,serif" font-size="14.00" fill="#000000">SEND_CMD</text>
+</g>
+<!-- 8 -->
+<g id="node4" class="node">
+<title>8</title>
+<ellipse fill="none" stroke="#000000" cx="520.5971" cy="-1022.4773" rx="96.1085" ry="96.1085"/>
+<text text-anchor="middle" x="520.5971" y="-1018.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Received_cmd_probe_3</text>
+</g>
+<!-- 2&#45;&gt;8 -->
+<g id="edge3" class="edge">
+<title>2&#45;&gt;8</title>
+<path fill="none" stroke="#000000" d="M212.3069,-589.7277C220.8063,-663.899 245.6581,-852.3244 283.5429,-901.4773 302.3138,-925.8312 365.6386,-957.5666 422.118,-982.4261"/>
+<polygon fill="#000000" stroke="#000000" points="420.913,-985.719 431.4781,-986.5115 423.7132,-979.3034 420.913,-985.719"/>
+<text text-anchor="middle" x="332.5429" y="-963.2773" font-family="Times,serif" font-size="14.00" fill="#000000">RECEIVE_CMD</text>
+</g>
+<!-- 9 -->
+<g id="node5" class="node">
+<title>9</title>
+<ellipse fill="none" stroke="#000000" cx="520.5971" cy="-404.4773" rx="80.6576" ry="80.6576"/>
+<text text-anchor="middle" x="520.5971" y="-400.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Read_data_probe_0</text>
+</g>
+<!-- 2&#45;&gt;9 -->
+<g id="edge4" class="edge">
+<title>2&#45;&gt;9</title>
+<path fill="none" stroke="#000000" d="M229.8518,-537.2473C243.9378,-523.2077 263.5609,-505.5118 283.5429,-493.4773 329.9502,-465.5274 386.6108,-443.8628 432.8991,-428.909"/>
+<polygon fill="#000000" stroke="#000000" points="434.1428,-432.1862 442.6117,-425.82 432.0212,-425.5155 434.1428,-432.1862"/>
+<text text-anchor="middle" x="332.5429" y="-496.2773" font-family="Times,serif" font-size="14.00" fill="#000000">READ_DATA</text>
+</g>
+<!-- 12 -->
+<g id="node6" class="node">
+<title>12</title>
+<ellipse fill="none" stroke="#000000" cx="520.5971" cy="-139.4773" rx="54.1403" ry="54.1403"/>
+<text text-anchor="middle" x="520.5971" y="-135.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Dummy_clk</text>
+</g>
+<!-- 2&#45;&gt;12 -->
+<g id="edge5" class="edge">
+<title>2&#45;&gt;12</title>
+<path fill="none" stroke="#000000" d="M211.661,-529.1932C218.7737,-453.5438 240.8752,-259.0407 283.5429,-212.4773 307.002,-186.8762 394.9816,-164.5601 456.8799,-151.5501"/>
+<polygon fill="#000000" stroke="#000000" points="457.8759,-154.9182 466.9594,-149.4648 456.4577,-148.0634 457.8759,-154.9182"/>
+<text text-anchor="middle" x="332.5429" y="-215.2773" font-family="Times,serif" font-size="14.00" fill="#000000">DUMMY_CLK1</text>
+</g>
+<!-- 13 -->
+<g id="node7" class="node">
+<title>13</title>
+<ellipse fill="none" stroke="#000000" cx="520.5971" cy="-587.4773" rx="58.9841" ry="58.9841"/>
+<text text-anchor="middle" x="520.5971" y="-583.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Dummy_clk2</text>
+</g>
+<!-- 2&#45;&gt;13 -->
+<g id="edge6" class="edge">
+<title>2&#45;&gt;13</title>
+<path fill="none" stroke="#000000" d="M235.2706,-543.6856C249.1034,-536.2691 266.6683,-528.2439 283.5429,-524.4773 326.0523,-514.9885 338.9689,-515.2828 381.5429,-524.4773 408.5299,-530.3055 436.579,-541.8223 460.3572,-553.433"/>
+<polygon fill="#000000" stroke="#000000" points="459.0786,-556.7068 469.5882,-558.0487 462.2092,-550.4459 459.0786,-556.7068"/>
+<text text-anchor="middle" x="332.5429" y="-527.2773" font-family="Times,serif" font-size="14.00" fill="#000000">DUMMY_CLK2</text>
+</g>
+<!-- 3&#45;&gt;2 -->
+<g id="edge7" class="edge">
+<title>3&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M473.0854,-734.6401C421.8832,-730.4955 340.1413,-717.3867 283.5429,-676.4773 256.0803,-656.6272 236.3009,-623.248 224.056,-597.2107"/>
+<polygon fill="#000000" stroke="#000000" points="227.1952,-595.6581 219.8853,-587.9889 220.8171,-598.5427 227.1952,-595.6581"/>
+<text text-anchor="middle" x="332.5429" y="-721.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIME_UP</text>
+</g>
+<!-- 8&#45;&gt;1 -->
+<g id="edge16" class="edge">
+<title>8&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M424.531,-1025.4318C378.4287,-1022.5103 324.4639,-1012.3215 283.5429,-984.4773 143.0481,-888.8791 69.2128,-686.6408 43.0186,-600.1264"/>
+<polygon fill="#000000" stroke="#000000" points="46.3341,-598.9965 40.1301,-590.4081 39.6243,-600.9909 46.3341,-598.9965"/>
+<text text-anchor="middle" x="209.0497" y="-950.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIMEOUT</text>
+</g>
+<!-- 4 -->
+<g id="node8" class="node">
+<title>4</title>
+<ellipse fill="none" stroke="#000000" cx="911.526" cy="-820.4773" rx="62.8079" ry="62.8079"/>
+<text text-anchor="middle" x="911.526" y="-816.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Received_cmd</text>
+</g>
+<!-- 8&#45;&gt;4 -->
+<g id="edge14" class="edge">
+<title>8&#45;&gt;4</title>
+<path fill="none" stroke="#000000" d="M608.0011,-982.5802C656.8566,-959.7592 718.5783,-930.0609 772.4717,-901.4773 797.8593,-888.0123 825.2945,-872.2911 849.0333,-858.3005"/>
+<polygon fill="#000000" stroke="#000000" points="851.1143,-861.136 857.9384,-853.0315 847.5498,-855.1116 851.1143,-861.136"/>
+<text text-anchor="middle" x="716.0616" y="-959.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_SUCCESS</text>
+</g>
+<!-- 5 -->
+<g id="node9" class="node">
+<title>5</title>
+<ellipse fill="none" stroke="#000000" cx="911.526" cy="-1022.4773" rx="96.1085" ry="96.1085"/>
+<text text-anchor="middle" x="911.526" y="-1018.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Received_cmd_probe_0</text>
+</g>
+<!-- 8&#45;&gt;5 -->
+<g id="edge15" class="edge">
+<title>8&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M616.7298,-1022.4773C673.8976,-1022.4773 746.5048,-1022.4773 805.356,-1022.4773"/>
+<polygon fill="#000000" stroke="#000000" points="805.4262,-1025.9774 815.4261,-1022.4773 805.4261,-1018.9774 805.4262,-1025.9774"/>
+<text text-anchor="middle" x="716.0616" y="-1025.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_FAIL</text>
+</g>
+<!-- 10 -->
+<g id="node12" class="node">
+<title>10</title>
+<ellipse fill="none" stroke="#000000" cx="911.526" cy="-404.4773" rx="80.6576" ry="80.6576"/>
+<text text-anchor="middle" x="911.526" y="-400.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Read_data_probe_1</text>
+</g>
+<!-- 9&#45;&gt;10 -->
+<g id="edge17" class="edge">
+<title>9&#45;&gt;10</title>
+<path fill="none" stroke="#000000" d="M601.5978,-404.4773C665.4149,-404.4773 754.3659,-404.4773 820.6127,-404.4773"/>
+<polygon fill="#000000" stroke="#000000" points="820.6291,-407.9774 830.629,-404.4773 820.629,-400.9774 820.6291,-407.9774"/>
+<text text-anchor="middle" x="716.0616" y="-407.2773" font-family="Times,serif" font-size="14.00" fill="#000000">*</text>
+</g>
+<!-- 12&#45;&gt;2 -->
+<g id="edge21" class="edge">
+<title>12&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M468.1056,-124.1636C415.0303,-112.1843 333.8539,-103.9856 283.5429,-147.4773 227.9468,-195.5377 213.7022,-424.7204 210.1706,-518.9141"/>
+<polygon fill="#000000" stroke="#000000" points="206.6631,-519.0678 209.8082,-529.1851 213.6587,-519.3147 206.6631,-519.0678"/>
+<text text-anchor="middle" x="332.5429" y="-150.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIME_UP</text>
+</g>
+<!-- 13&#45;&gt;2 -->
+<g id="edge22" class="edge">
+<title>13&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M461.8945,-582.2014C399.8054,-576.6212 303.507,-567.9665 249.4342,-563.1068"/>
+<polygon fill="#000000" stroke="#000000" points="249.4785,-559.5967 239.2053,-562.1875 248.8518,-566.5686 249.4785,-559.5967"/>
+<text text-anchor="middle" x="332.5429" y="-576.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIME_UP</text>
+</g>
+<!-- 4&#45;&gt;2 -->
+<g id="edge8" class="edge">
+<title>4&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M849.0468,-826.1836C755.4185,-833.0331 573.7672,-839.7087 424.5429,-805.4773 357.643,-790.1307 331.2544,-791.8201 283.5429,-742.4773 244.9654,-702.5808 225.3957,-640.0206 216.2166,-599.3781"/>
+<polygon fill="#000000" stroke="#000000" points="219.6262,-598.5851 214.1015,-589.5447 212.7827,-600.0571 219.6262,-598.5851"/>
+<text text-anchor="middle" x="520.5971" y="-832.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIME_UP</text>
+</g>
+<!-- 6 -->
+<g id="node10" class="node">
+<title>6</title>
+<ellipse fill="none" stroke="#000000" cx="1302.4548" cy="-991.4773" rx="96.1085" ry="96.1085"/>
+<text text-anchor="middle" x="1302.4548" y="-987.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Received_cmd_probe_1</text>
+</g>
+<!-- 5&#45;&gt;6 -->
+<g id="edge9" class="edge">
+<title>5&#45;&gt;6</title>
+<path fill="none" stroke="#000000" d="M1000.0051,-984.8029C1016.5343,-979.2721 1033.8706,-974.4449 1050.5802,-971.4773 1098.5633,-962.9556 1152.3361,-965.597 1197.8366,-971.3174"/>
+<polygon fill="#000000" stroke="#000000" points="1197.6393,-974.8217 1208.0122,-972.6646 1198.5582,-967.8823 1197.6393,-974.8217"/>
+<text text-anchor="middle" x="1106.9904" y="-974.2773" font-family="Times,serif" font-size="14.00" fill="#000000">*</text>
+</g>
+<!-- 6&#45;&gt;1 -->
+<g id="edge12" class="edge">
+<title>6&#45;&gt;1</title>
+<path fill="none" stroke="#000000" d="M1281.1159,-897.7262C1244.9724,-755.7673 1160.3109,-483.6591 1007.5802,-302.4773 874.1914,-144.2404 815.1326,-108.1005 616.6514,-49.4773 472.6744,-6.9523 396.2825,-6.3435 283.5429,-105.4773 149.1014,-223.6938 71.7205,-431.7882 43.7919,-519.1123"/>
+<polygon fill="#000000" stroke="#000000" points="40.3738,-518.3142 40.7066,-528.9038 47.0502,-520.418 40.3738,-518.3142"/>
+<text text-anchor="middle" x="520.5971" y="-52.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIMEOUT</text>
+</g>
+<!-- 6&#45;&gt;5 -->
+<g id="edge11" class="edge">
+<title>6&#45;&gt;5</title>
+<path fill="none" stroke="#000000" d="M1206.5746,-999.0804C1149.3042,-1003.6218 1076.4711,-1009.3974 1017.4983,-1014.0738"/>
+<polygon fill="#000000" stroke="#000000" points="1017.1002,-1010.5943 1007.4082,-1014.874 1017.6536,-1017.5724 1017.1002,-1010.5943"/>
+<text text-anchor="middle" x="1106.9904" y="-1013.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_FAIL</text>
+</g>
+<!-- 7 -->
+<g id="node11" class="node">
+<title>7</title>
+<ellipse fill="none" stroke="#000000" cx="1693.3836" cy="-1087.4773" rx="96.1085" ry="96.1085"/>
+<text text-anchor="middle" x="1693.3836" y="-1083.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Received_cmd_probe_2</text>
+</g>
+<!-- 6&#45;&gt;7 -->
+<g id="edge10" class="edge">
+<title>6&#45;&gt;7</title>
+<path fill="none" stroke="#000000" d="M1396.092,-1014.4716C1454.5065,-1028.8164 1529.7547,-1047.2951 1589.9296,-1062.0722"/>
+<polygon fill="#000000" stroke="#000000" points="1589.2876,-1065.5184 1599.8338,-1064.5043 1590.957,-1058.7204 1589.2876,-1065.5184"/>
+<text text-anchor="middle" x="1497.9192" y="-1053.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_SUCCESS</text>
+</g>
+<!-- 7&#45;&gt;8 -->
+<g id="edge13" class="edge">
+<title>7&#45;&gt;8</title>
+<path fill="none" stroke="#000000" d="M1599.4833,-1108.3341C1437.7758,-1140.8878 1096.9756,-1194.7114 815.4717,-1140.4773 745.8464,-1127.0634 671.7668,-1097.3521 615.2752,-1071.1007"/>
+<polygon fill="#000000" stroke="#000000" points="616.5475,-1067.8316 606.0078,-1066.7521 613.5739,-1074.1686 616.5475,-1067.8316"/>
+<text text-anchor="middle" x="1106.9904" y="-1166.2773" font-family="Times,serif" font-size="14.00" fill="#000000">*</text>
+</g>
+<!-- 10&#45;&gt;9 -->
+<g id="edge18" class="edge">
+<title>10&#45;&gt;9</title>
+<path fill="none" stroke="#000000" d="M832.0459,-388.3539C812.6398,-385.084 791.8768,-382.1396 772.4717,-380.4773 722.5123,-376.1975 709.6108,-376.1975 659.6514,-380.4773 643.5816,-381.8539 626.5805,-384.1097 610.1899,-386.7015"/>
+<polygon fill="#000000" stroke="#000000" points="609.3819,-383.2871 600.0772,-388.3539 610.5107,-390.1955 609.3819,-383.2871"/>
+<text text-anchor="middle" x="716.0616" y="-383.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_FAIL</text>
+</g>
+<!-- 11 -->
+<g id="node13" class="node">
+<title>11</title>
+<ellipse fill="none" stroke="#000000" cx="1302.4548" cy="-293.4773" rx="47.3564" ry="47.3564"/>
+<text text-anchor="middle" x="1302.4548" y="-289.2773" font-family="Times,serif" font-size="14.00" fill="#000000">Read_data</text>
+</g>
+<!-- 10&#45;&gt;11 -->
+<g id="edge19" class="edge">
+<title>10&#45;&gt;11</title>
+<path fill="none" stroke="#000000" d="M989.6967,-382.2815C1065.7826,-360.6778 1179.4953,-328.3903 1246.8024,-309.2792"/>
+<polygon fill="#000000" stroke="#000000" points="1248.126,-312.5418 1256.7897,-306.4434 1246.2139,-305.8079 1248.126,-312.5418"/>
+<text text-anchor="middle" x="1106.9904" y="-365.2773" font-family="Times,serif" font-size="14.00" fill="#000000">PROBE_SUCCESS</text>
+</g>
+<!-- 11&#45;&gt;2 -->
+<g id="edge20" class="edge">
+<title>11&#45;&gt;2</title>
+<path fill="none" stroke="#000000" d="M1256.2736,-282.4389C1121.6673,-252.6201 720.5191,-180.5964 424.5429,-302.4773 323.8622,-343.9368 255.2876,-461.9533 225.6345,-522.563"/>
+<polygon fill="#000000" stroke="#000000" points="222.3837,-521.2473 221.2106,-531.777 228.6941,-524.2771 222.3837,-521.2473"/>
+<text text-anchor="middle" x="716.0616" y="-246.2773" font-family="Times,serif" font-size="14.00" fill="#000000">TIME_UP</text>
+</g>
+</g>
+</svg>
diff --git a/docs/toplevel-qsys.svg b/docs/toplevel-qsys.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9ba5fec7991955618e4d58d06c38d3362caabbb0
--- /dev/null
+++ b/docs/toplevel-qsys.svg
@@ -0,0 +1,4236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 553 420" style="enable-background:new 0 0 553 420;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#DCE6DC;}
+	.st1{fill:none;stroke:#2D2D2D;stroke-width:4.705480e-02;}
+	.st2{fill:none;stroke:#2D2D2D;stroke-width:0.1412;}
+	.st3{font-family:'Helvetica';}
+	.st4{font-size:0.5647px;}
+	.st5{fill:none;stroke:#06476F;stroke-width:4.705480e-02;}
+	.st6{fill:#06476F;}
+	.st7{font-size:0.4705px;}
+	.st8{fill:none;stroke:#06476F;stroke-width:0.1412;}
+	.st9{fill:none;stroke:#0000FF;stroke-width:4.705480e-02;}
+	.st10{fill:none;stroke:#0000FF;stroke-width:0.1412;}
+	.st11{fill:#73ACAC;}
+	.st12{fill:#81BF5F;}
+	.st13{fill:#2D2D2D;}
+</style>
+<font horiz-adv-x="2048">
+<!-- Helvetica is a registered trademark of Linotype AG -->
+<!-- Copyright: Copyright 2017 Adobe System Incorporated. All rights reserved. -->
+<font-face font-family="Helvetica" units-per-em="2048" underline-position="-155" underline-thickness="101"/>
+<missing-glyph horiz-adv-x="1298" d="M66,0l0,1469l1166,0l0,-1469M1048,184l0,1101l-798,0l0,-1101z"/>
+<glyph unicode="'" horiz-adv-x="391" d="M338,1469l-33,-588l-116,0l-33,588z"/>
+<glyph unicode="." horiz-adv-x="569" d="M175,218l209,0l0,-218l-209,0z"/>
+<glyph unicode="0" horiz-adv-x="1139" d="M956,1203C1020,1085 1052,923 1052,718C1052,523 1023,362 965,235C881,52 744,-39 553,-39C381,-39 253,36 169,185C99,310 64,477 64,687C64,850 85,989 127,1106C206,1323 348,1432 554,1432C739,1432 873,1356 956,1203M858,711C858,874 838,1008 798,1113C758,1218 680,1270 565,1270C459,1270 382,1220 333,1121C284,1021 259,874 259,680C259,534 275,417 306,328C354,193 436,125 552,125C645,125 720,166 775,249C830,332 858,486 858,711z"/>
+<glyph unicode="1" horiz-adv-x="1139" d="M196,1014l0,138C326,1165 417,1186 468,1216C519,1245 558,1315 583,1426l142,0l0,-1426l-192,0l0,1014z"/>
+<glyph unicode="2" horiz-adv-x="1139" d="M400,571l192,111C678,732 738,775 773,810C828,865 855,929 855,1000C855,1083 830,1150 780,1199C730,1248 663,1272 580,1272C457,1272 371,1225 324,1132C299,1082 285,1013 282,924l-183,0C101,1049 124,1150 168,1229C246,1368 384,1437 581,1437C745,1437 865,1393 941,1304C1016,1215 1054,1117 1054,1008C1054,893 1014,795 933,714C886,667 803,609 682,542l-137,-76C480,430 428,396 391,363C324,305 282,241 265,170l782,0l0,-170l-983,0C71,123 96,231 141,322C185,413 271,496 400,571z"/>
+<glyph unicode="3" horiz-adv-x="1139" d="M49,440l188,0C245,347 262,280 289,238C336,163 420,125 542,125C637,125 713,150 770,201C827,252 856,317 856,397C856,496 826,565 766,604C705,643 621,663 514,663C502,663 490,663 478,663C465,662 453,662 440,661l0,159C459,818 474,817 487,816C500,815 513,815 528,815C595,815 651,826 694,847C770,884 808,951 808,1047C808,1118 783,1173 732,1212C681,1251 622,1270 555,1270C435,1270 352,1230 306,1150C281,1106 266,1043 263,962l-178,0C85,1069 106,1159 149,1234C222,1367 351,1434 536,1434C682,1434 795,1402 875,1337C955,1272 995,1177 995,1054C995,966 971,895 924,840C895,806 857,779 810,760C885,739 944,700 987,641C1029,582 1050,509 1050,424C1050,287 1005,176 915,90C825,4 697,-39 532,-39C363,-39 240,8 164,101C87,194 49,307 49,440z"/>
+<glyph unicode="4" horiz-adv-x="1139" d="M677,507l0,649l-459,-649M680,0l0,350l-628,0l0,176l656,910l152,0l0,-929l211,0l0,-157l-211,0l0,-350z"/>
+<glyph unicode="5" horiz-adv-x="1139" d="M253,365C265,262 313,191 396,152C439,132 488,122 544,122C651,122 730,156 781,224C832,292 858,367 858,450C858,550 828,627 767,682C706,737 632,764 547,764C485,764 432,752 388,728C343,704 305,671 274,628l-156,9l109,771l744,0l0,-174l-609,0l-61,-398C334,861 366,880 396,893C449,915 511,926 581,926C712,926 824,884 915,799C1006,714 1052,607 1052,477C1052,342 1010,222 927,119C843,16 709,-36 526,-36C409,-36 306,-3 217,63C127,128 77,229 66,365z"/>
+<glyph unicode="6" horiz-adv-x="1139" d="M1028,1057l-178,0C839,1114 822,1158 799,1190C756,1250 690,1280 602,1280C501,1280 421,1234 362,1141C303,1048 270,914 263,741C304,802 356,847 419,877C476,904 540,917 611,917C731,917 836,879 925,802C1014,725 1059,611 1059,459C1059,329 1017,214 932,114C847,13 727,-37 570,-37C436,-37 320,14 223,116C126,217 77,388 77,629C77,807 99,958 142,1082C225,1319 378,1438 599,1438C759,1438 871,1397 934,1314C997,1231 1028,1145 1028,1057M869,444C869,517 848,587 806,654C764,720 688,753 577,753C500,753 432,727 374,676C315,625 286,547 286,444C286,353 313,277 366,216C419,154 492,123 586,123C681,123 752,155 799,219C846,282 869,357 869,444z"/>
+<glyph unicode="7" horiz-adv-x="1139" d="M1071,1408l0,-157C1025,1206 964,1129 888,1018C811,907 744,788 685,660C627,535 583,422 553,319C534,253 509,147 478,0l-199,0C324,273 424,545 579,816C670,975 766,1112 867,1227l-792,0l0,181z"/>
+<glyph unicode="8" horiz-adv-x="1139" d="M810,1057C810,1110 789,1159 746,1204C703,1249 638,1271 551,1271C464,1271 402,1249 363,1204C324,1159 305,1107 305,1047C305,980 330,927 380,889C430,851 489,832 557,832C636,832 698,854 743,899C788,943 810,996 810,1057M858,392C858,485 830,555 773,603C716,651 644,675 555,675C469,675 399,651 345,602C290,553 263,485 263,398C263,323 288,259 338,205C387,150 464,123 568,123C651,123 721,146 776,191C831,236 858,303 858,392M195,838C142,891 116,961 116,1046C116,1153 155,1244 232,1321C309,1398 419,1436 561,1436C698,1436 806,1400 884,1328C962,1255 1001,1171 1001,1074C1001,985 978,912 933,857C908,826 868,795 815,765C874,738 921,706 955,671C1018,604 1050,518 1050,411C1050,285 1008,178 923,91C838,3 719,-41 564,-41C425,-41 307,-3 211,73C114,148 66,258 66,402C66,487 87,560 128,622C169,683 231,730 312,763C262,784 223,809 195,838z"/>
+<glyph unicode="9" horiz-adv-x="1139" d="M272,346C277,247 316,178 387,140C424,120 465,110 511,110C597,110 670,146 731,218C792,289 835,435 860,654C820,591 771,546 712,521C653,495 589,482 521,482C383,482 274,525 194,611C113,697 73,808 73,943C73,1073 113,1187 192,1286C271,1385 388,1434 543,1434C752,1434 896,1340 975,1152C1019,1049 1041,919 1041,764C1041,589 1015,433 962,298C875,73 727,-40 518,-40C378,-40 272,-3 199,70C126,143 90,235 90,346M829,957C829,1062 803,1141 750,1193C697,1244 629,1270 547,1270C459,1270 389,1241 338,1182C286,1123 260,1044 260,945C260,852 283,778 328,723C373,668 446,640 545,640C616,640 682,664 741,711C800,758 829,840 829,957z"/>
+<glyph unicode=":" horiz-adv-x="569" d="M227,1057l209,0l0,-218l-209,0M227,218l209,0l0,-218l-209,0z"/>
+<glyph unicode="A" horiz-adv-x="1366" d="M910,602l-223,649l-237,-649M583,1469l225,0l533,-1469l-218,0l-149,440l-581,0l-159,-440l-204,0z"/>
+<glyph unicode="B" horiz-adv-x="1366" d="M708,848C792,848 857,860 904,883C977,920 1014,986 1014,1081C1014,1177 975,1242 897,1275C853,1294 788,1303 701,1303l-355,0l0,-455M775,170C897,170 984,205 1036,276C1069,321 1085,375 1085,438C1085,545 1037,617 942,656C891,677 824,687 741,687l-395,0l0,-517M151,1469l631,0C954,1469 1076,1418 1149,1315C1192,1254 1213,1184 1213,1105C1213,1012 1187,936 1134,877C1107,846 1067,817 1016,791C1091,762 1148,730 1185,694C1251,630 1284,542 1284,429C1284,334 1254,249 1195,172C1106,57 965,0 772,0l-621,0z"/>
+<glyph unicode="C" horiz-adv-x="1479" d="M1379,1028l-194,0C1163,1123 1119,1198 1054,1253C988,1308 896,1336 777,1336C632,1336 516,1285 427,1184C338,1082 293,926 293,716C293,544 333,405 414,298C494,191 614,137 773,137C920,137 1031,193 1108,306C1149,365 1179,443 1199,540l194,0C1376,385 1318,256 1221,151C1104,25 947,-38 749,-38C578,-38 435,14 319,117C166,254 90,465 90,750C90,967 147,1144 262,1283C386,1434 557,1509 775,1509C961,1509 1105,1460 1208,1362C1311,1264 1368,1153 1379,1028z"/>
+<glyph unicode="D" horiz-adv-x="1479" d="M720,170C787,170 843,177 886,191C963,217 1027,267 1076,341C1115,400 1144,476 1161,569C1171,624 1176,676 1176,723C1176,905 1140,1046 1068,1147C995,1248 879,1298 718,1298l-353,0l0,-1128M165,1469l595,0C962,1469 1119,1397 1230,1254C1329,1125 1379,959 1379,757C1379,601 1350,460 1291,334C1188,111 1010,0 758,0l-593,0z"/>
+<glyph unicode="E" horiz-adv-x="1366" d="M175,1469l1071,0l0,-180l-877,0l0,-446l811,0l0,-170l-811,0l0,-498l892,0l0,-175l-1086,0z"/>
+<glyph unicode="F" horiz-adv-x="1251" d="M175,1469l1019,0l0,-180l-820,0l0,-446l721,0l0,-175l-721,0l0,-668l-199,0z"/>
+<glyph unicode="G" horiz-adv-x="1593" d="M1149,1427C1295,1350 1384,1216 1417,1024l-197,0C1196,1131 1146,1210 1071,1259C996,1308 901,1332 786,1332C650,1332 536,1281 443,1179C350,1077 303,925 303,723C303,548 341,406 418,297C495,187 620,132 793,132C926,132 1036,171 1123,248C1210,325 1254,449 1256,621l-460,0l0,165l645,0l0,-786l-128,0l-48,189C1198,115 1138,64 1086,35C999,-14 888,-39 753,-39C579,-39 429,17 304,130C167,271 99,465 99,712C99,958 166,1154 299,1299C426,1438 590,1507 791,1507C929,1507 1048,1480 1149,1427z"/>
+<glyph unicode="H" horiz-adv-x="1479" d="M161,1469l201,0l0,-607l764,0l0,607l201,0l0,-1469l-201,0l0,687l-764,0l0,-687l-201,0z"/>
+<glyph unicode="I" horiz-adv-x="569" d="M201,1469l201,0l0,-1469l-201,0z"/>
+<glyph unicode="K" horiz-adv-x="1366" d="M156,1469l194,0l0,-716l716,716l275,0l-611,-592l628,-877l-259,0l-514,737l-235,-225l0,-512l-194,0z"/>
+<glyph unicode="L" horiz-adv-x="1139" d="M156,1469l199,0l0,-1294l744,0l0,-175l-943,0z"/>
+<glyph unicode="M" horiz-adv-x="1706" d="M151,1469l285,0l422,-1242l419,1242l282,0l0,-1469l-189,0l0,867C1370,897 1371,947 1372,1016C1373,1085 1374,1160 1374,1239l-419,-1239l-197,0l-422,1239l0,-45C336,1158 337,1103 339,1030C340,956 341,902 341,867l0,-867l-190,0z"/>
+<glyph unicode="N" horiz-adv-x="1479" d="M156,1469l235,0l742,-1190l0,1190l189,0l0,-1469l-223,0l-753,1189l0,-1189l-190,0z"/>
+<glyph unicode="O" horiz-adv-x="1593" d="M1366,1259C1463,1129 1512,963 1512,760C1512,541 1456,358 1345,213C1214,42 1028,-43 786,-43C560,-43 382,32 253,181C138,325 80,507 80,727C80,926 129,1096 228,1237C355,1418 542,1509 790,1509C1049,1509 1241,1426 1366,1259M1308,757C1308,930 1263,1069 1173,1174C1082,1279 959,1332 802,1332C650,1332 526,1280 430,1176C334,1071 286,917 286,714C286,551 327,414 410,303C492,191 625,135 810,135C985,135 1112,198 1191,324C1269,449 1308,594 1308,757z"/>
+<glyph unicode="P" horiz-adv-x="1366" d="M175,1469l661,0C967,1469 1072,1432 1152,1359C1232,1285 1272,1181 1272,1048C1272,933 1236,834 1165,749C1094,664 984,621 836,621l-462,0l0,-621l-199,0M951,1267C907,1288 847,1298 770,1298l-396,0l0,-509l396,0C859,789 932,808 988,846C1043,884 1071,951 1071,1047C1071,1155 1031,1228 951,1267z"/>
+<glyph unicode="Q" horiz-adv-x="1593" d="M1500,4l-100,-121l-227,173C1118,26 1059,2 996,-16C932,-34 862,-43 787,-43C559,-43 380,32 251,181C137,326 80,508 80,727C80,926 129,1096 228,1237C355,1418 542,1509 790,1509C1049,1509 1241,1426 1366,1259C1463,1129 1512,963 1512,760C1512,665 1500,574 1477,487C1442,354 1382,245 1298,161M1021,177l-161,126l100,123l192,-149C1213,346 1254,424 1276,510C1297,596 1308,678 1308,757C1308,930 1263,1069 1173,1174C1082,1279 959,1332 802,1332C643,1332 518,1282 425,1181C332,1080 286,924 286,714C286,537 331,397 420,292C509,187 639,135 811,135C852,135 891,138 927,144C963,149 994,160 1021,177z"/>
+<glyph unicode="R" horiz-adv-x="1479" d="M839,796C932,796 1006,815 1061,852C1115,889 1142,957 1142,1054C1142,1159 1104,1230 1028,1268C987,1288 933,1298 865,1298l-486,0l0,-502M180,1469l680,0C972,1469 1064,1453 1137,1420C1275,1357 1344,1242 1344,1073C1344,985 1326,913 1290,857C1253,801 1202,756 1137,722C1194,699 1238,668 1267,630C1296,592 1312,530 1315,445l7,-197C1324,192 1329,150 1336,123C1348,76 1369,46 1400,33l0,-33l-244,0C1149,13 1144,29 1140,49C1136,69 1133,108 1130,165l-12,245C1113,506 1078,570 1011,603C973,621 913,630 832,630l-453,0l0,-630l-199,0z"/>
+<glyph unicode="S" horiz-adv-x="1366" d="M286,474C291,391 310,323 345,271C411,174 527,125 694,125C769,125 837,136 898,157C1017,198 1076,272 1076,379C1076,459 1051,516 1001,550C950,583 871,612 763,637l-199,45C434,711 342,744 288,779C195,840 148,932 148,1054C148,1186 194,1294 285,1379C376,1464 506,1506 673,1506C827,1506 958,1469 1066,1395C1173,1320 1227,1201 1227,1038l-187,0C1030,1117 1009,1177 976,1219C915,1296 812,1334 667,1334C550,1334 465,1309 414,1260C363,1211 337,1153 337,1088C337,1016 367,963 427,930C466,909 555,882 694,850l206,-47C999,780 1076,749 1130,710C1223,641 1270,542 1270,411C1270,248 1211,132 1093,62C974,-8 837,-43 680,-43C497,-43 354,4 251,97C148,190 97,315 99,474z"/>
+<glyph unicode="T" horiz-adv-x="1251" d="M1225,1469l0,-175l-495,0l0,-1294l-202,0l0,1294l-495,0l0,175z"/>
+<glyph unicode="U" horiz-adv-x="1479" d="M372,1469l0,-908C372,454 392,366 432,295C491,188 591,135 732,135C901,135 1015,193 1076,308C1109,371 1125,455 1125,561l0,908l202,0l0,-825C1327,463 1303,324 1254,227C1165,50 996,-39 748,-39C500,-39 332,50 243,227C194,324 170,463 170,644l0,825z"/>
+<glyph unicode="V" horiz-adv-x="1366" d="M272,1469l422,-1251l417,1251l223,0l-536,-1469l-211,0l-535,1469z"/>
+<glyph unicode="W" horiz-adv-x="1933" d="M253,1469l277,-1195l332,1195l216,0l332,-1195l277,1195l218,0l-386,-1469l-209,0l-339,1218l-341,-1218l-209,0l-384,1469z"/>
+<glyph unicode="X" horiz-adv-x="1366" d="M282,0l-240,0l526,753l-493,716l249,0l375,-562l372,562l237,0l-493,-716l517,-753l-247,0l-396,604z"/>
+<glyph unicode="Y" horiz-adv-x="1366" d="M42,1469l232,0l422,-706l422,706l233,0l-555,-877l0,-592l-199,0l0,592z"/>
+<glyph unicode="[" horiz-adv-x="569" d="M128,1479l384,0l0,-147l-214,0l0,-1588l214,0l0,-147l-384,0z"/>
+<glyph unicode="]" horiz-adv-x="569" d="M47,-256l213,0l0,1588l-213,0l0,147l384,0l0,-1882l-384,0z"/>
+<glyph unicode="_" horiz-adv-x="1139" d="M0,-256l0,101l1139,0l0,-101z"/>
+<glyph unicode="a" horiz-adv-x="1139" d="M462,117C525,117 587,132 646,161C746,210 796,289 796,400l0,145C774,531 746,519 711,510C676,501 642,494 609,490l-109,-14C435,467 386,454 353,435C298,404 270,354 270,285C270,233 289,192 327,162C365,132 410,117 462,117M706,649C747,654 775,672 789,701C797,717 801,740 801,770C801,831 779,876 736,904C692,931 629,945 548,945C454,945 387,920 348,869C326,841 312,799 305,744l-168,0C140,876 183,968 266,1020C348,1071 443,1097 552,1097C678,1097 780,1073 859,1025C937,977 976,902 976,801l0,-617C976,165 980,150 988,139C995,128 1011,122 1036,122C1044,122 1053,123 1063,124C1073,125 1084,126 1095,128l0,-133C1067,-13 1046,-18 1031,-20C1016,-22 996,-23 971,-23C909,-23 864,-1 836,43C821,66 811,99 805,142C768,94 716,52 647,17C578,-18 503,-36 420,-36C321,-36 240,-6 177,55C114,115 82,190 82,281C82,380 113,457 175,512C237,567 318,600 419,613z"/>
+<glyph unicode="b" horiz-adv-x="1139" d="M118,1474l175,0l0,-533C332,992 379,1032 434,1059C489,1086 548,1099 612,1099C745,1099 854,1053 937,962C1020,870 1061,735 1061,556C1061,387 1020,246 938,134C856,22 742,-34 597,-34C516,-34 447,-14 391,25C358,48 322,86 284,137l0,-137l-166,0M877,547C877,660 853,753 805,827C756,901 685,938 591,938C509,938 437,908 376,847C314,786 283,686 283,547C283,446 296,365 321,302C368,184 457,125 586,125C683,125 756,164 805,241C853,318 877,420 877,547z"/>
+<glyph unicode="c" horiz-adv-x="1024" d="M976,711l-175,0C790,777 766,832 728,876C690,919 629,941 545,941C430,941 348,885 299,773C267,700 251,611 251,504C251,397 274,306 319,233C364,160 436,123 533,123C608,123 667,146 711,192C754,237 784,300 801,379l175,0C956,237 906,133 826,68C746,2 644,-31 519,-31C379,-31 267,20 184,123C101,225 59,353 59,506C59,694 105,840 196,945C287,1050 404,1102 545,1102C666,1102 764,1073 840,1014C915,955 961,854 976,711z"/>
+<glyph unicode="d" horiz-adv-x="1139" d="M553,119C636,119 705,155 759,227C812,298 839,401 839,535C839,670 811,771 756,836C701,901 632,933 551,933C460,933 387,898 331,829C274,760 246,658 246,523C246,408 270,312 319,235C368,158 446,119 553,119M723,1038C755,1018 791,983 832,933l0,541l173,0l0,-1474l-162,0l0,149C801,83 751,35 694,6C637,-23 571,-38 497,-38C378,-38 274,12 187,113C100,213 56,346 56,513C56,669 96,804 176,919C255,1033 369,1090 517,1090C599,1090 668,1073 723,1038z"/>
+<glyph unicode="e" horiz-adv-x="1139" d="M962,903C998,849 1022,786 1034,714C1045,665 1050,586 1050,478l-785,0C268,369 294,282 342,217C390,151 464,118 565,118C659,118 734,149 790,211C822,247 845,289 858,336l177,0C1030,297 1015,253 989,205C962,156 933,117 900,86C845,33 778,-3 697,-22C654,-33 605,-38 550,-38C417,-38 304,11 211,108C118,205 72,340 72,515C72,687 119,827 212,934C305,1041 427,1095 578,1095C654,1095 728,1077 799,1042C870,1006 925,960 962,903M865,621C858,699 841,761 814,808C765,895 682,938 567,938C484,938 415,908 359,849C303,789 273,713 270,621z"/>
+<glyph unicode="f" horiz-adv-x="569" d="M216,1398C258,1459 339,1490 459,1490C470,1490 482,1490 494,1489C506,1488 520,1487 535,1486l0,-164C516,1323 503,1324 495,1325C486,1325 478,1325 471,1325C416,1325 384,1311 373,1283C362,1254 357,1182 357,1066l178,0l0,-142l-180,0l0,-924l-178,0l0,924l-149,0l0,142l149,0l0,168C180,1309 193,1363 216,1398z"/>
+<glyph unicode="g" horiz-adv-x="1139" d="M730,1028C764,1005 799,971 834,926l0,135l166,0l0,-974C1000,-49 980,-156 940,-235C865,-380 724,-453 517,-453C402,-453 305,-427 226,-375C147,-324 103,-243 94,-133l183,0C286,-181 303,-218 329,-244C370,-284 434,-304 521,-304C659,-304 749,-255 792,-158C817,-101 829,2 827,149C791,94 748,54 697,27C646,0 579,-13 496,-13C380,-13 279,28 192,111C105,193 61,329 61,519C61,698 105,838 193,939C280,1040 386,1090 510,1090C594,1090 667,1069 730,1028M543,931C416,931 330,872 283,753C258,690 246,607 246,504C246,383 271,292 320,229C369,166 434,134 517,134C646,134 737,192 790,309C819,375 834,452 834,540C834,673 807,771 752,835C697,899 628,931 543,931z"/>
+<glyph unicode="h" horiz-adv-x="1139" d="M132,1474l180,0l0,-548C355,980 393,1018 427,1040C485,1078 557,1097 644,1097C799,1097 905,1043 960,934C990,875 1005,792 1005,687l0,-687l-185,0l0,675C820,754 810,811 790,848C757,907 696,936 606,936C531,936 464,910 403,859C342,808 312,711 312,568l0,-568l-180,0z"/>
+<glyph unicode="i" horiz-adv-x="455" d="M132,1066l183,0l0,-1066l-183,0M132,1469l183,0l0,-204l-183,0z"/>
+<glyph unicode="j" horiz-adv-x="455" d="M312,1261l-180,0l0,208l180,0M-38,-271C43,-268 91,-261 108,-249C124,-238 132,-201 132,-140l0,1206l180,0l0,-1225C312,-237 299,-295 274,-334C232,-399 152,-432 35,-432C26,-432 17,-432 8,-431C-2,-430 -17,-429 -38,-427z"/>
+<glyph unicode="k" horiz-adv-x="1024" d="M128,1469l173,0l0,-853l462,455l230,0l-410,-401l433,-670l-230,0l-334,540l-151,-138l0,-402l-173,0z"/>
+<glyph unicode="l" horiz-adv-x="455" d="M137,1469l180,0l0,-1469l-180,0z"/>
+<glyph unicode="m" horiz-adv-x="1706" d="M132,1071l178,0l0,-152C353,972 391,1010 426,1034C485,1075 553,1095 628,1095C713,1095 782,1074 834,1032C863,1008 890,973 914,926C954,983 1001,1026 1055,1054C1109,1081 1170,1095 1237,1095C1381,1095 1479,1043 1531,939C1559,883 1573,808 1573,713l0,-713l-187,0l0,744C1386,815 1368,864 1333,891C1297,918 1253,931 1202,931C1131,931 1071,907 1020,860C969,813 943,734 943,623l0,-623l-183,0l0,699C760,772 751,825 734,858C707,908 656,933 581,933C513,933 451,907 396,854C340,801 312,706 312,568l0,-568l-180,0z"/>
+<glyph unicode="n" horiz-adv-x="1139" d="M132,1071l171,0l0,-152C354,982 407,1027 464,1054C521,1081 584,1095 653,1095C805,1095 908,1042 961,936C990,878 1005,795 1005,687l0,-687l-183,0l0,675C822,740 812,793 793,833C761,900 703,933 619,933C576,933 541,929 514,920C465,905 421,876 384,832C354,797 335,760 326,723C317,685 312,631 312,561l0,-561l-180,0z"/>
+<glyph unicode="o" horiz-adv-x="1139" d="M869,553C869,653 853,734 821,797C770,896 683,945 559,945C449,945 369,903 319,819C269,735 244,634 244,515C244,401 269,306 319,230C369,154 448,116 557,116C676,116 758,161 803,252C847,342 869,442 869,553M1057,558C1057,385 1015,243 931,130C847,17 717,-39 540,-39C393,-39 276,11 189,111C102,210 59,344 59,512C59,692 105,835 196,942C287,1049 410,1102 564,1102C702,1102 819,1056 914,964C1009,872 1057,737 1057,558z"/>
+<glyph unicode="p" horiz-adv-x="1139" d="M877,542C877,627 865,701 840,762C793,880 708,939 584,939C459,939 374,877 328,752C303,685 291,601 291,498C291,415 303,345 328,287C375,176 460,121 584,121C668,121 738,156 794,227C849,297 877,402 877,542M118,1066l175,0l0,-142C329,973 368,1010 411,1037C472,1077 543,1097 625,1097C746,1097 849,1051 934,958C1019,865 1061,732 1061,559C1061,326 1000,159 878,59C801,-4 711,-36 608,-36C527,-36 460,-18 405,17C373,37 337,71 298,120l0,-547l-180,0z"/>
+<glyph unicode="q" horiz-adv-x="1139" d="M287,288C333,177 415,121 534,121C659,121 746,180 793,297C819,362 832,444 832,545C832,638 818,715 789,777C740,883 655,936 532,936C454,936 387,902 332,835C276,767 248,662 248,521C248,428 261,351 287,288M738,1028C771,1004 803,969 834,922l0,149l171,0l0,-1498l-181,0l0,550C794,75 753,37 700,9C647,-20 580,-34 501,-34C387,-34 285,11 195,100C105,189 60,325 60,508C60,679 102,820 187,930C271,1040 380,1095 514,1095C603,1095 677,1073 738,1028z"/>
+<glyph unicode="r" horiz-adv-x="682" d="M137,1071l171,0l0,-185C322,922 356,966 411,1018C466,1069 529,1095 600,1095C603,1095 609,1095 617,1094C625,1093 639,1092 658,1090l0,-190C647,902 638,903 629,904C620,905 610,905 599,905C508,905 439,876 390,818C341,759 317,692 317,616l0,-616l-180,0z"/>
+<glyph unicode="s" horiz-adv-x="1024" d="M239,336C244,276 259,230 284,198C329,140 408,111 520,111C587,111 645,126 696,155C747,184 772,228 772,289C772,335 752,370 711,394C685,409 634,426 557,445l-143,36C323,504 255,529 212,557C135,606 96,673 96,759C96,860 133,942 206,1005C279,1068 377,1099 500,1099C661,1099 778,1052 849,957C894,897 915,832 914,763l-170,0C741,804 726,841 701,874C660,921 588,945 486,945C418,945 367,932 332,906C297,880 279,846 279,803C279,756 302,719 348,691C375,674 414,660 466,647l119,-29C714,587 801,556 845,527C915,481 950,409 950,310C950,215 914,132 842,63C769,-6 659,-41 511,-41C352,-41 239,-5 173,68C106,140 71,229 66,336z"/>
+<glyph unicode="t" horiz-adv-x="569" d="M168,1370l182,0l0,-299l171,0l0,-147l-171,0l0,-699C350,188 363,163 388,150C402,143 425,139 458,139C467,139 476,139 486,140C496,140 508,141 521,142l0,-142C500,-6 479,-10 457,-13C434,-16 410,-17 384,-17C300,-17 243,5 213,48C183,91 168,146 168,215l0,709l-145,0l0,147l145,0z"/>
+<glyph unicode="u" horiz-adv-x="1139" d="M312,1071l0,-711C312,305 321,261 338,226C370,162 430,130 517,130C642,130 728,186 773,298C798,358 810,440 810,545l0,526l180,0l0,-1071l-170,0l2,158C799,117 770,83 735,55C666,-1 583,-29 485,-29C332,-29 228,22 173,124C143,179 128,252 128,343l0,728z"/>
+<glyph unicode="v" horiz-adv-x="1024" d="M220,1071l286,-872l299,872l197,0l-404,-1071l-192,0l-395,1071z"/>
+<glyph unicode="w" horiz-adv-x="1479" d="M215,1071l206,-844l209,844l202,0l210,-839l219,839l180,0l-311,-1071l-187,0l-218,829l-211,-829l-187,0l-309,1071z"/>
+<glyph unicode="x" horiz-adv-x="1024" d="M30,1071l233,0l246,-377l249,377l219,-5l-361,-517l377,-549l-230,0l-266,402l-258,-402l-228,0l377,549z"/>
+<glyph unicode="y" horiz-adv-x="1024" d="M801,1071l199,0C975,1002 918,846 831,601C766,417 711,267 667,151C563,-122 490,-289 447,-349C404,-409 331,-439 227,-439C202,-439 182,-438 169,-436C155,-434 138,-430 118,-425l0,164C149,-270 172,-275 186,-277C200,-279 212,-280 223,-280C256,-280 281,-274 297,-263C312,-252 325,-239 336,-223C339,-218 351,-190 372,-141C393,-92 408,-55 417,-31l-396,1102l204,0l287,-872z"/>
+<glyph unicode="z" horiz-adv-x="1024" d="M52,142l635,768l-588,0l0,161l830,0l0,-147l-631,-763l650,0l0,-161l-896,0z"/>
+</font>
+
+	<polygon points="29.1,19 480,19 480.2,19 480.3,19.1 480.4,19.2 480.4,19.3 480.4,406.3 480.4,406.5 480.3,406.6 480.2,406.7 
+	480,406.7 29.1,406.7 28.9,406.7 28.8,406.6 28.7,406.5 28.7,406.3 28.7,19.3 28.7,19.2 28.8,19.1 28.9,19 "/>
+<polygon class="st0" points="28.8,18.7 479.8,18.7 479.9,18.7 480.1,18.8 480.2,19 480.2,19.1 480.2,406.1 480.2,406.2 480.1,406.4 
+	479.9,406.5 479.8,406.5 28.8,406.5 28.7,406.5 28.6,406.4 28.5,406.2 28.5,406.1 28.5,19.1 28.5,19 28.6,18.8 28.7,18.7 "/>
+<line class="st1" x1="28.8" y1="18.7" x2="479.8" y2="18.7"/>
+<path class="st1" d="M480.2,19.1C480.2,19.1,480.2,19,480.2,19.1c0-0.3-0.2-0.4-0.4-0.4"/>
+<line class="st1" x1="480.2" y1="19.1" x2="480.2" y2="406.1"/>
+<path class="st1" d="M479.8,406.5C479.8,406.5,479.9,406.5,479.8,406.5c0.3,0,0.4-0.2,0.4-0.4"/>
+<line class="st1" x1="479.8" y1="406.5" x2="28.8" y2="406.5"/>
+<path class="st1" d="M28.5,406.1C28.5,406.1,28.5,406.1,28.5,406.1c0,0.3,0.2,0.4,0.4,0.4"/>
+<line class="st1" x1="28.5" y1="406.1" x2="28.5" y2="19.1"/>
+<path class="st1" d="M28.8,18.7C28.8,18.7,28.8,18.7,28.8,18.7c-0.3,0-0.4,0.2-0.4,0.4"/>
+<line class="st2" x1="28.7" y1="19.2" x2="29.3" y2="19.2"/>
+<rect x="28.6" y="18.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 251.9341 18.5112)" class="st3 st4">otogame:main_soc</text>
+<line class="st5" x1="28" y1="390" x2="28.5" y2="390"/>
+<text transform="matrix(1 0 0 1 25.0137 389.793)" class="st6 st3 st7">audio_adc_data</text>
+<line class="st5" x1="28" y1="352.3" x2="28.5" y2="352.3"/>
+<text transform="matrix(1 0 0 1 26.9507 352.1484)" class="st6 st3 st7">clk_clk</text>
+<path class="st5" d="M28.5,353.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1C28.4,353.4,28.5,353.4,28.5,353.3"
+	/>
+<line class="st5" x1="28" y1="353.3" x2="28.2" y2="353.3"/>
+<text transform="matrix(1 0 0 1 25.4854 353.0898)" class="st6 st3 st7">reset_reset_n</text>
+<line class="st8" x1="28" y1="404.1" x2="28.5" y2="404.1"/>
+<text transform="matrix(1 0 0 1 22.6333 403.9092)" class="st6 st3 st7">otg_hpi_data_in_port[15..0]</text>
+<line class="st5" x1="480.7" y1="50.2" x2="480.2" y2="50.2"/>
+<text transform="matrix(1 0 0 1 480.4648 50.0571)" class="st6 st3 st7">audio_adc_clk</text>
+<line class="st5" x1="480.7" y1="51.2" x2="480.2" y2="51.2"/>
+<text transform="matrix(1 0 0 1 480.4648 50.9985)" class="st6 st3 st7">audio_bclk</text>
+<line class="st5" x1="480.7" y1="250.7" x2="480.2" y2="250.7"/>
+<text transform="matrix(1 0 0 1 480.4648 250.5107)" class="st6 st3 st7">audio_clk_clk</text>
+<line class="st5" x1="480.7" y1="53.1" x2="480.2" y2="53.1"/>
+<text transform="matrix(1 0 0 1 480.4648 52.8804)" class="st6 st3 st7">audio_dac_clk</text>
+<line class="st5" x1="480.7" y1="52.1" x2="480.2" y2="52.1"/>
+<text transform="matrix(1 0 0 1 480.4648 51.9395)" class="st6 st3 st7">audio_dac_data</text>
+<line class="st5" x1="480.7" y1="55" x2="480.2" y2="55"/>
+<text transform="matrix(1 0 0 1 480.4648 54.7627)" class="st6 st3 st7">audio_i2c_sclk</text>
+<line class="st5" x1="480.7" y1="55.9" x2="480.2" y2="55.9"/>
+<text transform="matrix(1 0 0 1 480.4648 55.7036)" class="st6 st3 st7">audio_i2c_sdat</text>
+<line class="st5" x1="480.7" y1="62" x2="480.2" y2="62"/>
+<text transform="matrix(1 0 0 1 480.4648 61.8208)" class="st6 st3 st7">flash_conn_CE_N</text>
+<line class="st5" x1="480.7" y1="63.9" x2="480.2" y2="63.9"/>
+<text transform="matrix(1 0 0 1 480.4648 63.7031)" class="st6 st3 st7">flash_conn_OE_N</text>
+<line class="st5" x1="480.7" y1="64.8" x2="480.2" y2="64.8"/>
+<text transform="matrix(1 0 0 1 480.4648 64.644)" class="st6 st3 st7">flash_conn_RST_N</text>
+<line class="st5" x1="480.7" y1="65.8" x2="480.2" y2="65.8"/>
+<text transform="matrix(1 0 0 1 480.4648 65.5854)" class="st6 st3 st7">flash_conn_WE_N</text>
+<line class="st5" x1="480.7" y1="150.5" x2="480.2" y2="150.5"/>
+<text transform="matrix(1 0 0 1 480.4648 150.2837)" class="st6 st3 st7">otg_hpi_cs_export</text>
+<line class="st5" x1="480.7" y1="158.5" x2="480.2" y2="158.5"/>
+<text transform="matrix(1 0 0 1 480.4648 158.2832)" class="st6 st3 st7">otg_hpi_r_export</text>
+<line class="st5" x1="480.7" y1="175.4" x2="480.2" y2="175.4"/>
+<text transform="matrix(1 0 0 1 480.4648 175.2231)" class="st6 st3 st7">otg_hpi_w_export</text>
+<line class="st5" x1="480.7" y1="118" x2="480.2" y2="118"/>
+<text transform="matrix(1 0 0 1 480.4648 117.8159)" class="st6 st3 st7">ps2_clk_export</text>
+<line class="st5" x1="480.7" y1="118.9" x2="480.2" y2="118.9"/>
+<text transform="matrix(1 0 0 1 480.4648 118.7573)" class="st6 st3 st7">ps2_data_export</text>
+<line class="st5" x1="480.7" y1="257.3" x2="480.2" y2="257.3"/>
+<text transform="matrix(1 0 0 1 480.4648 257.0977)" class="st6 st3 st7">sd_sd_clk</text>
+<line class="st5" x1="480.7" y1="258.2" x2="480.2" y2="258.2"/>
+<text transform="matrix(1 0 0 1 480.4648 258.0391)" class="st6 st3 st7">sd_sd_cmd</text>
+<line class="st5" x1="480.7" y1="348.6" x2="480.2" y2="348.6"/>
+<text transform="matrix(1 0 0 1 480.4648 348.3848)" class="st6 st3 st7">sdram_clk_clk</text>
+<line class="st5" x1="480.7" y1="270.5" x2="480.2" y2="270.5"/>
+<text transform="matrix(1 0 0 1 480.4648 270.2734)" class="st6 st3 st7">sdram_wire_cas_n</text>
+<line class="st5" x1="480.7" y1="271.4" x2="480.2" y2="271.4"/>
+<text transform="matrix(1 0 0 1 480.4648 271.2148)" class="st6 st3 st7">sdram_wire_cke</text>
+<line class="st5" x1="480.7" y1="272.3" x2="480.2" y2="272.3"/>
+<text transform="matrix(1 0 0 1 480.4648 272.1553)" class="st6 st3 st7">sdram_wire_cs_n</text>
+<line class="st5" x1="480.7" y1="275.2" x2="480.2" y2="275.2"/>
+<text transform="matrix(1 0 0 1 480.4648 274.9785)" class="st6 st3 st7">sdram_wire_ras_n</text>
+<line class="st5" x1="480.7" y1="276.1" x2="480.2" y2="276.1"/>
+<text transform="matrix(1 0 0 1 480.4648 275.9199)" class="st6 st3 st7">sdram_wire_we_n</text>
+<line class="st5" x1="480.7" y1="79.4" x2="480.2" y2="79.4"/>
+<text transform="matrix(1 0 0 1 480.4648 79.231)" class="st6 st3 st7">sram_ce_n</text>
+<line class="st5" x1="480.7" y1="81.3" x2="480.2" y2="81.3"/>
+<text transform="matrix(1 0 0 1 480.4648 81.1133)" class="st6 st3 st7">sram_lb_n</text>
+<line class="st5" x1="480.7" y1="82.2" x2="480.2" y2="82.2"/>
+<text transform="matrix(1 0 0 1 480.4648 82.0547)" class="st6 st3 st7">sram_oe_n</text>
+<line class="st5" x1="480.7" y1="83.2" x2="480.2" y2="83.2"/>
+<text transform="matrix(1 0 0 1 480.4648 82.9956)" class="st6 st3 st7">sram_ub_n</text>
+<line class="st5" x1="480.7" y1="84.1" x2="480.2" y2="84.1"/>
+<text transform="matrix(1 0 0 1 480.4648 83.9365)" class="st6 st3 st7">sram_we_n</text>
+<line class="st5" x1="480.7" y1="85.1" x2="480.2" y2="85.1"/>
+<text transform="matrix(1 0 0 1 480.4648 84.8779)" class="st6 st3 st7">vga_blank_n</text>
+<line class="st5" x1="480.7" y1="87" x2="480.2" y2="87"/>
+<text transform="matrix(1 0 0 1 480.4648 86.7598)" class="st6 st3 st7">vga_clk</text>
+<line class="st5" x1="480.7" y1="88.8" x2="480.2" y2="88.8"/>
+<text transform="matrix(1 0 0 1 480.4648 88.6421)" class="st6 st3 st7">vga_hs</text>
+<line class="st5" x1="480.7" y1="90.7" x2="480.2" y2="90.7"/>
+<text transform="matrix(1 0 0 1 480.4648 90.5244)" class="st6 st3 st7">vga_sync_n</text>
+<line class="st5" x1="480.7" y1="91.7" x2="480.2" y2="91.7"/>
+<text transform="matrix(1 0 0 1 480.4648 91.4653)" class="st6 st3 st7">vga_vs</text>
+<line class="st8" x1="480.7" y1="61.1" x2="480.2" y2="61.1"/>
+<text transform="matrix(1 0 0 1 480.4648 60.8799)" class="st6 st3 st7">flash_conn_ADDR[22..0]</text>
+<line class="st8" x1="480.7" y1="199.4" x2="480.2" y2="199.4"/>
+<text transform="matrix(1 0 0 1 480.4648 199.2207)" class="st6 st3 st7">hex_export[31..0]</text>
+<line class="st8" x1="480.7" y1="183.4" x2="480.2" y2="183.4"/>
+<text transform="matrix(1 0 0 1 480.4648 183.2222)" class="st6 st3 st7">ledg_export[8..0]</text>
+<line class="st8" x1="480.7" y1="191.4" x2="480.2" y2="191.4"/>
+<text transform="matrix(1 0 0 1 480.4648 191.2217)" class="st6 st3 st7">ledr_export[17..0]</text>
+<line class="st8" x1="480.7" y1="142.5" x2="480.2" y2="142.5"/>
+<text transform="matrix(1 0 0 1 480.4648 142.2847)" class="st6 st3 st7">otg_hpi_address_export[1..0]</text>
+<line class="st8" x1="480.7" y1="166.5" x2="480.2" y2="166.5"/>
+<text transform="matrix(1 0 0 1 480.4648 166.2827)" class="st6 st3 st7">otg_hpi_data_out_port[15..0]</text>
+<line class="st8" x1="480.7" y1="255.4" x2="480.2" y2="255.4"/>
+<text transform="matrix(1 0 0 1 480.4648 255.2158)" class="st6 st3 st7">sd_led_green[6..0]</text>
+<line class="st8" x1="480.7" y1="256.3" x2="480.2" y2="256.3"/>
+<text transform="matrix(1 0 0 1 480.4648 256.1572)" class="st6 st3 st7">sd_led_red[15..0]</text>
+<line class="st8" x1="480.7" y1="268.6" x2="480.2" y2="268.6"/>
+<text transform="matrix(1 0 0 1 480.4648 268.3916)" class="st6 st3 st7">sdram_wire_addr[12..0]</text>
+<line class="st8" x1="480.7" y1="269.5" x2="480.2" y2="269.5"/>
+<text transform="matrix(1 0 0 1 480.4648 269.332)" class="st6 st3 st7">sdram_wire_ba[1..0]</text>
+<line class="st8" x1="480.7" y1="274.2" x2="480.2" y2="274.2"/>
+<text transform="matrix(1 0 0 1 480.4648 274.0381)" class="st6 st3 st7">sdram_wire_dqm[3..0]</text>
+<line class="st8" x1="480.7" y1="78.5" x2="480.2" y2="78.5"/>
+<text transform="matrix(1 0 0 1 480.4648 78.29)" class="st6 st3 st7">sram_addr[19..0]</text>
+<line class="st8" x1="480.7" y1="86" x2="480.2" y2="86"/>
+<text transform="matrix(1 0 0 1 480.4648 85.8188)" class="st6 st3 st7">vga_b[7..0]</text>
+<line class="st8" x1="480.7" y1="87.9" x2="480.2" y2="87.9"/>
+<text transform="matrix(1 0 0 1 480.4648 87.7012)" class="st6 st3 st7">vga_g[7..0]</text>
+<line class="st8" x1="480.7" y1="89.8" x2="480.2" y2="89.8"/>
+<text transform="matrix(1 0 0 1 480.4648 89.583)" class="st6 st3 st7">vga_r[7..0]</text>
+<line class="st8" x1="480.7" y1="63" x2="480.2" y2="63"/>
+<text transform="matrix(1 0 0 1 480.4648 62.7622)" class="st6 st3 st7">flash_conn_DQ[7..0]</text>
+<line class="st8" x1="480.7" y1="259.2" x2="480.2" y2="259.2"/>
+<text transform="matrix(1 0 0 1 480.4648 258.9805)" class="st6 st3 st7">sd_sd_dat[3..0]</text>
+<line class="st8" x1="480.7" y1="273.3" x2="480.2" y2="273.3"/>
+<text transform="matrix(1 0 0 1 480.4648 273.0967)" class="st6 st3 st7">sdram_wire_dq[31..0]</text>
+<line class="st8" x1="480.7" y1="80.4" x2="480.2" y2="80.4"/>
+<text transform="matrix(1 0 0 1 480.4648 80.1724)" class="st6 st3 st7">sram_data[15..0]</text>
+<line class="st5" x1="28.9" y1="390" x2="28.5" y2="390"/>
+<line class="st5" x1="28.9" y1="352.3" x2="28.5" y2="352.3"/>
+<line class="st5" x1="28.9" y1="353.3" x2="28.5" y2="353.3"/>
+<line class="st8" x1="28.9" y1="404.1" x2="28.5" y2="404.1"/>
+<line class="st5" x1="479.7" y1="50.2" x2="480.2" y2="50.2"/>
+<line class="st5" x1="479.7" y1="51.2" x2="480.2" y2="51.2"/>
+<line class="st5" x1="479.7" y1="250.7" x2="480.2" y2="250.7"/>
+<line class="st5" x1="479.7" y1="53.1" x2="480.2" y2="53.1"/>
+<line class="st5" x1="479.7" y1="52.1" x2="480.2" y2="52.1"/>
+<line class="st5" x1="479.7" y1="55" x2="480.2" y2="55"/>
+<line class="st5" x1="479.7" y1="55.9" x2="480.2" y2="55.9"/>
+<line class="st5" x1="479.7" y1="62" x2="480.2" y2="62"/>
+<line class="st5" x1="479.7" y1="63.9" x2="480.2" y2="63.9"/>
+<line class="st5" x1="479.7" y1="64.8" x2="480.2" y2="64.8"/>
+<line class="st5" x1="479.7" y1="65.8" x2="480.2" y2="65.8"/>
+<line class="st5" x1="479.7" y1="150.5" x2="480.2" y2="150.5"/>
+<line class="st5" x1="479.7" y1="158.5" x2="480.2" y2="158.5"/>
+<line class="st5" x1="479.7" y1="175.4" x2="480.2" y2="175.4"/>
+<line class="st5" x1="479.7" y1="118" x2="480.2" y2="118"/>
+<line class="st5" x1="479.7" y1="118.9" x2="480.2" y2="118.9"/>
+<line class="st5" x1="479.7" y1="257.3" x2="480.2" y2="257.3"/>
+<line class="st5" x1="479.7" y1="258.2" x2="480.2" y2="258.2"/>
+<line class="st5" x1="479.7" y1="348.6" x2="480.2" y2="348.6"/>
+<line class="st5" x1="479.7" y1="270.5" x2="480.2" y2="270.5"/>
+<line class="st5" x1="479.7" y1="271.4" x2="480.2" y2="271.4"/>
+<line class="st5" x1="479.7" y1="272.3" x2="480.2" y2="272.3"/>
+<line class="st5" x1="479.7" y1="275.2" x2="480.2" y2="275.2"/>
+<line class="st5" x1="479.7" y1="276.1" x2="480.2" y2="276.1"/>
+<line class="st5" x1="479.7" y1="79.4" x2="480.2" y2="79.4"/>
+<line class="st5" x1="479.7" y1="81.3" x2="480.2" y2="81.3"/>
+<line class="st5" x1="479.7" y1="82.2" x2="480.2" y2="82.2"/>
+<line class="st5" x1="479.7" y1="83.2" x2="480.2" y2="83.2"/>
+<line class="st5" x1="479.7" y1="84.1" x2="480.2" y2="84.1"/>
+<line class="st5" x1="479.7" y1="85.1" x2="480.2" y2="85.1"/>
+<line class="st5" x1="479.7" y1="87" x2="480.2" y2="87"/>
+<line class="st5" x1="479.7" y1="88.8" x2="480.2" y2="88.8"/>
+<line class="st5" x1="479.7" y1="90.7" x2="480.2" y2="90.7"/>
+<line class="st5" x1="479.7" y1="91.7" x2="480.2" y2="91.7"/>
+<line class="st8" x1="479.7" y1="61.1" x2="480.2" y2="61.1"/>
+<line class="st8" x1="479.7" y1="199.4" x2="480.2" y2="199.4"/>
+<line class="st8" x1="479.7" y1="183.4" x2="480.2" y2="183.4"/>
+<line class="st8" x1="479.7" y1="191.4" x2="480.2" y2="191.4"/>
+<line class="st8" x1="479.7" y1="142.5" x2="480.2" y2="142.5"/>
+<line class="st8" x1="479.7" y1="166.5" x2="480.2" y2="166.5"/>
+<line class="st8" x1="479.7" y1="255.4" x2="480.2" y2="255.4"/>
+<line class="st8" x1="479.7" y1="256.3" x2="480.2" y2="256.3"/>
+<line class="st8" x1="479.7" y1="268.6" x2="480.2" y2="268.6"/>
+<line class="st8" x1="479.7" y1="269.5" x2="480.2" y2="269.5"/>
+<line class="st8" x1="479.7" y1="274.2" x2="480.2" y2="274.2"/>
+<line class="st8" x1="479.7" y1="78.5" x2="480.2" y2="78.5"/>
+<line class="st8" x1="479.7" y1="86" x2="480.2" y2="86"/>
+<line class="st8" x1="479.7" y1="87.9" x2="480.2" y2="87.9"/>
+<line class="st8" x1="479.7" y1="89.8" x2="480.2" y2="89.8"/>
+<line class="st8" x1="479.7" y1="63" x2="480.2" y2="63"/>
+<line class="st8" x1="479.7" y1="259.2" x2="480.2" y2="259.2"/>
+<line class="st8" x1="479.7" y1="273.3" x2="480.2" y2="273.3"/>
+<line class="st8" x1="479.7" y1="80.4" x2="480.2" y2="80.4"/>
+<polygon class="st9" points="547,0.4 547.3,0 547.8,0 548.1,0.4 547.8,0.7 547.3,0.7 "/>
+<text transform="matrix(1 0 0 1 548.459 0.5732)" class="st3 st4">AUD_ADCLRCK</text>
+<polygon class="st9" points="547,1.3 547.3,1 547.8,1 548.1,1.3 547.8,1.6 547.3,1.6 "/>
+<text transform="matrix(1 0 0 1 548.459 1.5142)" class="st3 st4">AUD_BCLK</text>
+<polygon class="st9" points="547,4.1 547,3.8 547.7,3.8 548,4.1 547.7,4.5 547,4.5 "/>
+<text transform="matrix(1 0 0 1 548.3643 4.3374)" class="st3 st4">AUD_DACDAT</text>
+<polygon class="st9" points="547,3.2 547.3,2.9 547.8,2.9 548.1,3.2 547.8,3.5 547.3,3.5 "/>
+<text transform="matrix(1 0 0 1 548.459 3.3965)" class="st3 st4">AUD_DACLRCK</text>
+<polygon class="st9" points="547,2.3 547,1.9 547.7,1.9 548,2.3 547.7,2.6 547,2.6 "/>
+<text transform="matrix(1 0 0 1 548.3643 2.4556)" class="st3 st4">AUD_XCK</text>
+<polygon class="st9" points="5.4,46.5 5.1,46.8 4.4,46.8 4.4,46.2 5.1,46.2 "/>
+<text transform="matrix(1 0 0 1 1.3359 46.687)" class="st3 st4">CLOCK_50</text>
+<polygon class="st10" points="547,46 547,45.7 547.7,45.7 548,46 547.7,46.3 547,46.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 46.2163)" class="st3 st4">DRAM_ADDR[12..0]</text>
+<polygon class="st10" points="547,47 547,46.6 547.7,46.6 548,47 547.7,47.3 547,47.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 47.1572)" class="st3 st4">DRAM_BA[1..0]</text>
+<polygon class="st9" points="547,47.9 547,47.6 547.7,47.6 548,47.9 547.7,48.2 547,48.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 48.0986)" class="st3 st4">DRAM_CAS_N</text>
+<polygon class="st9" points="547,48.8 547,48.5 547.7,48.5 548,48.8 547.7,49.2 547,49.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 49.0396)" class="st3 st4">DRAM_CKE</text>
+<polygon class="st9" points="547,45.1 547,44.7 547.7,44.7 548,45.1 547.7,45.4 547,45.4 "/>
+<text transform="matrix(1 0 0 1 548.3643 45.2754)" class="st3 st4">DRAM_CLK</text>
+<polygon class="st9" points="547,49.8 547,49.4 547.7,49.4 548,49.8 547.7,50.1 547,50.1 "/>
+<text transform="matrix(1 0 0 1 548.3643 49.9805)" class="st3 st4">DRAM_CS_N</text>
+<polygon class="st10" points="547,51.7 547,51.3 547.7,51.3 548,51.7 547.7,52 547,52 "/>
+<text transform="matrix(1 0 0 1 548.3643 51.8628)" class="st3 st4">DRAM_DQM[3..0]</text>
+<polygon class="st10" points="547,50.7 547.3,50.4 547.8,50.4 548.1,50.7 547.8,51 547.3,51 "/>
+<text transform="matrix(1 0 0 1 548.459 50.9219)" class="st3 st4">DRAM_DQ[31..0]</text>
+<polygon class="st9" points="547,52.6 547,52.3 547.7,52.3 548,52.6 547.7,52.9 547,52.9 "/>
+<text transform="matrix(1 0 0 1 548.3643 52.8042)" class="st3 st4">DRAM_RAS_N</text>
+<polygon class="st9" points="547,53.5 547,53.2 547.7,53.2 548,53.5 547.7,53.9 547,53.9 "/>
+<text transform="matrix(1 0 0 1 548.3643 53.7451)" class="st3 st4">DRAM_WE_N</text>
+<polygon class="st10" points="547,7 547,6.6 547.7,6.6 548,7 547.7,7.3 547,7.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 7.1606)" class="st3 st4">FL_ADDR[22..0]</text>
+<polygon class="st9" points="547,7.9 547,7.6 547.7,7.6 548,7.9 547.7,8.2 547,8.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 8.1021)" class="st3 st4">FL_CE_N</text>
+<polygon class="st10" points="547,8.8 547.3,8.5 547.8,8.5 548.1,8.8 547.8,9.2 547.3,9.2 "/>
+<text transform="matrix(1 0 0 1 548.459 9.043)" class="st3 st4">FL_DQ[7..0]</text>
+<polygon class="st9" points="547,9.8 547,9.5 547.7,9.5 548,9.8 547.7,10.1 547,10.1 "/>
+<text transform="matrix(1 0 0 1 548.3643 9.9839)" class="st3 st4">FL_OE_N</text>
+<polygon class="st9" points="547,10.7 547,10.4 547.7,10.4 548,10.7 547.7,11.1 547,11.1 "/>
+<text transform="matrix(1 0 0 1 548.3643 10.9253)" class="st3 st4">FL_RESET_N</text>
+<polygon class="st9" points="547,11.7 547,11.3 547.7,11.3 548,11.7 547.7,12 547,12 "/>
+<text transform="matrix(1 0 0 1 548.3643 11.8662)" class="st3 st4">FL_WE_N</text>
+<polygon class="st9" points="547,13.1 547,12.7 547.7,12.7 548,13.1 547.7,13.4 547,13.4 "/>
+<text transform="matrix(1 0 0 1 548.3643 13.2778)" class="st3 st4">FL_WP_N</text>
+<text transform="matrix(1 0 0 1 545.8389 12.8643)" class="st6 st3 st4">1&apos;h1</text>
+<polygon class="st10" points="547,24.4 547,24 547.7,24 548,24.4 547.7,24.7 547,24.7 "/>
+<text transform="matrix(1 0 0 1 548.3643 24.5713)" class="st3 st4">HEX0[6..0]</text>
+<polygon class="st10" points="547,27.7 547,27.3 547.7,27.3 548,27.7 547.7,28 547,28 "/>
+<text transform="matrix(1 0 0 1 548.3643 27.8647)" class="st3 st4">HEX1[6..0]</text>
+<polygon class="st10" points="547,31 547,30.6 547.7,30.6 548,31 547.7,31.3 547,31.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 31.1587)" class="st3 st4">HEX2[6..0]</text>
+<polygon class="st10" points="547,34.3 547,33.9 547.7,33.9 548,34.3 547.7,34.6 547,34.6 "/>
+<text transform="matrix(1 0 0 1 548.3643 34.4526)" class="st3 st4">HEX3[6..0]</text>
+<polygon class="st10" points="547,14.5 547,14.2 547.7,14.2 548,14.5 547.7,14.8 547,14.8 "/>
+<text transform="matrix(1 0 0 1 548.3643 14.6895)" class="st3 st4">HEX4[6..0]</text>
+<polygon class="st10" points="547,37.5 547,37.2 547.7,37.2 548,37.5 547.7,37.9 547,37.9 "/>
+<text transform="matrix(1 0 0 1 548.3643 37.7466)" class="st3 st4">HEX5[6..0]</text>
+<polygon class="st10" points="547,17.8 547,17.5 547.7,17.5 548,17.8 547.7,18.1 547,18.1 "/>
+<text transform="matrix(1 0 0 1 548.3643 17.9834)" class="st3 st4">HEX6[6..0]</text>
+<polygon class="st10" points="547,21.1 547,20.7 547.7,20.7 548,21.1 547.7,21.4 547,21.4 "/>
+<text transform="matrix(1 0 0 1 548.3643 21.2773)" class="st3 st4">HEX7[6..0]</text>
+<polygon class="st9" points="547,5.1 547,4.7 547.7,4.7 548,5.1 547.7,5.4 547,5.4 "/>
+<text transform="matrix(1 0 0 1 548.3643 5.2788)" class="st3 st4">I2C_SCLK</text>
+<polygon class="st9" points="547,6 547.3,5.7 547.8,5.7 548.1,6 547.8,6.3 547.3,6.3 "/>
+<text transform="matrix(1 0 0 1 548.459 6.2197)" class="st3 st4">I2C_SDAT</text>
+<polygon class="st10" points="5.4,45.5 5.1,45.9 4.4,45.9 4.4,45.2 5.1,45.2 "/>
+<text transform="matrix(1 0 0 1 1.8374 45.7456)" class="st3 st4">KEY[1..0]</text>
+<polygon class="st10" points="547,38.5 547,38.2 547.7,38.2 548,38.5 547.7,38.8 547,38.8 "/>
+<text transform="matrix(1 0 0 1 548.3643 38.6875)" class="st3 st4">LEDG[7..0]</text>
+<polygon class="st10" points="547,39.4 547,39.1 547.7,39.1 548,39.4 547.7,39.8 547,39.8 "/>
+<text transform="matrix(1 0 0 1 548.3643 39.6284)" class="st3 st4">LEDR[17..0]</text>
+<polygon class="st10" points="547,75.2 547,74.9 547.7,74.9 548,75.2 547.7,75.5 547,75.5 "/>
+<text transform="matrix(1 0 0 1 548.3643 75.3901)" class="st3 st4">OTG_ADDR[1..0]</text>
+<polygon class="st9" points="547,76.1 547,75.8 547.7,75.8 548,76.1 547.7,76.5 547,76.5 "/>
+<text transform="matrix(1 0 0 1 548.3643 76.3315)" class="st3 st4">OTG_CS_N</text>
+<polygon class="st10" points="547,77.1 547.3,76.7 547.8,76.7 548.1,77.1 547.8,77.4 547.3,77.4 "/>
+<text transform="matrix(1 0 0 1 548.459 77.2725)" class="st3 st4">OTG_DATA[15..0]</text>
+<polygon class="st9" points="547,78 547,77.7 547.7,77.7 548,78 547.7,78.3 547,78.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 78.2134)" class="st3 st4">OTG_OE_N</text>
+<polygon class="st9" points="547,79 547,78.6 547.7,78.6 548,79 547.7,79.3 547,79.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 79.1548)" class="st3 st4">OTG_RST_N</text>
+<polygon class="st9" points="547,79.9 547,79.6 547.7,79.6 548,79.9 547.7,80.2 547,80.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 80.0957)" class="st3 st4">OTG_WE_N</text>
+<polygon class="st9" points="547,40.4 547.3,40 547.8,40 548.1,40.4 547.8,40.7 547.3,40.7 "/>
+<text transform="matrix(1 0 0 1 548.459 40.5698)" class="st3 st4">PS2_KBCLK</text>
+<polygon class="st9" points="547,41.3 547.3,41 547.8,41 548.1,41.3 547.8,41.6 547.3,41.6 "/>
+<text transform="matrix(1 0 0 1 548.459 41.5107)" class="st3 st4">PS2_KBDAT</text>
+<rect x="9.9" y="44.8" width="2.8" height="3.8"/>
+<rect x="9.6" y="44.6" class="st11" width="2.8" height="3.8"/>
+<rect x="9.6" y="44.6" class="st1" width="2.8" height="3.8"/>
+<polyline class="st1" points="9.6,46.6 10,46.5 9.6,46.3 "/>
+<text transform="matrix(1 0 0 1 9.9951 44.3911)" class="st3 st4">Reset_h</text>
+<path class="st5" d="M9.6,45.5c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1S9.6,45.6,9.6,45.5"/>
+<line class="st5" x1="9.2" y1="45.5" x2="9.4" y2="45.5"/>
+<text transform="matrix(1 0 0 1 9.7285 45.7119)" class="st6 st3 st7">D</text>
+<line class="st5" x1="9.2" y1="46.5" x2="9.6" y2="46.5"/>
+<text transform="matrix(1 0 0 1 10.0581 46.6528)" class="st6 st3 st7">CLK</text>
+<line class="st5" x1="9.2" y1="47.4" x2="9.6" y2="47.4"/>
+<text transform="matrix(1 0 0 1 9.7285 47.5942)" class="st6 st3 st7">SCLR</text>
+<text transform="matrix(1 0 0 1 8.4731 47.2617)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="12.9" y1="46.5" x2="12.5" y2="46.5"/>
+<text transform="matrix(1 0 0 1 11.9976 46.6528)" class="st6 st3 st7">Q</text>
+<polygon class="st9" points="547,42.2 547,41.9 547.7,41.9 548,42.2 547.7,42.6 547,42.6 "/>
+<text transform="matrix(1 0 0 1 548.3643 42.4521)" class="st3 st4">SD_CLK</text>
+<polygon class="st9" points="547,43.2 547.3,42.9 547.8,42.9 548.1,43.2 547.8,43.5 547.3,43.5 "/>
+<text transform="matrix(1 0 0 1 548.459 43.3931)" class="st3 st4">SD_CMD</text>
+<polygon class="st10" points="547,44.1 547.3,43.8 547.8,43.8 548.1,44.1 547.8,44.5 547.3,44.5 "/>
+<text transform="matrix(1 0 0 1 548.459 44.334)" class="st3 st4">SD_DAT[3..0]</text>
+<polygon class="st10" points="547,54.5 547,54.2 547.7,54.2 548,54.5 547.7,54.8 547,54.8 "/>
+<text transform="matrix(1 0 0 1 548.3643 54.686)" class="st3 st4">SRAM_ADDR[19..0]</text>
+<polygon class="st9" points="547,55.4 547,55.1 547.7,55.1 548,55.4 547.7,55.8 547,55.8 "/>
+<text transform="matrix(1 0 0 1 548.3643 55.6274)" class="st3 st4">SRAM_CE_N</text>
+<polygon class="st10" points="547,56.4 547.3,56 547.8,56 548.1,56.4 547.8,56.7 547.3,56.7 "/>
+<text transform="matrix(1 0 0 1 548.459 56.5684)" class="st3 st4">SRAM_DQ[15..0]</text>
+<polygon class="st9" points="547,57.3 547,57 547.7,57 548,57.3 547.7,57.6 547,57.6 "/>
+<text transform="matrix(1 0 0 1 548.3643 57.5093)" class="st3 st4">SRAM_LB_N</text>
+<polygon class="st9" points="547,58.2 547,57.9 547.7,57.9 548,58.2 547.7,58.6 547,58.6 "/>
+<text transform="matrix(1 0 0 1 548.3643 58.4507)" class="st3 st4">SRAM_OE_N</text>
+<polygon class="st9" points="547,59.2 547,58.9 547.7,58.9 548,59.2 547.7,59.5 547,59.5 "/>
+<text transform="matrix(1 0 0 1 548.3643 59.3916)" class="st3 st4">SRAM_UB_N</text>
+<polygon class="st9" points="547,60.1 547,59.8 547.7,59.8 548,60.1 547.7,60.5 547,60.5 "/>
+<text transform="matrix(1 0 0 1 548.3643 60.3325)" class="st3 st4">SRAM_WE_N</text>
+<polygon class="st9" points="547,62 547,61.7 547.7,61.7 548,62 547.7,62.3 547,62.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 62.2148)" class="st3 st4">VGA_BLANK_N</text>
+<polygon class="st10" points="547,61.1 547,60.7 547.7,60.7 548,61.1 547.7,61.4 547,61.4 "/>
+<text transform="matrix(1 0 0 1 548.3643 61.2739)" class="st3 st4">VGA_B[7..0]</text>
+<polygon class="st9" points="547,63 547,62.6 547.7,62.6 548,63 547.7,63.3 547,63.3 "/>
+<text transform="matrix(1 0 0 1 548.3643 63.1562)" class="st3 st4">VGA_CLK</text>
+<polygon class="st10" points="547,63.9 547,63.6 547.7,63.6 548,63.9 547.7,64.2 547,64.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 64.0972)" class="st3 st4">VGA_G[7..0]</text>
+<polygon class="st9" points="547,64.8 547,64.5 547.7,64.5 548,64.8 547.7,65.2 547,65.2 "/>
+<text transform="matrix(1 0 0 1 548.3643 65.0381)" class="st3 st4">VGA_HS</text>
+<polygon class="st10" points="547,65.8 547,65.4 547.7,65.4 548,65.8 547.7,66.1 547,66.1 "/>
+<text transform="matrix(1 0 0 1 548.3643 65.9795)" class="st3 st4">VGA_R[7..0]</text>
+<polygon class="st9" points="547,66.7 547,66.4 547.7,66.4 548,66.7 547.7,67 547,67 "/>
+<text transform="matrix(1 0 0 1 548.3643 66.9204)" class="st3 st4">VGA_SYNC_N</text>
+<polygon class="st9" points="547,67.7 547,67.3 547.7,67.3 548,67.7 547.7,68 547,68 "/>
+<text transform="matrix(1 0 0 1 548.3643 67.8613)" class="st3 st4">VGA_VS</text>
+<rect x="539.7" y="23.1" width="2.8" height="2"/>
+<rect x="539.5" y="22.9" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="22.9" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="23.1" x2="540" y2="23.7"/>
+<line class="st2" x1="539.7" y1="23.4" x2="540.3" y2="23.4"/>
+<rect x="539.6" y="23" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 22.6519)" class="st3 st4">hexdriver:hexdrv0</text>
+<line class="st8" x1="539" y1="24.4" x2="539.5" y2="24.4"/>
+<text transform="matrix(1 0 0 1 537.9385 24.2241)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="24.4" x2="542.3" y2="24.4"/>
+<text transform="matrix(1 0 0 1 542.5771 24.2241)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="24.4" x2="539.5" y2="24.4"/>
+<line class="st8" x1="541.8" y1="24.4" x2="542.3" y2="24.4"/>
+<rect x="539.7" y="26.4" width="2.8" height="2"/>
+<rect x="539.5" y="26.2" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="26.2" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="26.4" x2="540" y2="27"/>
+<line class="st2" x1="539.7" y1="26.7" x2="540.3" y2="26.7"/>
+<rect x="539.6" y="26.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 25.9458)" class="st3 st4">hexdriver:hexdrv1</text>
+<line class="st8" x1="539" y1="27.7" x2="539.5" y2="27.7"/>
+<text transform="matrix(1 0 0 1 537.9385 27.5181)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="27.7" x2="542.3" y2="27.7"/>
+<text transform="matrix(1 0 0 1 542.5771 27.5181)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="27.7" x2="539.5" y2="27.7"/>
+<line class="st8" x1="541.8" y1="27.7" x2="542.3" y2="27.7"/>
+<rect x="539.7" y="29.7" width="2.8" height="2"/>
+<rect x="539.5" y="29.5" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="29.5" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="29.7" x2="540" y2="30.3"/>
+<line class="st2" x1="539.7" y1="30" x2="540.3" y2="30"/>
+<rect x="539.6" y="29.6" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 29.2397)" class="st3 st4">hexdriver:hexdrv2</text>
+<line class="st8" x1="539" y1="31" x2="539.5" y2="31"/>
+<text transform="matrix(1 0 0 1 537.9385 30.812)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="31" x2="542.3" y2="31"/>
+<text transform="matrix(1 0 0 1 542.5771 30.812)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="31" x2="539.5" y2="31"/>
+<line class="st8" x1="541.8" y1="31" x2="542.3" y2="31"/>
+<rect x="539.7" y="33" width="2.8" height="2"/>
+<rect x="539.5" y="32.7" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="32.7" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="33" x2="540" y2="33.5"/>
+<line class="st2" x1="539.7" y1="33.3" x2="540.3" y2="33.3"/>
+<rect x="539.6" y="32.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 32.5332)" class="st3 st4">hexdriver:hexdrv3</text>
+<line class="st8" x1="539" y1="34.3" x2="539.5" y2="34.3"/>
+<text transform="matrix(1 0 0 1 537.9385 34.1055)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="34.3" x2="542.3" y2="34.3"/>
+<text transform="matrix(1 0 0 1 542.5771 34.1055)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="34.3" x2="539.5" y2="34.3"/>
+<line class="st8" x1="541.8" y1="34.3" x2="542.3" y2="34.3"/>
+<rect x="539.7" y="13.2" width="2.8" height="2"/>
+<rect x="539.5" y="13" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="13" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="13.2" x2="540" y2="13.8"/>
+<line class="st2" x1="539.7" y1="13.5" x2="540.3" y2="13.5"/>
+<rect x="539.6" y="13.1" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 12.7705)" class="st3 st4">hexdriver:hexdrv4</text>
+<line class="st8" x1="539" y1="14.5" x2="539.5" y2="14.5"/>
+<text transform="matrix(1 0 0 1 537.9385 14.3428)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="14.5" x2="542.3" y2="14.5"/>
+<text transform="matrix(1 0 0 1 542.5771 14.3428)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="14.5" x2="539.5" y2="14.5"/>
+<line class="st8" x1="541.8" y1="14.5" x2="542.3" y2="14.5"/>
+<rect x="539.7" y="36.3" width="2.8" height="2"/>
+<rect x="539.5" y="36" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="36" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="36.3" x2="540" y2="36.8"/>
+<line class="st2" x1="539.7" y1="36.6" x2="540.3" y2="36.6"/>
+<rect x="539.6" y="36.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 35.8271)" class="st3 st4">hexdriver:hexdrv5</text>
+<line class="st8" x1="539" y1="37.5" x2="539.5" y2="37.5"/>
+<text transform="matrix(1 0 0 1 537.9385 37.3994)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="37.5" x2="542.3" y2="37.5"/>
+<text transform="matrix(1 0 0 1 542.5771 37.3994)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="37.5" x2="539.5" y2="37.5"/>
+<line class="st8" x1="541.8" y1="37.5" x2="542.3" y2="37.5"/>
+<rect x="539.7" y="16.5" width="2.8" height="2"/>
+<rect x="539.5" y="16.3" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="16.3" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="16.5" x2="540" y2="17.1"/>
+<line class="st2" x1="539.7" y1="16.8" x2="540.3" y2="16.8"/>
+<rect x="539.6" y="16.4" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 16.0645)" class="st3 st4">hexdriver:hexdrv6</text>
+<line class="st8" x1="539" y1="17.8" x2="539.5" y2="17.8"/>
+<text transform="matrix(1 0 0 1 537.9385 17.6362)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="17.8" x2="542.3" y2="17.8"/>
+<text transform="matrix(1 0 0 1 542.5771 17.6362)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="17.8" x2="539.5" y2="17.8"/>
+<line class="st8" x1="541.8" y1="17.8" x2="542.3" y2="17.8"/>
+<rect x="539.7" y="19.8" width="2.8" height="2"/>
+<rect x="539.5" y="19.6" class="st12" width="2.8" height="2"/>
+<rect x="539.5" y="19.6" class="st1" width="2.8" height="2"/>
+<line class="st2" x1="540" y1="19.8" x2="540" y2="20.4"/>
+<line class="st2" x1="539.7" y1="20.1" x2="540.3" y2="20.1"/>
+<rect x="539.6" y="19.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 538.6396 19.3579)" class="st3 st4">hexdriver:hexdrv7</text>
+<line class="st8" x1="539" y1="21.1" x2="539.5" y2="21.1"/>
+<text transform="matrix(1 0 0 1 537.9385 20.9302)" class="st6 st3 st7">In[3..0]</text>
+<line class="st8" x1="542.8" y1="21.1" x2="542.3" y2="21.1"/>
+<text transform="matrix(1 0 0 1 542.5771 20.9302)" class="st6 st3 st7">Out[6..0]</text>
+<line class="st8" x1="539.9" y1="21.1" x2="539.5" y2="21.1"/>
+<line class="st8" x1="541.8" y1="21.1" x2="542.3" y2="21.1"/>
+<rect x="28.7" y="412.2" width="2.8" height="7.6"/>
+<rect x="28.5" y="412" class="st12" width="2.8" height="7.6"/>
+<rect x="28.5" y="412" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="29" y1="412.2" x2="29" y2="412.8"/>
+<line class="st2" x1="28.7" y1="412.5" x2="29.3" y2="412.5"/>
+<rect x="28.6" y="412.1" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 27.1533 411.7949)" class="st3 st4">hpi_io_intf:hpi_io_inst</text>
+<line class="st5" x1="28" y1="413.5" x2="28.5" y2="413.5"/>
+<text transform="matrix(1 0 0 1 27.6826 413.3672)" class="st6 st3 st7">Clk</text>
+<line class="st5" x1="28" y1="414.5" x2="28.5" y2="414.5"/>
+<text transform="matrix(1 0 0 1 27.1333 414.3086)" class="st6 st3 st7">Reset</text>
+<line class="st5" x1="28" y1="416.3" x2="28.5" y2="416.3"/>
+<text transform="matrix(1 0 0 1 25.8525 416.1904)" class="st6 st3 st7">from_sw_cs</text>
+<line class="st5" x1="28" y1="418.2" x2="28.5" y2="418.2"/>
+<text transform="matrix(1 0 0 1 26.166 418.0723)" class="st6 st3 st7">from_sw_r</text>
+<line class="st5" x1="28" y1="419.2" x2="28.5" y2="419.2"/>
+<text transform="matrix(1 0 0 1 25.9834 419.0137)" class="st6 st3 st7">from_sw_w</text>
+<line class="st8" x1="28" y1="415.4" x2="28.5" y2="415.4"/>
+<text transform="matrix(1 0 0 1 23.6025 415.249)" class="st6 st3 st7">from_sw_address[1..0]</text>
+<line class="st8" x1="28" y1="417.3" x2="28.5" y2="417.3"/>
+<text transform="matrix(1 0 0 1 23.1836 417.1318)" class="st6 st3 st7">from_sw_data_out[15..0]</text>
+<line class="st5" x1="31.8" y1="414.5" x2="31.3" y2="414.5"/>
+<text transform="matrix(1 0 0 1 31.562 414.3086)" class="st6 st3 st7">OTG_CS_N</text>
+<line class="st5" x1="31.8" y1="416.3" x2="31.3" y2="416.3"/>
+<text transform="matrix(1 0 0 1 31.562 416.1904)" class="st6 st3 st7">OTG_RD_N</text>
+<line class="st5" x1="31.8" y1="417.3" x2="31.3" y2="417.3"/>
+<text transform="matrix(1 0 0 1 31.562 417.1318)" class="st6 st3 st7">OTG_RST_N</text>
+<line class="st5" x1="31.8" y1="418.2" x2="31.3" y2="418.2"/>
+<text transform="matrix(1 0 0 1 31.562 418.0723)" class="st6 st3 st7">OTG_WR_N</text>
+<line class="st8" x1="31.8" y1="419.2" x2="31.3" y2="419.2"/>
+<text transform="matrix(1 0 0 1 31.562 419.0137)" class="st6 st3 st7">from_sw_data_in[15..0]</text>
+<line class="st8" x1="31.8" y1="413.5" x2="31.3" y2="413.5"/>
+<text transform="matrix(1 0 0 1 31.562 413.3672)" class="st6 st3 st7">OTG_ADDR[1..0]</text>
+<line class="st8" x1="31.8" y1="415.4" x2="31.3" y2="415.4"/>
+<text transform="matrix(1 0 0 1 31.562 415.249)" class="st6 st3 st7">OTG_DATA[15..0]</text>
+<line class="st5" x1="28.9" y1="413.5" x2="28.5" y2="413.5"/>
+<line class="st5" x1="28.9" y1="414.5" x2="28.5" y2="414.5"/>
+<line class="st5" x1="28.9" y1="416.3" x2="28.5" y2="416.3"/>
+<line class="st5" x1="28.9" y1="418.2" x2="28.5" y2="418.2"/>
+<line class="st5" x1="28.9" y1="419.2" x2="28.5" y2="419.2"/>
+<line class="st8" x1="28.9" y1="415.4" x2="28.5" y2="415.4"/>
+<line class="st8" x1="28.9" y1="417.3" x2="28.5" y2="417.3"/>
+<line class="st5" x1="30.8" y1="414.5" x2="31.3" y2="414.5"/>
+<line class="st5" x1="30.8" y1="416.3" x2="31.3" y2="416.3"/>
+<line class="st5" x1="30.8" y1="417.3" x2="31.3" y2="417.3"/>
+<line class="st5" x1="30.8" y1="418.2" x2="31.3" y2="418.2"/>
+<line class="st8" x1="30.8" y1="419.2" x2="31.3" y2="419.2"/>
+<line class="st8" x1="30.8" y1="413.5" x2="31.3" y2="413.5"/>
+<line class="st8" x1="30.8" y1="415.4" x2="31.3" y2="415.4"/>
+<rect x="459.7" y="113.9" width="2.8" height="8.6"/>
+<rect x="459.5" y="113.7" class="st12" width="2.8" height="8.6"/>
+<rect x="459.5" y="113.7" class="st1" width="2.8" height="8.6"/>
+<line class="st2" x1="460" y1="113.9" x2="460" y2="114.5"/>
+<line class="st2" x1="459.7" y1="114.2" x2="460.3" y2="114.2"/>
+<rect x="459.6" y="113.8" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 458.8975 113.4678)" class="st3 st4">ps2kb:keyboard</text>
+<line class="st5" x1="459" y1="117.1" x2="459.5" y2="117.1"/>
+<text transform="matrix(1 0 0 1 457.5801 116.9219)" class="st6 st3 st7">AVL_CS</text>
+<line class="st5" x1="459" y1="118" x2="459.5" y2="118"/>
+<text transform="matrix(1 0 0 1 456.9258 117.8633)" class="st6 st3 st7">AVL_READ</text>
+<line class="st5" x1="459" y1="119.9" x2="459.5" y2="119.9"/>
+<text transform="matrix(1 0 0 1 456.7168 119.7456)" class="st6 st3 st7">AVL_WRITE</text>
+<line class="st5" x1="459" y1="120.8" x2="459.5" y2="120.8"/>
+<text transform="matrix(1 0 0 1 458.4688 120.6865)" class="st6 st3 st7">CLK</text>
+<line class="st5" x1="459" y1="121.8" x2="459.5" y2="121.8"/>
+<text transform="matrix(1 0 0 1 457.8154 121.6274)" class="st6 st3 st7">RESET</text>
+<line class="st8" x1="459" y1="116.1" x2="459.5" y2="116.1"/>
+<text transform="matrix(1 0 0 1 455.043 115.981)" class="st6 st3 st7">AVL_BYTE_EN[3..0]</text>
+<line class="st8" x1="459" y1="115.2" x2="459.5" y2="115.2"/>
+<text transform="matrix(1 0 0 1 455.8535 115.04)" class="st6 st3 st7">AVL_ADDR[1..0]</text>
+<line class="st8" x1="459" y1="118.9" x2="459.5" y2="118.9"/>
+<text transform="matrix(1 0 0 1 454.1543 118.8042)" class="st6 st3 st7">AVL_WRITEDATA[31..0]</text>
+<line class="st5" x1="462.8" y1="118" x2="462.3" y2="118"/>
+<text transform="matrix(1 0 0 1 462.584 117.8633)" class="st6 st3 st7">PS2_CLK</text>
+<line class="st5" x1="462.8" y1="118.9" x2="462.3" y2="118.9"/>
+<text transform="matrix(1 0 0 1 462.584 118.8042)" class="st6 st3 st7">PS2_DATA</text>
+<line class="st8" x1="462.8" y1="117.1" x2="462.3" y2="117.1"/>
+<text transform="matrix(1 0 0 1 462.584 116.9219)" class="st6 st3 st7">AVL_READDATA[31..0]</text>
+<line class="st5" x1="459.9" y1="117.1" x2="459.5" y2="117.1"/>
+<line class="st5" x1="459.9" y1="118" x2="459.5" y2="118"/>
+<line class="st5" x1="459.9" y1="119.9" x2="459.5" y2="119.9"/>
+<line class="st5" x1="459.9" y1="120.8" x2="459.5" y2="120.8"/>
+<line class="st5" x1="459.9" y1="121.8" x2="459.5" y2="121.8"/>
+<line class="st8" x1="459.9" y1="116.1" x2="459.5" y2="116.1"/>
+<line class="st8" x1="459.9" y1="115.2" x2="459.5" y2="115.2"/>
+<line class="st8" x1="459.9" y1="118.9" x2="459.5" y2="118.9"/>
+<line class="st5" x1="461.8" y1="118" x2="462.3" y2="118"/>
+<line class="st5" x1="461.8" y1="118.9" x2="462.3" y2="118.9"/>
+<line class="st8" x1="461.8" y1="117.1" x2="462.3" y2="117.1"/>
+<rect x="459.7" y="58.9" width="2.8" height="13.3"/>
+<rect x="459.5" y="58.6" class="st12" width="2.8" height="13.3"/>
+<rect x="459.5" y="58.6" class="st1" width="2.8" height="13.3"/>
+<line class="st2" x1="460" y1="58.9" x2="460" y2="59.4"/>
+<line class="st2" x1="459.7" y1="59.1" x2="460.3" y2="59.1"/>
+<rect x="459.6" y="58.8" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 453.4365 58.4136)" class="st3 st4">Altera_UP_Flash_Memory_IP_Core_Avalon_Interface:flash</text>
+<line class="st5" x1="459" y1="62" x2="459.5" y2="62"/>
+<text transform="matrix(1 0 0 1 455.0166 61.8682)" class="st6 st3 st7">i_avalon_chip_select</text>
+<line class="st5" x1="459" y1="63.9" x2="459.5" y2="63.9"/>
+<text transform="matrix(1 0 0 1 453.5781 63.75)" class="st6 st3 st7">i_avalon_erase_chip_select</text>
+<line class="st5" x1="459" y1="64.8" x2="459.5" y2="64.8"/>
+<text transform="matrix(1 0 0 1 454.9902 64.6914)" class="st6 st3 st7">i_avalon_erase_read</text>
+<line class="st5" x1="459" y1="66.7" x2="459.5" y2="66.7"/>
+<text transform="matrix(1 0 0 1 454.9385 66.5732)" class="st6 st3 st7">i_avalon_erase_write</text>
+<line class="st5" x1="459" y1="67.7" x2="459.5" y2="67.7"/>
+<text transform="matrix(1 0 0 1 456.4287 67.5146)" class="st6 st3 st7">i_avalon_read</text>
+<line class="st5" x1="459" y1="69.5" x2="459.5" y2="69.5"/>
+<text transform="matrix(1 0 0 1 456.377 69.3965)" class="st6 st3 st7">i_avalon_write</text>
+<line class="st5" x1="459" y1="70.5" x2="459.5" y2="70.5"/>
+<text transform="matrix(1 0 0 1 457.9463 70.3379)" class="st6 st3 st7">i_clock</text>
+<path class="st5" d="M459.5,71.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1C459.4,71.6,459.5,71.5,459.5,71.4"
+	/>
+<line class="st5" x1="459" y1="71.4" x2="459.2" y2="71.4"/>
+<text transform="matrix(1 0 0 1 457.2607 71.2788)" class="st6 st3 st7">i_reset_n</text>
+<line class="st8" x1="459" y1="60.1" x2="459.5" y2="60.1"/>
+<text transform="matrix(1 0 0 1 454.3887 59.9858)" class="st6 st3 st7">i_avalon_address[20..0]</text>
+<line class="st8" x1="459" y1="61.1" x2="459.5" y2="61.1"/>
+<text transform="matrix(1 0 0 1 454.0215 60.9268)" class="st6 st3 st7">i_avalon_byteenable[3..0]</text>
+<line class="st8" x1="459" y1="68.6" x2="459.5" y2="68.6"/>
+<text transform="matrix(1 0 0 1 454.1533 68.4556)" class="st6 st3 st7">i_avalon_writedata[31..0]</text>
+<line class="st8" x1="459" y1="63" x2="459.5" y2="63"/>
+<text transform="matrix(1 0 0 1 452.583 62.8091)" class="st6 st3 st7">i_avalon_erase_byteenable[3..0]</text>
+<line class="st8" x1="459" y1="65.8" x2="459.5" y2="65.8"/>
+<text transform="matrix(1 0 0 1 452.7148 65.6323)" class="st6 st3 st7">i_avalon_erase_writedata[31..0]</text>
+<line class="st5" x1="462.8" y1="62" x2="462.3" y2="62"/>
+<text transform="matrix(1 0 0 1 462.584 61.8682)" class="st6 st3 st7">FL_CE_N</text>
+<line class="st5" x1="462.8" y1="63.9" x2="462.3" y2="63.9"/>
+<text transform="matrix(1 0 0 1 462.584 63.75)" class="st6 st3 st7">FL_OE_N</text>
+<line class="st5" x1="462.8" y1="64.8" x2="462.3" y2="64.8"/>
+<text transform="matrix(1 0 0 1 462.584 64.6914)" class="st6 st3 st7">FL_RST_N</text>
+<line class="st5" x1="462.8" y1="65.8" x2="462.3" y2="65.8"/>
+<text transform="matrix(1 0 0 1 462.584 65.6323)" class="st6 st3 st7">FL_WE_N</text>
+<line class="st5" x1="462.8" y1="67.7" x2="462.3" y2="67.7"/>
+<text transform="matrix(1 0 0 1 462.584 67.5146)" class="st6 st3 st7">o_avalon_erase_waitrequest</text>
+<line class="st5" x1="462.8" y1="69.5" x2="462.3" y2="69.5"/>
+<text transform="matrix(1 0 0 1 462.584 69.3965)" class="st6 st3 st7">o_avalon_waitrequest</text>
+<line class="st8" x1="462.8" y1="68.6" x2="462.3" y2="68.6"/>
+<text transform="matrix(1 0 0 1 462.584 68.4556)" class="st6 st3 st7">o_avalon_readdata[31..0]</text>
+<line class="st8" x1="462.8" y1="66.7" x2="462.3" y2="66.7"/>
+<text transform="matrix(1 0 0 1 462.584 66.5732)" class="st6 st3 st7">o_avalon_erase_readdata[31..0]</text>
+<line class="st8" x1="462.8" y1="61.1" x2="462.3" y2="61.1"/>
+<text transform="matrix(1 0 0 1 462.584 60.9268)" class="st6 st3 st7">FL_ADDR[22..0]</text>
+<line class="st8" x1="462.8" y1="63" x2="462.3" y2="63"/>
+<text transform="matrix(1 0 0 1 462.584 62.8091)" class="st6 st3 st7">FL_DQ[7..0]</text>
+<line class="st5" x1="459.9" y1="62" x2="459.5" y2="62"/>
+<line class="st5" x1="459.9" y1="63.9" x2="459.5" y2="63.9"/>
+<line class="st5" x1="459.9" y1="64.8" x2="459.5" y2="64.8"/>
+<line class="st5" x1="459.9" y1="66.7" x2="459.5" y2="66.7"/>
+<line class="st5" x1="459.9" y1="67.7" x2="459.5" y2="67.7"/>
+<line class="st5" x1="459.9" y1="69.5" x2="459.5" y2="69.5"/>
+<line class="st5" x1="459.9" y1="70.5" x2="459.5" y2="70.5"/>
+<line class="st5" x1="459.9" y1="71.4" x2="459.5" y2="71.4"/>
+<line class="st8" x1="459.9" y1="60.1" x2="459.5" y2="60.1"/>
+<line class="st8" x1="459.9" y1="61.1" x2="459.5" y2="61.1"/>
+<line class="st8" x1="459.9" y1="68.6" x2="459.5" y2="68.6"/>
+<line class="st8" x1="459.9" y1="63" x2="459.5" y2="63"/>
+<line class="st8" x1="459.9" y1="65.8" x2="459.5" y2="65.8"/>
+<line class="st5" x1="461.8" y1="62" x2="462.3" y2="62"/>
+<line class="st5" x1="461.8" y1="63.9" x2="462.3" y2="63.9"/>
+<line class="st5" x1="461.8" y1="64.8" x2="462.3" y2="64.8"/>
+<line class="st5" x1="461.8" y1="65.8" x2="462.3" y2="65.8"/>
+<line class="st5" x1="461.8" y1="67.7" x2="462.3" y2="67.7"/>
+<line class="st5" x1="461.8" y1="69.5" x2="462.3" y2="69.5"/>
+<line class="st8" x1="461.8" y1="68.6" x2="462.3" y2="68.6"/>
+<line class="st8" x1="461.8" y1="66.7" x2="462.3" y2="66.7"/>
+<line class="st8" x1="461.8" y1="61.1" x2="462.3" y2="61.1"/>
+<line class="st8" x1="461.8" y1="63" x2="462.3" y2="63"/>
+<rect x="216" y="298.4" width="2.8" height="14.2"/>
+<rect x="215.7" y="298.1" class="st12" width="2.8" height="14.2"/>
+<rect x="215.7" y="298.1" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="216.3" y1="298.4" x2="216.3" y2="298.9"/>
+<line class="st2" x1="216" y1="298.7" x2="216.5" y2="298.7"/>
+<rect x="215.9" y="298.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 208.4531 297.9219)" class="st3 st4">altera_avalon_mm_clock_crossing_bridge:otg_clock_crossing_bridge</text>
+<line class="st5" x1="215.3" y1="299.6" x2="215.7" y2="299.6"/>
+<text transform="matrix(1 0 0 1 214.1504 299.4941)" class="st6 st3 st7">m0_clk</text>
+<line class="st5" x1="215.3" y1="301.5" x2="215.7" y2="301.5"/>
+<text transform="matrix(1 0 0 1 211.9009 301.377)" class="st6 st3 st7">m0_readdatavalid</text>
+<line class="st5" x1="215.3" y1="302.5" x2="215.7" y2="302.5"/>
+<text transform="matrix(1 0 0 1 213.6792 302.3174)" class="st6 st3 st7">m0_reset</text>
+<line class="st5" x1="215.3" y1="303.4" x2="215.7" y2="303.4"/>
+<text transform="matrix(1 0 0 1 212.3193 303.2588)" class="st6 st3 st7">m0_waitrequest</text>
+<line class="st5" x1="215.3" y1="307.2" x2="215.7" y2="307.2"/>
+<text transform="matrix(1 0 0 1 214.3071 307.0234)" class="st6 st3 st7">s0_clk</text>
+<line class="st5" x1="215.3" y1="308.1" x2="215.7" y2="308.1"/>
+<text transform="matrix(1 0 0 1 212.1094 307.9639)" class="st6 st3 st7">s0_debugaccess</text>
+<line class="st5" x1="215.3" y1="309.1" x2="215.7" y2="309.1"/>
+<text transform="matrix(1 0 0 1 213.9404 308.9053)" class="st6 st3 st7">s0_read</text>
+<line class="st5" x1="215.3" y1="310" x2="215.7" y2="310"/>
+<text transform="matrix(1 0 0 1 213.8359 309.8467)" class="st6 st3 st7">s0_reset</text>
+<line class="st5" x1="215.3" y1="311.9" x2="215.7" y2="311.9"/>
+<text transform="matrix(1 0 0 1 213.8887 311.7285)" class="st6 st3 st7">s0_write</text>
+<line class="st8" x1="215.3" y1="305.3" x2="215.7" y2="305.3"/>
+<text transform="matrix(1 0 0 1 211.6387 305.1406)" class="st6 st3 st7">s0_burstcount[0..0]</text>
+<line class="st8" x1="215.3" y1="310.9" x2="215.7" y2="310.9"/>
+<text transform="matrix(1 0 0 1 211.665 310.7881)" class="st6 st3 st7">s0_writedata[31..0]</text>
+<line class="st8" x1="215.3" y1="304.3" x2="215.7" y2="304.3"/>
+<text transform="matrix(1 0 0 1 211.9004 304.2002)" class="st6 st3 st7">s0_address[13..0]</text>
+<line class="st8" x1="215.3" y1="306.2" x2="215.7" y2="306.2"/>
+<text transform="matrix(1 0 0 1 211.5337 306.082)" class="st6 st3 st7">s0_byteenable[3..0]</text>
+<line class="st8" x1="215.3" y1="300.6" x2="215.7" y2="300.6"/>
+<text transform="matrix(1 0 0 1 211.5601 300.4355)" class="st6 st3 st7">m0_readdata[31..0]</text>
+<line class="st5" x1="219" y1="304.3" x2="218.6" y2="304.3"/>
+<text transform="matrix(1 0 0 1 218.8403 304.2002)" class="st6 st3 st7">m0_debugaccess</text>
+<line class="st5" x1="219" y1="305.3" x2="218.6" y2="305.3"/>
+<text transform="matrix(1 0 0 1 218.8403 305.1406)" class="st6 st3 st7">m0_read</text>
+<line class="st5" x1="219" y1="307.2" x2="218.6" y2="307.2"/>
+<text transform="matrix(1 0 0 1 218.8403 307.0234)" class="st6 st3 st7">m0_write</text>
+<line class="st5" x1="219" y1="309.1" x2="218.6" y2="309.1"/>
+<text transform="matrix(1 0 0 1 218.8403 308.9053)" class="st6 st3 st7">s0_readdatavalid</text>
+<line class="st5" x1="219" y1="310" x2="218.6" y2="310"/>
+<text transform="matrix(1 0 0 1 218.8403 309.8467)" class="st6 st3 st7">s0_waitrequest</text>
+<line class="st8" x1="219" y1="308.1" x2="218.6" y2="308.1"/>
+<text transform="matrix(1 0 0 1 218.8403 307.9639)" class="st6 st3 st7">s0_readdata[31..0]</text>
+<line class="st8" x1="219" y1="302.5" x2="218.6" y2="302.5"/>
+<text transform="matrix(1 0 0 1 218.8403 302.3174)" class="st6 st3 st7">m0_burstcount[0..0]</text>
+<line class="st8" x1="219" y1="306.2" x2="218.6" y2="306.2"/>
+<text transform="matrix(1 0 0 1 218.8403 306.082)" class="st6 st3 st7">m0_writedata[31..0]</text>
+<line class="st8" x1="219" y1="301.5" x2="218.6" y2="301.5"/>
+<text transform="matrix(1 0 0 1 218.8403 301.377)" class="st6 st3 st7">m0_address[13..0]</text>
+<line class="st8" x1="219" y1="303.4" x2="218.6" y2="303.4"/>
+<text transform="matrix(1 0 0 1 218.8403 303.2588)" class="st6 st3 st7">m0_byteenable[3..0]</text>
+<line class="st5" x1="216.2" y1="299.6" x2="215.7" y2="299.6"/>
+<line class="st5" x1="216.2" y1="301.5" x2="215.7" y2="301.5"/>
+<line class="st5" x1="216.2" y1="302.5" x2="215.7" y2="302.5"/>
+<line class="st5" x1="216.2" y1="303.4" x2="215.7" y2="303.4"/>
+<line class="st5" x1="216.2" y1="307.2" x2="215.7" y2="307.2"/>
+<line class="st5" x1="216.2" y1="308.1" x2="215.7" y2="308.1"/>
+<line class="st5" x1="216.2" y1="309.1" x2="215.7" y2="309.1"/>
+<line class="st5" x1="216.2" y1="310" x2="215.7" y2="310"/>
+<line class="st5" x1="216.2" y1="311.9" x2="215.7" y2="311.9"/>
+<line class="st8" x1="216.2" y1="305.3" x2="215.7" y2="305.3"/>
+<line class="st8" x1="216.2" y1="310.9" x2="215.7" y2="310.9"/>
+<line class="st8" x1="216.2" y1="304.3" x2="215.7" y2="304.3"/>
+<line class="st8" x1="216.2" y1="306.2" x2="215.7" y2="306.2"/>
+<line class="st8" x1="216.2" y1="300.6" x2="215.7" y2="300.6"/>
+<line class="st5" x1="218.1" y1="304.3" x2="218.6" y2="304.3"/>
+<line class="st5" x1="218.1" y1="305.3" x2="218.6" y2="305.3"/>
+<line class="st5" x1="218.1" y1="307.2" x2="218.6" y2="307.2"/>
+<line class="st5" x1="218.1" y1="309.1" x2="218.6" y2="309.1"/>
+<line class="st5" x1="218.1" y1="310" x2="218.6" y2="310"/>
+<line class="st8" x1="218.1" y1="308.1" x2="218.6" y2="308.1"/>
+<line class="st8" x1="218.1" y1="302.5" x2="218.6" y2="302.5"/>
+<line class="st8" x1="218.1" y1="306.2" x2="218.6" y2="306.2"/>
+<line class="st8" x1="218.1" y1="301.5" x2="218.6" y2="301.5"/>
+<line class="st8" x1="218.1" y1="303.4" x2="218.6" y2="303.4"/>
+<rect x="172.7" y="315.3" width="2.8" height="32.1"/>
+<rect x="172.4" y="315.1" class="st12" width="2.8" height="32.1"/>
+<rect x="172.4" y="315.1" class="st1" width="2.8" height="32.1"/>
+<line class="st2" x1="173" y1="315.3" x2="173" y2="315.9"/>
+<line class="st2" x1="172.7" y1="315.6" x2="173.2" y2="315.6"/>
+<rect x="172.6" y="315.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 168.7095 314.8623)" class="st3 st4">altera_reset_controller:rst_controller_001</text>
+<line class="st5" x1="172" y1="316.6" x2="172.4" y2="316.6"/>
+<text transform="matrix(1 0 0 1 171.7749 316.4346)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M172.4,317.5c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1S172.4,317.6,172.4,317.5"/>
+<line class="st5" x1="172" y1="317.5" x2="172.2" y2="317.5"/>
+<text transform="matrix(1 0 0 1 170.2261 317.375)" class="st6 st3 st7">reset_in0</text>
+<line class="st5" x1="172" y1="318.5" x2="172.4" y2="318.5"/>
+<text transform="matrix(1 0 0 1 170.4146 318.3164)" class="st6 st3 st7">reset_in1</text>
+<line class="st5" x1="172" y1="326.9" x2="172.4" y2="326.9"/>
+<text transform="matrix(1 0 0 1 170.1528 326.7861)" class="st6 st3 st7">reset_in10</text>
+<text transform="matrix(1 0 0 1 168.9297 326.7666)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="327.9" x2="172.4" y2="327.9"/>
+<text transform="matrix(1 0 0 1 170.1528 327.7275)" class="st6 st3 st7">reset_in11</text>
+<text transform="matrix(1 0 0 1 168.9297 327.708)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="328.8" x2="172.4" y2="328.8"/>
+<text transform="matrix(1 0 0 1 170.1528 328.668)" class="st6 st3 st7">reset_in12</text>
+<text transform="matrix(1 0 0 1 168.9297 328.6494)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="329.8" x2="172.4" y2="329.8"/>
+<text transform="matrix(1 0 0 1 170.1528 329.6094)" class="st6 st3 st7">reset_in13</text>
+<text transform="matrix(1 0 0 1 168.9297 329.5898)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="330.7" x2="172.4" y2="330.7"/>
+<text transform="matrix(1 0 0 1 170.1528 330.5508)" class="st6 st3 st7">reset_in14</text>
+<text transform="matrix(1 0 0 1 168.9297 330.5312)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="331.6" x2="172.4" y2="331.6"/>
+<text transform="matrix(1 0 0 1 170.1528 331.4922)" class="st6 st3 st7">reset_in15</text>
+<text transform="matrix(1 0 0 1 168.9297 331.4727)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="319.4" x2="172.4" y2="319.4"/>
+<text transform="matrix(1 0 0 1 170.4146 319.2578)" class="st6 st3 st7">reset_in2</text>
+<text transform="matrix(1 0 0 1 169.165 319.2383)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="320.3" x2="172.4" y2="320.3"/>
+<text transform="matrix(1 0 0 1 170.4146 320.1982)" class="st6 st3 st7">reset_in3</text>
+<text transform="matrix(1 0 0 1 169.165 320.1787)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="321.3" x2="172.4" y2="321.3"/>
+<text transform="matrix(1 0 0 1 170.4146 321.1396)" class="st6 st3 st7">reset_in4</text>
+<text transform="matrix(1 0 0 1 169.165 321.1201)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="322.2" x2="172.4" y2="322.2"/>
+<text transform="matrix(1 0 0 1 170.4146 322.0811)" class="st6 st3 st7">reset_in5</text>
+<text transform="matrix(1 0 0 1 169.165 322.0615)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="323.2" x2="172.4" y2="323.2"/>
+<text transform="matrix(1 0 0 1 170.4146 323.0215)" class="st6 st3 st7">reset_in6</text>
+<text transform="matrix(1 0 0 1 169.165 323.0029)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="324.1" x2="172.4" y2="324.1"/>
+<text transform="matrix(1 0 0 1 170.4146 323.9629)" class="st6 st3 st7">reset_in7</text>
+<text transform="matrix(1 0 0 1 169.165 323.9434)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="325" x2="172.4" y2="325"/>
+<text transform="matrix(1 0 0 1 170.4146 324.9043)" class="st6 st3 st7">reset_in8</text>
+<text transform="matrix(1 0 0 1 169.165 324.8848)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="326" x2="172.4" y2="326"/>
+<text transform="matrix(1 0 0 1 170.4146 325.8447)" class="st6 st3 st7">reset_in9</text>
+<text transform="matrix(1 0 0 1 169.165 325.8262)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="332.6" x2="172.4" y2="332.6"/>
+<text transform="matrix(1 0 0 1 169.4731 332.4326)" class="st6 st3 st7">reset_req_in0</text>
+<text transform="matrix(1 0 0 1 168.2241 332.4131)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="333.5" x2="172.4" y2="333.5"/>
+<text transform="matrix(1 0 0 1 169.4731 333.374)" class="st6 st3 st7">reset_req_in1</text>
+<text transform="matrix(1 0 0 1 168.2241 333.3545)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="342" x2="172.4" y2="342"/>
+<text transform="matrix(1 0 0 1 169.2114 341.8438)" class="st6 st3 st7">reset_req_in10</text>
+<text transform="matrix(1 0 0 1 167.9888 341.8242)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="342.9" x2="172.4" y2="342.9"/>
+<text transform="matrix(1 0 0 1 169.2114 342.7852)" class="st6 st3 st7">reset_req_in11</text>
+<text transform="matrix(1 0 0 1 167.9888 342.7656)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="343.9" x2="172.4" y2="343.9"/>
+<text transform="matrix(1 0 0 1 169.2114 343.7256)" class="st6 st3 st7">reset_req_in12</text>
+<text transform="matrix(1 0 0 1 167.9888 343.707)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="344.8" x2="172.4" y2="344.8"/>
+<text transform="matrix(1 0 0 1 169.2114 344.667)" class="st6 st3 st7">reset_req_in13</text>
+<text transform="matrix(1 0 0 1 167.9888 344.6475)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="345.8" x2="172.4" y2="345.8"/>
+<text transform="matrix(1 0 0 1 169.2114 345.6084)" class="st6 st3 st7">reset_req_in14</text>
+<text transform="matrix(1 0 0 1 167.9888 345.5889)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="346.7" x2="172.4" y2="346.7"/>
+<text transform="matrix(1 0 0 1 169.2114 346.5488)" class="st6 st3 st7">reset_req_in15</text>
+<text transform="matrix(1 0 0 1 167.9888 346.5303)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="334.5" x2="172.4" y2="334.5"/>
+<text transform="matrix(1 0 0 1 169.4731 334.3154)" class="st6 st3 st7">reset_req_in2</text>
+<text transform="matrix(1 0 0 1 168.2241 334.2959)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="335.4" x2="172.4" y2="335.4"/>
+<text transform="matrix(1 0 0 1 169.4731 335.2559)" class="st6 st3 st7">reset_req_in3</text>
+<text transform="matrix(1 0 0 1 168.2241 335.2363)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="336.3" x2="172.4" y2="336.3"/>
+<text transform="matrix(1 0 0 1 169.4731 336.1973)" class="st6 st3 st7">reset_req_in4</text>
+<text transform="matrix(1 0 0 1 168.2241 336.1777)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="337.3" x2="172.4" y2="337.3"/>
+<text transform="matrix(1 0 0 1 169.4731 337.1387)" class="st6 st3 st7">reset_req_in5</text>
+<text transform="matrix(1 0 0 1 168.2241 337.1191)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="338.2" x2="172.4" y2="338.2"/>
+<text transform="matrix(1 0 0 1 169.4731 338.0791)" class="st6 st3 st7">reset_req_in6</text>
+<text transform="matrix(1 0 0 1 168.2241 338.0596)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="339.2" x2="172.4" y2="339.2"/>
+<text transform="matrix(1 0 0 1 169.4731 339.0205)" class="st6 st3 st7">reset_req_in7</text>
+<text transform="matrix(1 0 0 1 168.2241 339.001)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="340.1" x2="172.4" y2="340.1"/>
+<text transform="matrix(1 0 0 1 169.4731 339.9619)" class="st6 st3 st7">reset_req_in8</text>
+<text transform="matrix(1 0 0 1 168.2241 339.9424)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="341" x2="172.4" y2="341"/>
+<text transform="matrix(1 0 0 1 169.4731 340.9023)" class="st6 st3 st7">reset_req_in9</text>
+<text transform="matrix(1 0 0 1 168.2241 340.8828)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="175.7" y1="330.7" x2="175.3" y2="330.7"/>
+<text transform="matrix(1 0 0 1 175.5498 330.5508)" class="st6 st3 st7">reset_out</text>
+<line class="st5" x1="175.7" y1="331.6" x2="175.3" y2="331.6"/>
+<text transform="matrix(1 0 0 1 175.5498 331.4922)" class="st6 st3 st7">reset_req</text>
+<line class="st5" x1="172.9" y1="316.6" x2="172.4" y2="316.6"/>
+<line class="st5" x1="172.9" y1="317.5" x2="172.4" y2="317.5"/>
+<line class="st5" x1="172.9" y1="318.5" x2="172.4" y2="318.5"/>
+<line class="st5" x1="172.9" y1="326.9" x2="172.4" y2="326.9"/>
+<line class="st5" x1="172.9" y1="327.9" x2="172.4" y2="327.9"/>
+<line class="st5" x1="172.9" y1="328.8" x2="172.4" y2="328.8"/>
+<line class="st5" x1="172.9" y1="329.8" x2="172.4" y2="329.8"/>
+<line class="st5" x1="172.9" y1="330.7" x2="172.4" y2="330.7"/>
+<line class="st5" x1="172.9" y1="331.6" x2="172.4" y2="331.6"/>
+<line class="st5" x1="172.9" y1="319.4" x2="172.4" y2="319.4"/>
+<line class="st5" x1="172.9" y1="320.3" x2="172.4" y2="320.3"/>
+<line class="st5" x1="172.9" y1="321.3" x2="172.4" y2="321.3"/>
+<line class="st5" x1="172.9" y1="322.2" x2="172.4" y2="322.2"/>
+<line class="st5" x1="172.9" y1="323.2" x2="172.4" y2="323.2"/>
+<line class="st5" x1="172.9" y1="324.1" x2="172.4" y2="324.1"/>
+<line class="st5" x1="172.9" y1="325" x2="172.4" y2="325"/>
+<line class="st5" x1="172.9" y1="326" x2="172.4" y2="326"/>
+<line class="st5" x1="172.9" y1="332.6" x2="172.4" y2="332.6"/>
+<line class="st5" x1="172.9" y1="333.5" x2="172.4" y2="333.5"/>
+<line class="st5" x1="172.9" y1="342" x2="172.4" y2="342"/>
+<line class="st5" x1="172.9" y1="342.9" x2="172.4" y2="342.9"/>
+<line class="st5" x1="172.9" y1="343.9" x2="172.4" y2="343.9"/>
+<line class="st5" x1="172.9" y1="344.8" x2="172.4" y2="344.8"/>
+<line class="st5" x1="172.9" y1="345.8" x2="172.4" y2="345.8"/>
+<line class="st5" x1="172.9" y1="346.7" x2="172.4" y2="346.7"/>
+<line class="st5" x1="172.9" y1="334.5" x2="172.4" y2="334.5"/>
+<line class="st5" x1="172.9" y1="335.4" x2="172.4" y2="335.4"/>
+<line class="st5" x1="172.9" y1="336.3" x2="172.4" y2="336.3"/>
+<line class="st5" x1="172.9" y1="337.3" x2="172.4" y2="337.3"/>
+<line class="st5" x1="172.9" y1="338.2" x2="172.4" y2="338.2"/>
+<line class="st5" x1="172.9" y1="339.2" x2="172.4" y2="339.2"/>
+<line class="st5" x1="172.9" y1="340.1" x2="172.4" y2="340.1"/>
+<line class="st5" x1="172.9" y1="341" x2="172.4" y2="341"/>
+<line class="st5" x1="174.8" y1="330.7" x2="175.3" y2="330.7"/>
+<line class="st5" x1="174.8" y1="331.6" x2="175.3" y2="331.6"/>
+<rect x="172.7" y="273" width="2.8" height="32.1"/>
+<rect x="172.4" y="272.7" class="st12" width="2.8" height="32.1"/>
+<rect x="172.4" y="272.7" class="st1" width="2.8" height="32.1"/>
+<line class="st2" x1="173" y1="273" x2="173" y2="273.5"/>
+<line class="st2" x1="172.7" y1="273.2" x2="173.2" y2="273.2"/>
+<rect x="172.6" y="272.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 168.7095 272.5127)" class="st3 st4">altera_reset_controller:rst_controller_002</text>
+<line class="st5" x1="172" y1="274.2" x2="172.4" y2="274.2"/>
+<text transform="matrix(1 0 0 1 171.7749 274.085)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M172.4,275.2c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1S172.4,275.2,172.4,275.2"/>
+<line class="st5" x1="172" y1="275.2" x2="172.2" y2="275.2"/>
+<text transform="matrix(1 0 0 1 170.2261 275.0264)" class="st6 st3 st7">reset_in0</text>
+<line class="st5" x1="172" y1="276.1" x2="172.4" y2="276.1"/>
+<text transform="matrix(1 0 0 1 170.4146 275.9668)" class="st6 st3 st7">reset_in1</text>
+<line class="st5" x1="172" y1="284.6" x2="172.4" y2="284.6"/>
+<text transform="matrix(1 0 0 1 170.1528 284.4365)" class="st6 st3 st7">reset_in10</text>
+<text transform="matrix(1 0 0 1 168.9297 284.418)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="285.5" x2="172.4" y2="285.5"/>
+<text transform="matrix(1 0 0 1 170.1528 285.3779)" class="st6 st3 st7">reset_in11</text>
+<text transform="matrix(1 0 0 1 168.9297 285.3584)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="286.5" x2="172.4" y2="286.5"/>
+<text transform="matrix(1 0 0 1 170.1528 286.3193)" class="st6 st3 st7">reset_in12</text>
+<text transform="matrix(1 0 0 1 168.9297 286.2998)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="287.4" x2="172.4" y2="287.4"/>
+<text transform="matrix(1 0 0 1 170.1528 287.2598)" class="st6 st3 st7">reset_in13</text>
+<text transform="matrix(1 0 0 1 168.9297 287.2412)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="288.3" x2="172.4" y2="288.3"/>
+<text transform="matrix(1 0 0 1 170.1528 288.2012)" class="st6 st3 st7">reset_in14</text>
+<text transform="matrix(1 0 0 1 168.9297 288.1816)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="289.3" x2="172.4" y2="289.3"/>
+<text transform="matrix(1 0 0 1 170.1528 289.1426)" class="st6 st3 st7">reset_in15</text>
+<text transform="matrix(1 0 0 1 168.9297 289.123)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="277.1" x2="172.4" y2="277.1"/>
+<text transform="matrix(1 0 0 1 170.4146 276.9082)" class="st6 st3 st7">reset_in2</text>
+<text transform="matrix(1 0 0 1 169.165 276.8887)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="278" x2="172.4" y2="278"/>
+<text transform="matrix(1 0 0 1 170.4146 277.8496)" class="st6 st3 st7">reset_in3</text>
+<text transform="matrix(1 0 0 1 169.165 277.8301)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="278.9" x2="172.4" y2="278.9"/>
+<text transform="matrix(1 0 0 1 170.4146 278.79)" class="st6 st3 st7">reset_in4</text>
+<text transform="matrix(1 0 0 1 169.165 278.7705)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="279.9" x2="172.4" y2="279.9"/>
+<text transform="matrix(1 0 0 1 170.4146 279.7314)" class="st6 st3 st7">reset_in5</text>
+<text transform="matrix(1 0 0 1 169.165 279.7119)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="280.8" x2="172.4" y2="280.8"/>
+<text transform="matrix(1 0 0 1 170.4146 280.6729)" class="st6 st3 st7">reset_in6</text>
+<text transform="matrix(1 0 0 1 169.165 280.6533)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="281.8" x2="172.4" y2="281.8"/>
+<text transform="matrix(1 0 0 1 170.4146 281.6133)" class="st6 st3 st7">reset_in7</text>
+<text transform="matrix(1 0 0 1 169.165 281.5938)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="282.7" x2="172.4" y2="282.7"/>
+<text transform="matrix(1 0 0 1 170.4146 282.5547)" class="st6 st3 st7">reset_in8</text>
+<text transform="matrix(1 0 0 1 169.165 282.5352)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="283.6" x2="172.4" y2="283.6"/>
+<text transform="matrix(1 0 0 1 170.4146 283.4961)" class="st6 st3 st7">reset_in9</text>
+<text transform="matrix(1 0 0 1 169.165 283.4766)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="290.2" x2="172.4" y2="290.2"/>
+<text transform="matrix(1 0 0 1 169.4731 290.084)" class="st6 st3 st7">reset_req_in0</text>
+<text transform="matrix(1 0 0 1 168.2241 290.0645)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="291.2" x2="172.4" y2="291.2"/>
+<text transform="matrix(1 0 0 1 169.4731 291.0244)" class="st6 st3 st7">reset_req_in1</text>
+<text transform="matrix(1 0 0 1 168.2241 291.0049)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="299.6" x2="172.4" y2="299.6"/>
+<text transform="matrix(1 0 0 1 169.2114 299.4941)" class="st6 st3 st7">reset_req_in10</text>
+<text transform="matrix(1 0 0 1 167.9888 299.4746)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="300.6" x2="172.4" y2="300.6"/>
+<text transform="matrix(1 0 0 1 169.2114 300.4355)" class="st6 st3 st7">reset_req_in11</text>
+<text transform="matrix(1 0 0 1 167.9888 300.416)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="301.5" x2="172.4" y2="301.5"/>
+<text transform="matrix(1 0 0 1 169.2114 301.377)" class="st6 st3 st7">reset_req_in12</text>
+<text transform="matrix(1 0 0 1 167.9888 301.3574)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="302.5" x2="172.4" y2="302.5"/>
+<text transform="matrix(1 0 0 1 169.2114 302.3174)" class="st6 st3 st7">reset_req_in13</text>
+<text transform="matrix(1 0 0 1 167.9888 302.2988)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="303.4" x2="172.4" y2="303.4"/>
+<text transform="matrix(1 0 0 1 169.2114 303.2588)" class="st6 st3 st7">reset_req_in14</text>
+<text transform="matrix(1 0 0 1 167.9888 303.2393)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="304.3" x2="172.4" y2="304.3"/>
+<text transform="matrix(1 0 0 1 169.2114 304.2002)" class="st6 st3 st7">reset_req_in15</text>
+<text transform="matrix(1 0 0 1 167.9888 304.1807)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="292.1" x2="172.4" y2="292.1"/>
+<text transform="matrix(1 0 0 1 169.4731 291.9658)" class="st6 st3 st7">reset_req_in2</text>
+<text transform="matrix(1 0 0 1 168.2241 291.9463)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="293.1" x2="172.4" y2="293.1"/>
+<text transform="matrix(1 0 0 1 169.4731 292.9072)" class="st6 st3 st7">reset_req_in3</text>
+<text transform="matrix(1 0 0 1 168.2241 292.8877)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="294" x2="172.4" y2="294"/>
+<text transform="matrix(1 0 0 1 169.4731 293.8477)" class="st6 st3 st7">reset_req_in4</text>
+<text transform="matrix(1 0 0 1 168.2241 293.8281)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="294.9" x2="172.4" y2="294.9"/>
+<text transform="matrix(1 0 0 1 169.4731 294.7891)" class="st6 st3 st7">reset_req_in5</text>
+<text transform="matrix(1 0 0 1 168.2241 294.7695)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="295.9" x2="172.4" y2="295.9"/>
+<text transform="matrix(1 0 0 1 169.4731 295.7305)" class="st6 st3 st7">reset_req_in6</text>
+<text transform="matrix(1 0 0 1 168.2241 295.7109)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="296.8" x2="172.4" y2="296.8"/>
+<text transform="matrix(1 0 0 1 169.4731 296.6709)" class="st6 st3 st7">reset_req_in7</text>
+<text transform="matrix(1 0 0 1 168.2241 296.6514)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="297.8" x2="172.4" y2="297.8"/>
+<text transform="matrix(1 0 0 1 169.4731 297.6123)" class="st6 st3 st7">reset_req_in8</text>
+<text transform="matrix(1 0 0 1 168.2241 297.5928)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="298.7" x2="172.4" y2="298.7"/>
+<text transform="matrix(1 0 0 1 169.4731 298.5537)" class="st6 st3 st7">reset_req_in9</text>
+<text transform="matrix(1 0 0 1 168.2241 298.5342)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="175.7" y1="289.3" x2="175.3" y2="289.3"/>
+<text transform="matrix(1 0 0 1 175.5498 289.1426)" class="st6 st3 st7">reset_out</text>
+<line class="st5" x1="172.9" y1="274.2" x2="172.4" y2="274.2"/>
+<line class="st5" x1="172.9" y1="275.2" x2="172.4" y2="275.2"/>
+<line class="st5" x1="172.9" y1="276.1" x2="172.4" y2="276.1"/>
+<line class="st5" x1="172.9" y1="284.6" x2="172.4" y2="284.6"/>
+<line class="st5" x1="172.9" y1="285.5" x2="172.4" y2="285.5"/>
+<line class="st5" x1="172.9" y1="286.5" x2="172.4" y2="286.5"/>
+<line class="st5" x1="172.9" y1="287.4" x2="172.4" y2="287.4"/>
+<line class="st5" x1="172.9" y1="288.3" x2="172.4" y2="288.3"/>
+<line class="st5" x1="172.9" y1="289.3" x2="172.4" y2="289.3"/>
+<line class="st5" x1="172.9" y1="277.1" x2="172.4" y2="277.1"/>
+<line class="st5" x1="172.9" y1="278" x2="172.4" y2="278"/>
+<line class="st5" x1="172.9" y1="278.9" x2="172.4" y2="278.9"/>
+<line class="st5" x1="172.9" y1="279.9" x2="172.4" y2="279.9"/>
+<line class="st5" x1="172.9" y1="280.8" x2="172.4" y2="280.8"/>
+<line class="st5" x1="172.9" y1="281.8" x2="172.4" y2="281.8"/>
+<line class="st5" x1="172.9" y1="282.7" x2="172.4" y2="282.7"/>
+<line class="st5" x1="172.9" y1="283.6" x2="172.4" y2="283.6"/>
+<line class="st5" x1="172.9" y1="290.2" x2="172.4" y2="290.2"/>
+<line class="st5" x1="172.9" y1="291.2" x2="172.4" y2="291.2"/>
+<line class="st5" x1="172.9" y1="299.6" x2="172.4" y2="299.6"/>
+<line class="st5" x1="172.9" y1="300.6" x2="172.4" y2="300.6"/>
+<line class="st5" x1="172.9" y1="301.5" x2="172.4" y2="301.5"/>
+<line class="st5" x1="172.9" y1="302.5" x2="172.4" y2="302.5"/>
+<line class="st5" x1="172.9" y1="303.4" x2="172.4" y2="303.4"/>
+<line class="st5" x1="172.9" y1="304.3" x2="172.4" y2="304.3"/>
+<line class="st5" x1="172.9" y1="292.1" x2="172.4" y2="292.1"/>
+<line class="st5" x1="172.9" y1="293.1" x2="172.4" y2="293.1"/>
+<line class="st5" x1="172.9" y1="294" x2="172.4" y2="294"/>
+<line class="st5" x1="172.9" y1="294.9" x2="172.4" y2="294.9"/>
+<line class="st5" x1="172.9" y1="295.9" x2="172.4" y2="295.9"/>
+<line class="st5" x1="172.9" y1="296.8" x2="172.4" y2="296.8"/>
+<line class="st5" x1="172.9" y1="297.8" x2="172.4" y2="297.8"/>
+<line class="st5" x1="172.9" y1="298.7" x2="172.4" y2="298.7"/>
+<line class="st5" x1="174.8" y1="289.3" x2="175.3" y2="289.3"/>
+<rect x="172.7" y="355.8" width="2.8" height="32.1"/>
+<rect x="172.4" y="355.5" class="st12" width="2.8" height="32.1"/>
+<rect x="172.4" y="355.5" class="st1" width="2.8" height="32.1"/>
+<line class="st2" x1="173" y1="355.8" x2="173" y2="356.3"/>
+<line class="st2" x1="172.7" y1="356.1" x2="173.2" y2="356.1"/>
+<rect x="172.6" y="355.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 168.7095 355.3291)" class="st3 st4">altera_reset_controller:rst_controller_003</text>
+<line class="st5" x1="172" y1="357" x2="172.4" y2="357"/>
+<text transform="matrix(1 0 0 1 171.7749 356.9014)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M172.4,358c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1S172.4,358.1,172.4,358"/>
+<line class="st5" x1="172" y1="358" x2="172.2" y2="358"/>
+<text transform="matrix(1 0 0 1 170.2261 357.8428)" class="st6 st3 st7">reset_in0</text>
+<line class="st5" x1="172" y1="358.9" x2="172.4" y2="358.9"/>
+<text transform="matrix(1 0 0 1 170.4146 358.7832)" class="st6 st3 st7">reset_in1</text>
+<line class="st5" x1="172" y1="367.4" x2="172.4" y2="367.4"/>
+<text transform="matrix(1 0 0 1 170.1528 367.2529)" class="st6 st3 st7">reset_in10</text>
+<text transform="matrix(1 0 0 1 168.9297 367.2344)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="368.3" x2="172.4" y2="368.3"/>
+<text transform="matrix(1 0 0 1 170.1528 368.1943)" class="st6 st3 st7">reset_in11</text>
+<text transform="matrix(1 0 0 1 168.9297 368.1748)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="369.3" x2="172.4" y2="369.3"/>
+<text transform="matrix(1 0 0 1 170.1528 369.1357)" class="st6 st3 st7">reset_in12</text>
+<text transform="matrix(1 0 0 1 168.9297 369.1162)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="370.2" x2="172.4" y2="370.2"/>
+<text transform="matrix(1 0 0 1 170.1528 370.0771)" class="st6 st3 st7">reset_in13</text>
+<text transform="matrix(1 0 0 1 168.9297 370.0576)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="371.2" x2="172.4" y2="371.2"/>
+<text transform="matrix(1 0 0 1 170.1528 371.0176)" class="st6 st3 st7">reset_in14</text>
+<text transform="matrix(1 0 0 1 168.9297 370.998)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="372.1" x2="172.4" y2="372.1"/>
+<text transform="matrix(1 0 0 1 170.1528 371.959)" class="st6 st3 st7">reset_in15</text>
+<text transform="matrix(1 0 0 1 168.9297 371.9395)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="359.9" x2="172.4" y2="359.9"/>
+<text transform="matrix(1 0 0 1 170.4146 359.7246)" class="st6 st3 st7">reset_in2</text>
+<text transform="matrix(1 0 0 1 169.165 359.7051)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="360.8" x2="172.4" y2="360.8"/>
+<text transform="matrix(1 0 0 1 170.4146 360.666)" class="st6 st3 st7">reset_in3</text>
+<text transform="matrix(1 0 0 1 169.165 360.6465)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="361.8" x2="172.4" y2="361.8"/>
+<text transform="matrix(1 0 0 1 170.4146 361.6064)" class="st6 st3 st7">reset_in4</text>
+<text transform="matrix(1 0 0 1 169.165 361.5869)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="362.7" x2="172.4" y2="362.7"/>
+<text transform="matrix(1 0 0 1 170.4146 362.5479)" class="st6 st3 st7">reset_in5</text>
+<text transform="matrix(1 0 0 1 169.165 362.5283)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="363.6" x2="172.4" y2="363.6"/>
+<text transform="matrix(1 0 0 1 170.4146 363.4893)" class="st6 st3 st7">reset_in6</text>
+<text transform="matrix(1 0 0 1 169.165 363.4697)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="364.6" x2="172.4" y2="364.6"/>
+<text transform="matrix(1 0 0 1 170.4146 364.4297)" class="st6 st3 st7">reset_in7</text>
+<text transform="matrix(1 0 0 1 169.165 364.4111)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="365.5" x2="172.4" y2="365.5"/>
+<text transform="matrix(1 0 0 1 170.4146 365.3711)" class="st6 st3 st7">reset_in8</text>
+<text transform="matrix(1 0 0 1 169.165 365.3516)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="366.5" x2="172.4" y2="366.5"/>
+<text transform="matrix(1 0 0 1 170.4146 366.3125)" class="st6 st3 st7">reset_in9</text>
+<text transform="matrix(1 0 0 1 169.165 366.293)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="373" x2="172.4" y2="373"/>
+<text transform="matrix(1 0 0 1 169.4731 372.9004)" class="st6 st3 st7">reset_req_in0</text>
+<text transform="matrix(1 0 0 1 168.2241 372.8809)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="374" x2="172.4" y2="374"/>
+<text transform="matrix(1 0 0 1 169.4731 373.8408)" class="st6 st3 st7">reset_req_in1</text>
+<text transform="matrix(1 0 0 1 168.2241 373.8213)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="382.5" x2="172.4" y2="382.5"/>
+<text transform="matrix(1 0 0 1 169.2114 382.3105)" class="st6 st3 st7">reset_req_in10</text>
+<text transform="matrix(1 0 0 1 167.9888 382.292)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="383.4" x2="172.4" y2="383.4"/>
+<text transform="matrix(1 0 0 1 169.2114 383.252)" class="st6 st3 st7">reset_req_in11</text>
+<text transform="matrix(1 0 0 1 167.9888 383.2324)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="384.3" x2="172.4" y2="384.3"/>
+<text transform="matrix(1 0 0 1 169.2114 384.1934)" class="st6 st3 st7">reset_req_in12</text>
+<text transform="matrix(1 0 0 1 167.9888 384.1738)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="385.3" x2="172.4" y2="385.3"/>
+<text transform="matrix(1 0 0 1 169.2114 385.1338)" class="st6 st3 st7">reset_req_in13</text>
+<text transform="matrix(1 0 0 1 167.9888 385.1152)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="386.2" x2="172.4" y2="386.2"/>
+<text transform="matrix(1 0 0 1 169.2114 386.0752)" class="st6 st3 st7">reset_req_in14</text>
+<text transform="matrix(1 0 0 1 167.9888 386.0557)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="387.2" x2="172.4" y2="387.2"/>
+<text transform="matrix(1 0 0 1 169.2114 387.0166)" class="st6 st3 st7">reset_req_in15</text>
+<text transform="matrix(1 0 0 1 167.9888 386.9971)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="374.9" x2="172.4" y2="374.9"/>
+<text transform="matrix(1 0 0 1 169.4731 374.7822)" class="st6 st3 st7">reset_req_in2</text>
+<text transform="matrix(1 0 0 1 168.2241 374.7627)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="375.9" x2="172.4" y2="375.9"/>
+<text transform="matrix(1 0 0 1 169.4731 375.7236)" class="st6 st3 st7">reset_req_in3</text>
+<text transform="matrix(1 0 0 1 168.2241 375.7041)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="376.8" x2="172.4" y2="376.8"/>
+<text transform="matrix(1 0 0 1 169.4731 376.6641)" class="st6 st3 st7">reset_req_in4</text>
+<text transform="matrix(1 0 0 1 168.2241 376.6445)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="377.8" x2="172.4" y2="377.8"/>
+<text transform="matrix(1 0 0 1 169.4731 377.6055)" class="st6 st3 st7">reset_req_in5</text>
+<text transform="matrix(1 0 0 1 168.2241 377.5859)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="378.7" x2="172.4" y2="378.7"/>
+<text transform="matrix(1 0 0 1 169.4731 378.5469)" class="st6 st3 st7">reset_req_in6</text>
+<text transform="matrix(1 0 0 1 168.2241 378.5273)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="379.6" x2="172.4" y2="379.6"/>
+<text transform="matrix(1 0 0 1 169.4731 379.4873)" class="st6 st3 st7">reset_req_in7</text>
+<text transform="matrix(1 0 0 1 168.2241 379.4678)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="380.6" x2="172.4" y2="380.6"/>
+<text transform="matrix(1 0 0 1 169.4731 380.4287)" class="st6 st3 st7">reset_req_in8</text>
+<text transform="matrix(1 0 0 1 168.2241 380.4092)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="172" y1="381.5" x2="172.4" y2="381.5"/>
+<text transform="matrix(1 0 0 1 169.4731 381.3701)" class="st6 st3 st7">reset_req_in9</text>
+<text transform="matrix(1 0 0 1 168.2241 381.3506)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="175.7" y1="372.1" x2="175.3" y2="372.1"/>
+<text transform="matrix(1 0 0 1 175.5498 371.959)" class="st6 st3 st7">reset_out</text>
+<line class="st5" x1="172.9" y1="357" x2="172.4" y2="357"/>
+<line class="st5" x1="172.9" y1="358" x2="172.4" y2="358"/>
+<line class="st5" x1="172.9" y1="358.9" x2="172.4" y2="358.9"/>
+<line class="st5" x1="172.9" y1="367.4" x2="172.4" y2="367.4"/>
+<line class="st5" x1="172.9" y1="368.3" x2="172.4" y2="368.3"/>
+<line class="st5" x1="172.9" y1="369.3" x2="172.4" y2="369.3"/>
+<line class="st5" x1="172.9" y1="370.2" x2="172.4" y2="370.2"/>
+<line class="st5" x1="172.9" y1="371.2" x2="172.4" y2="371.2"/>
+<line class="st5" x1="172.9" y1="372.1" x2="172.4" y2="372.1"/>
+<line class="st5" x1="172.9" y1="359.9" x2="172.4" y2="359.9"/>
+<line class="st5" x1="172.9" y1="360.8" x2="172.4" y2="360.8"/>
+<line class="st5" x1="172.9" y1="361.8" x2="172.4" y2="361.8"/>
+<line class="st5" x1="172.9" y1="362.7" x2="172.4" y2="362.7"/>
+<line class="st5" x1="172.9" y1="363.6" x2="172.4" y2="363.6"/>
+<line class="st5" x1="172.9" y1="364.6" x2="172.4" y2="364.6"/>
+<line class="st5" x1="172.9" y1="365.5" x2="172.4" y2="365.5"/>
+<line class="st5" x1="172.9" y1="366.5" x2="172.4" y2="366.5"/>
+<line class="st5" x1="172.9" y1="373" x2="172.4" y2="373"/>
+<line class="st5" x1="172.9" y1="374" x2="172.4" y2="374"/>
+<line class="st5" x1="172.9" y1="382.5" x2="172.4" y2="382.5"/>
+<line class="st5" x1="172.9" y1="383.4" x2="172.4" y2="383.4"/>
+<line class="st5" x1="172.9" y1="384.3" x2="172.4" y2="384.3"/>
+<line class="st5" x1="172.9" y1="385.3" x2="172.4" y2="385.3"/>
+<line class="st5" x1="172.9" y1="386.2" x2="172.4" y2="386.2"/>
+<line class="st5" x1="172.9" y1="387.2" x2="172.4" y2="387.2"/>
+<line class="st5" x1="172.9" y1="374.9" x2="172.4" y2="374.9"/>
+<line class="st5" x1="172.9" y1="375.9" x2="172.4" y2="375.9"/>
+<line class="st5" x1="172.9" y1="376.8" x2="172.4" y2="376.8"/>
+<line class="st5" x1="172.9" y1="377.8" x2="172.4" y2="377.8"/>
+<line class="st5" x1="172.9" y1="378.7" x2="172.4" y2="378.7"/>
+<line class="st5" x1="172.9" y1="379.6" x2="172.4" y2="379.6"/>
+<line class="st5" x1="172.9" y1="380.6" x2="172.4" y2="380.6"/>
+<line class="st5" x1="172.9" y1="381.5" x2="172.4" y2="381.5"/>
+<line class="st5" x1="174.8" y1="372.1" x2="175.3" y2="372.1"/>
+<rect x="37.2" y="353.9" width="2.8" height="32.1"/>
+<rect x="36.9" y="353.7" class="st12" width="2.8" height="32.1"/>
+<rect x="36.9" y="353.7" class="st1" width="2.8" height="32.1"/>
+<line class="st2" x1="37.4" y1="353.9" x2="37.4" y2="354.5"/>
+<line class="st2" x1="37.2" y1="354.2" x2="37.7" y2="354.2"/>
+<rect x="37.1" y="353.8" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 33.8193 353.4473)" class="st3 st4">altera_reset_controller:rst_controller</text>
+<line class="st5" x1="36.5" y1="355.2" x2="36.9" y2="355.2"/>
+<text transform="matrix(1 0 0 1 36.2568 355.0195)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M36.9,356.1c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1S36.9,356.2,36.9,356.1"/>
+<line class="st5" x1="36.5" y1="356.1" x2="36.6" y2="356.1"/>
+<text transform="matrix(1 0 0 1 34.7085 355.96)" class="st6 st3 st7">reset_in0</text>
+<line class="st5" x1="36.5" y1="357" x2="36.9" y2="357"/>
+<text transform="matrix(1 0 0 1 34.8965 356.9014)" class="st6 st3 st7">reset_in1</text>
+<text transform="matrix(1 0 0 1 33.6475 356.8818)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="365.5" x2="36.9" y2="365.5"/>
+<text transform="matrix(1 0 0 1 34.6348 365.3711)" class="st6 st3 st7">reset_in10</text>
+<text transform="matrix(1 0 0 1 33.4121 365.3516)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="366.5" x2="36.9" y2="366.5"/>
+<text transform="matrix(1 0 0 1 34.6348 366.3125)" class="st6 st3 st7">reset_in11</text>
+<text transform="matrix(1 0 0 1 33.4121 366.293)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="367.4" x2="36.9" y2="367.4"/>
+<text transform="matrix(1 0 0 1 34.6348 367.2529)" class="st6 st3 st7">reset_in12</text>
+<text transform="matrix(1 0 0 1 33.4121 367.2344)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="368.3" x2="36.9" y2="368.3"/>
+<text transform="matrix(1 0 0 1 34.6348 368.1943)" class="st6 st3 st7">reset_in13</text>
+<text transform="matrix(1 0 0 1 33.4121 368.1748)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="369.3" x2="36.9" y2="369.3"/>
+<text transform="matrix(1 0 0 1 34.6348 369.1357)" class="st6 st3 st7">reset_in14</text>
+<text transform="matrix(1 0 0 1 33.4121 369.1162)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="370.2" x2="36.9" y2="370.2"/>
+<text transform="matrix(1 0 0 1 34.6348 370.0771)" class="st6 st3 st7">reset_in15</text>
+<text transform="matrix(1 0 0 1 33.4121 370.0576)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="358" x2="36.9" y2="358"/>
+<text transform="matrix(1 0 0 1 34.8965 357.8428)" class="st6 st3 st7">reset_in2</text>
+<text transform="matrix(1 0 0 1 33.6475 357.8232)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="358.9" x2="36.9" y2="358.9"/>
+<text transform="matrix(1 0 0 1 34.8965 358.7832)" class="st6 st3 st7">reset_in3</text>
+<text transform="matrix(1 0 0 1 33.6475 358.7637)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="359.9" x2="36.9" y2="359.9"/>
+<text transform="matrix(1 0 0 1 34.8965 359.7246)" class="st6 st3 st7">reset_in4</text>
+<text transform="matrix(1 0 0 1 33.6475 359.7051)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="360.8" x2="36.9" y2="360.8"/>
+<text transform="matrix(1 0 0 1 34.8965 360.666)" class="st6 st3 st7">reset_in5</text>
+<text transform="matrix(1 0 0 1 33.6475 360.6465)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="361.8" x2="36.9" y2="361.8"/>
+<text transform="matrix(1 0 0 1 34.8965 361.6064)" class="st6 st3 st7">reset_in6</text>
+<text transform="matrix(1 0 0 1 33.6475 361.5869)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="362.7" x2="36.9" y2="362.7"/>
+<text transform="matrix(1 0 0 1 34.8965 362.5479)" class="st6 st3 st7">reset_in7</text>
+<text transform="matrix(1 0 0 1 33.6475 362.5283)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="363.6" x2="36.9" y2="363.6"/>
+<text transform="matrix(1 0 0 1 34.8965 363.4893)" class="st6 st3 st7">reset_in8</text>
+<text transform="matrix(1 0 0 1 33.6475 363.4697)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="364.6" x2="36.9" y2="364.6"/>
+<text transform="matrix(1 0 0 1 34.8965 364.4297)" class="st6 st3 st7">reset_in9</text>
+<text transform="matrix(1 0 0 1 33.6475 364.4111)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="371.2" x2="36.9" y2="371.2"/>
+<text transform="matrix(1 0 0 1 33.9551 371.0176)" class="st6 st3 st7">reset_req_in0</text>
+<text transform="matrix(1 0 0 1 32.7061 370.998)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="372.1" x2="36.9" y2="372.1"/>
+<text transform="matrix(1 0 0 1 33.9551 371.959)" class="st6 st3 st7">reset_req_in1</text>
+<text transform="matrix(1 0 0 1 32.7061 371.9395)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="380.6" x2="36.9" y2="380.6"/>
+<text transform="matrix(1 0 0 1 33.6934 380.4287)" class="st6 st3 st7">reset_req_in10</text>
+<text transform="matrix(1 0 0 1 32.4712 380.4092)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="381.5" x2="36.9" y2="381.5"/>
+<text transform="matrix(1 0 0 1 33.6934 381.3701)" class="st6 st3 st7">reset_req_in11</text>
+<text transform="matrix(1 0 0 1 32.4712 381.3506)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="382.5" x2="36.9" y2="382.5"/>
+<text transform="matrix(1 0 0 1 33.6934 382.3105)" class="st6 st3 st7">reset_req_in12</text>
+<text transform="matrix(1 0 0 1 32.4712 382.292)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="383.4" x2="36.9" y2="383.4"/>
+<text transform="matrix(1 0 0 1 33.6934 383.252)" class="st6 st3 st7">reset_req_in13</text>
+<text transform="matrix(1 0 0 1 32.4712 383.2324)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="384.3" x2="36.9" y2="384.3"/>
+<text transform="matrix(1 0 0 1 33.6934 384.1934)" class="st6 st3 st7">reset_req_in14</text>
+<text transform="matrix(1 0 0 1 32.4712 384.1738)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="385.3" x2="36.9" y2="385.3"/>
+<text transform="matrix(1 0 0 1 33.6934 385.1338)" class="st6 st3 st7">reset_req_in15</text>
+<text transform="matrix(1 0 0 1 32.4712 385.1152)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="373" x2="36.9" y2="373"/>
+<text transform="matrix(1 0 0 1 33.9551 372.9004)" class="st6 st3 st7">reset_req_in2</text>
+<text transform="matrix(1 0 0 1 32.7061 372.8809)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="374" x2="36.9" y2="374"/>
+<text transform="matrix(1 0 0 1 33.9551 373.8408)" class="st6 st3 st7">reset_req_in3</text>
+<text transform="matrix(1 0 0 1 32.7061 373.8213)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="374.9" x2="36.9" y2="374.9"/>
+<text transform="matrix(1 0 0 1 33.9551 374.7822)" class="st6 st3 st7">reset_req_in4</text>
+<text transform="matrix(1 0 0 1 32.7061 374.7627)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="375.9" x2="36.9" y2="375.9"/>
+<text transform="matrix(1 0 0 1 33.9551 375.7236)" class="st6 st3 st7">reset_req_in5</text>
+<text transform="matrix(1 0 0 1 32.7061 375.7041)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="376.8" x2="36.9" y2="376.8"/>
+<text transform="matrix(1 0 0 1 33.9551 376.6641)" class="st6 st3 st7">reset_req_in6</text>
+<text transform="matrix(1 0 0 1 32.7061 376.6445)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="377.8" x2="36.9" y2="377.8"/>
+<text transform="matrix(1 0 0 1 33.9551 377.6055)" class="st6 st3 st7">reset_req_in7</text>
+<text transform="matrix(1 0 0 1 32.7061 377.5859)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="378.7" x2="36.9" y2="378.7"/>
+<text transform="matrix(1 0 0 1 33.9551 378.5469)" class="st6 st3 st7">reset_req_in8</text>
+<text transform="matrix(1 0 0 1 32.7061 378.5273)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="36.5" y1="379.6" x2="36.9" y2="379.6"/>
+<text transform="matrix(1 0 0 1 33.9551 379.4873)" class="st6 st3 st7">reset_req_in9</text>
+<text transform="matrix(1 0 0 1 32.7061 379.4678)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="40.2" y1="369.3" x2="39.7" y2="369.3"/>
+<text transform="matrix(1 0 0 1 40.0317 369.1357)" class="st6 st3 st7">reset_out</text>
+<line class="st5" x1="40.2" y1="370.2" x2="39.7" y2="370.2"/>
+<text transform="matrix(1 0 0 1 40.0317 370.0771)" class="st6 st3 st7">reset_req</text>
+<line class="st5" x1="37.4" y1="355.2" x2="36.9" y2="355.2"/>
+<line class="st5" x1="37.4" y1="356.1" x2="36.9" y2="356.1"/>
+<line class="st5" x1="37.4" y1="357" x2="36.9" y2="357"/>
+<line class="st5" x1="37.4" y1="365.5" x2="36.9" y2="365.5"/>
+<line class="st5" x1="37.4" y1="366.5" x2="36.9" y2="366.5"/>
+<line class="st5" x1="37.4" y1="367.4" x2="36.9" y2="367.4"/>
+<line class="st5" x1="37.4" y1="368.3" x2="36.9" y2="368.3"/>
+<line class="st5" x1="37.4" y1="369.3" x2="36.9" y2="369.3"/>
+<line class="st5" x1="37.4" y1="370.2" x2="36.9" y2="370.2"/>
+<line class="st5" x1="37.4" y1="358" x2="36.9" y2="358"/>
+<line class="st5" x1="37.4" y1="358.9" x2="36.9" y2="358.9"/>
+<line class="st5" x1="37.4" y1="359.9" x2="36.9" y2="359.9"/>
+<line class="st5" x1="37.4" y1="360.8" x2="36.9" y2="360.8"/>
+<line class="st5" x1="37.4" y1="361.8" x2="36.9" y2="361.8"/>
+<line class="st5" x1="37.4" y1="362.7" x2="36.9" y2="362.7"/>
+<line class="st5" x1="37.4" y1="363.6" x2="36.9" y2="363.6"/>
+<line class="st5" x1="37.4" y1="364.6" x2="36.9" y2="364.6"/>
+<line class="st5" x1="37.4" y1="371.2" x2="36.9" y2="371.2"/>
+<line class="st5" x1="37.4" y1="372.1" x2="36.9" y2="372.1"/>
+<line class="st5" x1="37.4" y1="380.6" x2="36.9" y2="380.6"/>
+<line class="st5" x1="37.4" y1="381.5" x2="36.9" y2="381.5"/>
+<line class="st5" x1="37.4" y1="382.5" x2="36.9" y2="382.5"/>
+<line class="st5" x1="37.4" y1="383.4" x2="36.9" y2="383.4"/>
+<line class="st5" x1="37.4" y1="384.3" x2="36.9" y2="384.3"/>
+<line class="st5" x1="37.4" y1="385.3" x2="36.9" y2="385.3"/>
+<line class="st5" x1="37.4" y1="373" x2="36.9" y2="373"/>
+<line class="st5" x1="37.4" y1="374" x2="36.9" y2="374"/>
+<line class="st5" x1="37.4" y1="374.9" x2="36.9" y2="374.9"/>
+<line class="st5" x1="37.4" y1="375.9" x2="36.9" y2="375.9"/>
+<line class="st5" x1="37.4" y1="376.8" x2="36.9" y2="376.8"/>
+<line class="st5" x1="37.4" y1="377.8" x2="36.9" y2="377.8"/>
+<line class="st5" x1="37.4" y1="378.7" x2="36.9" y2="378.7"/>
+<line class="st5" x1="37.4" y1="379.6" x2="36.9" y2="379.6"/>
+<line class="st5" x1="39.3" y1="369.3" x2="39.7" y2="369.3"/>
+<line class="st5" x1="39.3" y1="370.2" x2="39.7" y2="370.2"/>
+<rect x="459.7" y="49" width="2.8" height="8.6"/>
+<rect x="459.5" y="48.7" class="st12" width="2.8" height="8.6"/>
+<rect x="459.5" y="48.7" class="st1" width="2.8" height="8.6"/>
+<line class="st2" x1="460" y1="49" x2="460" y2="49.5"/>
+<line class="st2" x1="459.7" y1="49.3" x2="460.3" y2="49.3"/>
+<rect x="459.6" y="48.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 459.1162 48.5322)" class="st3 st4">audio:audio_0</text>
+<line class="st5" x1="459" y1="50.2" x2="459.5" y2="50.2"/>
+<text transform="matrix(1 0 0 1 456.1953 50.1045)" class="st6 st3 st7">AUD_ADCDAT</text>
+<line class="st5" x1="459" y1="52.1" x2="459.5" y2="52.1"/>
+<text transform="matrix(1 0 0 1 457.5801 51.9863)" class="st6 st3 st7">AVL_CS</text>
+<line class="st5" x1="459" y1="53.1" x2="459.5" y2="53.1"/>
+<text transform="matrix(1 0 0 1 457.5537 52.9277)" class="st6 st3 st7">AVL_RD</text>
+<line class="st5" x1="459" y1="55" x2="459.5" y2="55"/>
+<text transform="matrix(1 0 0 1 457.4492 54.8096)" class="st6 st3 st7">AVL_WR</text>
+<line class="st5" x1="459" y1="55.9" x2="459.5" y2="55.9"/>
+<text transform="matrix(1 0 0 1 458.4688 55.751)" class="st6 st3 st7">CLK</text>
+<line class="st5" x1="459" y1="56.8" x2="459.5" y2="56.8"/>
+<text transform="matrix(1 0 0 1 457.8154 56.6919)" class="st6 st3 st7">RESET</text>
+<line class="st8" x1="459" y1="51.2" x2="459.5" y2="51.2"/>
+<text transform="matrix(1 0 0 1 455.8535 51.0454)" class="st6 st3 st7">AVL_ADDR[8..0]</text>
+<line class="st8" x1="459" y1="54" x2="459.5" y2="54"/>
+<text transform="matrix(1 0 0 1 455.2256 53.8687)" class="st6 st3 st7">AVL_WDATA[31..0]</text>
+<line class="st5" x1="462.8" y1="50.2" x2="462.3" y2="50.2"/>
+<text transform="matrix(1 0 0 1 462.584 50.1045)" class="st6 st3 st7">AUD_ADCLRCK</text>
+<line class="st5" x1="462.8" y1="51.2" x2="462.3" y2="51.2"/>
+<text transform="matrix(1 0 0 1 462.584 51.0454)" class="st6 st3 st7">AUD_BCLK</text>
+<line class="st5" x1="462.8" y1="52.1" x2="462.3" y2="52.1"/>
+<text transform="matrix(1 0 0 1 462.584 51.9863)" class="st6 st3 st7">AUD_DACDAT</text>
+<line class="st5" x1="462.8" y1="53.1" x2="462.3" y2="53.1"/>
+<text transform="matrix(1 0 0 1 462.584 52.9277)" class="st6 st3 st7">AUD_DACLRCK</text>
+<line class="st5" x1="462.8" y1="55" x2="462.3" y2="55"/>
+<text transform="matrix(1 0 0 1 462.584 54.8096)" class="st6 st3 st7">I2C_SCLK</text>
+<line class="st5" x1="462.8" y1="55.9" x2="462.3" y2="55.9"/>
+<text transform="matrix(1 0 0 1 462.584 55.751)" class="st6 st3 st7">I2C_SDAT</text>
+<line class="st8" x1="462.8" y1="54" x2="462.3" y2="54"/>
+<text transform="matrix(1 0 0 1 462.584 53.8687)" class="st6 st3 st7">AVL_RDATA[31..0]</text>
+<line class="st5" x1="459.9" y1="50.2" x2="459.5" y2="50.2"/>
+<line class="st5" x1="459.9" y1="52.1" x2="459.5" y2="52.1"/>
+<line class="st5" x1="459.9" y1="53.1" x2="459.5" y2="53.1"/>
+<line class="st5" x1="459.9" y1="55" x2="459.5" y2="55"/>
+<line class="st5" x1="459.9" y1="55.9" x2="459.5" y2="55.9"/>
+<line class="st5" x1="459.9" y1="56.8" x2="459.5" y2="56.8"/>
+<line class="st8" x1="459.9" y1="51.2" x2="459.5" y2="51.2"/>
+<line class="st8" x1="459.9" y1="54" x2="459.5" y2="54"/>
+<line class="st5" x1="461.8" y1="50.2" x2="462.3" y2="50.2"/>
+<line class="st5" x1="461.8" y1="51.2" x2="462.3" y2="51.2"/>
+<line class="st5" x1="461.8" y1="52.1" x2="462.3" y2="52.1"/>
+<line class="st5" x1="461.8" y1="53.1" x2="462.3" y2="53.1"/>
+<line class="st5" x1="461.8" y1="55" x2="462.3" y2="55"/>
+<line class="st5" x1="461.8" y1="55.9" x2="462.3" y2="55.9"/>
+<line class="st8" x1="461.8" y1="54" x2="462.3" y2="54"/>
+<rect x="459.7" y="254.1" width="2.8" height="7.6"/>
+<rect x="459.5" y="253.9" class="st12" width="2.8" height="7.6"/>
+<rect x="459.5" y="253.9" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="460" y1="254.1" x2="460" y2="254.7"/>
+<line class="st2" x1="459.7" y1="254.4" x2="460.3" y2="254.4"/>
+<rect x="459.6" y="254" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.752 253.6904)" class="st3 st4">final_sd_interface:sdcard</text>
+<line class="st5" x1="459" y1="255.4" x2="459.5" y2="255.4"/>
+<text transform="matrix(1 0 0 1 458.4688 255.2627)" class="st6 st3 st7">CLK</text>
+<line class="st5" x1="459" y1="256.3" x2="459.5" y2="256.3"/>
+<text transform="matrix(1 0 0 1 457.8154 256.2041)" class="st6 st3 st7">RESET</text>
+<line class="st5" x1="459" y1="258.2" x2="459.5" y2="258.2"/>
+<text transform="matrix(1 0 0 1 458.1553 258.0859)" class="st6 st3 st7">sd_cs</text>
+<line class="st5" x1="459" y1="259.2" x2="459.5" y2="259.2"/>
+<text transform="matrix(1 0 0 1 457.6846 259.0273)" class="st6 st3 st7">sd_read</text>
+<line class="st5" x1="459" y1="261.1" x2="459.5" y2="261.1"/>
+<text transform="matrix(1 0 0 1 457.6328 260.9092)" class="st6 st3 st7">sd_write</text>
+<line class="st8" x1="459" y1="257.3" x2="459.5" y2="257.3"/>
+<text transform="matrix(1 0 0 1 456.6377 257.1455)" class="st6 st3 st7">sd_addr[7..0]</text>
+<line class="st8" x1="459" y1="260.1" x2="459.5" y2="260.1"/>
+<text transform="matrix(1 0 0 1 455.4082 259.9688)" class="st6 st3 st7">sd_writedata[31..0]</text>
+<line class="st5" x1="462.8" y1="257.3" x2="462.3" y2="257.3"/>
+<text transform="matrix(1 0 0 1 462.584 257.1455)" class="st6 st3 st7">SD_CLK</text>
+<line class="st5" x1="462.8" y1="258.2" x2="462.3" y2="258.2"/>
+<text transform="matrix(1 0 0 1 462.584 258.0859)" class="st6 st3 st7">SD_CMD</text>
+<line class="st8" x1="462.8" y1="260.1" x2="462.3" y2="260.1"/>
+<text transform="matrix(1 0 0 1 462.584 259.9688)" class="st6 st3 st7">sd_readdata[31..0]</text>
+<line class="st8" x1="462.8" y1="255.4" x2="462.3" y2="255.4"/>
+<text transform="matrix(1 0 0 1 462.584 255.2627)" class="st6 st3 st7">LEDG[6..0]</text>
+<line class="st8" x1="462.8" y1="256.3" x2="462.3" y2="256.3"/>
+<text transform="matrix(1 0 0 1 462.584 256.2041)" class="st6 st3 st7">LEDR[15..0]</text>
+<line class="st8" x1="462.8" y1="259.2" x2="462.3" y2="259.2"/>
+<text transform="matrix(1 0 0 1 462.584 259.0273)" class="st6 st3 st7">SD_DAT[3..0]</text>
+<line class="st5" x1="459.9" y1="255.4" x2="459.5" y2="255.4"/>
+<line class="st5" x1="459.9" y1="256.3" x2="459.5" y2="256.3"/>
+<line class="st5" x1="459.9" y1="258.2" x2="459.5" y2="258.2"/>
+<line class="st5" x1="459.9" y1="259.2" x2="459.5" y2="259.2"/>
+<line class="st5" x1="459.9" y1="261.1" x2="459.5" y2="261.1"/>
+<line class="st8" x1="459.9" y1="257.3" x2="459.5" y2="257.3"/>
+<line class="st8" x1="459.9" y1="260.1" x2="459.5" y2="260.1"/>
+<line class="st5" x1="461.8" y1="257.3" x2="462.3" y2="257.3"/>
+<line class="st5" x1="461.8" y1="258.2" x2="462.3" y2="258.2"/>
+<line class="st8" x1="461.8" y1="260.1" x2="462.3" y2="260.1"/>
+<line class="st8" x1="461.8" y1="255.4" x2="462.3" y2="255.4"/>
+<line class="st8" x1="461.8" y1="256.3" x2="462.3" y2="256.3"/>
+<line class="st8" x1="461.8" y1="259.2" x2="462.3" y2="259.2"/>
+<rect x="459.7" y="73.4" width="2.8" height="19.9"/>
+<rect x="459.5" y="73.2" class="st12" width="2.8" height="19.9"/>
+<rect x="459.5" y="73.2" class="st1" width="2.8" height="19.9"/>
+<line class="st2" x1="460" y1="73.4" x2="460" y2="74"/>
+<line class="st2" x1="459.7" y1="73.7" x2="460.3" y2="73.7"/>
+<rect x="459.6" y="73.4" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 458.8496 73.0005)" class="st3 st4">gl_avalon_intf:gl</text>
+<line class="st5" x1="459" y1="76.6" x2="459.5" y2="76.6"/>
+<text transform="matrix(1 0 0 1 456.6904 76.4551)" class="st6 st3 st7">AVL_GL_CS</text>
+<line class="st5" x1="459" y1="77.5" x2="459.5" y2="77.5"/>
+<text transform="matrix(1 0 0 1 456.0371 77.396)" class="st6 st3 st7">AVL_GL_READ</text>
+<line class="st5" x1="459" y1="79.4" x2="459.5" y2="79.4"/>
+<text transform="matrix(1 0 0 1 455.8281 79.2783)" class="st6 st3 st7">AVL_GL_WRITE</text>
+<line class="st5" x1="459" y1="82.2" x2="459.5" y2="82.2"/>
+<text transform="matrix(1 0 0 1 456.4551 82.1016)" class="st6 st3 st7">AVL_PLT_CS</text>
+<line class="st5" x1="459" y1="83.2" x2="459.5" y2="83.2"/>
+<text transform="matrix(1 0 0 1 455.8018 83.0425)" class="st6 st3 st7">AVL_PLT_READ</text>
+<line class="st5" x1="459" y1="85.1" x2="459.5" y2="85.1"/>
+<text transform="matrix(1 0 0 1 455.5928 84.9248)" class="st6 st3 st7">AVL_PLT_WRITE</text>
+<line class="st5" x1="459" y1="87.9" x2="459.5" y2="87.9"/>
+<text transform="matrix(1 0 0 1 455.959 87.748)" class="st6 st3 st7">AVL_SRAM_CS</text>
+<line class="st5" x1="459" y1="88.8" x2="459.5" y2="88.8"/>
+<text transform="matrix(1 0 0 1 455.3047 88.689)" class="st6 st3 st7">AVL_SRAM_READ</text>
+<line class="st5" x1="459" y1="90.7" x2="459.5" y2="90.7"/>
+<text transform="matrix(1 0 0 1 455.0957 90.5713)" class="st6 st3 st7">AVL_SRAM_WRITE</text>
+<line class="st5" x1="459" y1="91.7" x2="459.5" y2="91.7"/>
+<text transform="matrix(1 0 0 1 457.7637 91.5127)" class="st6 st3 st7">CLOCK</text>
+<line class="st5" x1="459" y1="92.6" x2="459.5" y2="92.6"/>
+<text transform="matrix(1 0 0 1 457.8154 92.4536)" class="st6 st3 st7">RESET</text>
+<line class="st8" x1="459" y1="75.7" x2="459.5" y2="75.7"/>
+<text transform="matrix(1 0 0 1 454.1533 75.5137)" class="st6 st3 st7">AVL_GL_BYTE_EN[3..0]</text>
+<line class="st8" x1="459" y1="74.7" x2="459.5" y2="74.7"/>
+<text transform="matrix(1 0 0 1 454.9648 74.5728)" class="st6 st3 st7">AVL_GL_ADDR[3..0]</text>
+<line class="st8" x1="459" y1="78.5" x2="459.5" y2="78.5"/>
+<text transform="matrix(1 0 0 1 453.2646 78.3369)" class="st6 st3 st7">AVL_GL_WRITEDATA[31..0]</text>
+<line class="st8" x1="459" y1="87" x2="459.5" y2="87"/>
+<text transform="matrix(1 0 0 1 453.4219 86.8071)" class="st6 st3 st7">AVL_SRAM_BYTE_EN[3..0]</text>
+<line class="st8" x1="459" y1="86" x2="459.5" y2="86"/>
+<text transform="matrix(1 0 0 1 453.9707 85.8657)" class="st6 st3 st7">AVL_SRAM_ADDR[19..0]</text>
+<line class="st8" x1="459" y1="89.8" x2="459.5" y2="89.8"/>
+<text transform="matrix(1 0 0 1 452.5332 89.6304)" class="st6 st3 st7">AVL_SRAM_WRITEDATA[31..0]</text>
+<line class="st8" x1="459" y1="81.3" x2="459.5" y2="81.3"/>
+<text transform="matrix(1 0 0 1 453.918 81.1606)" class="st6 st3 st7">AVL_PLT_BYTE_EN[3..0]</text>
+<line class="st8" x1="459" y1="80.4" x2="459.5" y2="80.4"/>
+<text transform="matrix(1 0 0 1 454.7295 80.2192)" class="st6 st3 st7">AVL_PLT_ADDR[7..0]</text>
+<line class="st8" x1="459" y1="84.1" x2="459.5" y2="84.1"/>
+<text transform="matrix(1 0 0 1 453.0293 83.9839)" class="st6 st3 st7">AVL_PLT_WRITEDATA[31..0]</text>
+<line class="st5" x1="462.8" y1="77.5" x2="462.3" y2="77.5"/>
+<text transform="matrix(1 0 0 1 462.584 77.396)" class="st6 st3 st7">AVL_SRAM_WAITREQ</text>
+<line class="st5" x1="462.8" y1="79.4" x2="462.3" y2="79.4"/>
+<text transform="matrix(1 0 0 1 462.584 79.2783)" class="st6 st3 st7">SRAM_CE_N</text>
+<line class="st5" x1="462.8" y1="81.3" x2="462.3" y2="81.3"/>
+<text transform="matrix(1 0 0 1 462.584 81.1606)" class="st6 st3 st7">SRAM_LB_N</text>
+<line class="st5" x1="462.8" y1="82.2" x2="462.3" y2="82.2"/>
+<text transform="matrix(1 0 0 1 462.584 82.1016)" class="st6 st3 st7">SRAM_OE_N</text>
+<line class="st5" x1="462.8" y1="83.2" x2="462.3" y2="83.2"/>
+<text transform="matrix(1 0 0 1 462.584 83.0425)" class="st6 st3 st7">SRAM_UB_N</text>
+<line class="st5" x1="462.8" y1="84.1" x2="462.3" y2="84.1"/>
+<text transform="matrix(1 0 0 1 462.584 83.9839)" class="st6 st3 st7">SRAM_WE_N</text>
+<line class="st5" x1="462.8" y1="85.1" x2="462.3" y2="85.1"/>
+<text transform="matrix(1 0 0 1 462.584 84.9248)" class="st6 st3 st7">VGA_BLANK_N</text>
+<line class="st5" x1="462.8" y1="87" x2="462.3" y2="87"/>
+<text transform="matrix(1 0 0 1 462.584 86.8071)" class="st6 st3 st7">VGA_CLK</text>
+<line class="st5" x1="462.8" y1="88.8" x2="462.3" y2="88.8"/>
+<text transform="matrix(1 0 0 1 462.584 88.689)" class="st6 st3 st7">VGA_HS</text>
+<line class="st5" x1="462.8" y1="90.7" x2="462.3" y2="90.7"/>
+<text transform="matrix(1 0 0 1 462.584 90.5713)" class="st6 st3 st7">VGA_SYNC_N</text>
+<line class="st5" x1="462.8" y1="91.7" x2="462.3" y2="91.7"/>
+<text transform="matrix(1 0 0 1 462.584 91.5127)" class="st6 st3 st7">VGA_VS</text>
+<line class="st8" x1="462.8" y1="74.7" x2="462.3" y2="74.7"/>
+<text transform="matrix(1 0 0 1 462.584 74.5728)" class="st6 st3 st7">AVL_GL_READDATA[31..0]</text>
+<line class="st8" x1="462.8" y1="76.6" x2="462.3" y2="76.6"/>
+<text transform="matrix(1 0 0 1 462.584 76.4551)" class="st6 st3 st7">AVL_SRAM_READDATA[31..0]</text>
+<line class="st8" x1="462.8" y1="75.7" x2="462.3" y2="75.7"/>
+<text transform="matrix(1 0 0 1 462.584 75.5137)" class="st6 st3 st7">AVL_PLT_READDATA[31..0]</text>
+<line class="st8" x1="462.8" y1="78.5" x2="462.3" y2="78.5"/>
+<text transform="matrix(1 0 0 1 462.584 78.3369)" class="st6 st3 st7">SRAM_ADDR[19..0]</text>
+<line class="st8" x1="462.8" y1="89.8" x2="462.3" y2="89.8"/>
+<text transform="matrix(1 0 0 1 462.584 89.6304)" class="st6 st3 st7">VGA_R[7..0]</text>
+<line class="st8" x1="462.8" y1="87.9" x2="462.3" y2="87.9"/>
+<text transform="matrix(1 0 0 1 462.584 87.748)" class="st6 st3 st7">VGA_G[7..0]</text>
+<line class="st8" x1="462.8" y1="86" x2="462.3" y2="86"/>
+<text transform="matrix(1 0 0 1 462.584 85.8657)" class="st6 st3 st7">VGA_B[7..0]</text>
+<line class="st8" x1="462.8" y1="80.4" x2="462.3" y2="80.4"/>
+<text transform="matrix(1 0 0 1 462.584 80.2192)" class="st6 st3 st7">SRAM_DQ[15..0]</text>
+<line class="st5" x1="459.9" y1="76.6" x2="459.5" y2="76.6"/>
+<line class="st5" x1="459.9" y1="77.5" x2="459.5" y2="77.5"/>
+<line class="st5" x1="459.9" y1="79.4" x2="459.5" y2="79.4"/>
+<line class="st5" x1="459.9" y1="82.2" x2="459.5" y2="82.2"/>
+<line class="st5" x1="459.9" y1="83.2" x2="459.5" y2="83.2"/>
+<line class="st5" x1="459.9" y1="85.1" x2="459.5" y2="85.1"/>
+<line class="st5" x1="459.9" y1="87.9" x2="459.5" y2="87.9"/>
+<line class="st5" x1="459.9" y1="88.8" x2="459.5" y2="88.8"/>
+<line class="st5" x1="459.9" y1="90.7" x2="459.5" y2="90.7"/>
+<line class="st5" x1="459.9" y1="91.7" x2="459.5" y2="91.7"/>
+<line class="st5" x1="459.9" y1="92.6" x2="459.5" y2="92.6"/>
+<line class="st8" x1="459.9" y1="75.7" x2="459.5" y2="75.7"/>
+<line class="st8" x1="459.9" y1="74.7" x2="459.5" y2="74.7"/>
+<line class="st8" x1="459.9" y1="78.5" x2="459.5" y2="78.5"/>
+<line class="st8" x1="459.9" y1="87" x2="459.5" y2="87"/>
+<line class="st8" x1="459.9" y1="86" x2="459.5" y2="86"/>
+<line class="st8" x1="459.9" y1="89.8" x2="459.5" y2="89.8"/>
+<line class="st8" x1="459.9" y1="81.3" x2="459.5" y2="81.3"/>
+<line class="st8" x1="459.9" y1="80.4" x2="459.5" y2="80.4"/>
+<line class="st8" x1="459.9" y1="84.1" x2="459.5" y2="84.1"/>
+<line class="st5" x1="461.8" y1="77.5" x2="462.3" y2="77.5"/>
+<line class="st5" x1="461.8" y1="79.4" x2="462.3" y2="79.4"/>
+<line class="st5" x1="461.8" y1="81.3" x2="462.3" y2="81.3"/>
+<line class="st5" x1="461.8" y1="82.2" x2="462.3" y2="82.2"/>
+<line class="st5" x1="461.8" y1="83.2" x2="462.3" y2="83.2"/>
+<line class="st5" x1="461.8" y1="84.1" x2="462.3" y2="84.1"/>
+<line class="st5" x1="461.8" y1="85.1" x2="462.3" y2="85.1"/>
+<line class="st5" x1="461.8" y1="87" x2="462.3" y2="87"/>
+<line class="st5" x1="461.8" y1="88.8" x2="462.3" y2="88.8"/>
+<line class="st5" x1="461.8" y1="90.7" x2="462.3" y2="90.7"/>
+<line class="st5" x1="461.8" y1="91.7" x2="462.3" y2="91.7"/>
+<line class="st8" x1="461.8" y1="74.7" x2="462.3" y2="74.7"/>
+<line class="st8" x1="461.8" y1="76.6" x2="462.3" y2="76.6"/>
+<line class="st8" x1="461.8" y1="75.7" x2="462.3" y2="75.7"/>
+<line class="st8" x1="461.8" y1="78.5" x2="462.3" y2="78.5"/>
+<line class="st8" x1="461.8" y1="89.8" x2="462.3" y2="89.8"/>
+<line class="st8" x1="461.8" y1="87.9" x2="462.3" y2="87.9"/>
+<line class="st8" x1="461.8" y1="86" x2="462.3" y2="86"/>
+<line class="st8" x1="461.8" y1="80.4" x2="462.3" y2="80.4"/>
+<rect x="459.7" y="249.4" width="2.8" height="2.9"/>
+<rect x="459.5" y="249.2" class="st12" width="2.8" height="2.9"/>
+<rect x="459.5" y="249.2" class="st1" width="2.8" height="2.9"/>
+<line class="st2" x1="460" y1="249.4" x2="460" y2="250"/>
+<line class="st2" x1="459.7" y1="249.7" x2="460.3" y2="249.7"/>
+<rect x="459.6" y="249.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 456.668 248.9854)" class="st3 st4">otogame_audio_pll_0:audio_pll_0</text>
+<line class="st5" x1="459" y1="250.7" x2="459.5" y2="250.7"/>
+<text transform="matrix(1 0 0 1 457.1621 250.5576)" class="st6 st3 st7">ref_clk_clk</text>
+<line class="st5" x1="459" y1="251.6" x2="459.5" y2="251.6"/>
+<text transform="matrix(1 0 0 1 456.2197 251.499)" class="st6 st3 st7">ref_reset_reset</text>
+<line class="st5" x1="462.8" y1="250.7" x2="462.3" y2="250.7"/>
+<text transform="matrix(1 0 0 1 462.584 250.5576)" class="st6 st3 st7">audio_clk_clk</text>
+<line class="st5" x1="459.9" y1="250.7" x2="459.5" y2="250.7"/>
+<line class="st5" x1="459.9" y1="251.6" x2="459.5" y2="251.6"/>
+<line class="st5" x1="461.8" y1="250.7" x2="462.3" y2="250.7"/>
+<rect x="216" y="20.7" width="2.8" height="14.2"/>
+<rect x="215.7" y="20.5" class="st12" width="2.8" height="14.2"/>
+<rect x="215.7" y="20.5" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="216.3" y1="20.7" x2="216.3" y2="21.3"/>
+<line class="st2" x1="216" y1="21" x2="216.5" y2="21"/>
+<rect x="215.9" y="20.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 210.1626 20.2993)" class="st3 st4">otogame_interproc_shared_data:interproc_shared_data</text>
+<line class="st5" x1="215.3" y1="23.9" x2="215.7" y2="23.9"/>
+<text transform="matrix(1 0 0 1 213.5483 23.7534)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="215.3" y1="24.8" x2="215.7" y2="24.8"/>
+<text transform="matrix(1 0 0 1 213.2871 24.6948)" class="st6 st3 st7">chipselect2</text>
+<line class="st5" x1="215.3" y1="27.7" x2="215.7" y2="27.7"/>
+<text transform="matrix(1 0 0 1 215.0654 27.5181)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="215.3" y1="25.8" x2="215.7" y2="25.8"/>
+<text transform="matrix(1 0 0 1 214.5425 25.6357)" class="st6 st3 st7">clken</text>
+<line class="st5" x1="215.3" y1="26.7" x2="215.7" y2="26.7"/>
+<text transform="matrix(1 0 0 1 214.2808 26.5767)" class="st6 st3 st7">clken2</text>
+<line class="st5" x1="215.3" y1="28.6" x2="215.7" y2="28.6"/>
+<text transform="matrix(1 0 0 1 214.333 28.459)" class="st6 st3 st7">freeze</text>
+<text transform="matrix(1 0 0 1 213.1143 28.4395)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="215.3" y1="30.5" x2="215.7" y2="30.5"/>
+<text transform="matrix(1 0 0 1 214.5947 30.3413)" class="st6 st3 st7">reset</text>
+<line class="st5" x1="215.3" y1="29.5" x2="215.7" y2="29.5"/>
+<text transform="matrix(1 0 0 1 213.6528 29.3999)" class="st6 st3 st7">reset_req</text>
+<line class="st5" x1="215.3" y1="33.3" x2="215.7" y2="33.3"/>
+<text transform="matrix(1 0 0 1 214.6475 33.1646)" class="st6 st3 st7">write</text>
+<line class="st5" x1="215.3" y1="34.3" x2="215.7" y2="34.3"/>
+<text transform="matrix(1 0 0 1 214.3857 34.1055)" class="st6 st3 st7">write2</text>
+<line class="st8" x1="215.3" y1="22" x2="215.7" y2="22"/>
+<text transform="matrix(1 0 0 1 212.6587 21.8716)" class="st6 st3 st7">address[11..0]</text>
+<line class="st8" x1="215.3" y1="23" x2="215.7" y2="23"/>
+<text transform="matrix(1 0 0 1 212.397 22.8125)" class="st6 st3 st7">address2[11..0]</text>
+<line class="st8" x1="215.3" y1="31.4" x2="215.7" y2="31.4"/>
+<text transform="matrix(1 0 0 1 212.6851 31.2822)" class="st6 st3 st7">writedata[7..0]</text>
+<line class="st8" x1="215.3" y1="32.4" x2="215.7" y2="32.4"/>
+<text transform="matrix(1 0 0 1 212.4233 32.2236)" class="st6 st3 st7">writedata2[7..0]</text>
+<line class="st8" x1="219" y1="27.7" x2="218.6" y2="27.7"/>
+<text transform="matrix(1 0 0 1 218.8403 27.5181)" class="st6 st3 st7">readdata[7..0]</text>
+<line class="st8" x1="219" y1="28.6" x2="218.6" y2="28.6"/>
+<text transform="matrix(1 0 0 1 218.8403 28.459)" class="st6 st3 st7">readdata2[7..0]</text>
+<line class="st5" x1="216.2" y1="23.9" x2="215.7" y2="23.9"/>
+<line class="st5" x1="216.2" y1="24.8" x2="215.7" y2="24.8"/>
+<line class="st5" x1="216.2" y1="27.7" x2="215.7" y2="27.7"/>
+<line class="st5" x1="216.2" y1="25.8" x2="215.7" y2="25.8"/>
+<line class="st5" x1="216.2" y1="26.7" x2="215.7" y2="26.7"/>
+<line class="st5" x1="216.2" y1="28.6" x2="215.7" y2="28.6"/>
+<line class="st5" x1="216.2" y1="30.5" x2="215.7" y2="30.5"/>
+<line class="st5" x1="216.2" y1="29.5" x2="215.7" y2="29.5"/>
+<line class="st5" x1="216.2" y1="33.3" x2="215.7" y2="33.3"/>
+<line class="st5" x1="216.2" y1="34.3" x2="215.7" y2="34.3"/>
+<line class="st8" x1="216.2" y1="22" x2="215.7" y2="22"/>
+<line class="st8" x1="216.2" y1="23" x2="215.7" y2="23"/>
+<line class="st8" x1="216.2" y1="31.4" x2="215.7" y2="31.4"/>
+<line class="st8" x1="216.2" y1="32.4" x2="215.7" y2="32.4"/>
+<line class="st8" x1="218.1" y1="27.7" x2="218.6" y2="27.7"/>
+<line class="st8" x1="218.1" y1="28.6" x2="218.6" y2="28.6"/>
+<rect x="79" y="240" width="2.8" height="4.8"/>
+<rect x="78.8" y="239.8" class="st12" width="2.8" height="4.8"/>
+<rect x="78.8" y="239.8" class="st1" width="2.8" height="4.8"/>
+<line class="st2" x1="79.3" y1="240" x2="79.3" y2="240.6"/>
+<line class="st2" x1="79" y1="240.3" x2="79.6" y2="240.3"/>
+<rect x="78.9" y="239.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 76.0273 239.5742)" class="st3 st4">otogame_irq_mapper:irq_mapper</text>
+<line class="st5" x1="78.3" y1="241.3" x2="78.8" y2="241.3"/>
+<text transform="matrix(1 0 0 1 78.1357 241.1465)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="78.3" y1="242.2" x2="78.8" y2="242.2"/>
+<text transform="matrix(1 0 0 1 75.9917 242.0879)" class="st6 st3 st7">receiver0_irq</text>
+<line class="st5" x1="78.3" y1="243.2" x2="78.8" y2="243.2"/>
+<text transform="matrix(1 0 0 1 75.9917 243.0283)" class="st6 st3 st7">receiver1_irq</text>
+<line class="st5" x1="78.3" y1="244.1" x2="78.8" y2="244.1"/>
+<text transform="matrix(1 0 0 1 77.665 243.9697)" class="st6 st3 st7">reset</text>
+<line class="st8" x1="82.1" y1="242.2" x2="81.6" y2="242.2"/>
+<text transform="matrix(1 0 0 1 81.9106 242.0879)" class="st6 st3 st7">sender_irq[31..0]</text>
+<line class="st5" x1="79.3" y1="241.3" x2="78.8" y2="241.3"/>
+<line class="st5" x1="79.3" y1="242.2" x2="78.8" y2="242.2"/>
+<line class="st5" x1="79.3" y1="243.2" x2="78.8" y2="243.2"/>
+<line class="st5" x1="79.3" y1="244.1" x2="78.8" y2="244.1"/>
+<line class="st8" x1="81.2" y1="242.2" x2="81.6" y2="242.2"/>
+<rect x="172.7" y="394.4" width="2.8" height="4.8"/>
+<rect x="172.4" y="394.1" class="st12" width="2.8" height="4.8"/>
+<rect x="172.4" y="394.1" class="st1" width="2.8" height="4.8"/>
+<line class="st2" x1="173" y1="394.4" x2="173" y2="394.9"/>
+<line class="st2" x1="172.7" y1="394.6" x2="173.2" y2="394.6"/>
+<rect x="172.6" y="394.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 168.4106 393.9141)" class="st3 st4">otogame_irq_mapper_001:irq_mapper_001</text>
+<line class="st5" x1="172" y1="395.6" x2="172.4" y2="395.6"/>
+<text transform="matrix(1 0 0 1 171.7749 395.4863)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="172" y1="396.6" x2="172.4" y2="396.6"/>
+<text transform="matrix(1 0 0 1 169.6309 396.4277)" class="st6 st3 st7">receiver0_irq</text>
+<line class="st5" x1="172" y1="397.5" x2="172.4" y2="397.5"/>
+<text transform="matrix(1 0 0 1 169.6309 397.3682)" class="st6 st3 st7">receiver1_irq</text>
+<line class="st5" x1="172" y1="398.5" x2="172.4" y2="398.5"/>
+<text transform="matrix(1 0 0 1 171.3042 398.3096)" class="st6 st3 st7">reset</text>
+<line class="st8" x1="175.7" y1="396.6" x2="175.3" y2="396.6"/>
+<text transform="matrix(1 0 0 1 175.5498 396.4277)" class="st6 st3 st7">sender_irq[31..0]</text>
+<line class="st5" x1="172.9" y1="395.6" x2="172.4" y2="395.6"/>
+<line class="st5" x1="172.9" y1="396.6" x2="172.4" y2="396.6"/>
+<line class="st5" x1="172.9" y1="397.5" x2="172.4" y2="397.5"/>
+<line class="st5" x1="172.9" y1="398.5" x2="172.4" y2="398.5"/>
+<line class="st8" x1="174.8" y1="396.6" x2="175.3" y2="396.6"/>
+<rect x="79" y="246.6" width="2.8" height="4.8"/>
+<rect x="78.8" y="246.4" class="st12" width="2.8" height="4.8"/>
+<rect x="78.8" y="246.4" class="st1" width="2.8" height="4.8"/>
+<line class="st2" x1="79.3" y1="246.6" x2="79.3" y2="247.2"/>
+<line class="st2" x1="79" y1="246.9" x2="79.6" y2="246.9"/>
+<rect x="78.9" y="246.5" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 74.7715 246.1621)" class="st3 st4">otogame_irq_mapper_001:irq_mapper_002</text>
+<line class="st5" x1="78.3" y1="247.9" x2="78.8" y2="247.9"/>
+<text transform="matrix(1 0 0 1 78.1357 247.7344)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="78.3" y1="248.8" x2="78.8" y2="248.8"/>
+<text transform="matrix(1 0 0 1 75.9917 248.6748)" class="st6 st3 st7">receiver0_irq</text>
+<line class="st5" x1="78.3" y1="249.8" x2="78.8" y2="249.8"/>
+<text transform="matrix(1 0 0 1 75.9917 249.6162)" class="st6 st3 st7">receiver1_irq</text>
+<line class="st5" x1="78.3" y1="250.7" x2="78.8" y2="250.7"/>
+<text transform="matrix(1 0 0 1 77.665 250.5576)" class="st6 st3 st7">reset</text>
+<line class="st8" x1="82.1" y1="248.8" x2="81.6" y2="248.8"/>
+<text transform="matrix(1 0 0 1 81.9106 248.6748)" class="st6 st3 st7">sender_irq[31..0]</text>
+<line class="st5" x1="79.3" y1="247.9" x2="78.8" y2="247.9"/>
+<line class="st5" x1="79.3" y1="248.8" x2="78.8" y2="248.8"/>
+<line class="st5" x1="79.3" y1="249.8" x2="78.8" y2="249.8"/>
+<line class="st5" x1="79.3" y1="250.7" x2="78.8" y2="250.7"/>
+<line class="st8" x1="81.2" y1="248.8" x2="81.6" y2="248.8"/>
+<rect x="55.5" y="49.9" width="2.8" height="7.6"/>
+<rect x="55.3" y="49.7" class="st12" width="2.8" height="7.6"/>
+<rect x="55.3" y="49.7" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="55.8" y1="49.9" x2="55.8" y2="50.5"/>
+<line class="st2" x1="55.5" y1="50.2" x2="56.1" y2="50.2"/>
+<rect x="55.4" y="49.8" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 51.6206 49.4731)" class="st3 st4">otogame_jtag_uart_main:jtag_uart_main</text>
+<line class="st5" x1="54.8" y1="51.2" x2="55.3" y2="51.2"/>
+<text transform="matrix(1 0 0 1 52.7515 51.0454)" class="st6 st3 st7">av_address</text>
+<line class="st5" x1="54.8" y1="52.1" x2="55.3" y2="52.1"/>
+<text transform="matrix(1 0 0 1 52.333 51.9863)" class="st6 st3 st7">av_chipselect</text>
+<path class="st5" d="M55.3,53.1c0-0.1-0.1-0.1-0.1-0.1S55,53,55,53.1c0,0.1,0.1,0.1,0.1,0.1S55.3,53.2,55.3,53.1"/>
+<line class="st5" x1="54.8" y1="53.1" x2="55" y2="53.1"/>
+<text transform="matrix(1 0 0 1 52.7715 52.9277)" class="st6 st3 st7">av_read_n</text>
+<path class="st5" d="M55.3,54c0-0.1-0.1-0.1-0.1-0.1S55,53.9,55,54s0.1,0.1,0.1,0.1S55.3,54.1,55.3,54"/>
+<line class="st5" x1="54.8" y1="54" x2="55" y2="54"/>
+<text transform="matrix(1 0 0 1 52.7197 53.8687)" class="st6 st3 st7">av_write_n</text>
+<line class="st5" x1="54.8" y1="55.9" x2="55.3" y2="55.9"/>
+<text transform="matrix(1 0 0 1 54.6084 55.751)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M55.3,56.8c0-0.1-0.1-0.1-0.1-0.1S55,56.8,55,56.8s0.1,0.1,0.1,0.1S55.3,56.9,55.3,56.8"/>
+<line class="st5" x1="54.8" y1="56.8" x2="55" y2="56.8"/>
+<text transform="matrix(1 0 0 1 53.9492 56.6919)" class="st6 st3 st7">rst_n</text>
+<line class="st8" x1="54.8" y1="55" x2="55.3" y2="55"/>
+<text transform="matrix(1 0 0 1 51.208 54.8096)" class="st6 st3 st7">av_writedata[31..0]</text>
+<line class="st5" x1="58.6" y1="53.1" x2="58.1" y2="53.1"/>
+<text transform="matrix(1 0 0 1 58.3833 52.9277)" class="st6 st3 st7">av_irq</text>
+<line class="st5" x1="58.6" y1="55" x2="58.1" y2="55"/>
+<text transform="matrix(1 0 0 1 58.3833 54.8096)" class="st6 st3 st7">av_waitrequest</text>
+<line class="st8" x1="58.6" y1="54" x2="58.1" y2="54"/>
+<text transform="matrix(1 0 0 1 58.3833 53.8687)" class="st6 st3 st7">av_readdata[31..0]</text>
+<line class="st5" x1="55.7" y1="51.2" x2="55.3" y2="51.2"/>
+<line class="st5" x1="55.7" y1="52.1" x2="55.3" y2="52.1"/>
+<line class="st5" x1="55.7" y1="53.1" x2="55.3" y2="53.1"/>
+<line class="st5" x1="55.7" y1="54" x2="55.3" y2="54"/>
+<line class="st5" x1="55.7" y1="55.9" x2="55.3" y2="55.9"/>
+<line class="st5" x1="55.7" y1="56.8" x2="55.3" y2="56.8"/>
+<line class="st8" x1="55.7" y1="55" x2="55.3" y2="55"/>
+<line class="st5" x1="57.6" y1="53.1" x2="58.1" y2="53.1"/>
+<line class="st5" x1="57.6" y1="55" x2="58.1" y2="55"/>
+<line class="st8" x1="57.6" y1="54" x2="58.1" y2="54"/>
+<rect x="119.5" y="56.5" width="2.8" height="7.6"/>
+<rect x="119.3" y="56.3" class="st12" width="2.8" height="7.6"/>
+<rect x="119.3" y="56.3" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="119.8" y1="56.5" x2="119.8" y2="57.1"/>
+<line class="st2" x1="119.5" y1="56.8" x2="120.1" y2="56.8"/>
+<rect x="119.4" y="56.4" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 115.5205 56.061)" class="st3 st4">otogame_jtag_uart_main:jtag_uart_mpeg</text>
+<line class="st5" x1="118.8" y1="57.8" x2="119.3" y2="57.8"/>
+<text transform="matrix(1 0 0 1 116.7461 57.6328)" class="st6 st3 st7">av_address</text>
+<line class="st5" x1="118.8" y1="58.7" x2="119.3" y2="58.7"/>
+<text transform="matrix(1 0 0 1 116.3276 58.5742)" class="st6 st3 st7">av_chipselect</text>
+<path class="st5" d="M119.3,59.7c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1C119.2,59.8,119.3,59.7,119.3,59.7"
+	/>
+<line class="st5" x1="118.8" y1="59.7" x2="119" y2="59.7"/>
+<text transform="matrix(1 0 0 1 116.7666 59.5151)" class="st6 st3 st7">av_read_n</text>
+<path class="st5" d="M119.3,60.6c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C119.2,60.7,119.3,60.7,119.3,60.6"/>
+<line class="st5" x1="118.8" y1="60.6" x2="119" y2="60.6"/>
+<text transform="matrix(1 0 0 1 116.7148 60.4565)" class="st6 st3 st7">av_write_n</text>
+<line class="st5" x1="118.8" y1="62.5" x2="119.3" y2="62.5"/>
+<text transform="matrix(1 0 0 1 118.603 62.3384)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M119.3,63.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C119.2,63.6,119.3,63.5,119.3,63.4"/>
+<line class="st5" x1="118.8" y1="63.4" x2="119" y2="63.4"/>
+<text transform="matrix(1 0 0 1 117.9438 63.2798)" class="st6 st3 st7">rst_n</text>
+<line class="st8" x1="118.8" y1="61.5" x2="119.3" y2="61.5"/>
+<text transform="matrix(1 0 0 1 115.2026 61.3975)" class="st6 st3 st7">av_writedata[31..0]</text>
+<line class="st5" x1="122.6" y1="59.7" x2="122.1" y2="59.7"/>
+<text transform="matrix(1 0 0 1 122.3779 59.5151)" class="st6 st3 st7">av_irq</text>
+<line class="st5" x1="122.6" y1="61.5" x2="122.1" y2="61.5"/>
+<text transform="matrix(1 0 0 1 122.3779 61.3975)" class="st6 st3 st7">av_waitrequest</text>
+<line class="st8" x1="122.6" y1="60.6" x2="122.1" y2="60.6"/>
+<text transform="matrix(1 0 0 1 122.3779 60.4565)" class="st6 st3 st7">av_readdata[31..0]</text>
+<line class="st5" x1="119.7" y1="57.8" x2="119.3" y2="57.8"/>
+<line class="st5" x1="119.7" y1="58.7" x2="119.3" y2="58.7"/>
+<line class="st5" x1="119.7" y1="59.7" x2="119.3" y2="59.7"/>
+<line class="st5" x1="119.7" y1="60.6" x2="119.3" y2="60.6"/>
+<line class="st5" x1="119.7" y1="62.5" x2="119.3" y2="62.5"/>
+<line class="st5" x1="119.7" y1="63.4" x2="119.3" y2="63.4"/>
+<line class="st8" x1="119.7" y1="61.5" x2="119.3" y2="61.5"/>
+<line class="st5" x1="121.6" y1="59.7" x2="122.1" y2="59.7"/>
+<line class="st5" x1="121.6" y1="61.5" x2="122.1" y2="61.5"/>
+<line class="st8" x1="121.6" y1="60.6" x2="122.1" y2="60.6"/>
+<rect x="55.5" y="227.8" width="2.8" height="7.6"/>
+<rect x="55.3" y="227.6" class="st12" width="2.8" height="7.6"/>
+<rect x="55.3" y="227.6" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="55.8" y1="227.8" x2="55.8" y2="228.4"/>
+<line class="st2" x1="55.5" y1="228.1" x2="56.1" y2="228.1"/>
+<rect x="55.4" y="227.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 51.7773 227.3398)" class="st3 st4">otogame_jtag_uart_main:jtag_uart_usb</text>
+<line class="st5" x1="54.8" y1="229.1" x2="55.3" y2="229.1"/>
+<text transform="matrix(1 0 0 1 52.7515 228.9121)" class="st6 st3 st7">av_address</text>
+<line class="st5" x1="54.8" y1="230" x2="55.3" y2="230"/>
+<text transform="matrix(1 0 0 1 52.333 229.8535)" class="st6 st3 st7">av_chipselect</text>
+<path class="st5" d="M55.3,230.9c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1S55.3,231,55.3,230.9"/>
+<line class="st5" x1="54.8" y1="230.9" x2="55" y2="230.9"/>
+<text transform="matrix(1 0 0 1 52.7715 230.7949)" class="st6 st3 st7">av_read_n</text>
+<path class="st5" d="M55.3,231.9c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1S55.3,232,55.3,231.9"/>
+<line class="st5" x1="54.8" y1="231.9" x2="55" y2="231.9"/>
+<text transform="matrix(1 0 0 1 52.7197 231.7354)" class="st6 st3 st7">av_write_n</text>
+<line class="st5" x1="54.8" y1="233.8" x2="55.3" y2="233.8"/>
+<text transform="matrix(1 0 0 1 54.6084 233.6182)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M55.3,234.7c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1S55.3,234.8,55.3,234.7"/>
+<line class="st5" x1="54.8" y1="234.7" x2="55" y2="234.7"/>
+<text transform="matrix(1 0 0 1 53.9492 234.5586)" class="st6 st3 st7">rst_n</text>
+<line class="st8" x1="54.8" y1="232.8" x2="55.3" y2="232.8"/>
+<text transform="matrix(1 0 0 1 51.208 232.6768)" class="st6 st3 st7">av_writedata[31..0]</text>
+<line class="st5" x1="58.6" y1="230.9" x2="58.1" y2="230.9"/>
+<text transform="matrix(1 0 0 1 58.3833 230.7949)" class="st6 st3 st7">av_irq</text>
+<line class="st5" x1="58.6" y1="232.8" x2="58.1" y2="232.8"/>
+<text transform="matrix(1 0 0 1 58.3833 232.6768)" class="st6 st3 st7">av_waitrequest</text>
+<line class="st8" x1="58.6" y1="231.9" x2="58.1" y2="231.9"/>
+<text transform="matrix(1 0 0 1 58.3833 231.7354)" class="st6 st3 st7">av_readdata[31..0]</text>
+<line class="st5" x1="55.7" y1="229.1" x2="55.3" y2="229.1"/>
+<line class="st5" x1="55.7" y1="230" x2="55.3" y2="230"/>
+<line class="st5" x1="55.7" y1="230.9" x2="55.3" y2="230.9"/>
+<line class="st5" x1="55.7" y1="231.9" x2="55.3" y2="231.9"/>
+<line class="st5" x1="55.7" y1="233.8" x2="55.3" y2="233.8"/>
+<line class="st5" x1="55.7" y1="234.7" x2="55.3" y2="234.7"/>
+<line class="st8" x1="55.7" y1="232.8" x2="55.3" y2="232.8"/>
+<line class="st5" x1="57.6" y1="230.9" x2="58.1" y2="230.9"/>
+<line class="st5" x1="57.6" y1="232.8" x2="58.1" y2="232.8"/>
+<line class="st8" x1="57.6" y1="231.9" x2="58.1" y2="231.9"/>
+<rect x="216" y="242.8" width="2.8" height="14.2"/>
+<rect x="215.7" y="242.6" class="st12" width="2.8" height="14.2"/>
+<rect x="215.7" y="242.6" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="216.3" y1="242.8" x2="216.3" y2="243.4"/>
+<line class="st2" x1="216" y1="243.1" x2="216.5" y2="243.1"/>
+<rect x="215.9" y="242.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 212.9565 242.3975)" class="st3 st4">otogame_main_stack:main_stack</text>
+<line class="st5" x1="215.3" y1="246" x2="215.7" y2="246"/>
+<text transform="matrix(1 0 0 1 213.5483 245.8516)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="215.3" y1="246.9" x2="215.7" y2="246.9"/>
+<text transform="matrix(1 0 0 1 213.2871 246.793)" class="st6 st3 st7">chipselect2</text>
+<line class="st5" x1="215.3" y1="249.8" x2="215.7" y2="249.8"/>
+<text transform="matrix(1 0 0 1 215.0654 249.6162)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="215.3" y1="247.9" x2="215.7" y2="247.9"/>
+<text transform="matrix(1 0 0 1 214.5425 247.7344)" class="st6 st3 st7">clken</text>
+<line class="st5" x1="215.3" y1="248.8" x2="215.7" y2="248.8"/>
+<text transform="matrix(1 0 0 1 214.2808 248.6748)" class="st6 st3 st7">clken2</text>
+<line class="st5" x1="215.3" y1="250.7" x2="215.7" y2="250.7"/>
+<text transform="matrix(1 0 0 1 214.333 250.5576)" class="st6 st3 st7">freeze</text>
+<text transform="matrix(1 0 0 1 213.1143 250.5381)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="215.3" y1="252.6" x2="215.7" y2="252.6"/>
+<text transform="matrix(1 0 0 1 214.5947 252.4395)" class="st6 st3 st7">reset</text>
+<line class="st5" x1="215.3" y1="251.6" x2="215.7" y2="251.6"/>
+<text transform="matrix(1 0 0 1 213.6528 251.499)" class="st6 st3 st7">reset_req</text>
+<line class="st5" x1="215.3" y1="255.4" x2="215.7" y2="255.4"/>
+<text transform="matrix(1 0 0 1 214.6475 255.2627)" class="st6 st3 st7">write</text>
+<line class="st5" x1="215.3" y1="256.3" x2="215.7" y2="256.3"/>
+<text transform="matrix(1 0 0 1 214.3857 256.2041)" class="st6 st3 st7">write2</text>
+<line class="st8" x1="215.3" y1="244.1" x2="215.7" y2="244.1"/>
+<text transform="matrix(1 0 0 1 212.6587 243.9697)" class="st6 st3 st7">address[15..0]</text>
+<line class="st8" x1="215.3" y1="245.1" x2="215.7" y2="245.1"/>
+<text transform="matrix(1 0 0 1 212.397 244.9111)" class="st6 st3 st7">address2[15..0]</text>
+<line class="st8" x1="215.3" y1="253.5" x2="215.7" y2="253.5"/>
+<text transform="matrix(1 0 0 1 212.6851 253.3809)" class="st6 st3 st7">writedata[7..0]</text>
+<line class="st8" x1="215.3" y1="254.5" x2="215.7" y2="254.5"/>
+<text transform="matrix(1 0 0 1 212.4233 254.3223)" class="st6 st3 st7">writedata2[7..0]</text>
+<line class="st8" x1="219" y1="249.8" x2="218.6" y2="249.8"/>
+<text transform="matrix(1 0 0 1 218.8403 249.6162)" class="st6 st3 st7">readdata[7..0]</text>
+<line class="st8" x1="219" y1="250.7" x2="218.6" y2="250.7"/>
+<text transform="matrix(1 0 0 1 218.8403 250.5576)" class="st6 st3 st7">readdata2[7..0]</text>
+<line class="st5" x1="216.2" y1="246" x2="215.7" y2="246"/>
+<line class="st5" x1="216.2" y1="246.9" x2="215.7" y2="246.9"/>
+<line class="st5" x1="216.2" y1="249.8" x2="215.7" y2="249.8"/>
+<line class="st5" x1="216.2" y1="247.9" x2="215.7" y2="247.9"/>
+<line class="st5" x1="216.2" y1="248.8" x2="215.7" y2="248.8"/>
+<line class="st5" x1="216.2" y1="250.7" x2="215.7" y2="250.7"/>
+<line class="st5" x1="216.2" y1="252.6" x2="215.7" y2="252.6"/>
+<line class="st5" x1="216.2" y1="251.6" x2="215.7" y2="251.6"/>
+<line class="st5" x1="216.2" y1="255.4" x2="215.7" y2="255.4"/>
+<line class="st5" x1="216.2" y1="256.3" x2="215.7" y2="256.3"/>
+<line class="st8" x1="216.2" y1="244.1" x2="215.7" y2="244.1"/>
+<line class="st8" x1="216.2" y1="245.1" x2="215.7" y2="245.1"/>
+<line class="st8" x1="216.2" y1="253.5" x2="215.7" y2="253.5"/>
+<line class="st8" x1="216.2" y1="254.5" x2="215.7" y2="254.5"/>
+<line class="st8" x1="218.1" y1="249.8" x2="218.6" y2="249.8"/>
+<line class="st8" x1="218.1" y1="250.7" x2="218.6" y2="250.7"/>
+<rect x="326.1" y="58.4" width="2.8" height="175.1"/>
+<rect x="325.8" y="58.2" class="st12" width="2.8" height="175.1"/>
+<rect x="325.8" y="58.2" class="st1" width="2.8" height="175.1"/>
+<line class="st2" x1="326.4" y1="58.4" x2="326.4" y2="59"/>
+<line class="st2" x1="326.1" y1="58.7" x2="326.6" y2="58.7"/>
+<rect x="326" y="58.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 320.9619 57.9429)" class="st3 st4">otogame_mm_interconnect_0:mm_interconnect_0</text>
+<line class="st5" x1="325.4" y1="105.8" x2="325.8" y2="105.8"/>
+<text transform="matrix(1 0 0 1 322.7148 105.6289)" class="st6 st3 st7">clk_50_clk_clk</text>
+<line class="st5" x1="325.4" y1="107.7" x2="325.8" y2="107.7"/>
+<text transform="matrix(1 0 0 1 319.6543 107.5112)" class="st6 st3 st7">flash_flash_data_waitrequest</text>
+<line class="st5" x1="325.4" y1="109.5" x2="325.8" y2="109.5"/>
+<text transform="matrix(1 0 0 1 317.7197 109.3936)" class="st6 st3 st7">flash_flash_erase_control_waitrequest</text>
+<line class="st5" x1="325.4" y1="113.3" x2="325.8" y2="113.3"/>
+<text transform="matrix(1 0 0 1 320.0479 113.1577)" class="st6 st3 st7">gl_slave_sram_waitrequest</text>
+<line class="st5" x1="325.4" y1="117.1" x2="325.8" y2="117.1"/>
+<text transform="matrix(1 0 0 1 315.9404 116.9219)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="118.9" x2="325.8" y2="118.9"/>
+<text transform="matrix(1 0 0 1 315.7832 118.8042)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="120.8" x2="325.8" y2="120.8"/>
+<text transform="matrix(1 0 0 1 316.2021 120.6865)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="122.7" x2="325.8" y2="122.7"/>
+<text transform="matrix(1 0 0 1 315.6797 122.5688)" class="st6 st3 st7">main_stack_reset1_reset_bridge_in_reset_reset</text>
+<line class="st5" x1="325.4" y1="129.3" x2="325.8" y2="129.3"/>
+<text transform="matrix(1 0 0 1 316.2285 129.1562)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_debugaccess</text>
+<line class="st5" x1="325.4" y1="130.2" x2="325.8" y2="130.2"/>
+<text transform="matrix(1 0 0 1 318.0596 130.0977)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_read</text>
+<line class="st5" x1="325.4" y1="131.2" x2="325.8" y2="131.2"/>
+<text transform="matrix(1 0 0 1 311.835 131.0386)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_reset_reset_bridge_in_reset_reset</text>
+<line class="st5" x1="325.4" y1="133.1" x2="325.8" y2="133.1"/>
+<text transform="matrix(1 0 0 1 318.0078 132.9209)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_write</text>
+<line class="st5" x1="325.4" y1="134.9" x2="325.8" y2="134.9"/>
+<text transform="matrix(1 0 0 1 316.333 134.8027)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_readdatavalid</text>
+<line class="st5" x1="325.4" y1="135.9" x2="325.8" y2="135.9"/>
+<text transform="matrix(1 0 0 1 311.9922 135.7441)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_reset_reset_bridge_in_reset_reset</text>
+<line class="st5" x1="325.4" y1="136.8" x2="325.8" y2="136.8"/>
+<text transform="matrix(1 0 0 1 316.752 136.6851)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_waitrequest</text>
+<line class="st5" x1="325.4" y1="145.3" x2="325.8" y2="145.3"/>
+<text transform="matrix(1 0 0 1 323.6826 145.1548)" class="st6 st3 st7">pll_c2_clk</text>
+<line class="st5" x1="325.4" y1="150" x2="325.8" y2="150"/>
+<text transform="matrix(1 0 0 1 317.6406 149.8604)" class="st6 st3 st7">proc_main_data_master_debugaccess</text>
+<line class="st5" x1="325.4" y1="150.9" x2="325.8" y2="150.9"/>
+<text transform="matrix(1 0 0 1 319.4717 150.8018)" class="st6 st3 st7">proc_main_data_master_read</text>
+<line class="st5" x1="325.4" y1="152.8" x2="325.8" y2="152.8"/>
+<text transform="matrix(1 0 0 1 319.4199 152.6836)" class="st6 st3 st7">proc_main_data_master_write</text>
+<line class="st5" x1="325.4" y1="154.7" x2="325.8" y2="154.7"/>
+<text transform="matrix(1 0 0 1 316.6475 154.5659)" class="st6 st3 st7">proc_main_debug_mem_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="157.5" x2="325.8" y2="157.5"/>
+<text transform="matrix(1 0 0 1 318.2432 157.3892)" class="st6 st3 st7">proc_main_instruction_master_read</text>
+<line class="st5" x1="325.4" y1="160.4" x2="325.8" y2="160.4"/>
+<text transform="matrix(1 0 0 1 317.4834 160.2124)" class="st6 st3 st7">proc_mpeg_data_master_debugaccess</text>
+<line class="st5" x1="325.4" y1="161.3" x2="325.8" y2="161.3"/>
+<text transform="matrix(1 0 0 1 319.3145 161.1538)" class="st6 st3 st7">proc_mpeg_data_master_read</text>
+<line class="st5" x1="325.4" y1="163.2" x2="325.8" y2="163.2"/>
+<text transform="matrix(1 0 0 1 319.2627 163.0356)" class="st6 st3 st7">proc_mpeg_data_master_write</text>
+<line class="st5" x1="325.4" y1="165.1" x2="325.8" y2="165.1"/>
+<text transform="matrix(1 0 0 1 316.4902 164.918)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="166.9" x2="325.8" y2="166.9"/>
+<text transform="matrix(1 0 0 1 318.0859 166.8003)" class="st6 st3 st7">proc_mpeg_instruction_master_read</text>
+<line class="st5" x1="325.4" y1="167.9" x2="325.8" y2="167.9"/>
+<text transform="matrix(1 0 0 1 315.9668 167.7412)" class="st6 st3 st7">proc_mpeg_reset_reset_bridge_in_reset_reset</text>
+<line class="st5" x1="325.4" y1="170.7" x2="325.8" y2="170.7"/>
+<text transform="matrix(1 0 0 1 317.9023 170.5645)" class="st6 st3 st7">proc_usb_data_master_debugaccess</text>
+<line class="st5" x1="325.4" y1="171.7" x2="325.8" y2="171.7"/>
+<text transform="matrix(1 0 0 1 319.7334 171.5059)" class="st6 st3 st7">proc_usb_data_master_read</text>
+<line class="st5" x1="325.4" y1="173.5" x2="325.8" y2="173.5"/>
+<text transform="matrix(1 0 0 1 319.6816 173.3877)" class="st6 st3 st7">proc_usb_data_master_write</text>
+<line class="st5" x1="325.4" y1="175.4" x2="325.8" y2="175.4"/>
+<text transform="matrix(1 0 0 1 316.9092 175.27)" class="st6 st3 st7">proc_usb_debug_mem_slave_waitrequest</text>
+<line class="st5" x1="325.4" y1="177.3" x2="325.8" y2="177.3"/>
+<text transform="matrix(1 0 0 1 318.5039 177.1523)" class="st6 st3 st7">proc_usb_instruction_master_read</text>
+<line class="st5" x1="325.4" y1="180.1" x2="325.8" y2="180.1"/>
+<text transform="matrix(1 0 0 1 320.5967 179.9756)" class="st6 st3 st7">sdram_s1_readdatavalid</text>
+<line class="st5" x1="325.4" y1="181.1" x2="325.8" y2="181.1"/>
+<text transform="matrix(1 0 0 1 321.0156 180.9165)" class="st6 st3 st7">sdram_s1_waitrequest</text>
+<line class="st8" x1="325.4" y1="126.5" x2="325.8" y2="126.5"/>
+<text transform="matrix(1 0 0 1 316.0195 126.333)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_address[13..0]</text>
+<line class="st8" x1="325.4" y1="127.4" x2="325.8" y2="127.4"/>
+<text transform="matrix(1 0 0 1 315.7578 127.2739)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_burstcount[0..0]</text>
+<line class="st8" x1="325.4" y1="128.4" x2="325.8" y2="128.4"/>
+<text transform="matrix(1 0 0 1 315.6533 128.2153)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_byteenable[3..0]</text>
+<line class="st8" x1="325.4" y1="132.1" x2="325.8" y2="132.1"/>
+<text transform="matrix(1 0 0 1 315.7842 131.9795)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_writedata[31..0]</text>
+<line class="st8" x1="325.4" y1="147.2" x2="325.8" y2="147.2"/>
+<text transform="matrix(1 0 0 1 317.4316 147.0371)" class="st6 st3 st7">proc_main_data_master_address[30..0]</text>
+<line class="st8" x1="325.4" y1="148.1" x2="325.8" y2="148.1"/>
+<text transform="matrix(1 0 0 1 317.1699 147.978)" class="st6 st3 st7">proc_main_data_master_burstcount[3..0]</text>
+<line class="st8" x1="325.4" y1="149.1" x2="325.8" y2="149.1"/>
+<text transform="matrix(1 0 0 1 317.0654 148.9194)" class="st6 st3 st7">proc_main_data_master_byteenable[3..0]</text>
+<line class="st8" x1="325.4" y1="151.9" x2="325.8" y2="151.9"/>
+<text transform="matrix(1 0 0 1 317.1963 151.7427)" class="st6 st3 st7">proc_main_data_master_writedata[31..0]</text>
+<line class="st8" x1="325.4" y1="155.7" x2="325.8" y2="155.7"/>
+<text transform="matrix(1 0 0 1 316.2031 155.5068)" class="st6 st3 st7">proc_main_instruction_master_address[29..0]</text>
+<line class="st8" x1="325.4" y1="156.6" x2="325.8" y2="156.6"/>
+<text transform="matrix(1 0 0 1 315.9414 156.4482)" class="st6 st3 st7">proc_main_instruction_master_burstcount[3..0]</text>
+<line class="st8" x1="325.4" y1="158.5" x2="325.8" y2="158.5"/>
+<text transform="matrix(1 0 0 1 317.2744 158.3301)" class="st6 st3 st7">proc_mpeg_data_master_address[30..0]</text>
+<line class="st8" x1="325.4" y1="159.4" x2="325.8" y2="159.4"/>
+<text transform="matrix(1 0 0 1 316.9082 159.2715)" class="st6 st3 st7">proc_mpeg_data_master_byteenable[3..0]</text>
+<line class="st8" x1="325.4" y1="162.2" x2="325.8" y2="162.2"/>
+<text transform="matrix(1 0 0 1 317.0391 162.0947)" class="st6 st3 st7">proc_mpeg_data_master_writedata[31..0]</text>
+<line class="st8" x1="325.4" y1="166" x2="325.8" y2="166"/>
+<text transform="matrix(1 0 0 1 316.0459 165.8589)" class="st6 st3 st7">proc_mpeg_instruction_master_address[28..0]</text>
+<line class="st8" x1="325.4" y1="168.8" x2="325.8" y2="168.8"/>
+<text transform="matrix(1 0 0 1 317.6924 168.6821)" class="st6 st3 st7">proc_usb_data_master_address[30..0]</text>
+<line class="st8" x1="325.4" y1="169.8" x2="325.8" y2="169.8"/>
+<text transform="matrix(1 0 0 1 317.3262 169.6235)" class="st6 st3 st7">proc_usb_data_master_byteenable[3..0]</text>
+<line class="st8" x1="325.4" y1="172.6" x2="325.8" y2="172.6"/>
+<text transform="matrix(1 0 0 1 317.457 172.4468)" class="st6 st3 st7">proc_usb_data_master_writedata[31..0]</text>
+<line class="st8" x1="325.4" y1="176.4" x2="325.8" y2="176.4"/>
+<text transform="matrix(1 0 0 1 316.4639 176.2109)" class="st6 st3 st7">proc_usb_instruction_master_address[28..0]</text>
+<line class="st8" x1="325.4" y1="104.8" x2="325.8" y2="104.8"/>
+<text transform="matrix(1 0 0 1 317.7441 104.688)" class="st6 st3 st7">audio_0_Audio_Slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="106.7" x2="325.8" y2="106.7"/>
+<text transform="matrix(1 0 0 1 318.8945 106.5698)" class="st6 st3 st7">flash_flash_data_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="108.6" x2="325.8" y2="108.6"/>
+<text transform="matrix(1 0 0 1 316.96 108.4521)" class="st6 st3 st7">flash_flash_erase_control_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="110.5" x2="325.8" y2="110.5"/>
+<text transform="matrix(1 0 0 1 319.9678 110.3345)" class="st6 st3 st7">gl_slave_gl_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="111.4" x2="325.8" y2="111.4"/>
+<text transform="matrix(1 0 0 1 318.9209 111.2754)" class="st6 st3 st7">gl_slave_palette_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="112.4" x2="325.8" y2="112.4"/>
+<text transform="matrix(1 0 0 1 319.2881 112.2168)" class="st6 st3 st7">gl_slave_sram_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="114.2" x2="325.8" y2="114.2"/>
+<text transform="matrix(1 0 0 1 317.1172 114.0986)" class="st6 st3 st7">interproc_shared_data_s1_readdata[7..0]</text>
+<line class="st8" x1="325.4" y1="115.2" x2="325.8" y2="115.2"/>
+<text transform="matrix(1 0 0 1 317.1172 115.04)" class="st6 st3 st7">interproc_shared_data_s2_readdata[7..0]</text>
+<line class="st8" x1="325.4" y1="116.1" x2="325.8" y2="116.1"/>
+<text transform="matrix(1 0 0 1 315.1816 115.981)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="118" x2="325.8" y2="118"/>
+<text transform="matrix(1 0 0 1 315.0244 117.8633)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="119.9" x2="325.8" y2="119.9"/>
+<text transform="matrix(1 0 0 1 315.4424 119.7456)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="121.8" x2="325.8" y2="121.8"/>
+<text transform="matrix(1 0 0 1 317.7441 121.6274)" class="st6 st3 st7">keyboard_key_events_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="123.7" x2="325.8" y2="123.7"/>
+<text transform="matrix(1 0 0 1 319.4453 123.5098)" class="st6 st3 st7">main_stack_s1_readdata[7..0]</text>
+<line class="st8" x1="325.4" y1="124.6" x2="325.8" y2="124.6"/>
+<text transform="matrix(1 0 0 1 319.4453 124.4507)" class="st6 st3 st7">main_stack_s2_readdata[7..0]</text>
+<line class="st8" x1="325.4" y1="125.5" x2="325.8" y2="125.5"/>
+<text transform="matrix(1 0 0 1 319.6807 125.3921)" class="st6 st3 st7">ocm_null_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="134" x2="325.8" y2="134"/>
+<text transform="matrix(1 0 0 1 315.9922 133.8618)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="137.8" x2="325.8" y2="137.8"/>
+<text transform="matrix(1 0 0 1 318.084 137.626)" class="st6 st3 st7">otg_hpi_address_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="138.7" x2="325.8" y2="138.7"/>
+<text transform="matrix(1 0 0 1 319.2871 138.5674)" class="st6 st3 st7">otg_hpi_cs_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="139.7" x2="325.8" y2="139.7"/>
+<text transform="matrix(1 0 0 1 318.8418 139.5083)" class="st6 st3 st7">otg_hpi_data_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="140.6" x2="325.8" y2="140.6"/>
+<text transform="matrix(1 0 0 1 319.6016 140.4497)" class="st6 st3 st7">otg_hpi_r_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="141.5" x2="325.8" y2="141.5"/>
+<text transform="matrix(1 0 0 1 319.418 141.3906)" class="st6 st3 st7">otg_hpi_w_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="142.5" x2="325.8" y2="142.5"/>
+<text transform="matrix(1 0 0 1 319.915 142.3315)" class="st6 st3 st7">pio_hex_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="143.4" x2="325.8" y2="143.4"/>
+<text transform="matrix(1 0 0 1 319.7842 143.2729)" class="st6 st3 st7">pio_ledg_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="144.4" x2="325.8" y2="144.4"/>
+<text transform="matrix(1 0 0 1 319.8896 144.2139)" class="st6 st3 st7">pio_ledr_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="146.2" x2="325.8" y2="146.2"/>
+<text transform="matrix(1 0 0 1 319.7588 146.0962)" class="st6 st3 st7">pll_pll_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="153.8" x2="325.8" y2="153.8"/>
+<text transform="matrix(1 0 0 1 315.8877 153.625)" class="st6 st3 st7">proc_main_debug_mem_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="164.1" x2="325.8" y2="164.1"/>
+<text transform="matrix(1 0 0 1 315.7314 163.9771)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="174.5" x2="325.8" y2="174.5"/>
+<text transform="matrix(1 0 0 1 316.1494 174.3291)" class="st6 st3 st7">proc_usb_debug_mem_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="178.2" x2="325.8" y2="178.2"/>
+<text transform="matrix(1 0 0 1 318.791 178.0933)" class="st6 st3 st7">sdcard_sd_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="179.2" x2="325.8" y2="179.2"/>
+<text transform="matrix(1 0 0 1 320.2559 179.0342)" class="st6 st3 st7">sdram_s1_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="182" x2="325.8" y2="182"/>
+<text transform="matrix(1 0 0 1 316.9346 181.8579)" class="st6 st3 st7">sysid_main_control_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="182.9" x2="325.8" y2="182.9"/>
+<text transform="matrix(1 0 0 1 316.7773 182.7988)" class="st6 st3 st7">sysid_mpeg_control_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="183.9" x2="325.8" y2="183.9"/>
+<text transform="matrix(1 0 0 1 317.1953 183.7397)" class="st6 st3 st7">sysid_usb_control_slave_readdata[31..0]</text>
+<line class="st8" x1="325.4" y1="184.8" x2="325.8" y2="184.8"/>
+<text transform="matrix(1 0 0 1 319.2363 184.6812)" class="st6 st3 st7">timer_main_s1_readdata[15..0]</text>
+<line class="st8" x1="325.4" y1="185.8" x2="325.8" y2="185.8"/>
+<text transform="matrix(1 0 0 1 319.0791 185.6221)" class="st6 st3 st7">timer_mpeg_s1_readdata[15..0]</text>
+<line class="st8" x1="325.4" y1="186.7" x2="325.8" y2="186.7"/>
+<text transform="matrix(1 0 0 1 319.4971 186.563)" class="st6 st3 st7">timer_usb_s1_readdata[15..0]</text>
+<line class="st5" x1="329.1" y1="60.6" x2="328.7" y2="60.6"/>
+<text transform="matrix(1 0 0 1 328.9482 60.4565)" class="st6 st3 st7">audio_0_Audio_Slave_chipselect</text>
+<line class="st5" x1="329.1" y1="61.5" x2="328.7" y2="61.5"/>
+<text transform="matrix(1 0 0 1 328.9482 61.3975)" class="st6 st3 st7">audio_0_Audio_Slave_read</text>
+<line class="st5" x1="329.1" y1="63.4" x2="328.7" y2="63.4"/>
+<text transform="matrix(1 0 0 1 328.9482 63.2798)" class="st6 st3 st7">audio_0_Audio_Slave_write</text>
+<line class="st5" x1="329.1" y1="66.2" x2="328.7" y2="66.2"/>
+<text transform="matrix(1 0 0 1 328.9482 66.103)" class="st6 st3 st7">flash_flash_data_chipselect</text>
+<line class="st5" x1="329.1" y1="67.2" x2="328.7" y2="67.2"/>
+<text transform="matrix(1 0 0 1 328.9482 67.0439)" class="st6 st3 st7">flash_flash_data_read</text>
+<line class="st5" x1="329.1" y1="69.1" x2="328.7" y2="69.1"/>
+<text transform="matrix(1 0 0 1 328.9482 68.9263)" class="st6 st3 st7">flash_flash_data_write</text>
+<line class="st5" x1="329.1" y1="71" x2="328.7" y2="71"/>
+<text transform="matrix(1 0 0 1 328.9482 70.8086)" class="st6 st3 st7">flash_flash_erase_control_chipselect</text>
+<line class="st5" x1="329.1" y1="71.9" x2="328.7" y2="71.9"/>
+<text transform="matrix(1 0 0 1 328.9482 71.7495)" class="st6 st3 st7">flash_flash_erase_control_read</text>
+<line class="st5" x1="329.1" y1="73.8" x2="328.7" y2="73.8"/>
+<text transform="matrix(1 0 0 1 328.9482 73.6318)" class="st6 st3 st7">flash_flash_erase_control_write</text>
+<line class="st5" x1="329.1" y1="76.6" x2="328.7" y2="76.6"/>
+<text transform="matrix(1 0 0 1 328.9482 76.4551)" class="st6 st3 st7">gl_slave_gl_chipselect</text>
+<line class="st5" x1="329.1" y1="77.5" x2="328.7" y2="77.5"/>
+<text transform="matrix(1 0 0 1 328.9482 77.396)" class="st6 st3 st7">gl_slave_gl_read</text>
+<line class="st5" x1="329.1" y1="79.4" x2="328.7" y2="79.4"/>
+<text transform="matrix(1 0 0 1 328.9482 79.2783)" class="st6 st3 st7">gl_slave_gl_write</text>
+<line class="st5" x1="329.1" y1="82.2" x2="328.7" y2="82.2"/>
+<text transform="matrix(1 0 0 1 328.9482 82.1016)" class="st6 st3 st7">gl_slave_palette_chipselect</text>
+<line class="st5" x1="329.1" y1="83.2" x2="328.7" y2="83.2"/>
+<text transform="matrix(1 0 0 1 328.9482 83.0425)" class="st6 st3 st7">gl_slave_palette_read</text>
+<line class="st5" x1="329.1" y1="85.1" x2="328.7" y2="85.1"/>
+<text transform="matrix(1 0 0 1 328.9482 84.9248)" class="st6 st3 st7">gl_slave_palette_write</text>
+<line class="st5" x1="329.1" y1="87.9" x2="328.7" y2="87.9"/>
+<text transform="matrix(1 0 0 1 328.9482 87.748)" class="st6 st3 st7">gl_slave_sram_chipselect</text>
+<line class="st5" x1="329.1" y1="88.8" x2="328.7" y2="88.8"/>
+<text transform="matrix(1 0 0 1 328.9482 88.689)" class="st6 st3 st7">gl_slave_sram_read</text>
+<line class="st5" x1="329.1" y1="90.7" x2="328.7" y2="90.7"/>
+<text transform="matrix(1 0 0 1 328.9482 90.5713)" class="st6 st3 st7">gl_slave_sram_write</text>
+<line class="st5" x1="329.1" y1="92.6" x2="328.7" y2="92.6"/>
+<text transform="matrix(1 0 0 1 328.9482 92.4536)" class="st6 st3 st7">interproc_shared_data_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="93.5" x2="328.7" y2="93.5"/>
+<text transform="matrix(1 0 0 1 328.9482 93.3945)" class="st6 st3 st7">interproc_shared_data_s1_clken</text>
+<line class="st5" x1="329.1" y1="95.4" x2="328.7" y2="95.4"/>
+<text transform="matrix(1 0 0 1 328.9482 95.2769)" class="st6 st3 st7">interproc_shared_data_s1_write</text>
+<line class="st5" x1="329.1" y1="97.3" x2="328.7" y2="97.3"/>
+<text transform="matrix(1 0 0 1 328.9482 97.1592)" class="st6 st3 st7">interproc_shared_data_s2_chipselect</text>
+<line class="st5" x1="329.1" y1="98.2" x2="328.7" y2="98.2"/>
+<text transform="matrix(1 0 0 1 328.9482 98.1001)" class="st6 st3 st7">interproc_shared_data_s2_clken</text>
+<line class="st5" x1="329.1" y1="100.1" x2="328.7" y2="100.1"/>
+<text transform="matrix(1 0 0 1 328.9482 99.9824)" class="st6 st3 st7">interproc_shared_data_s2_write</text>
+<line class="st5" x1="329.1" y1="102" x2="328.7" y2="102"/>
+<text transform="matrix(1 0 0 1 328.9482 101.8647)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_chipselect</text>
+<line class="st5" x1="329.1" y1="103" x2="328.7" y2="103"/>
+<text transform="matrix(1 0 0 1 328.9482 102.8057)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_read</text>
+<line class="st5" x1="329.1" y1="104.8" x2="328.7" y2="104.8"/>
+<text transform="matrix(1 0 0 1 328.9482 104.688)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_write</text>
+<line class="st5" x1="329.1" y1="106.7" x2="328.7" y2="106.7"/>
+<text transform="matrix(1 0 0 1 328.9482 106.5698)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_chipselect</text>
+<line class="st5" x1="329.1" y1="107.7" x2="328.7" y2="107.7"/>
+<text transform="matrix(1 0 0 1 328.9482 107.5112)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_read</text>
+<line class="st5" x1="329.1" y1="109.5" x2="328.7" y2="109.5"/>
+<text transform="matrix(1 0 0 1 328.9482 109.3936)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_write</text>
+<line class="st5" x1="329.1" y1="111.4" x2="328.7" y2="111.4"/>
+<text transform="matrix(1 0 0 1 328.9482 111.2754)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_chipselect</text>
+<line class="st5" x1="329.1" y1="112.4" x2="328.7" y2="112.4"/>
+<text transform="matrix(1 0 0 1 328.9482 112.2168)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_read</text>
+<line class="st5" x1="329.1" y1="114.2" x2="328.7" y2="114.2"/>
+<text transform="matrix(1 0 0 1 328.9482 114.0986)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_write</text>
+<line class="st5" x1="329.1" y1="117.1" x2="328.7" y2="117.1"/>
+<text transform="matrix(1 0 0 1 328.9482 116.9219)" class="st6 st3 st7">keyboard_key_events_chipselect</text>
+<line class="st5" x1="329.1" y1="118" x2="328.7" y2="118"/>
+<text transform="matrix(1 0 0 1 328.9482 117.8633)" class="st6 st3 st7">keyboard_key_events_read</text>
+<line class="st5" x1="329.1" y1="119.9" x2="328.7" y2="119.9"/>
+<text transform="matrix(1 0 0 1 328.9482 119.7456)" class="st6 st3 st7">keyboard_key_events_write</text>
+<line class="st5" x1="329.1" y1="121.8" x2="328.7" y2="121.8"/>
+<text transform="matrix(1 0 0 1 328.9482 121.6274)" class="st6 st3 st7">main_stack_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="122.7" x2="328.7" y2="122.7"/>
+<text transform="matrix(1 0 0 1 328.9482 122.5688)" class="st6 st3 st7">main_stack_s1_clken</text>
+<line class="st5" x1="329.1" y1="124.6" x2="328.7" y2="124.6"/>
+<text transform="matrix(1 0 0 1 328.9482 124.4507)" class="st6 st3 st7">main_stack_s1_write</text>
+<line class="st5" x1="329.1" y1="126.5" x2="328.7" y2="126.5"/>
+<text transform="matrix(1 0 0 1 328.9482 126.333)" class="st6 st3 st7">main_stack_s2_chipselect</text>
+<line class="st5" x1="329.1" y1="127.4" x2="328.7" y2="127.4"/>
+<text transform="matrix(1 0 0 1 328.9482 127.2739)" class="st6 st3 st7">main_stack_s2_clken</text>
+<line class="st5" x1="329.1" y1="129.3" x2="328.7" y2="129.3"/>
+<text transform="matrix(1 0 0 1 328.9482 129.1562)" class="st6 st3 st7">main_stack_s2_write</text>
+<line class="st5" x1="329.1" y1="132.1" x2="328.7" y2="132.1"/>
+<text transform="matrix(1 0 0 1 328.9482 131.9795)" class="st6 st3 st7">ocm_null_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="133.1" x2="328.7" y2="133.1"/>
+<text transform="matrix(1 0 0 1 328.9482 132.9209)" class="st6 st3 st7">ocm_null_s1_clken</text>
+<line class="st5" x1="329.1" y1="134.9" x2="328.7" y2="134.9"/>
+<text transform="matrix(1 0 0 1 328.9482 134.8027)" class="st6 st3 st7">ocm_null_s1_write</text>
+<line class="st5" x1="329.1" y1="136.8" x2="328.7" y2="136.8"/>
+<text transform="matrix(1 0 0 1 328.9482 136.6851)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_readdatavalid</text>
+<line class="st5" x1="329.1" y1="137.8" x2="328.7" y2="137.8"/>
+<text transform="matrix(1 0 0 1 328.9482 137.626)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_waitrequest</text>
+<line class="st5" x1="329.1" y1="141.5" x2="328.7" y2="141.5"/>
+<text transform="matrix(1 0 0 1 328.9482 141.3906)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_debugaccess</text>
+<line class="st5" x1="329.1" y1="142.5" x2="328.7" y2="142.5"/>
+<text transform="matrix(1 0 0 1 328.9482 142.3315)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_read</text>
+<line class="st5" x1="329.1" y1="144.4" x2="328.7" y2="144.4"/>
+<text transform="matrix(1 0 0 1 328.9482 144.2139)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_write</text>
+<line class="st5" x1="329.1" y1="146.2" x2="328.7" y2="146.2"/>
+<text transform="matrix(1 0 0 1 328.9482 146.0962)" class="st6 st3 st7">otg_hpi_address_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="148.1" x2="328.7" y2="148.1"/>
+<text transform="matrix(1 0 0 1 328.9482 147.978)" class="st6 st3 st7">otg_hpi_address_s1_write</text>
+<line class="st5" x1="329.1" y1="150" x2="328.7" y2="150"/>
+<text transform="matrix(1 0 0 1 328.9482 149.8604)" class="st6 st3 st7">otg_hpi_cs_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="151.9" x2="328.7" y2="151.9"/>
+<text transform="matrix(1 0 0 1 328.9482 151.7427)" class="st6 st3 st7">otg_hpi_cs_s1_write</text>
+<line class="st5" x1="329.1" y1="153.8" x2="328.7" y2="153.8"/>
+<text transform="matrix(1 0 0 1 328.9482 153.625)" class="st6 st3 st7">otg_hpi_data_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="155.7" x2="328.7" y2="155.7"/>
+<text transform="matrix(1 0 0 1 328.9482 155.5068)" class="st6 st3 st7">otg_hpi_data_s1_write</text>
+<line class="st5" x1="329.1" y1="157.5" x2="328.7" y2="157.5"/>
+<text transform="matrix(1 0 0 1 328.9482 157.3892)" class="st6 st3 st7">otg_hpi_r_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="159.4" x2="328.7" y2="159.4"/>
+<text transform="matrix(1 0 0 1 328.9482 159.2715)" class="st6 st3 st7">otg_hpi_r_s1_write</text>
+<line class="st5" x1="329.1" y1="161.3" x2="328.7" y2="161.3"/>
+<text transform="matrix(1 0 0 1 328.9482 161.1538)" class="st6 st3 st7">otg_hpi_w_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="163.2" x2="328.7" y2="163.2"/>
+<text transform="matrix(1 0 0 1 328.9482 163.0356)" class="st6 st3 st7">otg_hpi_w_s1_write</text>
+<line class="st5" x1="329.1" y1="165.1" x2="328.7" y2="165.1"/>
+<text transform="matrix(1 0 0 1 328.9482 164.918)" class="st6 st3 st7">pio_hex_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="166.9" x2="328.7" y2="166.9"/>
+<text transform="matrix(1 0 0 1 328.9482 166.8003)" class="st6 st3 st7">pio_hex_s1_write</text>
+<line class="st5" x1="329.1" y1="168.8" x2="328.7" y2="168.8"/>
+<text transform="matrix(1 0 0 1 328.9482 168.6821)" class="st6 st3 st7">pio_ledg_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="170.7" x2="328.7" y2="170.7"/>
+<text transform="matrix(1 0 0 1 328.9482 170.5645)" class="st6 st3 st7">pio_ledg_s1_write</text>
+<line class="st5" x1="329.1" y1="172.6" x2="328.7" y2="172.6"/>
+<text transform="matrix(1 0 0 1 328.9482 172.4468)" class="st6 st3 st7">pio_ledr_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="174.5" x2="328.7" y2="174.5"/>
+<text transform="matrix(1 0 0 1 328.9482 174.3291)" class="st6 st3 st7">pio_ledr_s1_write</text>
+<line class="st5" x1="329.1" y1="176.4" x2="328.7" y2="176.4"/>
+<text transform="matrix(1 0 0 1 328.9482 176.2109)" class="st6 st3 st7">pll_pll_slave_read</text>
+<line class="st5" x1="329.1" y1="178.2" x2="328.7" y2="178.2"/>
+<text transform="matrix(1 0 0 1 328.9482 178.0933)" class="st6 st3 st7">pll_pll_slave_write</text>
+<line class="st5" x1="329.1" y1="180.1" x2="328.7" y2="180.1"/>
+<text transform="matrix(1 0 0 1 328.9482 179.9756)" class="st6 st3 st7">proc_main_data_master_readdatavalid</text>
+<line class="st5" x1="329.1" y1="181.1" x2="328.7" y2="181.1"/>
+<text transform="matrix(1 0 0 1 328.9482 180.9165)" class="st6 st3 st7">proc_main_data_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="183.9" x2="328.7" y2="183.9"/>
+<text transform="matrix(1 0 0 1 328.9482 183.7397)" class="st6 st3 st7">proc_main_debug_mem_slave_debugaccess</text>
+<line class="st5" x1="329.1" y1="184.8" x2="328.7" y2="184.8"/>
+<text transform="matrix(1 0 0 1 328.9482 184.6812)" class="st6 st3 st7">proc_main_debug_mem_slave_read</text>
+<line class="st5" x1="329.1" y1="186.7" x2="328.7" y2="186.7"/>
+<text transform="matrix(1 0 0 1 328.9482 186.563)" class="st6 st3 st7">proc_main_debug_mem_slave_write</text>
+<line class="st5" x1="329.1" y1="188.6" x2="328.7" y2="188.6"/>
+<text transform="matrix(1 0 0 1 328.9482 188.4453)" class="st6 st3 st7">proc_main_instruction_master_readdatavalid</text>
+<line class="st5" x1="329.1" y1="189.5" x2="328.7" y2="189.5"/>
+<text transform="matrix(1 0 0 1 328.9482 189.3862)" class="st6 st3 st7">proc_main_instruction_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="191.4" x2="328.7" y2="191.4"/>
+<text transform="matrix(1 0 0 1 328.9482 191.2686)" class="st6 st3 st7">proc_mpeg_data_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="194.2" x2="328.7" y2="194.2"/>
+<text transform="matrix(1 0 0 1 328.9482 194.0918)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_debugaccess</text>
+<line class="st5" x1="329.1" y1="195.2" x2="328.7" y2="195.2"/>
+<text transform="matrix(1 0 0 1 328.9482 195.0332)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_read</text>
+<line class="st5" x1="329.1" y1="197.1" x2="328.7" y2="197.1"/>
+<text transform="matrix(1 0 0 1 328.9482 196.915)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_write</text>
+<line class="st5" x1="329.1" y1="198.9" x2="328.7" y2="198.9"/>
+<text transform="matrix(1 0 0 1 328.9482 198.7974)" class="st6 st3 st7">proc_mpeg_instruction_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="200.8" x2="328.7" y2="200.8"/>
+<text transform="matrix(1 0 0 1 328.9482 200.6797)" class="st6 st3 st7">proc_usb_data_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="203.6" x2="328.7" y2="203.6"/>
+<text transform="matrix(1 0 0 1 328.9482 203.5029)" class="st6 st3 st7">proc_usb_debug_mem_slave_debugaccess</text>
+<line class="st5" x1="329.1" y1="204.6" x2="328.7" y2="204.6"/>
+<text transform="matrix(1 0 0 1 328.9482 204.4438)" class="st6 st3 st7">proc_usb_debug_mem_slave_read</text>
+<line class="st5" x1="329.1" y1="206.5" x2="328.7" y2="206.5"/>
+<text transform="matrix(1 0 0 1 328.9482 206.3262)" class="st6 st3 st7">proc_usb_debug_mem_slave_write</text>
+<line class="st5" x1="329.1" y1="208.4" x2="328.7" y2="208.4"/>
+<text transform="matrix(1 0 0 1 328.9482 208.2085)" class="st6 st3 st7">proc_usb_instruction_master_waitrequest</text>
+<line class="st5" x1="329.1" y1="210.2" x2="328.7" y2="210.2"/>
+<text transform="matrix(1 0 0 1 328.9482 210.0908)" class="st6 st3 st7">sdcard_sd_slave_chipselect</text>
+<line class="st5" x1="329.1" y1="211.2" x2="328.7" y2="211.2"/>
+<text transform="matrix(1 0 0 1 328.9482 211.0312)" class="st6 st3 st7">sdcard_sd_slave_read</text>
+<line class="st5" x1="329.1" y1="213.1" x2="328.7" y2="213.1"/>
+<text transform="matrix(1 0 0 1 328.9482 212.9141)" class="st6 st3 st7">sdcard_sd_slave_write</text>
+<line class="st5" x1="329.1" y1="215.9" x2="328.7" y2="215.9"/>
+<text transform="matrix(1 0 0 1 328.9482 215.7373)" class="st6 st3 st7">sdram_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="216.8" x2="328.7" y2="216.8"/>
+<text transform="matrix(1 0 0 1 328.9482 216.6777)" class="st6 st3 st7">sdram_s1_read</text>
+<line class="st5" x1="329.1" y1="218.7" x2="328.7" y2="218.7"/>
+<text transform="matrix(1 0 0 1 328.9482 218.5605)" class="st6 st3 st7">sdram_s1_write</text>
+<line class="st5" x1="329.1" y1="223.4" x2="328.7" y2="223.4"/>
+<text transform="matrix(1 0 0 1 328.9482 223.2656)" class="st6 st3 st7">timer_main_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="225.3" x2="328.7" y2="225.3"/>
+<text transform="matrix(1 0 0 1 328.9482 225.1475)" class="st6 st3 st7">timer_main_s1_write</text>
+<line class="st5" x1="329.1" y1="227.2" x2="328.7" y2="227.2"/>
+<text transform="matrix(1 0 0 1 328.9482 227.0303)" class="st6 st3 st7">timer_mpeg_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="229.1" x2="328.7" y2="229.1"/>
+<text transform="matrix(1 0 0 1 328.9482 228.9121)" class="st6 st3 st7">timer_mpeg_s1_write</text>
+<line class="st5" x1="329.1" y1="230.9" x2="328.7" y2="230.9"/>
+<text transform="matrix(1 0 0 1 328.9482 230.7949)" class="st6 st3 st7">timer_usb_s1_chipselect</text>
+<line class="st5" x1="329.1" y1="232.8" x2="328.7" y2="232.8"/>
+<text transform="matrix(1 0 0 1 328.9482 232.6768)" class="st6 st3 st7">timer_usb_s1_write</text>
+<line class="st8" x1="329.1" y1="135.9" x2="328.7" y2="135.9"/>
+<text transform="matrix(1 0 0 1 328.9482 135.7441)" class="st6 st3 st7">otg_clock_crossing_bridge_m0_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="179.2" x2="328.7" y2="179.2"/>
+<text transform="matrix(1 0 0 1 328.9482 179.0342)" class="st6 st3 st7">proc_main_data_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="187.6" x2="328.7" y2="187.6"/>
+<text transform="matrix(1 0 0 1 328.9482 187.5044)" class="st6 st3 st7">proc_main_instruction_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="190.5" x2="328.7" y2="190.5"/>
+<text transform="matrix(1 0 0 1 328.9482 190.3276)" class="st6 st3 st7">proc_mpeg_data_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="198" x2="328.7" y2="198"/>
+<text transform="matrix(1 0 0 1 328.9482 197.8564)" class="st6 st3 st7">proc_mpeg_instruction_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="199.9" x2="328.7" y2="199.9"/>
+<text transform="matrix(1 0 0 1 328.9482 199.7388)" class="st6 st3 st7">proc_usb_data_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="207.4" x2="328.7" y2="207.4"/>
+<text transform="matrix(1 0 0 1 328.9482 207.2671)" class="st6 st3 st7">proc_usb_instruction_master_readdata[31..0]</text>
+<line class="st8" x1="329.1" y1="59.7" x2="328.7" y2="59.7"/>
+<text transform="matrix(1 0 0 1 328.9482 59.5151)" class="st6 st3 st7">audio_0_Audio_Slave_address[8..0]</text>
+<line class="st8" x1="329.1" y1="62.5" x2="328.7" y2="62.5"/>
+<text transform="matrix(1 0 0 1 328.9482 62.3384)" class="st6 st3 st7">audio_0_Audio_Slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="64.4" x2="328.7" y2="64.4"/>
+<text transform="matrix(1 0 0 1 328.9482 64.2207)" class="st6 st3 st7">flash_flash_data_address[20..0]</text>
+<line class="st8" x1="329.1" y1="68.1" x2="328.7" y2="68.1"/>
+<text transform="matrix(1 0 0 1 328.9482 67.9849)" class="st6 st3 st7">flash_flash_data_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="65.3" x2="328.7" y2="65.3"/>
+<text transform="matrix(1 0 0 1 328.9482 65.1616)" class="st6 st3 st7">flash_flash_data_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="72.8" x2="328.7" y2="72.8"/>
+<text transform="matrix(1 0 0 1 328.9482 72.6904)" class="st6 st3 st7">flash_flash_erase_control_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="70" x2="328.7" y2="70"/>
+<text transform="matrix(1 0 0 1 328.9482 69.8672)" class="st6 st3 st7">flash_flash_erase_control_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="74.7" x2="328.7" y2="74.7"/>
+<text transform="matrix(1 0 0 1 328.9482 74.5728)" class="st6 st3 st7">gl_slave_gl_address[3..0]</text>
+<line class="st8" x1="329.1" y1="78.5" x2="328.7" y2="78.5"/>
+<text transform="matrix(1 0 0 1 328.9482 78.3369)" class="st6 st3 st7">gl_slave_gl_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="75.7" x2="328.7" y2="75.7"/>
+<text transform="matrix(1 0 0 1 328.9482 75.5137)" class="st6 st3 st7">gl_slave_gl_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="80.4" x2="328.7" y2="80.4"/>
+<text transform="matrix(1 0 0 1 328.9482 80.2192)" class="st6 st3 st7">gl_slave_palette_address[7..0]</text>
+<line class="st8" x1="329.1" y1="84.1" x2="328.7" y2="84.1"/>
+<text transform="matrix(1 0 0 1 328.9482 83.9839)" class="st6 st3 st7">gl_slave_palette_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="81.3" x2="328.7" y2="81.3"/>
+<text transform="matrix(1 0 0 1 328.9482 81.1606)" class="st6 st3 st7">gl_slave_palette_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="86" x2="328.7" y2="86"/>
+<text transform="matrix(1 0 0 1 328.9482 85.8657)" class="st6 st3 st7">gl_slave_sram_address[19..0]</text>
+<line class="st8" x1="329.1" y1="89.8" x2="328.7" y2="89.8"/>
+<text transform="matrix(1 0 0 1 328.9482 89.6304)" class="st6 st3 st7">gl_slave_sram_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="87" x2="328.7" y2="87"/>
+<text transform="matrix(1 0 0 1 328.9482 86.8071)" class="st6 st3 st7">gl_slave_sram_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="91.7" x2="328.7" y2="91.7"/>
+<text transform="matrix(1 0 0 1 328.9482 91.5127)" class="st6 st3 st7">interproc_shared_data_s1_address[11..0]</text>
+<line class="st8" x1="329.1" y1="94.5" x2="328.7" y2="94.5"/>
+<text transform="matrix(1 0 0 1 328.9482 94.3359)" class="st6 st3 st7">interproc_shared_data_s1_writedata[7..0]</text>
+<line class="st8" x1="329.1" y1="96.4" x2="328.7" y2="96.4"/>
+<text transform="matrix(1 0 0 1 328.9482 96.2178)" class="st6 st3 st7">interproc_shared_data_s2_address[11..0]</text>
+<line class="st8" x1="329.1" y1="99.2" x2="328.7" y2="99.2"/>
+<text transform="matrix(1 0 0 1 328.9482 99.041)" class="st6 st3 st7">interproc_shared_data_s2_writedata[7..0]</text>
+<line class="st8" x1="329.1" y1="101.1" x2="328.7" y2="101.1"/>
+<text transform="matrix(1 0 0 1 328.9482 100.9233)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="103.9" x2="328.7" y2="103.9"/>
+<text transform="matrix(1 0 0 1 328.9482 103.7466)" class="st6 st3 st7">jtag_uart_main_avalon_jtag_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="105.8" x2="328.7" y2="105.8"/>
+<text transform="matrix(1 0 0 1 328.9482 105.6289)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="108.6" x2="328.7" y2="108.6"/>
+<text transform="matrix(1 0 0 1 328.9482 108.4521)" class="st6 st3 st7">jtag_uart_mpeg_avalon_jtag_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="110.5" x2="328.7" y2="110.5"/>
+<text transform="matrix(1 0 0 1 328.9482 110.3345)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="113.3" x2="328.7" y2="113.3"/>
+<text transform="matrix(1 0 0 1 328.9482 113.1577)" class="st6 st3 st7">jtag_uart_usb_avalon_jtag_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="115.2" x2="328.7" y2="115.2"/>
+<text transform="matrix(1 0 0 1 328.9482 115.04)" class="st6 st3 st7">keyboard_key_events_address[1..0]</text>
+<line class="st8" x1="329.1" y1="118.9" x2="328.7" y2="118.9"/>
+<text transform="matrix(1 0 0 1 328.9482 118.8042)" class="st6 st3 st7">keyboard_key_events_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="116.1" x2="328.7" y2="116.1"/>
+<text transform="matrix(1 0 0 1 328.9482 115.981)" class="st6 st3 st7">keyboard_key_events_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="120.8" x2="328.7" y2="120.8"/>
+<text transform="matrix(1 0 0 1 328.9482 120.6865)" class="st6 st3 st7">main_stack_s1_address[15..0]</text>
+<line class="st8" x1="329.1" y1="123.7" x2="328.7" y2="123.7"/>
+<text transform="matrix(1 0 0 1 328.9482 123.5098)" class="st6 st3 st7">main_stack_s1_writedata[7..0]</text>
+<line class="st8" x1="329.1" y1="125.5" x2="328.7" y2="125.5"/>
+<text transform="matrix(1 0 0 1 328.9482 125.3921)" class="st6 st3 st7">main_stack_s2_address[15..0]</text>
+<line class="st8" x1="329.1" y1="128.4" x2="328.7" y2="128.4"/>
+<text transform="matrix(1 0 0 1 328.9482 128.2153)" class="st6 st3 st7">main_stack_s2_writedata[7..0]</text>
+<line class="st8" x1="329.1" y1="130.2" x2="328.7" y2="130.2"/>
+<text transform="matrix(1 0 0 1 328.9482 130.0977)" class="st6 st3 st7">ocm_null_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="134" x2="328.7" y2="134"/>
+<text transform="matrix(1 0 0 1 328.9482 133.8618)" class="st6 st3 st7">ocm_null_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="131.2" x2="328.7" y2="131.2"/>
+<text transform="matrix(1 0 0 1 328.9482 131.0386)" class="st6 st3 st7">ocm_null_s1_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="138.7" x2="328.7" y2="138.7"/>
+<text transform="matrix(1 0 0 1 328.9482 138.5674)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_address[13..0]</text>
+<line class="st8" x1="329.1" y1="143.4" x2="328.7" y2="143.4"/>
+<text transform="matrix(1 0 0 1 328.9482 143.2729)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="139.7" x2="328.7" y2="139.7"/>
+<text transform="matrix(1 0 0 1 328.9482 139.5083)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_burstcount[0..0]</text>
+<line class="st8" x1="329.1" y1="140.6" x2="328.7" y2="140.6"/>
+<text transform="matrix(1 0 0 1 328.9482 140.4497)" class="st6 st3 st7">otg_clock_crossing_bridge_s0_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="145.3" x2="328.7" y2="145.3"/>
+<text transform="matrix(1 0 0 1 328.9482 145.1548)" class="st6 st3 st7">otg_hpi_address_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="147.2" x2="328.7" y2="147.2"/>
+<text transform="matrix(1 0 0 1 328.9482 147.0371)" class="st6 st3 st7">otg_hpi_address_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="149.1" x2="328.7" y2="149.1"/>
+<text transform="matrix(1 0 0 1 328.9482 148.9194)" class="st6 st3 st7">otg_hpi_cs_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="150.9" x2="328.7" y2="150.9"/>
+<text transform="matrix(1 0 0 1 328.9482 150.8018)" class="st6 st3 st7">otg_hpi_cs_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="152.8" x2="328.7" y2="152.8"/>
+<text transform="matrix(1 0 0 1 328.9482 152.6836)" class="st6 st3 st7">otg_hpi_data_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="154.7" x2="328.7" y2="154.7"/>
+<text transform="matrix(1 0 0 1 328.9482 154.5659)" class="st6 st3 st7">otg_hpi_data_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="156.6" x2="328.7" y2="156.6"/>
+<text transform="matrix(1 0 0 1 328.9482 156.4482)" class="st6 st3 st7">otg_hpi_r_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="158.5" x2="328.7" y2="158.5"/>
+<text transform="matrix(1 0 0 1 328.9482 158.3301)" class="st6 st3 st7">otg_hpi_r_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="160.4" x2="328.7" y2="160.4"/>
+<text transform="matrix(1 0 0 1 328.9482 160.2124)" class="st6 st3 st7">otg_hpi_w_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="162.2" x2="328.7" y2="162.2"/>
+<text transform="matrix(1 0 0 1 328.9482 162.0947)" class="st6 st3 st7">otg_hpi_w_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="164.1" x2="328.7" y2="164.1"/>
+<text transform="matrix(1 0 0 1 328.9482 163.9771)" class="st6 st3 st7">pio_hex_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="166" x2="328.7" y2="166"/>
+<text transform="matrix(1 0 0 1 328.9482 165.8589)" class="st6 st3 st7">pio_hex_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="167.9" x2="328.7" y2="167.9"/>
+<text transform="matrix(1 0 0 1 328.9482 167.7412)" class="st6 st3 st7">pio_ledg_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="169.8" x2="328.7" y2="169.8"/>
+<text transform="matrix(1 0 0 1 328.9482 169.6235)" class="st6 st3 st7">pio_ledg_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="171.7" x2="328.7" y2="171.7"/>
+<text transform="matrix(1 0 0 1 328.9482 171.5059)" class="st6 st3 st7">pio_ledr_s1_address[1..0]</text>
+<line class="st8" x1="329.1" y1="173.5" x2="328.7" y2="173.5"/>
+<text transform="matrix(1 0 0 1 328.9482 173.3877)" class="st6 st3 st7">pio_ledr_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="175.4" x2="328.7" y2="175.4"/>
+<text transform="matrix(1 0 0 1 328.9482 175.27)" class="st6 st3 st7">pll_pll_slave_address[1..0]</text>
+<line class="st8" x1="329.1" y1="177.3" x2="328.7" y2="177.3"/>
+<text transform="matrix(1 0 0 1 328.9482 177.1523)" class="st6 st3 st7">pll_pll_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="182" x2="328.7" y2="182"/>
+<text transform="matrix(1 0 0 1 328.9482 181.8579)" class="st6 st3 st7">proc_main_debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="329.1" y1="185.8" x2="328.7" y2="185.8"/>
+<text transform="matrix(1 0 0 1 328.9482 185.6221)" class="st6 st3 st7">proc_main_debug_mem_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="182.9" x2="328.7" y2="182.9"/>
+<text transform="matrix(1 0 0 1 328.9482 182.7988)" class="st6 st3 st7">proc_main_debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="192.4" x2="328.7" y2="192.4"/>
+<text transform="matrix(1 0 0 1 328.9482 192.21)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="329.1" y1="196.1" x2="328.7" y2="196.1"/>
+<text transform="matrix(1 0 0 1 328.9482 195.9741)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="193.3" x2="328.7" y2="193.3"/>
+<text transform="matrix(1 0 0 1 328.9482 193.1509)" class="st6 st3 st7">proc_mpeg_debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="201.8" x2="328.7" y2="201.8"/>
+<text transform="matrix(1 0 0 1 328.9482 201.6206)" class="st6 st3 st7">proc_usb_debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="329.1" y1="205.5" x2="328.7" y2="205.5"/>
+<text transform="matrix(1 0 0 1 328.9482 205.3853)" class="st6 st3 st7">proc_usb_debug_mem_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="202.7" x2="328.7" y2="202.7"/>
+<text transform="matrix(1 0 0 1 328.9482 202.562)" class="st6 st3 st7">proc_usb_debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="209.3" x2="328.7" y2="209.3"/>
+<text transform="matrix(1 0 0 1 328.9482 209.1494)" class="st6 st3 st7">sdcard_sd_slave_address[7..0]</text>
+<line class="st8" x1="329.1" y1="212.1" x2="328.7" y2="212.1"/>
+<text transform="matrix(1 0 0 1 328.9482 211.9727)" class="st6 st3 st7">sdcard_sd_slave_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="214" x2="328.7" y2="214"/>
+<text transform="matrix(1 0 0 1 328.9482 213.8545)" class="st6 st3 st7">sdram_s1_address[24..0]</text>
+<line class="st8" x1="329.1" y1="217.8" x2="328.7" y2="217.8"/>
+<text transform="matrix(1 0 0 1 328.9482 217.6191)" class="st6 st3 st7">sdram_s1_writedata[31..0]</text>
+<line class="st8" x1="329.1" y1="214.9" x2="328.7" y2="214.9"/>
+<text transform="matrix(1 0 0 1 328.9482 214.7959)" class="st6 st3 st7">sdram_s1_byteenable[3..0]</text>
+<line class="st8" x1="329.1" y1="219.6" x2="328.7" y2="219.6"/>
+<text transform="matrix(1 0 0 1 328.9482 219.501)" class="st6 st3 st7">sysid_main_control_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="220.6" x2="328.7" y2="220.6"/>
+<text transform="matrix(1 0 0 1 328.9482 220.4424)" class="st6 st3 st7">sysid_mpeg_control_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="221.5" x2="328.7" y2="221.5"/>
+<text transform="matrix(1 0 0 1 328.9482 221.3838)" class="st6 st3 st7">sysid_usb_control_slave_address[0..0]</text>
+<line class="st8" x1="329.1" y1="222.5" x2="328.7" y2="222.5"/>
+<text transform="matrix(1 0 0 1 328.9482 222.3242)" class="st6 st3 st7">timer_main_s1_address[2..0]</text>
+<line class="st8" x1="329.1" y1="224.4" x2="328.7" y2="224.4"/>
+<text transform="matrix(1 0 0 1 328.9482 224.207)" class="st6 st3 st7">timer_main_s1_writedata[15..0]</text>
+<line class="st8" x1="329.1" y1="226.2" x2="328.7" y2="226.2"/>
+<text transform="matrix(1 0 0 1 328.9482 226.0889)" class="st6 st3 st7">timer_mpeg_s1_address[2..0]</text>
+<line class="st8" x1="329.1" y1="228.1" x2="328.7" y2="228.1"/>
+<text transform="matrix(1 0 0 1 328.9482 227.9707)" class="st6 st3 st7">timer_mpeg_s1_writedata[15..0]</text>
+<line class="st8" x1="329.1" y1="230" x2="328.7" y2="230"/>
+<text transform="matrix(1 0 0 1 328.9482 229.8535)" class="st6 st3 st7">timer_usb_s1_address[2..0]</text>
+<line class="st8" x1="329.1" y1="231.9" x2="328.7" y2="231.9"/>
+<text transform="matrix(1 0 0 1 328.9482 231.7354)" class="st6 st3 st7">timer_usb_s1_writedata[15..0]</text>
+<line class="st5" x1="326.3" y1="105.8" x2="325.8" y2="105.8"/>
+<line class="st5" x1="326.3" y1="107.7" x2="325.8" y2="107.7"/>
+<line class="st5" x1="326.3" y1="109.5" x2="325.8" y2="109.5"/>
+<line class="st5" x1="326.3" y1="113.3" x2="325.8" y2="113.3"/>
+<line class="st5" x1="326.3" y1="117.1" x2="325.8" y2="117.1"/>
+<line class="st5" x1="326.3" y1="118.9" x2="325.8" y2="118.9"/>
+<line class="st5" x1="326.3" y1="120.8" x2="325.8" y2="120.8"/>
+<line class="st5" x1="326.3" y1="122.7" x2="325.8" y2="122.7"/>
+<line class="st5" x1="326.3" y1="129.3" x2="325.8" y2="129.3"/>
+<line class="st5" x1="326.3" y1="130.2" x2="325.8" y2="130.2"/>
+<line class="st5" x1="326.3" y1="131.2" x2="325.8" y2="131.2"/>
+<line class="st5" x1="326.3" y1="133.1" x2="325.8" y2="133.1"/>
+<line class="st5" x1="326.3" y1="134.9" x2="325.8" y2="134.9"/>
+<line class="st5" x1="326.3" y1="135.9" x2="325.8" y2="135.9"/>
+<line class="st5" x1="326.3" y1="136.8" x2="325.8" y2="136.8"/>
+<line class="st5" x1="326.3" y1="145.3" x2="325.8" y2="145.3"/>
+<line class="st5" x1="326.3" y1="150" x2="325.8" y2="150"/>
+<line class="st5" x1="326.3" y1="150.9" x2="325.8" y2="150.9"/>
+<line class="st5" x1="326.3" y1="152.8" x2="325.8" y2="152.8"/>
+<line class="st5" x1="326.3" y1="154.7" x2="325.8" y2="154.7"/>
+<line class="st5" x1="326.3" y1="157.5" x2="325.8" y2="157.5"/>
+<line class="st5" x1="326.3" y1="160.4" x2="325.8" y2="160.4"/>
+<line class="st5" x1="326.3" y1="161.3" x2="325.8" y2="161.3"/>
+<line class="st5" x1="326.3" y1="163.2" x2="325.8" y2="163.2"/>
+<line class="st5" x1="326.3" y1="165.1" x2="325.8" y2="165.1"/>
+<line class="st5" x1="326.3" y1="166.9" x2="325.8" y2="166.9"/>
+<line class="st5" x1="326.3" y1="167.9" x2="325.8" y2="167.9"/>
+<line class="st5" x1="326.3" y1="170.7" x2="325.8" y2="170.7"/>
+<line class="st5" x1="326.3" y1="171.7" x2="325.8" y2="171.7"/>
+<line class="st5" x1="326.3" y1="173.5" x2="325.8" y2="173.5"/>
+<line class="st5" x1="326.3" y1="175.4" x2="325.8" y2="175.4"/>
+<line class="st5" x1="326.3" y1="177.3" x2="325.8" y2="177.3"/>
+<line class="st5" x1="326.3" y1="180.1" x2="325.8" y2="180.1"/>
+<line class="st5" x1="326.3" y1="181.1" x2="325.8" y2="181.1"/>
+<line class="st8" x1="326.3" y1="126.5" x2="325.8" y2="126.5"/>
+<line class="st8" x1="326.3" y1="127.4" x2="325.8" y2="127.4"/>
+<line class="st8" x1="326.3" y1="128.4" x2="325.8" y2="128.4"/>
+<line class="st8" x1="326.3" y1="132.1" x2="325.8" y2="132.1"/>
+<line class="st8" x1="326.3" y1="147.2" x2="325.8" y2="147.2"/>
+<line class="st8" x1="326.3" y1="148.1" x2="325.8" y2="148.1"/>
+<line class="st8" x1="326.3" y1="149.1" x2="325.8" y2="149.1"/>
+<line class="st8" x1="326.3" y1="151.9" x2="325.8" y2="151.9"/>
+<line class="st8" x1="326.3" y1="155.7" x2="325.8" y2="155.7"/>
+<line class="st8" x1="326.3" y1="156.6" x2="325.8" y2="156.6"/>
+<line class="st8" x1="326.3" y1="158.5" x2="325.8" y2="158.5"/>
+<line class="st8" x1="326.3" y1="159.4" x2="325.8" y2="159.4"/>
+<line class="st8" x1="326.3" y1="162.2" x2="325.8" y2="162.2"/>
+<line class="st8" x1="326.3" y1="166" x2="325.8" y2="166"/>
+<line class="st8" x1="326.3" y1="168.8" x2="325.8" y2="168.8"/>
+<line class="st8" x1="326.3" y1="169.8" x2="325.8" y2="169.8"/>
+<line class="st8" x1="326.3" y1="172.6" x2="325.8" y2="172.6"/>
+<line class="st8" x1="326.3" y1="176.4" x2="325.8" y2="176.4"/>
+<line class="st8" x1="326.3" y1="104.8" x2="325.8" y2="104.8"/>
+<line class="st8" x1="326.3" y1="106.7" x2="325.8" y2="106.7"/>
+<line class="st8" x1="326.3" y1="108.6" x2="325.8" y2="108.6"/>
+<line class="st8" x1="326.3" y1="110.5" x2="325.8" y2="110.5"/>
+<line class="st8" x1="326.3" y1="111.4" x2="325.8" y2="111.4"/>
+<line class="st8" x1="326.3" y1="112.4" x2="325.8" y2="112.4"/>
+<line class="st8" x1="326.3" y1="114.2" x2="325.8" y2="114.2"/>
+<line class="st8" x1="326.3" y1="115.2" x2="325.8" y2="115.2"/>
+<line class="st8" x1="326.3" y1="116.1" x2="325.8" y2="116.1"/>
+<line class="st8" x1="326.3" y1="118" x2="325.8" y2="118"/>
+<line class="st8" x1="326.3" y1="119.9" x2="325.8" y2="119.9"/>
+<line class="st8" x1="326.3" y1="121.8" x2="325.8" y2="121.8"/>
+<line class="st8" x1="326.3" y1="123.7" x2="325.8" y2="123.7"/>
+<line class="st8" x1="326.3" y1="124.6" x2="325.8" y2="124.6"/>
+<line class="st8" x1="326.3" y1="125.5" x2="325.8" y2="125.5"/>
+<line class="st8" x1="326.3" y1="134" x2="325.8" y2="134"/>
+<line class="st8" x1="326.3" y1="137.8" x2="325.8" y2="137.8"/>
+<line class="st8" x1="326.3" y1="138.7" x2="325.8" y2="138.7"/>
+<line class="st8" x1="326.3" y1="139.7" x2="325.8" y2="139.7"/>
+<line class="st8" x1="326.3" y1="140.6" x2="325.8" y2="140.6"/>
+<line class="st8" x1="326.3" y1="141.5" x2="325.8" y2="141.5"/>
+<line class="st8" x1="326.3" y1="142.5" x2="325.8" y2="142.5"/>
+<line class="st8" x1="326.3" y1="143.4" x2="325.8" y2="143.4"/>
+<line class="st8" x1="326.3" y1="144.4" x2="325.8" y2="144.4"/>
+<line class="st8" x1="326.3" y1="146.2" x2="325.8" y2="146.2"/>
+<line class="st8" x1="326.3" y1="153.8" x2="325.8" y2="153.8"/>
+<line class="st8" x1="326.3" y1="164.1" x2="325.8" y2="164.1"/>
+<line class="st8" x1="326.3" y1="174.5" x2="325.8" y2="174.5"/>
+<line class="st8" x1="326.3" y1="178.2" x2="325.8" y2="178.2"/>
+<line class="st8" x1="326.3" y1="179.2" x2="325.8" y2="179.2"/>
+<line class="st8" x1="326.3" y1="182" x2="325.8" y2="182"/>
+<line class="st8" x1="326.3" y1="182.9" x2="325.8" y2="182.9"/>
+<line class="st8" x1="326.3" y1="183.9" x2="325.8" y2="183.9"/>
+<line class="st8" x1="326.3" y1="184.8" x2="325.8" y2="184.8"/>
+<line class="st8" x1="326.3" y1="185.8" x2="325.8" y2="185.8"/>
+<line class="st8" x1="326.3" y1="186.7" x2="325.8" y2="186.7"/>
+<line class="st5" x1="328.2" y1="60.6" x2="328.7" y2="60.6"/>
+<line class="st5" x1="328.2" y1="61.5" x2="328.7" y2="61.5"/>
+<line class="st5" x1="328.2" y1="63.4" x2="328.7" y2="63.4"/>
+<line class="st5" x1="328.2" y1="66.2" x2="328.7" y2="66.2"/>
+<line class="st5" x1="328.2" y1="67.2" x2="328.7" y2="67.2"/>
+<line class="st5" x1="328.2" y1="69.1" x2="328.7" y2="69.1"/>
+<line class="st5" x1="328.2" y1="71" x2="328.7" y2="71"/>
+<line class="st5" x1="328.2" y1="71.9" x2="328.7" y2="71.9"/>
+<line class="st5" x1="328.2" y1="73.8" x2="328.7" y2="73.8"/>
+<line class="st5" x1="328.2" y1="76.6" x2="328.7" y2="76.6"/>
+<line class="st5" x1="328.2" y1="77.5" x2="328.7" y2="77.5"/>
+<line class="st5" x1="328.2" y1="79.4" x2="328.7" y2="79.4"/>
+<line class="st5" x1="328.2" y1="82.2" x2="328.7" y2="82.2"/>
+<line class="st5" x1="328.2" y1="83.2" x2="328.7" y2="83.2"/>
+<line class="st5" x1="328.2" y1="85.1" x2="328.7" y2="85.1"/>
+<line class="st5" x1="328.2" y1="87.9" x2="328.7" y2="87.9"/>
+<line class="st5" x1="328.2" y1="88.8" x2="328.7" y2="88.8"/>
+<line class="st5" x1="328.2" y1="90.7" x2="328.7" y2="90.7"/>
+<line class="st5" x1="328.2" y1="92.6" x2="328.7" y2="92.6"/>
+<line class="st5" x1="328.2" y1="93.5" x2="328.7" y2="93.5"/>
+<line class="st5" x1="328.2" y1="95.4" x2="328.7" y2="95.4"/>
+<line class="st5" x1="328.2" y1="97.3" x2="328.7" y2="97.3"/>
+<line class="st5" x1="328.2" y1="98.2" x2="328.7" y2="98.2"/>
+<line class="st5" x1="328.2" y1="100.1" x2="328.7" y2="100.1"/>
+<line class="st5" x1="328.2" y1="102" x2="328.7" y2="102"/>
+<line class="st5" x1="328.2" y1="103" x2="328.7" y2="103"/>
+<line class="st5" x1="328.2" y1="104.8" x2="328.7" y2="104.8"/>
+<line class="st5" x1="328.2" y1="106.7" x2="328.7" y2="106.7"/>
+<line class="st5" x1="328.2" y1="107.7" x2="328.7" y2="107.7"/>
+<line class="st5" x1="328.2" y1="109.5" x2="328.7" y2="109.5"/>
+<line class="st5" x1="328.2" y1="111.4" x2="328.7" y2="111.4"/>
+<line class="st5" x1="328.2" y1="112.4" x2="328.7" y2="112.4"/>
+<line class="st5" x1="328.2" y1="114.2" x2="328.7" y2="114.2"/>
+<line class="st5" x1="328.2" y1="117.1" x2="328.7" y2="117.1"/>
+<line class="st5" x1="328.2" y1="118" x2="328.7" y2="118"/>
+<line class="st5" x1="328.2" y1="119.9" x2="328.7" y2="119.9"/>
+<line class="st5" x1="328.2" y1="121.8" x2="328.7" y2="121.8"/>
+<line class="st5" x1="328.2" y1="122.7" x2="328.7" y2="122.7"/>
+<line class="st5" x1="328.2" y1="124.6" x2="328.7" y2="124.6"/>
+<line class="st5" x1="328.2" y1="126.5" x2="328.7" y2="126.5"/>
+<line class="st5" x1="328.2" y1="127.4" x2="328.7" y2="127.4"/>
+<line class="st5" x1="328.2" y1="129.3" x2="328.7" y2="129.3"/>
+<line class="st5" x1="328.2" y1="132.1" x2="328.7" y2="132.1"/>
+<line class="st5" x1="328.2" y1="133.1" x2="328.7" y2="133.1"/>
+<line class="st5" x1="328.2" y1="134.9" x2="328.7" y2="134.9"/>
+<line class="st5" x1="328.2" y1="136.8" x2="328.7" y2="136.8"/>
+<line class="st5" x1="328.2" y1="137.8" x2="328.7" y2="137.8"/>
+<line class="st5" x1="328.2" y1="141.5" x2="328.7" y2="141.5"/>
+<line class="st5" x1="328.2" y1="142.5" x2="328.7" y2="142.5"/>
+<line class="st5" x1="328.2" y1="144.4" x2="328.7" y2="144.4"/>
+<line class="st5" x1="328.2" y1="146.2" x2="328.7" y2="146.2"/>
+<line class="st5" x1="328.2" y1="148.1" x2="328.7" y2="148.1"/>
+<line class="st5" x1="328.2" y1="150" x2="328.7" y2="150"/>
+<line class="st5" x1="328.2" y1="151.9" x2="328.7" y2="151.9"/>
+<line class="st5" x1="328.2" y1="153.8" x2="328.7" y2="153.8"/>
+<line class="st5" x1="328.2" y1="155.7" x2="328.7" y2="155.7"/>
+<line class="st5" x1="328.2" y1="157.5" x2="328.7" y2="157.5"/>
+<line class="st5" x1="328.2" y1="159.4" x2="328.7" y2="159.4"/>
+<line class="st5" x1="328.2" y1="161.3" x2="328.7" y2="161.3"/>
+<line class="st5" x1="328.2" y1="163.2" x2="328.7" y2="163.2"/>
+<line class="st5" x1="328.2" y1="165.1" x2="328.7" y2="165.1"/>
+<line class="st5" x1="328.2" y1="166.9" x2="328.7" y2="166.9"/>
+<line class="st5" x1="328.2" y1="168.8" x2="328.7" y2="168.8"/>
+<line class="st5" x1="328.2" y1="170.7" x2="328.7" y2="170.7"/>
+<line class="st5" x1="328.2" y1="172.6" x2="328.7" y2="172.6"/>
+<line class="st5" x1="328.2" y1="174.5" x2="328.7" y2="174.5"/>
+<line class="st5" x1="328.2" y1="176.4" x2="328.7" y2="176.4"/>
+<line class="st5" x1="328.2" y1="178.2" x2="328.7" y2="178.2"/>
+<line class="st5" x1="328.2" y1="180.1" x2="328.7" y2="180.1"/>
+<line class="st5" x1="328.2" y1="181.1" x2="328.7" y2="181.1"/>
+<line class="st5" x1="328.2" y1="183.9" x2="328.7" y2="183.9"/>
+<line class="st5" x1="328.2" y1="184.8" x2="328.7" y2="184.8"/>
+<line class="st5" x1="328.2" y1="186.7" x2="328.7" y2="186.7"/>
+<line class="st5" x1="328.2" y1="188.6" x2="328.7" y2="188.6"/>
+<line class="st5" x1="328.2" y1="189.5" x2="328.7" y2="189.5"/>
+<line class="st5" x1="328.2" y1="191.4" x2="328.7" y2="191.4"/>
+<line class="st5" x1="328.2" y1="194.2" x2="328.7" y2="194.2"/>
+<line class="st5" x1="328.2" y1="195.2" x2="328.7" y2="195.2"/>
+<line class="st5" x1="328.2" y1="197.1" x2="328.7" y2="197.1"/>
+<line class="st5" x1="328.2" y1="198.9" x2="328.7" y2="198.9"/>
+<line class="st5" x1="328.2" y1="200.8" x2="328.7" y2="200.8"/>
+<line class="st5" x1="328.2" y1="203.6" x2="328.7" y2="203.6"/>
+<line class="st5" x1="328.2" y1="204.6" x2="328.7" y2="204.6"/>
+<line class="st5" x1="328.2" y1="206.5" x2="328.7" y2="206.5"/>
+<line class="st5" x1="328.2" y1="208.4" x2="328.7" y2="208.4"/>
+<line class="st5" x1="328.2" y1="210.2" x2="328.7" y2="210.2"/>
+<line class="st5" x1="328.2" y1="211.2" x2="328.7" y2="211.2"/>
+<line class="st5" x1="328.2" y1="213.1" x2="328.7" y2="213.1"/>
+<line class="st5" x1="328.2" y1="215.9" x2="328.7" y2="215.9"/>
+<line class="st5" x1="328.2" y1="216.8" x2="328.7" y2="216.8"/>
+<line class="st5" x1="328.2" y1="218.7" x2="328.7" y2="218.7"/>
+<line class="st5" x1="328.2" y1="223.4" x2="328.7" y2="223.4"/>
+<line class="st5" x1="328.2" y1="225.3" x2="328.7" y2="225.3"/>
+<line class="st5" x1="328.2" y1="227.2" x2="328.7" y2="227.2"/>
+<line class="st5" x1="328.2" y1="229.1" x2="328.7" y2="229.1"/>
+<line class="st5" x1="328.2" y1="230.9" x2="328.7" y2="230.9"/>
+<line class="st5" x1="328.2" y1="232.8" x2="328.7" y2="232.8"/>
+<line class="st8" x1="328.2" y1="135.9" x2="328.7" y2="135.9"/>
+<line class="st8" x1="328.2" y1="179.2" x2="328.7" y2="179.2"/>
+<line class="st8" x1="328.2" y1="187.6" x2="328.7" y2="187.6"/>
+<line class="st8" x1="328.2" y1="190.5" x2="328.7" y2="190.5"/>
+<line class="st8" x1="328.2" y1="198" x2="328.7" y2="198"/>
+<line class="st8" x1="328.2" y1="199.9" x2="328.7" y2="199.9"/>
+<line class="st8" x1="328.2" y1="207.4" x2="328.7" y2="207.4"/>
+<line class="st8" x1="328.2" y1="59.7" x2="328.7" y2="59.7"/>
+<line class="st8" x1="328.2" y1="62.5" x2="328.7" y2="62.5"/>
+<line class="st8" x1="328.2" y1="64.4" x2="328.7" y2="64.4"/>
+<line class="st8" x1="328.2" y1="68.1" x2="328.7" y2="68.1"/>
+<line class="st8" x1="328.2" y1="65.3" x2="328.7" y2="65.3"/>
+<line class="st8" x1="328.2" y1="72.8" x2="328.7" y2="72.8"/>
+<line class="st8" x1="328.2" y1="70" x2="328.7" y2="70"/>
+<line class="st8" x1="328.2" y1="74.7" x2="328.7" y2="74.7"/>
+<line class="st8" x1="328.2" y1="78.5" x2="328.7" y2="78.5"/>
+<line class="st8" x1="328.2" y1="75.7" x2="328.7" y2="75.7"/>
+<line class="st8" x1="328.2" y1="80.4" x2="328.7" y2="80.4"/>
+<line class="st8" x1="328.2" y1="84.1" x2="328.7" y2="84.1"/>
+<line class="st8" x1="328.2" y1="81.3" x2="328.7" y2="81.3"/>
+<line class="st8" x1="328.2" y1="86" x2="328.7" y2="86"/>
+<line class="st8" x1="328.2" y1="89.8" x2="328.7" y2="89.8"/>
+<line class="st8" x1="328.2" y1="87" x2="328.7" y2="87"/>
+<line class="st8" x1="328.2" y1="91.7" x2="328.7" y2="91.7"/>
+<line class="st8" x1="328.2" y1="94.5" x2="328.7" y2="94.5"/>
+<line class="st8" x1="328.2" y1="96.4" x2="328.7" y2="96.4"/>
+<line class="st8" x1="328.2" y1="99.2" x2="328.7" y2="99.2"/>
+<line class="st8" x1="328.2" y1="101.1" x2="328.7" y2="101.1"/>
+<line class="st8" x1="328.2" y1="103.9" x2="328.7" y2="103.9"/>
+<line class="st8" x1="328.2" y1="105.8" x2="328.7" y2="105.8"/>
+<line class="st8" x1="328.2" y1="108.6" x2="328.7" y2="108.6"/>
+<line class="st8" x1="328.2" y1="110.5" x2="328.7" y2="110.5"/>
+<line class="st8" x1="328.2" y1="113.3" x2="328.7" y2="113.3"/>
+<line class="st8" x1="328.2" y1="115.2" x2="328.7" y2="115.2"/>
+<line class="st8" x1="328.2" y1="118.9" x2="328.7" y2="118.9"/>
+<line class="st8" x1="328.2" y1="116.1" x2="328.7" y2="116.1"/>
+<line class="st8" x1="328.2" y1="120.8" x2="328.7" y2="120.8"/>
+<line class="st8" x1="328.2" y1="123.7" x2="328.7" y2="123.7"/>
+<line class="st8" x1="328.2" y1="125.5" x2="328.7" y2="125.5"/>
+<line class="st8" x1="328.2" y1="128.4" x2="328.7" y2="128.4"/>
+<line class="st8" x1="328.2" y1="130.2" x2="328.7" y2="130.2"/>
+<line class="st8" x1="328.2" y1="134" x2="328.7" y2="134"/>
+<line class="st8" x1="328.2" y1="131.2" x2="328.7" y2="131.2"/>
+<line class="st8" x1="328.2" y1="138.7" x2="328.7" y2="138.7"/>
+<line class="st8" x1="328.2" y1="143.4" x2="328.7" y2="143.4"/>
+<line class="st8" x1="328.2" y1="139.7" x2="328.7" y2="139.7"/>
+<line class="st8" x1="328.2" y1="140.6" x2="328.7" y2="140.6"/>
+<line class="st8" x1="328.2" y1="145.3" x2="328.7" y2="145.3"/>
+<line class="st8" x1="328.2" y1="147.2" x2="328.7" y2="147.2"/>
+<line class="st8" x1="328.2" y1="149.1" x2="328.7" y2="149.1"/>
+<line class="st8" x1="328.2" y1="150.9" x2="328.7" y2="150.9"/>
+<line class="st8" x1="328.2" y1="152.8" x2="328.7" y2="152.8"/>
+<line class="st8" x1="328.2" y1="154.7" x2="328.7" y2="154.7"/>
+<line class="st8" x1="328.2" y1="156.6" x2="328.7" y2="156.6"/>
+<line class="st8" x1="328.2" y1="158.5" x2="328.7" y2="158.5"/>
+<line class="st8" x1="328.2" y1="160.4" x2="328.7" y2="160.4"/>
+<line class="st8" x1="328.2" y1="162.2" x2="328.7" y2="162.2"/>
+<line class="st8" x1="328.2" y1="164.1" x2="328.7" y2="164.1"/>
+<line class="st8" x1="328.2" y1="166" x2="328.7" y2="166"/>
+<line class="st8" x1="328.2" y1="167.9" x2="328.7" y2="167.9"/>
+<line class="st8" x1="328.2" y1="169.8" x2="328.7" y2="169.8"/>
+<line class="st8" x1="328.2" y1="171.7" x2="328.7" y2="171.7"/>
+<line class="st8" x1="328.2" y1="173.5" x2="328.7" y2="173.5"/>
+<line class="st8" x1="328.2" y1="175.4" x2="328.7" y2="175.4"/>
+<line class="st8" x1="328.2" y1="177.3" x2="328.7" y2="177.3"/>
+<line class="st8" x1="328.2" y1="182" x2="328.7" y2="182"/>
+<line class="st8" x1="328.2" y1="185.8" x2="328.7" y2="185.8"/>
+<line class="st8" x1="328.2" y1="182.9" x2="328.7" y2="182.9"/>
+<line class="st8" x1="328.2" y1="192.4" x2="328.7" y2="192.4"/>
+<line class="st8" x1="328.2" y1="196.1" x2="328.7" y2="196.1"/>
+<line class="st8" x1="328.2" y1="193.3" x2="328.7" y2="193.3"/>
+<line class="st8" x1="328.2" y1="201.8" x2="328.7" y2="201.8"/>
+<line class="st8" x1="328.2" y1="205.5" x2="328.7" y2="205.5"/>
+<line class="st8" x1="328.2" y1="202.7" x2="328.7" y2="202.7"/>
+<line class="st8" x1="328.2" y1="209.3" x2="328.7" y2="209.3"/>
+<line class="st8" x1="328.2" y1="212.1" x2="328.7" y2="212.1"/>
+<line class="st8" x1="328.2" y1="214" x2="328.7" y2="214"/>
+<line class="st8" x1="328.2" y1="217.8" x2="328.7" y2="217.8"/>
+<line class="st8" x1="328.2" y1="214.9" x2="328.7" y2="214.9"/>
+<line class="st8" x1="328.2" y1="219.6" x2="328.7" y2="219.6"/>
+<line class="st8" x1="328.2" y1="220.6" x2="328.7" y2="220.6"/>
+<line class="st8" x1="328.2" y1="221.5" x2="328.7" y2="221.5"/>
+<line class="st8" x1="328.2" y1="222.5" x2="328.7" y2="222.5"/>
+<line class="st8" x1="328.2" y1="224.4" x2="328.7" y2="224.4"/>
+<line class="st8" x1="328.2" y1="226.2" x2="328.7" y2="226.2"/>
+<line class="st8" x1="328.2" y1="228.1" x2="328.7" y2="228.1"/>
+<line class="st8" x1="328.2" y1="230" x2="328.7" y2="230"/>
+<line class="st8" x1="328.2" y1="231.9" x2="328.7" y2="231.9"/>
+<rect x="216" y="272" width="2.8" height="10.4"/>
+<rect x="215.7" y="271.8" class="st12" width="2.8" height="10.4"/>
+<rect x="215.7" y="271.8" class="st1" width="2.8" height="10.4"/>
+<line class="st2" x1="216.3" y1="272" x2="216.3" y2="272.6"/>
+<line class="st2" x1="216" y1="272.3" x2="216.5" y2="272.3"/>
+<rect x="215.9" y="271.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 213.5527 271.5713)" class="st3 st4">otogame_ocm_null:ocm_null</text>
+<line class="st5" x1="215.3" y1="275.2" x2="215.7" y2="275.2"/>
+<text transform="matrix(1 0 0 1 213.5483 275.0264)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="215.3" y1="277.1" x2="215.7" y2="277.1"/>
+<text transform="matrix(1 0 0 1 215.0654 276.9082)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="215.3" y1="276.1" x2="215.7" y2="276.1"/>
+<text transform="matrix(1 0 0 1 214.5425 275.9668)" class="st6 st3 st7">clken</text>
+<line class="st5" x1="215.3" y1="278" x2="215.7" y2="278"/>
+<text transform="matrix(1 0 0 1 214.333 277.8496)" class="st6 st3 st7">freeze</text>
+<text transform="matrix(1 0 0 1 213.1143 277.8301)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="215.3" y1="279.9" x2="215.7" y2="279.9"/>
+<text transform="matrix(1 0 0 1 214.5947 279.7314)" class="st6 st3 st7">reset</text>
+<line class="st5" x1="215.3" y1="278.9" x2="215.7" y2="278.9"/>
+<text transform="matrix(1 0 0 1 213.6528 278.79)" class="st6 st3 st7">reset_req</text>
+<line class="st5" x1="215.3" y1="281.8" x2="215.7" y2="281.8"/>
+<text transform="matrix(1 0 0 1 214.6475 281.6133)" class="st6 st3 st7">write</text>
+<line class="st8" x1="215.3" y1="273.3" x2="215.7" y2="273.3"/>
+<text transform="matrix(1 0 0 1 212.9204 273.1436)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="215.3" y1="274.2" x2="215.7" y2="274.2"/>
+<text transform="matrix(1 0 0 1 212.292 274.085)" class="st6 st3 st7">byteenable[3..0]</text>
+<line class="st8" x1="215.3" y1="280.8" x2="215.7" y2="280.8"/>
+<text transform="matrix(1 0 0 1 212.4233 280.6729)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="219" y1="277.1" x2="218.6" y2="277.1"/>
+<text transform="matrix(1 0 0 1 218.8403 276.9082)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="216.2" y1="275.2" x2="215.7" y2="275.2"/>
+<line class="st5" x1="216.2" y1="277.1" x2="215.7" y2="277.1"/>
+<line class="st5" x1="216.2" y1="276.1" x2="215.7" y2="276.1"/>
+<line class="st5" x1="216.2" y1="278" x2="215.7" y2="278"/>
+<line class="st5" x1="216.2" y1="279.9" x2="215.7" y2="279.9"/>
+<line class="st5" x1="216.2" y1="278.9" x2="215.7" y2="278.9"/>
+<line class="st5" x1="216.2" y1="281.8" x2="215.7" y2="281.8"/>
+<line class="st8" x1="216.2" y1="273.3" x2="215.7" y2="273.3"/>
+<line class="st8" x1="216.2" y1="274.2" x2="215.7" y2="274.2"/>
+<line class="st8" x1="216.2" y1="280.8" x2="215.7" y2="280.8"/>
+<line class="st8" x1="218.1" y1="277.1" x2="218.6" y2="277.1"/>
+<rect x="459.7" y="139.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="139.1" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="139.1" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="139.3" x2="460" y2="139.9"/>
+<line class="st2" x1="459.7" y1="139.6" x2="460.3" y2="139.6"/>
+<rect x="459.6" y="139.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 455.3818 138.8774)" class="st3 st4">otogame_otg_hpi_address:otg_hpi_address</text>
+<line class="st5" x1="459" y1="141.5" x2="459.5" y2="141.5"/>
+<text transform="matrix(1 0 0 1 457.292 141.3906)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="142.5" x2="459.5" y2="142.5"/>
+<text transform="matrix(1 0 0 1 458.8096 142.3315)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,143.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,143.6,459.5,143.5,459.5,143.4"/>
+<line class="st5" x1="459" y1="143.4" x2="459.2" y2="143.4"/>
+<text transform="matrix(1 0 0 1 457.627 143.2729)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,144.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,144.5,459.5,144.4,459.5,144.4"/>
+<line class="st5" x1="459" y1="144.4" x2="459.2" y2="144.4"/>
+<text transform="matrix(1 0 0 1 457.6797 144.2139)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="140.6" x2="459.5" y2="140.6"/>
+<text transform="matrix(1 0 0 1 456.6641 140.4497)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="145.3" x2="459.5" y2="145.3"/>
+<text transform="matrix(1 0 0 1 456.167 145.1548)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="462.8" y1="142.5" x2="462.3" y2="142.5"/>
+<text transform="matrix(1 0 0 1 462.584 142.3315)" class="st6 st3 st7">out_port[1..0]</text>
+<line class="st8" x1="462.8" y1="143.4" x2="462.3" y2="143.4"/>
+<text transform="matrix(1 0 0 1 462.584 143.2729)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="141.5" x2="459.5" y2="141.5"/>
+<line class="st5" x1="459.9" y1="142.5" x2="459.5" y2="142.5"/>
+<line class="st5" x1="459.9" y1="143.4" x2="459.5" y2="143.4"/>
+<line class="st5" x1="459.9" y1="144.4" x2="459.5" y2="144.4"/>
+<line class="st8" x1="459.9" y1="140.6" x2="459.5" y2="140.6"/>
+<line class="st8" x1="459.9" y1="145.3" x2="459.5" y2="145.3"/>
+<line class="st8" x1="461.8" y1="142.5" x2="462.3" y2="142.5"/>
+<line class="st8" x1="461.8" y1="143.4" x2="462.3" y2="143.4"/>
+<rect x="459.7" y="147.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="147.1" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="147.1" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="147.3" x2="460" y2="147.9"/>
+<line class="st2" x1="459.7" y1="147.6" x2="460.3" y2="147.6"/>
+<rect x="459.6" y="147.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 456.8252 146.8765)" class="st3 st4">otogame_otg_hpi_cs:otg_hpi_cs</text>
+<line class="st5" x1="459" y1="149.5" x2="459.5" y2="149.5"/>
+<text transform="matrix(1 0 0 1 457.292 149.3896)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="150.5" x2="459.5" y2="150.5"/>
+<text transform="matrix(1 0 0 1 458.8096 150.3311)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,151.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,151.6,459.5,151.5,459.5,151.4"/>
+<line class="st5" x1="459" y1="151.4" x2="459.2" y2="151.4"/>
+<text transform="matrix(1 0 0 1 457.627 151.272)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,152.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,152.5,459.5,152.4,459.5,152.4"/>
+<line class="st5" x1="459" y1="152.4" x2="459.2" y2="152.4"/>
+<text transform="matrix(1 0 0 1 457.6797 152.2134)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="148.6" x2="459.5" y2="148.6"/>
+<text transform="matrix(1 0 0 1 456.6641 148.4487)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="153.3" x2="459.5" y2="153.3"/>
+<text transform="matrix(1 0 0 1 456.167 153.1543)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st5" x1="462.8" y1="150.5" x2="462.3" y2="150.5"/>
+<text transform="matrix(1 0 0 1 462.584 150.3311)" class="st6 st3 st7">out_port</text>
+<line class="st8" x1="462.8" y1="151.4" x2="462.3" y2="151.4"/>
+<text transform="matrix(1 0 0 1 462.584 151.272)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="149.5" x2="459.5" y2="149.5"/>
+<line class="st5" x1="459.9" y1="150.5" x2="459.5" y2="150.5"/>
+<line class="st5" x1="459.9" y1="151.4" x2="459.5" y2="151.4"/>
+<line class="st5" x1="459.9" y1="152.4" x2="459.5" y2="152.4"/>
+<line class="st8" x1="459.9" y1="148.6" x2="459.5" y2="148.6"/>
+<line class="st8" x1="459.9" y1="153.3" x2="459.5" y2="153.3"/>
+<line class="st5" x1="461.8" y1="150.5" x2="462.3" y2="150.5"/>
+<line class="st8" x1="461.8" y1="151.4" x2="462.3" y2="151.4"/>
+<rect x="459.7" y="155.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="155.1" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="155.1" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="155.3" x2="460" y2="155.9"/>
+<line class="st2" x1="459.7" y1="155.6" x2="460.3" y2="155.6"/>
+<rect x="459.6" y="155.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.0137 154.876)" class="st3 st4">otogame_otg_hpi_cs:otg_hpi_r</text>
+<line class="st5" x1="459" y1="157.5" x2="459.5" y2="157.5"/>
+<text transform="matrix(1 0 0 1 457.292 157.3892)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="158.5" x2="459.5" y2="158.5"/>
+<text transform="matrix(1 0 0 1 458.8096 158.3301)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,159.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,159.6,459.5,159.5,459.5,159.4"/>
+<line class="st5" x1="459" y1="159.4" x2="459.2" y2="159.4"/>
+<text transform="matrix(1 0 0 1 457.627 159.2715)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,160.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,160.5,459.5,160.4,459.5,160.4"/>
+<line class="st5" x1="459" y1="160.4" x2="459.2" y2="160.4"/>
+<text transform="matrix(1 0 0 1 457.6797 160.2124)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="156.6" x2="459.5" y2="156.6"/>
+<text transform="matrix(1 0 0 1 456.6641 156.4482)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="161.3" x2="459.5" y2="161.3"/>
+<text transform="matrix(1 0 0 1 456.167 161.1538)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st5" x1="462.8" y1="158.5" x2="462.3" y2="158.5"/>
+<text transform="matrix(1 0 0 1 462.584 158.3301)" class="st6 st3 st7">out_port</text>
+<line class="st8" x1="462.8" y1="159.4" x2="462.3" y2="159.4"/>
+<text transform="matrix(1 0 0 1 462.584 159.2715)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="157.5" x2="459.5" y2="157.5"/>
+<line class="st5" x1="459.9" y1="158.5" x2="459.5" y2="158.5"/>
+<line class="st5" x1="459.9" y1="159.4" x2="459.5" y2="159.4"/>
+<line class="st5" x1="459.9" y1="160.4" x2="459.5" y2="160.4"/>
+<line class="st8" x1="459.9" y1="156.6" x2="459.5" y2="156.6"/>
+<line class="st8" x1="459.9" y1="161.3" x2="459.5" y2="161.3"/>
+<line class="st5" x1="461.8" y1="158.5" x2="462.3" y2="158.5"/>
+<line class="st8" x1="461.8" y1="159.4" x2="462.3" y2="159.4"/>
+<rect x="459.7" y="172.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="172" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="172" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="172.3" x2="460" y2="172.8"/>
+<line class="st2" x1="459.7" y1="172.5" x2="460.3" y2="172.5"/>
+<rect x="459.6" y="172.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 456.9043 171.8154)" class="st3 st4">otogame_otg_hpi_cs:otg_hpi_w</text>
+<line class="st5" x1="459" y1="174.5" x2="459.5" y2="174.5"/>
+<text transform="matrix(1 0 0 1 457.292 174.3291)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="175.4" x2="459.5" y2="175.4"/>
+<text transform="matrix(1 0 0 1 458.8096 175.27)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,176.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,176.5,459.5,176.4,459.5,176.4"/>
+<line class="st5" x1="459" y1="176.4" x2="459.2" y2="176.4"/>
+<text transform="matrix(1 0 0 1 457.627 176.2109)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,177.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,177.4,459.5,177.4,459.5,177.3"/>
+<line class="st5" x1="459" y1="177.3" x2="459.2" y2="177.3"/>
+<text transform="matrix(1 0 0 1 457.6797 177.1523)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="173.5" x2="459.5" y2="173.5"/>
+<text transform="matrix(1 0 0 1 456.6641 173.3877)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="178.2" x2="459.5" y2="178.2"/>
+<text transform="matrix(1 0 0 1 456.167 178.0933)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st5" x1="462.8" y1="175.4" x2="462.3" y2="175.4"/>
+<text transform="matrix(1 0 0 1 462.584 175.27)" class="st6 st3 st7">out_port</text>
+<line class="st8" x1="462.8" y1="176.4" x2="462.3" y2="176.4"/>
+<text transform="matrix(1 0 0 1 462.584 176.2109)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="174.5" x2="459.5" y2="174.5"/>
+<line class="st5" x1="459.9" y1="175.4" x2="459.5" y2="175.4"/>
+<line class="st5" x1="459.9" y1="176.4" x2="459.5" y2="176.4"/>
+<line class="st5" x1="459.9" y1="177.3" x2="459.5" y2="177.3"/>
+<line class="st8" x1="459.9" y1="173.5" x2="459.5" y2="173.5"/>
+<line class="st8" x1="459.9" y1="178.2" x2="459.5" y2="178.2"/>
+<line class="st5" x1="461.8" y1="175.4" x2="462.3" y2="175.4"/>
+<line class="st8" x1="461.8" y1="176.4" x2="462.3" y2="176.4"/>
+<rect x="459.7" y="163.3" width="2.8" height="7.6"/>
+<rect x="459.5" y="163.1" class="st12" width="2.8" height="7.6"/>
+<rect x="459.5" y="163.1" class="st1" width="2.8" height="7.6"/>
+<line class="st2" x1="460" y1="163.3" x2="460" y2="163.9"/>
+<line class="st2" x1="459.7" y1="163.6" x2="460.3" y2="163.6"/>
+<rect x="459.6" y="163.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 456.291 162.875)" class="st3 st4">otogame_otg_hpi_data:otg_hpi_data</text>
+<line class="st5" x1="459" y1="165.5" x2="459.5" y2="165.5"/>
+<text transform="matrix(1 0 0 1 457.292 165.3887)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="166.5" x2="459.5" y2="166.5"/>
+<text transform="matrix(1 0 0 1 458.8096 166.3296)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,168.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,168.5,459.5,168.4,459.5,168.4"/>
+<line class="st5" x1="459" y1="168.4" x2="459.2" y2="168.4"/>
+<text transform="matrix(1 0 0 1 457.627 168.2119)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,169.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,169.4,459.5,169.4,459.5,169.3"/>
+<line class="st5" x1="459" y1="169.3" x2="459.2" y2="169.3"/>
+<text transform="matrix(1 0 0 1 457.6797 169.1528)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="164.6" x2="459.5" y2="164.6"/>
+<text transform="matrix(1 0 0 1 456.6641 164.4473)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="167.4" x2="459.5" y2="167.4"/>
+<text transform="matrix(1 0 0 1 456.6377 167.2705)" class="st6 st3 st7">in_port[15..0]</text>
+<line class="st8" x1="459" y1="170.2" x2="459.5" y2="170.2"/>
+<text transform="matrix(1 0 0 1 456.167 170.0942)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="462.8" y1="166.5" x2="462.3" y2="166.5"/>
+<text transform="matrix(1 0 0 1 462.584 166.3296)" class="st6 st3 st7">out_port[15..0]</text>
+<line class="st8" x1="462.8" y1="167.4" x2="462.3" y2="167.4"/>
+<text transform="matrix(1 0 0 1 462.584 167.2705)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="165.5" x2="459.5" y2="165.5"/>
+<line class="st5" x1="459.9" y1="166.5" x2="459.5" y2="166.5"/>
+<line class="st5" x1="459.9" y1="168.4" x2="459.5" y2="168.4"/>
+<line class="st5" x1="459.9" y1="169.3" x2="459.5" y2="169.3"/>
+<line class="st8" x1="459.9" y1="164.6" x2="459.5" y2="164.6"/>
+<line class="st8" x1="459.9" y1="167.4" x2="459.5" y2="167.4"/>
+<line class="st8" x1="459.9" y1="170.2" x2="459.5" y2="170.2"/>
+<line class="st8" x1="461.8" y1="166.5" x2="462.3" y2="166.5"/>
+<line class="st8" x1="461.8" y1="167.4" x2="462.3" y2="167.4"/>
+<rect x="459.7" y="196.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="196" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="196" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="196.3" x2="460" y2="196.8"/>
+<line class="st2" x1="459.7" y1="196.5" x2="460.3" y2="196.5"/>
+<rect x="459.6" y="196.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.5791 195.8135)" class="st3 st4">otogame_pio_hex:pio_hex</text>
+<line class="st5" x1="459" y1="198.5" x2="459.5" y2="198.5"/>
+<text transform="matrix(1 0 0 1 457.292 198.3267)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="199.4" x2="459.5" y2="199.4"/>
+<text transform="matrix(1 0 0 1 458.8096 199.2681)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,200.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,200.5,459.5,200.4,459.5,200.4"/>
+<line class="st5" x1="459" y1="200.4" x2="459.2" y2="200.4"/>
+<text transform="matrix(1 0 0 1 457.627 200.209)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,201.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,201.4,459.5,201.4,459.5,201.3"/>
+<line class="st5" x1="459" y1="201.3" x2="459.2" y2="201.3"/>
+<text transform="matrix(1 0 0 1 457.6797 201.1504)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="197.5" x2="459.5" y2="197.5"/>
+<text transform="matrix(1 0 0 1 456.6641 197.3857)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="202.2" x2="459.5" y2="202.2"/>
+<text transform="matrix(1 0 0 1 456.167 202.0913)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="462.8" y1="199.4" x2="462.3" y2="199.4"/>
+<text transform="matrix(1 0 0 1 462.584 199.2681)" class="st6 st3 st7">out_port[31..0]</text>
+<line class="st8" x1="462.8" y1="200.4" x2="462.3" y2="200.4"/>
+<text transform="matrix(1 0 0 1 462.584 200.209)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="198.5" x2="459.5" y2="198.5"/>
+<line class="st5" x1="459.9" y1="199.4" x2="459.5" y2="199.4"/>
+<line class="st5" x1="459.9" y1="200.4" x2="459.5" y2="200.4"/>
+<line class="st5" x1="459.9" y1="201.3" x2="459.5" y2="201.3"/>
+<line class="st8" x1="459.9" y1="197.5" x2="459.5" y2="197.5"/>
+<line class="st8" x1="459.9" y1="202.2" x2="459.5" y2="202.2"/>
+<line class="st8" x1="461.8" y1="199.4" x2="462.3" y2="199.4"/>
+<line class="st8" x1="461.8" y1="200.4" x2="462.3" y2="200.4"/>
+<rect x="459.7" y="180.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="180" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="180" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="180.3" x2="460" y2="180.8"/>
+<line class="st2" x1="459.7" y1="180.5" x2="460.3" y2="180.5"/>
+<rect x="459.6" y="180.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.4219 179.8149)" class="st3 st4">otogame_pio_ledg:pio_ledg</text>
+<line class="st5" x1="459" y1="182.5" x2="459.5" y2="182.5"/>
+<text transform="matrix(1 0 0 1 457.292 182.3281)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="183.4" x2="459.5" y2="183.4"/>
+<text transform="matrix(1 0 0 1 458.8096 183.2695)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,184.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,184.5,459.5,184.4,459.5,184.4"/>
+<line class="st5" x1="459" y1="184.4" x2="459.2" y2="184.4"/>
+<text transform="matrix(1 0 0 1 457.627 184.2104)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,185.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,185.4,459.5,185.4,459.5,185.3"/>
+<line class="st5" x1="459" y1="185.3" x2="459.2" y2="185.3"/>
+<text transform="matrix(1 0 0 1 457.6797 185.1514)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="181.5" x2="459.5" y2="181.5"/>
+<text transform="matrix(1 0 0 1 456.6641 181.3872)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="186.2" x2="459.5" y2="186.2"/>
+<text transform="matrix(1 0 0 1 456.167 186.0928)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="462.8" y1="183.4" x2="462.3" y2="183.4"/>
+<text transform="matrix(1 0 0 1 462.584 183.2695)" class="st6 st3 st7">out_port[8..0]</text>
+<line class="st8" x1="462.8" y1="184.4" x2="462.3" y2="184.4"/>
+<text transform="matrix(1 0 0 1 462.584 184.2104)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="182.5" x2="459.5" y2="182.5"/>
+<line class="st5" x1="459.9" y1="183.4" x2="459.5" y2="183.4"/>
+<line class="st5" x1="459.9" y1="184.4" x2="459.5" y2="184.4"/>
+<line class="st5" x1="459.9" y1="185.3" x2="459.5" y2="185.3"/>
+<line class="st8" x1="459.9" y1="181.5" x2="459.5" y2="181.5"/>
+<line class="st8" x1="459.9" y1="186.2" x2="459.5" y2="186.2"/>
+<line class="st8" x1="461.8" y1="183.4" x2="462.3" y2="183.4"/>
+<line class="st8" x1="461.8" y1="184.4" x2="462.3" y2="184.4"/>
+<rect x="459.7" y="188.3" width="2.8" height="6.7"/>
+<rect x="459.5" y="188" class="st12" width="2.8" height="6.7"/>
+<rect x="459.5" y="188" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="460" y1="188.3" x2="460" y2="188.8"/>
+<line class="st2" x1="459.7" y1="188.5" x2="460.3" y2="188.5"/>
+<rect x="459.6" y="188.2" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.5479 187.8145)" class="st3 st4">otogame_pio_ledr:pio_ledr</text>
+<line class="st5" x1="459" y1="190.5" x2="459.5" y2="190.5"/>
+<text transform="matrix(1 0 0 1 457.292 190.3276)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="459" y1="191.4" x2="459.5" y2="191.4"/>
+<text transform="matrix(1 0 0 1 458.8096 191.2686)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,192.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,192.5,459.5,192.4,459.5,192.4"/>
+<line class="st5" x1="459" y1="192.4" x2="459.2" y2="192.4"/>
+<text transform="matrix(1 0 0 1 457.627 192.21)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M459.5,193.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,193.4,459.5,193.4,459.5,193.3"/>
+<line class="st5" x1="459" y1="193.3" x2="459.2" y2="193.3"/>
+<text transform="matrix(1 0 0 1 457.6797 193.1509)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="459" y1="189.5" x2="459.5" y2="189.5"/>
+<text transform="matrix(1 0 0 1 456.6641 189.3862)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="459" y1="194.2" x2="459.5" y2="194.2"/>
+<text transform="matrix(1 0 0 1 456.167 194.0918)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st8" x1="462.8" y1="191.4" x2="462.3" y2="191.4"/>
+<text transform="matrix(1 0 0 1 462.584 191.2686)" class="st6 st3 st7">out_port[17..0]</text>
+<line class="st8" x1="462.8" y1="192.4" x2="462.3" y2="192.4"/>
+<text transform="matrix(1 0 0 1 462.584 192.21)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="459.9" y1="190.5" x2="459.5" y2="190.5"/>
+<line class="st5" x1="459.9" y1="191.4" x2="459.5" y2="191.4"/>
+<line class="st5" x1="459.9" y1="192.4" x2="459.5" y2="192.4"/>
+<line class="st5" x1="459.9" y1="193.3" x2="459.5" y2="193.3"/>
+<line class="st8" x1="459.9" y1="189.5" x2="459.5" y2="189.5"/>
+<line class="st8" x1="459.9" y1="194.2" x2="459.5" y2="194.2"/>
+<line class="st8" x1="461.8" y1="191.4" x2="462.3" y2="191.4"/>
+<line class="st8" x1="461.8" y1="192.4" x2="462.3" y2="192.4"/>
+<rect x="119.5" y="255.5" width="2.8" height="14.2"/>
+<rect x="119.3" y="255.3" class="st12" width="2.8" height="14.2"/>
+<rect x="119.3" y="255.3" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="119.8" y1="255.5" x2="119.8" y2="256.1"/>
+<line class="st2" x1="119.5" y1="255.8" x2="120.1" y2="255.8"/>
+<rect x="119.4" y="255.5" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 118.7847 255.1025)" class="st3 st4">otogame_pll:pll</text>
+<line class="st5" x1="118.8" y1="257.8" x2="119.3" y2="257.8"/>
+<text transform="matrix(1 0 0 1 117.8706 257.6152)" class="st6 st3 st7">areset</text>
+<text transform="matrix(1 0 0 1 116.6519 257.5967)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="258.7" x2="119.3" y2="258.7"/>
+<text transform="matrix(1 0 0 1 118.603 258.5566)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="118.8" y1="259.6" x2="119.3" y2="259.6"/>
+<text transform="matrix(1 0 0 1 116.4839 259.498)" class="st6 st3 st7">configupdate</text>
+<text transform="matrix(1 0 0 1 115.2402 259.4785)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="261.5" x2="119.3" y2="261.5"/>
+<text transform="matrix(1 0 0 1 117.0068 261.3799)" class="st6 st3 st7">phasestep</text>
+<text transform="matrix(1 0 0 1 115.7578 261.3604)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="262.5" x2="119.3" y2="262.5"/>
+<text transform="matrix(1 0 0 1 116.2485 262.3213)" class="st6 st3 st7">phaseupdown</text>
+<text transform="matrix(1 0 0 1 115.0049 262.3018)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="263.4" x2="119.3" y2="263.4"/>
+<text transform="matrix(1 0 0 1 118.2368 263.2627)" class="st6 st3 st7">read</text>
+<line class="st5" x1="118.8" y1="264.3" x2="119.3" y2="264.3"/>
+<text transform="matrix(1 0 0 1 118.1323 264.2031)" class="st6 st3 st7">reset</text>
+<line class="st5" x1="118.8" y1="266.2" x2="119.3" y2="266.2"/>
+<text transform="matrix(1 0 0 1 117.6094 266.0859)" class="st6 st3 st7">scanclk</text>
+<text transform="matrix(1 0 0 1 116.3696 266.0664)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="265.3" x2="119.3" y2="265.3"/>
+<text transform="matrix(1 0 0 1 116.8247 265.1445)" class="st6 st3 st7">scanclkena</text>
+<text transform="matrix(1 0 0 1 115.5698 265.125)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="267.2" x2="119.3" y2="267.2"/>
+<text transform="matrix(1 0 0 1 117.2686 267.0264)" class="st6 st3 st7">scandata</text>
+<text transform="matrix(1 0 0 1 116.0405 267.0068)" class="st6 st3 st4">1&apos;h0</text>
+<line class="st5" x1="118.8" y1="269.1" x2="119.3" y2="269.1"/>
+<text transform="matrix(1 0 0 1 118.1851 268.9092)" class="st6 st3 st7">write</text>
+<line class="st8" x1="118.8" y1="256.8" x2="119.3" y2="256.8"/>
+<text transform="matrix(1 0 0 1 116.458 256.6748)" class="st6 st3 st7">address[1..0]</text>
+<line class="st8" x1="118.8" y1="260.6" x2="119.3" y2="260.6"/>
+<text transform="matrix(1 0 0 1 114.0518 260.4395)" class="st6 st3 st7">phasecounterselect[3..0]</text>
+<text transform="matrix(1 0 0 1 112.8403 260.4199)" class="st6 st3 st4">4&apos;h0</text>
+<line class="st8" x1="118.8" y1="268.1" x2="119.3" y2="268.1"/>
+<text transform="matrix(1 0 0 1 115.9609 267.9678)" class="st6 st3 st7">writedata[31..0]</text>
+<line class="st5" x1="122.6" y1="261.5" x2="122.1" y2="261.5"/>
+<text transform="matrix(1 0 0 1 122.3779 261.3799)" class="st6 st3 st7">c1</text>
+<line class="st5" x1="122.6" y1="262.5" x2="122.1" y2="262.5"/>
+<text transform="matrix(1 0 0 1 122.3779 262.3213)" class="st6 st3 st7">c2</text>
+<line class="st8" x1="122.6" y1="263.4" x2="122.1" y2="263.4"/>
+<text transform="matrix(1 0 0 1 122.3779 263.2627)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="119.7" y1="257.8" x2="119.3" y2="257.8"/>
+<line class="st5" x1="119.7" y1="258.7" x2="119.3" y2="258.7"/>
+<line class="st5" x1="119.7" y1="259.6" x2="119.3" y2="259.6"/>
+<line class="st5" x1="119.7" y1="261.5" x2="119.3" y2="261.5"/>
+<line class="st5" x1="119.7" y1="262.5" x2="119.3" y2="262.5"/>
+<line class="st5" x1="119.7" y1="263.4" x2="119.3" y2="263.4"/>
+<line class="st5" x1="119.7" y1="264.3" x2="119.3" y2="264.3"/>
+<line class="st5" x1="119.7" y1="266.2" x2="119.3" y2="266.2"/>
+<line class="st5" x1="119.7" y1="265.3" x2="119.3" y2="265.3"/>
+<line class="st5" x1="119.7" y1="267.2" x2="119.3" y2="267.2"/>
+<line class="st5" x1="119.7" y1="269.1" x2="119.3" y2="269.1"/>
+<line class="st8" x1="119.7" y1="256.8" x2="119.3" y2="256.8"/>
+<line class="st8" x1="119.7" y1="260.6" x2="119.3" y2="260.6"/>
+<line class="st8" x1="119.7" y1="268.1" x2="119.3" y2="268.1"/>
+<line class="st5" x1="121.6" y1="261.5" x2="122.1" y2="261.5"/>
+<line class="st5" x1="121.6" y1="262.5" x2="122.1" y2="262.5"/>
+<line class="st8" x1="121.6" y1="263.4" x2="122.1" y2="263.4"/>
+<rect x="119.5" y="211.8" width="2.8" height="16.1"/>
+<rect x="119.3" y="211.6" class="st12" width="2.8" height="16.1"/>
+<rect x="119.3" y="211.6" class="st1" width="2.8" height="16.1"/>
+<line class="st2" x1="119.8" y1="211.8" x2="119.8" y2="212.4"/>
+<line class="st2" x1="119.5" y1="212.1" x2="120.1" y2="212.1"/>
+<rect x="119.4" y="211.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 116.7139 211.3418)" class="st3 st4">otogame_proc_main:proc_main</text>
+<line class="st5" x1="118.8" y1="213.1" x2="119.3" y2="213.1"/>
+<text transform="matrix(1 0 0 1 118.603 212.9141)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="118.8" y1="214.9" x2="119.3" y2="214.9"/>
+<text transform="matrix(1 0 0 1 115.8301 214.7959)" class="st6 st3 st7">d_readdatavalid</text>
+<line class="st5" x1="118.8" y1="215.9" x2="119.3" y2="215.9"/>
+<text transform="matrix(1 0 0 1 116.249 215.7373)" class="st6 st3 st7">d_waitrequest</text>
+<line class="st5" x1="118.8" y1="218.7" x2="119.3" y2="218.7"/>
+<text transform="matrix(1 0 0 1 112.1689 218.5605)" class="st6 st3 st7">debug_mem_slave_debugaccess</text>
+<line class="st5" x1="118.8" y1="219.6" x2="119.3" y2="219.6"/>
+<text transform="matrix(1 0 0 1 114 219.501)" class="st6 st3 st7">debug_mem_slave_read</text>
+<line class="st5" x1="118.8" y1="221.5" x2="119.3" y2="221.5"/>
+<text transform="matrix(1 0 0 1 113.9482 221.3838)" class="st6 st3 st7">debug_mem_slave_write</text>
+<line class="st5" x1="118.8" y1="223.4" x2="119.3" y2="223.4"/>
+<text transform="matrix(1 0 0 1 115.9873 223.2656)" class="st6 st3 st7">i_readdatavalid</text>
+<line class="st5" x1="118.8" y1="224.4" x2="119.3" y2="224.4"/>
+<text transform="matrix(1 0 0 1 116.4062 224.207)" class="st6 st3 st7">i_waitrequest</text>
+<path class="st5" d="M119.3,226.2c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C119.2,226.4,119.3,226.3,119.3,226.2"/>
+<line class="st5" x1="118.8" y1="226.2" x2="119" y2="226.2"/>
+<text transform="matrix(1 0 0 1 117.4204 226.0889)" class="st6 st3 st7">reset_n</text>
+<line class="st5" x1="118.8" y1="227.2" x2="119.3" y2="227.2"/>
+<text transform="matrix(1 0 0 1 117.1904 227.0303)" class="st6 st3 st7">reset_req</text>
+<line class="st8" x1="118.8" y1="214" x2="119.3" y2="214"/>
+<text transform="matrix(1 0 0 1 115.4897 213.8545)" class="st6 st3 st7">d_readdata[31..0]</text>
+<line class="st8" x1="118.8" y1="222.5" x2="119.3" y2="222.5"/>
+<text transform="matrix(1 0 0 1 115.6465 222.3242)" class="st6 st3 st7">i_readdata[31..0]</text>
+<line class="st8" x1="118.8" y1="225.3" x2="119.3" y2="225.3"/>
+<text transform="matrix(1 0 0 1 117.3472 225.1475)" class="st6 st3 st7">irq[31..0]</text>
+<line class="st8" x1="118.8" y1="216.8" x2="119.3" y2="216.8"/>
+<text transform="matrix(1 0 0 1 112.2212 216.6777)" class="st6 st3 st7">debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="118.8" y1="217.8" x2="119.3" y2="217.8"/>
+<text transform="matrix(1 0 0 1 111.5928 217.6191)" class="st6 st3 st7">debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="118.8" y1="220.6" x2="119.3" y2="220.6"/>
+<text transform="matrix(1 0 0 1 111.7241 220.4424)" class="st6 st3 st7">debug_mem_slave_writedata[31..0]</text>
+<line class="st5" x1="122.6" y1="216.8" x2="122.1" y2="216.8"/>
+<text transform="matrix(1 0 0 1 122.3779 216.6777)" class="st6 st3 st7">d_read</text>
+<line class="st5" x1="122.6" y1="218.7" x2="122.1" y2="218.7"/>
+<text transform="matrix(1 0 0 1 122.3779 218.5605)" class="st6 st3 st7">d_write</text>
+<line class="st5" x1="122.6" y1="219.6" x2="122.1" y2="219.6"/>
+<text transform="matrix(1 0 0 1 122.3779 219.501)" class="st6 st3 st7">debug_mem_slave_debugaccess_to_roms</text>
+<line class="st5" x1="122.6" y1="221.5" x2="122.1" y2="221.5"/>
+<text transform="matrix(1 0 0 1 122.3779 221.3838)" class="st6 st3 st7">debug_mem_slave_waitrequest</text>
+<line class="st5" x1="122.6" y1="222.5" x2="122.1" y2="222.5"/>
+<text transform="matrix(1 0 0 1 122.3779 222.3242)" class="st6 st3 st7">debug_reset_request</text>
+<line class="st5" x1="122.6" y1="225.3" x2="122.1" y2="225.3"/>
+<text transform="matrix(1 0 0 1 122.3779 225.1475)" class="st6 st3 st7">i_read</text>
+<line class="st8" x1="122.6" y1="214" x2="122.1" y2="214"/>
+<text transform="matrix(1 0 0 1 122.3779 213.8545)" class="st6 st3 st7">d_address[30..0]</text>
+<line class="st8" x1="122.6" y1="215.9" x2="122.1" y2="215.9"/>
+<text transform="matrix(1 0 0 1 122.3779 215.7373)" class="st6 st3 st7">d_byteenable[3..0]</text>
+<line class="st8" x1="122.6" y1="217.8" x2="122.1" y2="217.8"/>
+<text transform="matrix(1 0 0 1 122.3779 217.6191)" class="st6 st3 st7">d_writedata[31..0]</text>
+<line class="st8" x1="122.6" y1="214.9" x2="122.1" y2="214.9"/>
+<text transform="matrix(1 0 0 1 122.3779 214.7959)" class="st6 st3 st7">d_burstcount[3..0]</text>
+<line class="st8" x1="122.6" y1="223.4" x2="122.1" y2="223.4"/>
+<text transform="matrix(1 0 0 1 122.3779 223.2656)" class="st6 st3 st7">i_address[29..0]</text>
+<line class="st8" x1="122.6" y1="224.4" x2="122.1" y2="224.4"/>
+<text transform="matrix(1 0 0 1 122.3779 224.207)" class="st6 st3 st7">i_burstcount[3..0]</text>
+<line class="st8" x1="122.6" y1="220.6" x2="122.1" y2="220.6"/>
+<text transform="matrix(1 0 0 1 122.3779 220.4424)" class="st6 st3 st7">debug_mem_slave_readdata[31..0]</text>
+<line class="st5" x1="119.7" y1="213.1" x2="119.3" y2="213.1"/>
+<line class="st5" x1="119.7" y1="214.9" x2="119.3" y2="214.9"/>
+<line class="st5" x1="119.7" y1="215.9" x2="119.3" y2="215.9"/>
+<line class="st5" x1="119.7" y1="218.7" x2="119.3" y2="218.7"/>
+<line class="st5" x1="119.7" y1="219.6" x2="119.3" y2="219.6"/>
+<line class="st5" x1="119.7" y1="221.5" x2="119.3" y2="221.5"/>
+<line class="st5" x1="119.7" y1="223.4" x2="119.3" y2="223.4"/>
+<line class="st5" x1="119.7" y1="224.4" x2="119.3" y2="224.4"/>
+<line class="st5" x1="119.7" y1="226.2" x2="119.3" y2="226.2"/>
+<line class="st5" x1="119.7" y1="227.2" x2="119.3" y2="227.2"/>
+<line class="st8" x1="119.7" y1="214" x2="119.3" y2="214"/>
+<line class="st8" x1="119.7" y1="222.5" x2="119.3" y2="222.5"/>
+<line class="st8" x1="119.7" y1="225.3" x2="119.3" y2="225.3"/>
+<line class="st8" x1="119.7" y1="216.8" x2="119.3" y2="216.8"/>
+<line class="st8" x1="119.7" y1="217.8" x2="119.3" y2="217.8"/>
+<line class="st8" x1="119.7" y1="220.6" x2="119.3" y2="220.6"/>
+<line class="st5" x1="121.6" y1="216.8" x2="122.1" y2="216.8"/>
+<line class="st5" x1="121.6" y1="218.7" x2="122.1" y2="218.7"/>
+<line class="st5" x1="121.6" y1="219.6" x2="122.1" y2="219.6"/>
+<line class="st5" x1="121.6" y1="221.5" x2="122.1" y2="221.5"/>
+<line class="st5" x1="121.6" y1="222.5" x2="122.1" y2="222.5"/>
+<line class="st5" x1="121.6" y1="225.3" x2="122.1" y2="225.3"/>
+<line class="st8" x1="121.6" y1="214" x2="122.1" y2="214"/>
+<line class="st8" x1="121.6" y1="215.9" x2="122.1" y2="215.9"/>
+<line class="st8" x1="121.6" y1="217.8" x2="122.1" y2="217.8"/>
+<line class="st8" x1="121.6" y1="214.9" x2="122.1" y2="214.9"/>
+<line class="st8" x1="121.6" y1="223.4" x2="122.1" y2="223.4"/>
+<line class="st8" x1="121.6" y1="224.4" x2="122.1" y2="224.4"/>
+<line class="st8" x1="121.6" y1="220.6" x2="122.1" y2="220.6"/>
+<rect x="216" y="334.1" width="2.8" height="14.2"/>
+<rect x="215.7" y="333.9" class="st12" width="2.8" height="14.2"/>
+<rect x="215.7" y="333.9" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="216.3" y1="334.1" x2="216.3" y2="334.7"/>
+<line class="st2" x1="216" y1="334.4" x2="216.5" y2="334.4"/>
+<rect x="215.9" y="334" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 212.9873 333.6836)" class="st3 st4">otogame_proc_mpeg:proc_mpeg</text>
+<line class="st5" x1="215.3" y1="335.4" x2="215.7" y2="335.4"/>
+<text transform="matrix(1 0 0 1 215.0654 335.2559)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="215.3" y1="337.3" x2="215.7" y2="337.3"/>
+<text transform="matrix(1 0 0 1 212.7114 337.1387)" class="st6 st3 st7">d_waitrequest</text>
+<line class="st5" x1="215.3" y1="340.1" x2="215.7" y2="340.1"/>
+<text transform="matrix(1 0 0 1 208.6313 339.9619)" class="st6 st3 st7">debug_mem_slave_debugaccess</text>
+<line class="st5" x1="215.3" y1="341" x2="215.7" y2="341"/>
+<text transform="matrix(1 0 0 1 210.4624 340.9023)" class="st6 st3 st7">debug_mem_slave_read</text>
+<line class="st5" x1="215.3" y1="342.9" x2="215.7" y2="342.9"/>
+<text transform="matrix(1 0 0 1 210.4106 342.7852)" class="st6 st3 st7">debug_mem_slave_write</text>
+<line class="st5" x1="215.3" y1="344.8" x2="215.7" y2="344.8"/>
+<text transform="matrix(1 0 0 1 212.8687 344.667)" class="st6 st3 st7">i_waitrequest</text>
+<path class="st5" d="M215.7,346.7c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C215.7,346.8,215.7,346.8,215.7,346.7"/>
+<line class="st5" x1="215.3" y1="346.7" x2="215.5" y2="346.7"/>
+<text transform="matrix(1 0 0 1 213.8828 346.5488)" class="st6 st3 st7">reset_n</text>
+<line class="st5" x1="215.3" y1="347.6" x2="215.7" y2="347.6"/>
+<text transform="matrix(1 0 0 1 213.6528 347.4902)" class="st6 st3 st7">reset_req</text>
+<line class="st8" x1="215.3" y1="336.3" x2="215.7" y2="336.3"/>
+<text transform="matrix(1 0 0 1 211.9521 336.1973)" class="st6 st3 st7">d_readdata[31..0]</text>
+<line class="st8" x1="215.3" y1="343.9" x2="215.7" y2="343.9"/>
+<text transform="matrix(1 0 0 1 212.1089 343.7256)" class="st6 st3 st7">i_readdata[31..0]</text>
+<line class="st8" x1="215.3" y1="345.8" x2="215.7" y2="345.8"/>
+<text transform="matrix(1 0 0 1 213.8096 345.6084)" class="st6 st3 st7">irq[31..0]</text>
+<line class="st8" x1="215.3" y1="338.2" x2="215.7" y2="338.2"/>
+<text transform="matrix(1 0 0 1 208.6836 338.0791)" class="st6 st3 st7">debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="215.3" y1="339.2" x2="215.7" y2="339.2"/>
+<text transform="matrix(1 0 0 1 208.0552 339.0205)" class="st6 st3 st7">debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="215.3" y1="342" x2="215.7" y2="342"/>
+<text transform="matrix(1 0 0 1 208.1865 341.8438)" class="st6 st3 st7">debug_mem_slave_writedata[31..0]</text>
+<line class="st5" x1="219" y1="339.2" x2="218.6" y2="339.2"/>
+<text transform="matrix(1 0 0 1 218.8403 339.0205)" class="st6 st3 st7">d_read</text>
+<line class="st5" x1="219" y1="341" x2="218.6" y2="341"/>
+<text transform="matrix(1 0 0 1 218.8403 340.9023)" class="st6 st3 st7">d_write</text>
+<line class="st5" x1="219" y1="342" x2="218.6" y2="342"/>
+<text transform="matrix(1 0 0 1 218.8403 341.8438)" class="st6 st3 st7">debug_mem_slave_debugaccess_to_roms</text>
+<line class="st5" x1="219" y1="343.9" x2="218.6" y2="343.9"/>
+<text transform="matrix(1 0 0 1 218.8403 343.7256)" class="st6 st3 st7">debug_mem_slave_waitrequest</text>
+<line class="st5" x1="219" y1="345.8" x2="218.6" y2="345.8"/>
+<text transform="matrix(1 0 0 1 218.8403 345.6084)" class="st6 st3 st7">i_read</text>
+<line class="st8" x1="219" y1="337.3" x2="218.6" y2="337.3"/>
+<text transform="matrix(1 0 0 1 218.8403 337.1387)" class="st6 st3 st7">d_address[30..0]</text>
+<line class="st8" x1="219" y1="338.2" x2="218.6" y2="338.2"/>
+<text transform="matrix(1 0 0 1 218.8403 338.0791)" class="st6 st3 st7">d_byteenable[3..0]</text>
+<line class="st8" x1="219" y1="340.1" x2="218.6" y2="340.1"/>
+<text transform="matrix(1 0 0 1 218.8403 339.9619)" class="st6 st3 st7">d_writedata[31..0]</text>
+<line class="st8" x1="219" y1="344.8" x2="218.6" y2="344.8"/>
+<text transform="matrix(1 0 0 1 218.8403 344.667)" class="st6 st3 st7">i_address[28..0]</text>
+<line class="st8" x1="219" y1="342.9" x2="218.6" y2="342.9"/>
+<text transform="matrix(1 0 0 1 218.8403 342.7852)" class="st6 st3 st7">debug_mem_slave_readdata[31..0]</text>
+<line class="st5" x1="216.2" y1="335.4" x2="215.7" y2="335.4"/>
+<line class="st5" x1="216.2" y1="337.3" x2="215.7" y2="337.3"/>
+<line class="st5" x1="216.2" y1="340.1" x2="215.7" y2="340.1"/>
+<line class="st5" x1="216.2" y1="341" x2="215.7" y2="341"/>
+<line class="st5" x1="216.2" y1="342.9" x2="215.7" y2="342.9"/>
+<line class="st5" x1="216.2" y1="344.8" x2="215.7" y2="344.8"/>
+<line class="st5" x1="216.2" y1="346.7" x2="215.7" y2="346.7"/>
+<line class="st5" x1="216.2" y1="347.6" x2="215.7" y2="347.6"/>
+<line class="st8" x1="216.2" y1="336.3" x2="215.7" y2="336.3"/>
+<line class="st8" x1="216.2" y1="343.9" x2="215.7" y2="343.9"/>
+<line class="st8" x1="216.2" y1="345.8" x2="215.7" y2="345.8"/>
+<line class="st8" x1="216.2" y1="338.2" x2="215.7" y2="338.2"/>
+<line class="st8" x1="216.2" y1="339.2" x2="215.7" y2="339.2"/>
+<line class="st8" x1="216.2" y1="342" x2="215.7" y2="342"/>
+<line class="st5" x1="218.1" y1="339.2" x2="218.6" y2="339.2"/>
+<line class="st5" x1="218.1" y1="341" x2="218.6" y2="341"/>
+<line class="st5" x1="218.1" y1="342" x2="218.6" y2="342"/>
+<line class="st5" x1="218.1" y1="343.9" x2="218.6" y2="343.9"/>
+<line class="st5" x1="218.1" y1="345.8" x2="218.6" y2="345.8"/>
+<line class="st8" x1="218.1" y1="337.3" x2="218.6" y2="337.3"/>
+<line class="st8" x1="218.1" y1="338.2" x2="218.6" y2="338.2"/>
+<line class="st8" x1="218.1" y1="340.1" x2="218.6" y2="340.1"/>
+<line class="st8" x1="218.1" y1="344.8" x2="218.6" y2="344.8"/>
+<line class="st8" x1="218.1" y1="342.9" x2="218.6" y2="342.9"/>
+<rect x="119.5" y="240" width="2.8" height="14.2"/>
+<rect x="119.3" y="239.8" class="st12" width="2.8" height="14.2"/>
+<rect x="119.3" y="239.8" class="st1" width="2.8" height="14.2"/>
+<line class="st2" x1="119.8" y1="240" x2="119.8" y2="240.6"/>
+<line class="st2" x1="119.5" y1="240.3" x2="120.1" y2="240.3"/>
+<rect x="119.4" y="239.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 117.0273 239.5742)" class="st3 st4">otogame_proc_usb:proc_usb</text>
+<line class="st5" x1="118.8" y1="241.3" x2="119.3" y2="241.3"/>
+<text transform="matrix(1 0 0 1 118.603 241.1465)" class="st6 st3 st7">clk</text>
+<line class="st5" x1="118.8" y1="243.2" x2="119.3" y2="243.2"/>
+<text transform="matrix(1 0 0 1 116.249 243.0283)" class="st6 st3 st7">d_waitrequest</text>
+<line class="st5" x1="118.8" y1="246" x2="119.3" y2="246"/>
+<text transform="matrix(1 0 0 1 112.1689 245.8516)" class="st6 st3 st7">debug_mem_slave_debugaccess</text>
+<line class="st5" x1="118.8" y1="246.9" x2="119.3" y2="246.9"/>
+<text transform="matrix(1 0 0 1 114 246.793)" class="st6 st3 st7">debug_mem_slave_read</text>
+<line class="st5" x1="118.8" y1="248.8" x2="119.3" y2="248.8"/>
+<text transform="matrix(1 0 0 1 113.9482 248.6748)" class="st6 st3 st7">debug_mem_slave_write</text>
+<line class="st5" x1="118.8" y1="250.7" x2="119.3" y2="250.7"/>
+<text transform="matrix(1 0 0 1 116.4062 250.5576)" class="st6 st3 st7">i_waitrequest</text>
+<path class="st5" d="M119.3,252.6c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C119.2,252.7,119.3,252.7,119.3,252.6"/>
+<line class="st5" x1="118.8" y1="252.6" x2="119" y2="252.6"/>
+<text transform="matrix(1 0 0 1 117.4204 252.4395)" class="st6 st3 st7">reset_n</text>
+<line class="st5" x1="118.8" y1="253.5" x2="119.3" y2="253.5"/>
+<text transform="matrix(1 0 0 1 117.1904 253.3809)" class="st6 st3 st7">reset_req</text>
+<line class="st8" x1="118.8" y1="242.2" x2="119.3" y2="242.2"/>
+<text transform="matrix(1 0 0 1 115.4897 242.0879)" class="st6 st3 st7">d_readdata[31..0]</text>
+<line class="st8" x1="118.8" y1="249.8" x2="119.3" y2="249.8"/>
+<text transform="matrix(1 0 0 1 115.6465 249.6162)" class="st6 st3 st7">i_readdata[31..0]</text>
+<line class="st8" x1="118.8" y1="251.6" x2="119.3" y2="251.6"/>
+<text transform="matrix(1 0 0 1 117.3472 251.499)" class="st6 st3 st7">irq[31..0]</text>
+<line class="st8" x1="118.8" y1="244.1" x2="119.3" y2="244.1"/>
+<text transform="matrix(1 0 0 1 112.2212 243.9697)" class="st6 st3 st7">debug_mem_slave_address[8..0]</text>
+<line class="st8" x1="118.8" y1="245.1" x2="119.3" y2="245.1"/>
+<text transform="matrix(1 0 0 1 111.5928 244.9111)" class="st6 st3 st7">debug_mem_slave_byteenable[3..0]</text>
+<line class="st8" x1="118.8" y1="247.9" x2="119.3" y2="247.9"/>
+<text transform="matrix(1 0 0 1 111.7241 247.7344)" class="st6 st3 st7">debug_mem_slave_writedata[31..0]</text>
+<line class="st5" x1="122.6" y1="244.1" x2="122.1" y2="244.1"/>
+<text transform="matrix(1 0 0 1 122.3779 243.9697)" class="st6 st3 st7">d_read</text>
+<line class="st5" x1="122.6" y1="246" x2="122.1" y2="246"/>
+<text transform="matrix(1 0 0 1 122.3779 245.8516)" class="st6 st3 st7">d_write</text>
+<line class="st5" x1="122.6" y1="246.9" x2="122.1" y2="246.9"/>
+<text transform="matrix(1 0 0 1 122.3779 246.793)" class="st6 st3 st7">debug_mem_slave_debugaccess_to_roms</text>
+<line class="st5" x1="122.6" y1="248.8" x2="122.1" y2="248.8"/>
+<text transform="matrix(1 0 0 1 122.3779 248.6748)" class="st6 st3 st7">debug_mem_slave_waitrequest</text>
+<line class="st5" x1="122.6" y1="249.8" x2="122.1" y2="249.8"/>
+<text transform="matrix(1 0 0 1 122.3779 249.6162)" class="st6 st3 st7">debug_reset_request</text>
+<line class="st5" x1="122.6" y1="251.6" x2="122.1" y2="251.6"/>
+<text transform="matrix(1 0 0 1 122.3779 251.499)" class="st6 st3 st7">i_read</text>
+<line class="st8" x1="122.6" y1="242.2" x2="122.1" y2="242.2"/>
+<text transform="matrix(1 0 0 1 122.3779 242.0879)" class="st6 st3 st7">d_address[30..0]</text>
+<line class="st8" x1="122.6" y1="243.2" x2="122.1" y2="243.2"/>
+<text transform="matrix(1 0 0 1 122.3779 243.0283)" class="st6 st3 st7">d_byteenable[3..0]</text>
+<line class="st8" x1="122.6" y1="245.1" x2="122.1" y2="245.1"/>
+<text transform="matrix(1 0 0 1 122.3779 244.9111)" class="st6 st3 st7">d_writedata[31..0]</text>
+<line class="st8" x1="122.6" y1="250.7" x2="122.1" y2="250.7"/>
+<text transform="matrix(1 0 0 1 122.3779 250.5576)" class="st6 st3 st7">i_address[28..0]</text>
+<line class="st8" x1="122.6" y1="247.9" x2="122.1" y2="247.9"/>
+<text transform="matrix(1 0 0 1 122.3779 247.7344)" class="st6 st3 st7">debug_mem_slave_readdata[31..0]</text>
+<line class="st5" x1="119.7" y1="241.3" x2="119.3" y2="241.3"/>
+<line class="st5" x1="119.7" y1="243.2" x2="119.3" y2="243.2"/>
+<line class="st5" x1="119.7" y1="246" x2="119.3" y2="246"/>
+<line class="st5" x1="119.7" y1="246.9" x2="119.3" y2="246.9"/>
+<line class="st5" x1="119.7" y1="248.8" x2="119.3" y2="248.8"/>
+<line class="st5" x1="119.7" y1="250.7" x2="119.3" y2="250.7"/>
+<line class="st5" x1="119.7" y1="252.6" x2="119.3" y2="252.6"/>
+<line class="st5" x1="119.7" y1="253.5" x2="119.3" y2="253.5"/>
+<line class="st8" x1="119.7" y1="242.2" x2="119.3" y2="242.2"/>
+<line class="st8" x1="119.7" y1="249.8" x2="119.3" y2="249.8"/>
+<line class="st8" x1="119.7" y1="251.6" x2="119.3" y2="251.6"/>
+<line class="st8" x1="119.7" y1="244.1" x2="119.3" y2="244.1"/>
+<line class="st8" x1="119.7" y1="245.1" x2="119.3" y2="245.1"/>
+<line class="st8" x1="119.7" y1="247.9" x2="119.3" y2="247.9"/>
+<line class="st5" x1="121.6" y1="244.1" x2="122.1" y2="244.1"/>
+<line class="st5" x1="121.6" y1="246" x2="122.1" y2="246"/>
+<line class="st5" x1="121.6" y1="246.9" x2="122.1" y2="246.9"/>
+<line class="st5" x1="121.6" y1="248.8" x2="122.1" y2="248.8"/>
+<line class="st5" x1="121.6" y1="249.8" x2="122.1" y2="249.8"/>
+<line class="st5" x1="121.6" y1="251.6" x2="122.1" y2="251.6"/>
+<line class="st8" x1="121.6" y1="242.2" x2="122.1" y2="242.2"/>
+<line class="st8" x1="121.6" y1="243.2" x2="122.1" y2="243.2"/>
+<line class="st8" x1="121.6" y1="245.1" x2="122.1" y2="245.1"/>
+<line class="st8" x1="121.6" y1="250.7" x2="122.1" y2="250.7"/>
+<line class="st8" x1="121.6" y1="247.9" x2="122.1" y2="247.9"/>
+<rect x="459.7" y="264.5" width="2.8" height="12.3"/>
+<rect x="459.5" y="264.3" class="st12" width="2.8" height="12.3"/>
+<rect x="459.5" y="264.3" class="st1" width="2.8" height="12.3"/>
+<line class="st2" x1="460" y1="264.5" x2="460" y2="265.1"/>
+<line class="st2" x1="459.7" y1="264.8" x2="460.3" y2="264.8"/>
+<rect x="459.6" y="264.4" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 457.9873 264.043)" class="st3 st4">otogame_sdram:sdram</text>
+<line class="st5" x1="459" y1="269.5" x2="459.5" y2="269.5"/>
+<text transform="matrix(1 0 0 1 458.1553 269.3799)" class="st6 st3 st7">az_cs</text>
+<path class="st5" d="M459.5,271.4c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,271.5,459.5,271.5,459.5,271.4"/>
+<line class="st5" x1="459" y1="271.4" x2="459.2" y2="271.4"/>
+<text transform="matrix(1 0 0 1 457.4961 271.2617)" class="st6 st3 st7">az_rd_n</text>
+<path class="st5" d="M459.5,272.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C459.4,272.5,459.5,272.4,459.5,272.3"/>
+<line class="st5" x1="459" y1="272.3" x2="459.2" y2="272.3"/>
+<text transform="matrix(1 0 0 1 457.418 272.2031)" class="st6 st3 st7">az_wr_n</text>
+<line class="st5" x1="459" y1="273.3" x2="459.5" y2="273.3"/>
+<text transform="matrix(1 0 0 1 458.8096 273.1436)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M459.5,274.2c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,274.4,459.5,274.3,459.5,274.2"/>
+<line class="st5" x1="459" y1="274.2" x2="459.2" y2="274.2"/>
+<text transform="matrix(1 0 0 1 457.627 274.085)" class="st6 st3 st7">reset_n</text>
+<line class="st8" x1="459" y1="267.6" x2="459.5" y2="267.6"/>
+<text transform="matrix(1 0 0 1 456.376 267.4971)" class="st6 st3 st7">az_addr[24..0]</text>
+<path class="st8" d="M459.5,268.6c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C459.4,268.7,459.5,268.7,459.5,268.6"/>
+<line class="st8" x1="459" y1="268.6" x2="459.2" y2="268.6"/>
+<text transform="matrix(1 0 0 1 456.3447 268.4385)" class="st6 st3 st7">az_be_n[3..0]</text>
+<line class="st8" x1="459" y1="270.5" x2="459.5" y2="270.5"/>
+<text transform="matrix(1 0 0 1 456.4023 270.3203)" class="st6 st3 st7">az_data[31..0]</text>
+<line class="st5" x1="462.8" y1="266.7" x2="462.3" y2="266.7"/>
+<text transform="matrix(1 0 0 1 462.584 266.5557)" class="st6 st3 st7">za_valid</text>
+<line class="st5" x1="462.8" y1="267.6" x2="462.3" y2="267.6"/>
+<text transform="matrix(1 0 0 1 462.584 267.4971)" class="st6 st3 st7">za_waitrequest</text>
+<line class="st5" x1="462.8" y1="270.5" x2="462.3" y2="270.5"/>
+<text transform="matrix(1 0 0 1 462.584 270.3203)" class="st6 st3 st7">zs_cas_n</text>
+<line class="st5" x1="462.8" y1="271.4" x2="462.3" y2="271.4"/>
+<text transform="matrix(1 0 0 1 462.584 271.2617)" class="st6 st3 st7">zs_cke</text>
+<line class="st5" x1="462.8" y1="272.3" x2="462.3" y2="272.3"/>
+<text transform="matrix(1 0 0 1 462.584 272.2031)" class="st6 st3 st7">zs_cs_n</text>
+<line class="st5" x1="462.8" y1="275.2" x2="462.3" y2="275.2"/>
+<text transform="matrix(1 0 0 1 462.584 275.0264)" class="st6 st3 st7">zs_ras_n</text>
+<line class="st5" x1="462.8" y1="276.1" x2="462.3" y2="276.1"/>
+<text transform="matrix(1 0 0 1 462.584 275.9668)" class="st6 st3 st7">zs_we_n</text>
+<line class="st8" x1="462.8" y1="265.8" x2="462.3" y2="265.8"/>
+<text transform="matrix(1 0 0 1 462.584 265.6152)" class="st6 st3 st7">za_data[31..0]</text>
+<line class="st8" x1="462.8" y1="268.6" x2="462.3" y2="268.6"/>
+<text transform="matrix(1 0 0 1 462.584 268.4385)" class="st6 st3 st7">zs_addr[12..0]</text>
+<line class="st8" x1="462.8" y1="269.5" x2="462.3" y2="269.5"/>
+<text transform="matrix(1 0 0 1 462.584 269.3799)" class="st6 st3 st7">zs_ba[1..0]</text>
+<line class="st8" x1="462.8" y1="274.2" x2="462.3" y2="274.2"/>
+<text transform="matrix(1 0 0 1 462.584 274.085)" class="st6 st3 st7">zs_dqm[3..0]</text>
+<line class="st8" x1="462.8" y1="273.3" x2="462.3" y2="273.3"/>
+<text transform="matrix(1 0 0 1 462.584 273.1436)" class="st6 st3 st7">zs_dq[31..0]</text>
+<line class="st5" x1="459.9" y1="269.5" x2="459.5" y2="269.5"/>
+<line class="st5" x1="459.9" y1="271.4" x2="459.5" y2="271.4"/>
+<line class="st5" x1="459.9" y1="272.3" x2="459.5" y2="272.3"/>
+<line class="st5" x1="459.9" y1="273.3" x2="459.5" y2="273.3"/>
+<line class="st5" x1="459.9" y1="274.2" x2="459.5" y2="274.2"/>
+<line class="st8" x1="459.9" y1="267.6" x2="459.5" y2="267.6"/>
+<line class="st8" x1="459.9" y1="268.6" x2="459.5" y2="268.6"/>
+<line class="st8" x1="459.9" y1="270.5" x2="459.5" y2="270.5"/>
+<line class="st5" x1="461.8" y1="266.7" x2="462.3" y2="266.7"/>
+<line class="st5" x1="461.8" y1="267.6" x2="462.3" y2="267.6"/>
+<line class="st5" x1="461.8" y1="270.5" x2="462.3" y2="270.5"/>
+<line class="st5" x1="461.8" y1="271.4" x2="462.3" y2="271.4"/>
+<line class="st5" x1="461.8" y1="272.3" x2="462.3" y2="272.3"/>
+<line class="st5" x1="461.8" y1="275.2" x2="462.3" y2="275.2"/>
+<line class="st5" x1="461.8" y1="276.1" x2="462.3" y2="276.1"/>
+<line class="st8" x1="461.8" y1="265.8" x2="462.3" y2="265.8"/>
+<line class="st8" x1="461.8" y1="268.6" x2="462.3" y2="268.6"/>
+<line class="st8" x1="461.8" y1="269.5" x2="462.3" y2="269.5"/>
+<line class="st8" x1="461.8" y1="274.2" x2="462.3" y2="274.2"/>
+<line class="st8" x1="461.8" y1="273.3" x2="462.3" y2="273.3"/>
+<rect x="216" y="179.8" width="2.8" height="3.9"/>
+<rect x="215.7" y="179.6" class="st12" width="2.8" height="3.9"/>
+<rect x="215.7" y="179.6" class="st1" width="2.8" height="3.9"/>
+<line class="st2" x1="216.3" y1="179.8" x2="216.3" y2="180.4"/>
+<line class="st2" x1="216" y1="180.1" x2="216.5" y2="180.1"/>
+<rect x="215.9" y="179.7" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 212.9883 179.3442)" class="st3 st4">otogame_sysid_main:sysid_main</text>
+<line class="st5" x1="215.3" y1="181.1" x2="215.7" y2="181.1"/>
+<text transform="matrix(1 0 0 1 213.9668 180.9165)" class="st6 st3 st7">address</text>
+<line class="st5" x1="215.3" y1="182" x2="215.7" y2="182"/>
+<text transform="matrix(1 0 0 1 214.5688 181.8579)" class="st6 st3 st7">clock</text>
+<path class="st5" d="M215.7,182.9c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C215.7,183.1,215.7,183,215.7,182.9"/>
+<line class="st5" x1="215.3" y1="182.9" x2="215.5" y2="182.9"/>
+<text transform="matrix(1 0 0 1 213.8828 182.7988)" class="st6 st3 st7">reset_n</text>
+<line class="st8" x1="219" y1="182" x2="218.6" y2="182"/>
+<text transform="matrix(1 0 0 1 218.8403 181.8579)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="216.2" y1="181.1" x2="215.7" y2="181.1"/>
+<line class="st5" x1="216.2" y1="182" x2="215.7" y2="182"/>
+<line class="st5" x1="216.2" y1="182.9" x2="215.7" y2="182.9"/>
+<line class="st8" x1="218.1" y1="182" x2="218.6" y2="182"/>
+<rect x="216" y="186.4" width="2.8" height="3.9"/>
+<rect x="215.7" y="186.1" class="st12" width="2.8" height="3.9"/>
+<rect x="215.7" y="186.1" class="st1" width="2.8" height="3.9"/>
+<line class="st2" x1="216.3" y1="186.4" x2="216.3" y2="186.9"/>
+<line class="st2" x1="216" y1="186.7" x2="216.5" y2="186.7"/>
+<rect x="215.9" y="186.3" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 212.7993 185.9321)" class="st3 st4">otogame_sysid_mpeg:sysid_mpeg</text>
+<line class="st5" x1="215.3" y1="187.6" x2="215.7" y2="187.6"/>
+<text transform="matrix(1 0 0 1 213.9668 187.5044)" class="st6 st3 st7">address</text>
+<line class="st5" x1="215.3" y1="188.6" x2="215.7" y2="188.6"/>
+<text transform="matrix(1 0 0 1 214.5688 188.4453)" class="st6 st3 st7">clock</text>
+<path class="st5" d="M215.7,189.5c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C215.7,189.7,215.7,189.6,215.7,189.5"/>
+<line class="st5" x1="215.3" y1="189.5" x2="215.5" y2="189.5"/>
+<text transform="matrix(1 0 0 1 213.8828 189.3862)" class="st6 st3 st7">reset_n</text>
+<line class="st8" x1="219" y1="188.6" x2="218.6" y2="188.6"/>
+<text transform="matrix(1 0 0 1 218.8403 188.4453)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="216.2" y1="187.6" x2="215.7" y2="187.6"/>
+<line class="st5" x1="216.2" y1="188.6" x2="215.7" y2="188.6"/>
+<line class="st5" x1="216.2" y1="189.5" x2="215.7" y2="189.5"/>
+<line class="st8" x1="218.1" y1="188.6" x2="218.6" y2="188.6"/>
+<rect x="216" y="191.6" width="2.8" height="3.9"/>
+<rect x="215.7" y="191.3" class="st12" width="2.8" height="3.9"/>
+<rect x="215.7" y="191.3" class="st1" width="2.8" height="3.9"/>
+<line class="st2" x1="216.3" y1="191.6" x2="216.3" y2="192.1"/>
+<line class="st2" x1="216" y1="191.8" x2="216.5" y2="191.8"/>
+<rect x="215.9" y="191.5" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 213.3013 191.1079)" class="st3 st4">otogame_sysid_usb:sysid_usb</text>
+<line class="st5" x1="215.3" y1="192.8" x2="215.7" y2="192.8"/>
+<text transform="matrix(1 0 0 1 213.9668 192.6802)" class="st6 st3 st7">address</text>
+<line class="st5" x1="215.3" y1="193.8" x2="215.7" y2="193.8"/>
+<text transform="matrix(1 0 0 1 214.5688 193.6216)" class="st6 st3 st7">clock</text>
+<path class="st5" d="M215.7,194.7c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C215.7,194.8,215.7,194.8,215.7,194.7"/>
+<line class="st5" x1="215.3" y1="194.7" x2="215.5" y2="194.7"/>
+<text transform="matrix(1 0 0 1 213.8828 194.5625)" class="st6 st3 st7">reset_n</text>
+<line class="st8" x1="219" y1="193.8" x2="218.6" y2="193.8"/>
+<text transform="matrix(1 0 0 1 218.8403 193.6216)" class="st6 st3 st7">readdata[31..0]</text>
+<line class="st5" x1="216.2" y1="192.8" x2="215.7" y2="192.8"/>
+<line class="st5" x1="216.2" y1="193.8" x2="215.7" y2="193.8"/>
+<line class="st5" x1="216.2" y1="194.7" x2="215.7" y2="194.7"/>
+<line class="st8" x1="218.1" y1="193.8" x2="218.6" y2="193.8"/>
+<rect x="55.5" y="353" width="2.8" height="6.7"/>
+<rect x="55.3" y="352.7" class="st12" width="2.8" height="6.7"/>
+<rect x="55.3" y="352.7" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="55.8" y1="353" x2="55.8" y2="353.5"/>
+<line class="st2" x1="55.5" y1="353.2" x2="56.1" y2="353.2"/>
+<rect x="55.4" y="352.9" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 52.563 352.5059)" class="st3 st4">otogame_timer_main:timer_main</text>
+<line class="st5" x1="54.8" y1="355.2" x2="55.3" y2="355.2"/>
+<text transform="matrix(1 0 0 1 53.0913 355.0195)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="54.8" y1="356.1" x2="55.3" y2="356.1"/>
+<text transform="matrix(1 0 0 1 54.6084 355.96)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M55.3,357c0-0.1-0.1-0.1-0.1-0.1S55,357,55,357s0.1,0.1,0.1,0.1S55.3,357.1,55.3,357"/>
+<line class="st5" x1="54.8" y1="357" x2="55" y2="357"/>
+<text transform="matrix(1 0 0 1 53.4258 356.9014)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M55.3,358c0-0.1-0.1-0.1-0.1-0.1S55,357.9,55,358s0.1,0.1,0.1,0.1S55.3,358.1,55.3,358"/>
+<line class="st5" x1="54.8" y1="358" x2="55" y2="358"/>
+<text transform="matrix(1 0 0 1 53.4785 357.8428)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="54.8" y1="354.2" x2="55.3" y2="354.2"/>
+<text transform="matrix(1 0 0 1 52.4634 354.0781)" class="st6 st3 st7">address[2..0]</text>
+<line class="st8" x1="54.8" y1="358.9" x2="55.3" y2="358.9"/>
+<text transform="matrix(1 0 0 1 51.9663 358.7832)" class="st6 st3 st7">writedata[15..0]</text>
+<line class="st5" x1="58.6" y1="356.1" x2="58.1" y2="356.1"/>
+<text transform="matrix(1 0 0 1 58.3833 355.96)" class="st6 st3 st7">irq</text>
+<line class="st8" x1="58.6" y1="357" x2="58.1" y2="357"/>
+<text transform="matrix(1 0 0 1 58.3833 356.9014)" class="st6 st3 st7">readdata[15..0]</text>
+<line class="st5" x1="55.7" y1="355.2" x2="55.3" y2="355.2"/>
+<line class="st5" x1="55.7" y1="356.1" x2="55.3" y2="356.1"/>
+<line class="st5" x1="55.7" y1="357" x2="55.3" y2="357"/>
+<line class="st5" x1="55.7" y1="358" x2="55.3" y2="358"/>
+<line class="st8" x1="55.7" y1="354.2" x2="55.3" y2="354.2"/>
+<line class="st8" x1="55.7" y1="358.9" x2="55.3" y2="358.9"/>
+<line class="st5" x1="57.6" y1="356.1" x2="58.1" y2="356.1"/>
+<line class="st8" x1="57.6" y1="357" x2="58.1" y2="357"/>
+<rect x="119.5" y="397.2" width="2.8" height="6.7"/>
+<rect x="119.3" y="396.9" class="st12" width="2.8" height="6.7"/>
+<rect x="119.3" y="396.9" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="119.8" y1="397.2" x2="119.8" y2="397.7"/>
+<line class="st2" x1="119.5" y1="397.5" x2="120.1" y2="397.5"/>
+<rect x="119.4" y="397.1" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 116.4629 396.7373)" class="st3 st4">otogame_timer_main:timer_mpeg</text>
+<line class="st5" x1="118.8" y1="399.4" x2="119.3" y2="399.4"/>
+<text transform="matrix(1 0 0 1 117.0859 399.251)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="118.8" y1="400.3" x2="119.3" y2="400.3"/>
+<text transform="matrix(1 0 0 1 118.603 400.1914)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M119.3,401.3c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1c0,0.1,0.1,0.1,0.1,0.1
+	C119.2,401.4,119.3,401.4,119.3,401.3"/>
+<line class="st5" x1="118.8" y1="401.3" x2="119" y2="401.3"/>
+<text transform="matrix(1 0 0 1 117.4204 401.1328)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M119.3,402.2c0-0.1-0.1-0.1-0.1-0.1c-0.1,0-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1
+	C119.2,402.4,119.3,402.3,119.3,402.2"/>
+<line class="st5" x1="118.8" y1="402.2" x2="119" y2="402.2"/>
+<text transform="matrix(1 0 0 1 117.4731 402.0742)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="118.8" y1="398.5" x2="119.3" y2="398.5"/>
+<text transform="matrix(1 0 0 1 116.458 398.3096)" class="st6 st3 st7">address[2..0]</text>
+<line class="st8" x1="118.8" y1="403.2" x2="119.3" y2="403.2"/>
+<text transform="matrix(1 0 0 1 115.9609 403.0146)" class="st6 st3 st7">writedata[15..0]</text>
+<line class="st5" x1="122.6" y1="400.3" x2="122.1" y2="400.3"/>
+<text transform="matrix(1 0 0 1 122.3779 400.1914)" class="st6 st3 st7">irq</text>
+<line class="st8" x1="122.6" y1="401.3" x2="122.1" y2="401.3"/>
+<text transform="matrix(1 0 0 1 122.3779 401.1328)" class="st6 st3 st7">readdata[15..0]</text>
+<line class="st5" x1="119.7" y1="399.4" x2="119.3" y2="399.4"/>
+<line class="st5" x1="119.7" y1="400.3" x2="119.3" y2="400.3"/>
+<line class="st5" x1="119.7" y1="401.3" x2="119.3" y2="401.3"/>
+<line class="st5" x1="119.7" y1="402.2" x2="119.3" y2="402.2"/>
+<line class="st8" x1="119.7" y1="398.5" x2="119.3" y2="398.5"/>
+<line class="st8" x1="119.7" y1="403.2" x2="119.3" y2="403.2"/>
+<line class="st5" x1="121.6" y1="400.3" x2="122.1" y2="400.3"/>
+<line class="st8" x1="121.6" y1="401.3" x2="122.1" y2="401.3"/>
+<rect x="55.5" y="383.1" width="2.8" height="6.7"/>
+<rect x="55.3" y="382.8" class="st12" width="2.8" height="6.7"/>
+<rect x="55.3" y="382.8" class="st1" width="2.8" height="6.7"/>
+<line class="st2" x1="55.8" y1="383.1" x2="55.8" y2="383.6"/>
+<line class="st2" x1="55.5" y1="383.3" x2="56.1" y2="383.3"/>
+<rect x="55.4" y="383" class="st1" width="0.8" height="0.8"/>
+<text transform="matrix(1 0 0 1 52.7197 382.6211)" class="st3 st4">otogame_timer_main:timer_usb</text>
+<line class="st5" x1="54.8" y1="385.3" x2="55.3" y2="385.3"/>
+<text transform="matrix(1 0 0 1 53.0913 385.1338)" class="st6 st3 st7">chipselect</text>
+<line class="st5" x1="54.8" y1="386.2" x2="55.3" y2="386.2"/>
+<text transform="matrix(1 0 0 1 54.6084 386.0752)" class="st6 st3 st7">clk</text>
+<path class="st5" d="M55.3,387.2c0-0.1-0.1-0.1-0.1-0.1s-0.1,0.1-0.1,0.1s0.1,0.1,0.1,0.1S55.3,387.2,55.3,387.2"/>
+<line class="st5" x1="54.8" y1="387.2" x2="55" y2="387.2"/>
+<text transform="matrix(1 0 0 1 53.4258 387.0166)" class="st6 st3 st7">reset_n</text>
+<path class="st5" d="M55.3,388.1c0-0.1-0.1-0.1-0.1-0.1S55,388,55,388.1c0,0.1,0.1,0.1,0.1,0.1S55.3,388.2,55.3,388.1"/>
+<line class="st5" x1="54.8" y1="388.1" x2="55" y2="388.1"/>
+<text transform="matrix(1 0 0 1 53.4785 387.958)" class="st6 st3 st7">write_n</text>
+<line class="st8" x1="54.8" y1="384.3" x2="55.3" y2="384.3"/>
+<text transform="matrix(1 0 0 1 52.4634 384.1934)" class="st6 st3 st7">address[2..0]</text>
+<line class="st8" x1="54.8" y1="389" x2="55.3" y2="389"/>
+<text transform="matrix(1 0 0 1 51.9663 388.8984)" class="st6 st3 st7">writedata[15..0]</text>
+<line class="st5" x1="58.6" y1="386.2" x2="58.1" y2="386.2"/>
+<text transform="matrix(1 0 0 1 58.3833 386.0752)" class="st6 st3 st7">irq</text>
+<line class="st8" x1="58.6" y1="387.2" x2="58.1" y2="387.2"/>
+<text transform="matrix(1 0 0 1 58.3833 387.0166)" class="st6 st3 st7">readdata[15..0]</text>
+<line class="st5" x1="55.7" y1="385.3" x2="55.3" y2="385.3"/>
+<line class="st5" x1="55.7" y1="386.2" x2="55.3" y2="386.2"/>
+<line class="st5" x1="55.7" y1="387.2" x2="55.3" y2="387.2"/>
+<line class="st5" x1="55.7" y1="388.1" x2="55.3" y2="388.1"/>
+<line class="st8" x1="55.7" y1="384.3" x2="55.3" y2="384.3"/>
+<line class="st8" x1="55.7" y1="389" x2="55.3" y2="389"/>
+<line class="st5" x1="57.6" y1="386.2" x2="58.1" y2="386.2"/>
+<line class="st8" x1="57.6" y1="387.2" x2="58.1" y2="387.2"/>
+<polygon class="st9" points="5.4,42.2 5.1,42.6 4.4,42.6 4.4,41.9 5.1,41.9 "/>
+<text transform="matrix(1 0 0 1 0.396 42.4521)" class="st3 st4">AUD_ADCDAT</text>
+<polyline class="st2" points="31.8,413.5 531.9,413.5 531.9,75.2 547,75.2 "/>
+<polyline class="st1" points="31.8,414.5 532.9,414.5 532.9,76.1 547,76.1 "/>
+<polyline class="st2" points="31.8,415.4 533.8,415.4 533.8,77.1 547,77.1 "/>
+<polyline class="st1" points="31.8,416.3 534.8,416.3 534.8,78 547,78 "/>
+<polyline class="st1" points="31.8,417.3 535.7,417.3 535.7,79 547,79 "/>
+<polyline class="st1" points="31.8,418.2 536.6,418.2 536.6,79.9 547,79.9 "/>
+<polyline class="st1" points="12.9,46.5 13.9,46.5 13.9,414.5 28,414.5 "/>
+<line class="st1" x1="13.9" y1="353.3" x2="28" y2="353.3"/>
+<rect x="13.8" y="353.2" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="9.2,46.5 6.3,46.5 6.3,43.2 14.8,43.2 14.8,413.5 28,413.5 "/>
+<line class="st1" x1="14.8" y1="352.3" x2="28" y2="352.3"/>
+<rect x="14.7" y="352.2" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="5.4" y1="46.5" x2="6.3" y2="46.5"/>
+<rect x="6.2" y="46.4" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="5.4,42.2 20.5,42.2 20.5,390 28,390 "/>
+<line class="st2" x1="5.4" y1="45.5" x2="9.2" y2="45.5"/>
+<line class="st2" x1="542.8" y1="21.1" x2="547" y2="21.1"/>
+<line class="st2" x1="542.8" y1="17.8" x2="547" y2="17.8"/>
+<line class="st2" x1="542.8" y1="37.5" x2="547" y2="37.5"/>
+<line class="st2" x1="542.8" y1="14.5" x2="547" y2="14.5"/>
+<line class="st2" x1="542.8" y1="34.3" x2="547" y2="34.3"/>
+<line class="st2" x1="542.8" y1="31" x2="547" y2="31"/>
+<line class="st2" x1="542.8" y1="27.7" x2="547" y2="27.7"/>
+<line class="st2" x1="542.8" y1="24.4" x2="547" y2="24.4"/>
+<polyline class="st1" points="480.7,50.2 488.7,50.2 488.7,0.4 547,0.4 "/>
+<polyline class="st1" points="480.7,51.2 489.6,51.2 489.6,1.3 547,1.3 "/>
+<polyline class="st1" points="480.7,250.7 499.9,250.7 499.9,2.3 547,2.3 "/>
+<polyline class="st1" points="480.7,53.1 490.5,53.1 490.5,3.2 547,3.2 "/>
+<polyline class="st1" points="480.7,52.1 491.5,52.1 491.5,4.1 547,4.1 "/>
+<polyline class="st1" points="480.7,55 492.4,55 492.4,5.1 547,5.1 "/>
+<polyline class="st1" points="480.7,55.9 493.4,55.9 493.4,6 547,6 "/>
+<polyline class="st2" points="480.7,61.1 494.3,61.1 494.3,7 547,7 "/>
+<polyline class="st1" points="480.7,62 495.2,62 495.2,7.9 547,7.9 "/>
+<polyline class="st2" points="480.7,63 496.2,63 496.2,8.8 547,8.8 "/>
+<polyline class="st1" points="480.7,63.9 497.1,63.9 497.1,9.8 547,9.8 "/>
+<polyline class="st1" points="480.7,64.8 498.1,64.8 498.1,10.7 547,10.7 "/>
+<polyline class="st1" points="480.7,65.8 499,65.8 499,11.7 547,11.7 "/>
+<polyline class="st2" points="28,404.1 15.8,404.1 15.8,420.1 488.7,420.1 488.7,419.2 31.8,419.2 "/>
+<polyline class="st2" points="480.7,199.4 503.7,199.4 503.7,14.3 "/>
+<line class="st2" x1="503.7" y1="37.5" x2="539" y2="37.5"/>
+<line class="st2" x1="503.7" y1="34.3" x2="539" y2="34.3"/>
+<line class="st2" x1="503.7" y1="31" x2="539" y2="31"/>
+<line class="st2" x1="503.7" y1="27.7" x2="539" y2="27.7"/>
+<line class="st2" x1="503.7" y1="24.4" x2="539" y2="24.4"/>
+<line class="st2" x1="503.7" y1="21.1" x2="539" y2="21.1"/>
+<line class="st2" x1="503.7" y1="17.8" x2="539" y2="17.8"/>
+<line class="st2" x1="503.7" y1="14.5" x2="539" y2="14.5"/>
+<polyline points="503.7,37.3 503.7,37.8 504.2,37.5 "/>
+<polyline points="503.7,34 503.7,34.5 504.2,34.3 "/>
+<polyline points="503.7,30.7 503.7,31.2 504.2,31 "/>
+<polyline points="503.7,27.4 503.7,27.9 504.2,27.7 "/>
+<polyline points="503.7,24.1 503.7,24.6 504.2,24.4 "/>
+<polyline points="503.7,20.8 503.7,21.3 504.2,21.1 "/>
+<polyline points="503.7,17.5 503.7,18 504.2,17.8 "/>
+<polyline points="503.7,14.3 503.7,14.7 504.2,14.5 "/>
+<polyline class="st2" points="480.7,183.4 500.9,183.4 500.9,38.5 547,38.5 "/>
+<polyline class="st2" points="480.7,191.4 504.7,191.4 504.7,39.4 547,39.4 "/>
+<polyline class="st2" points="28,415.4 16.7,415.4 16.7,406.9 491.5,406.9 491.5,142.5 480.7,142.5 "/>
+<polyline class="st1" points="28,416.3 17.6,416.3 17.6,407.9 490.5,407.9 490.5,150.5 480.7,150.5 "/>
+<polyline class="st2" points="28,417.3 18.6,417.3 18.6,408.8 488.7,408.8 488.7,166.5 480.7,166.5 "/>
+<polyline class="st1" points="28,418.2 19.5,418.2 19.5,409.7 492.4,409.7 492.4,158.5 480.7,158.5 "/>
+<polyline class="st1" points="28,419.2 20.5,419.2 20.5,410.7 489.6,410.7 489.6,175.4 480.7,175.4 "/>
+<line class="st1" x1="462.8" y1="50.2" x2="479.7" y2="50.2"/>
+<line class="st1" x1="462.8" y1="51.2" x2="479.7" y2="51.2"/>
+<line class="st1" x1="462.8" y1="52.1" x2="479.7" y2="52.1"/>
+<line class="st1" x1="462.8" y1="53.1" x2="479.7" y2="53.1"/>
+<polyline class="st2" points="325.4,110.5 303.3,110.5 303.3,43.7 450.5,43.7 450.5,93.5 474.1,93.5 474.1,74.7 462.8,74.7 "/>
+<polyline class="st2" points="325.4,111.4 304.2,111.4 304.2,44.6 449.6,44.6 449.6,94.5 473.1,94.5 473.1,75.7 462.8,75.7 "/>
+<polyline class="st2" points="325.4,104.8 293.8,104.8 293.8,246.9 478.8,246.9 478.8,54 462.8,54 "/>
+<polyline class="st2" points="325.4,121.8 307,121.8 307,52.1 381.8,52.1 381.8,97.3 471.2,97.3 471.2,117.1 462.8,117.1 "/>
+<polyline class="st2" points="325.4,112.4 305.1,112.4 305.1,45.5 448.7,45.5 448.7,95.4 472.2,95.4 472.2,76.6 462.8,76.6 "/>
+<polyline class="st1" points="325.4,113.3 306.1,113.3 306.1,46.5 446.8,46.5 446.8,96.4 471.2,96.4 471.2,77.5 462.8,77.5 "/>
+<line class="st2" x1="462.8" y1="61.1" x2="479.7" y2="61.1"/>
+<line class="st1" x1="462.8" y1="62" x2="479.7" y2="62"/>
+<line class="st2" x1="462.8" y1="63" x2="479.7" y2="63"/>
+<line class="st1" x1="462.8" y1="63.9" x2="479.7" y2="63.9"/>
+<line class="st1" x1="462.8" y1="64.8" x2="479.7" y2="64.8"/>
+<line class="st1" x1="462.8" y1="65.8" x2="479.7" y2="65.8"/>
+<line class="st1" x1="462.8" y1="55" x2="479.7" y2="55"/>
+<line class="st1" x1="462.8" y1="55.9" x2="479.7" y2="55.9"/>
+<line class="st2" x1="462.8" y1="255.4" x2="479.7" y2="255.4"/>
+<line class="st2" x1="462.8" y1="256.3" x2="479.7" y2="256.3"/>
+<polyline class="st1" points="28.9,390 429.8,390 429.8,50.2 459,50.2 "/>
+<polyline class="st1" points="28.9,352.3 29.9,352.3 29.9,355.2 36.5,355.2 "/>
+<line class="st1" x1="29.9" y1="352.3" x2="44.9" y2="352.3"/>
+<line class="st1" x1="44.9" y1="356.1" x2="54.8" y2="356.1"/>
+<rect x="44.8" y="233.7" class="st13" width="0.2" height="0.2"/>
+<rect x="44.8" y="241.2" class="st13" width="0.2" height="0.2"/>
+<rect x="44.8" y="352.2" class="st13" width="0.2" height="0.2"/>
+<rect x="44.8" y="356" class="st13" width="0.2" height="0.2"/>
+<rect x="29.8" y="352.2" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="54.8,55.9 44.9,55.9 44.9,386.2 54.8,386.2 "/>
+<line class="st1" x1="44.9" y1="233.8" x2="54.8" y2="233.8"/>
+<polyline class="st1" points="44.9,241.3 70.8,241.3 70.8,247.9 78.3,247.9 "/>
+<line class="st1" x1="70.8" y1="241.3" x2="78.3" y2="241.3"/>
+<line class="st1" x1="70.8" y1="245.1" x2="89.6" y2="245.1"/>
+<line class="st1" x1="89.6" y1="258.7" x2="118.8" y2="258.7"/>
+<line class="st1" x1="89.6" y1="324.1" x2="166.3" y2="324.1"/>
+<polyline class="st1" points="166.3,349.5 188,349.5 188,27.7 215.3,27.7 "/>
+<line class="st1" x1="188" y1="335.4" x2="215.3" y2="335.4"/>
+<line class="st1" x1="188" y1="307.2" x2="215.3" y2="307.2"/>
+<line class="st1" x1="188" y1="277.1" x2="215.3" y2="277.1"/>
+<line class="st1" x1="188" y1="249.8" x2="215.3" y2="249.8"/>
+<line class="st1" x1="188" y1="193.8" x2="215.3" y2="193.8"/>
+<line class="st1" x1="188" y1="188.6" x2="215.3" y2="188.6"/>
+<line class="st1" x1="188" y1="182" x2="215.3" y2="182"/>
+<polyline class="st1" points="188,105.8 283.5,105.8 283.5,262.9 434.5,262.9 "/>
+<rect x="434.4" y="70.4" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="91.6" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="120.7" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="183.3" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="191.3" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="199.3" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="250.6" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="255.3" class="st13" width="0.2" height="0.2"/>
+<rect x="434.4" y="262.8" class="st13" width="0.2" height="0.2"/>
+<rect x="70.7" y="241.2" class="st13" width="0.2" height="0.2"/>
+<rect x="70.7" y="245" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="118.8,62.5 89.6,62.5 89.6,400.3 118.8,400.3 "/>
+<line class="st1" x1="89.6" y1="213.1" x2="118.8" y2="213.1"/>
+<line class="st1" x1="89.6" y1="241.3" x2="118.8" y2="241.3"/>
+<rect x="89.5" y="213" class="st13" width="0.2" height="0.2"/>
+<rect x="89.5" y="241.2" class="st13" width="0.2" height="0.2"/>
+<rect x="89.5" y="245" class="st13" width="0.2" height="0.2"/>
+<rect x="89.5" y="258.6" class="st13" width="0.2" height="0.2"/>
+<rect x="89.5" y="324" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="172,316.6 166.3,316.6 166.3,395.6 172,395.6 "/>
+<line class="st1" x1="166.3" y1="357" x2="172" y2="357"/>
+<rect x="166.2" y="324" class="st13" width="0.2" height="0.2"/>
+<rect x="166.2" y="349.4" class="st13" width="0.2" height="0.2"/>
+<rect x="166.2" y="357" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="335.3" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="307.1" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="277" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="249.7" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="193.7" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="188.5" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="181.9" class="st13" width="0.2" height="0.2"/>
+<rect x="187.9" y="105.7" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="283.5" y1="105.8" x2="325.4" y2="105.8"/>
+<rect x="283.4" y="105.7" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="459,55.9 434.5,55.9 434.5,273.3 459,273.3 "/>
+<line class="st1" x1="434.5" y1="70.5" x2="459" y2="70.5"/>
+<line class="st1" x1="434.5" y1="91.7" x2="459" y2="91.7"/>
+<line class="st1" x1="434.5" y1="120.8" x2="459" y2="120.8"/>
+<line class="st1" x1="434.5" y1="183.4" x2="459" y2="183.4"/>
+<line class="st1" x1="434.5" y1="191.4" x2="459" y2="191.4"/>
+<line class="st1" x1="434.5" y1="199.4" x2="459" y2="199.4"/>
+<line class="st1" x1="434.5" y1="250.7" x2="459" y2="250.7"/>
+<line class="st1" x1="434.5" y1="255.4" x2="459" y2="255.4"/>
+<polyline class="st1" points="36.5,356.1 30.8,356.1 30.8,351.4 160.7,351.4 "/>
+<rect x="160.6" y="317.4" class="st13" width="0.2" height="0.2"/>
+<rect x="160.6" y="351.3" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="28.9" y1="353.3" x2="30.8" y2="353.3"/>
+<rect x="30.7" y="353.2" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="172,275.2 160.7,275.2 160.7,358 172,358 "/>
+<line class="st1" x1="160.7" y1="317.5" x2="172" y2="317.5"/>
+<polyline class="st2" points="28.9,404.1 149.4,404.1 149.4,402.2 449.6,402.2 449.6,167.4 459,167.4 "/>
+<line class="st1" x1="462.8" y1="118" x2="479.7" y2="118"/>
+<line class="st1" x1="462.8" y1="118.9" x2="479.7" y2="118.9"/>
+<line class="st1" x1="462.8" y1="257.3" x2="479.7" y2="257.3"/>
+<line class="st1" x1="462.8" y1="258.2" x2="479.7" y2="258.2"/>
+<line class="st2" x1="462.8" y1="259.2" x2="479.7" y2="259.2"/>
+<line class="st2" x1="462.8" y1="78.5" x2="479.7" y2="78.5"/>
+<line class="st1" x1="462.8" y1="79.4" x2="479.7" y2="79.4"/>
+<line class="st2" x1="462.8" y1="80.4" x2="479.7" y2="80.4"/>
+<line class="st1" x1="462.8" y1="81.3" x2="479.7" y2="81.3"/>
+<line class="st1" x1="462.8" y1="82.2" x2="479.7" y2="82.2"/>
+<line class="st1" x1="462.8" y1="83.2" x2="479.7" y2="83.2"/>
+<line class="st1" x1="462.8" y1="84.1" x2="479.7" y2="84.1"/>
+<line class="st1" x1="462.8" y1="85.1" x2="479.7" y2="85.1"/>
+<line class="st2" x1="462.8" y1="86" x2="479.7" y2="86"/>
+<line class="st1" x1="462.8" y1="87" x2="479.7" y2="87"/>
+<line class="st2" x1="462.8" y1="87.9" x2="479.7" y2="87.9"/>
+<line class="st1" x1="462.8" y1="88.8" x2="479.7" y2="88.8"/>
+<line class="st2" x1="462.8" y1="89.8" x2="479.7" y2="89.8"/>
+<line class="st1" x1="462.8" y1="90.7" x2="479.7" y2="90.7"/>
+<line class="st1" x1="462.8" y1="91.7" x2="479.7" y2="91.7"/>
+<line class="st1" x1="462.8" y1="250.7" x2="479.7" y2="250.7"/>
+<polyline class="st2" points="329.1,59.7 380.9,59.7 380.9,51.2 459,51.2 "/>
+<polyline class="st1" points="329.1,60.6 385.6,60.6 385.6,52.1 459,52.1 "/>
+<polyline class="st1" points="329.1,61.5 386.5,61.5 386.5,53.1 459,53.1 "/>
+<polyline class="st1" points="329.1,63.4 391.2,63.4 391.2,55 459,55 "/>
+<polyline class="st2" points="329.1,62.5 390.3,62.5 390.3,54 459,54 "/>
+<polyline class="st1" points="58.6,53.1 68.9,53.1 68.9,243.2 78.3,243.2 "/>
+<polyline class="st1" points="122.6,59.7 155,59.7 155,396.6 172,396.6 "/>
+<polyline class="st1" points="58.6,230.9 65.2,230.9 65.2,248.8 78.3,248.8 "/>
+<polyline class="st2" points="58.6,54 87.7,54 87.7,49.3 289.1,49.3 289.1,116.1 325.4,116.1 "/>
+<polyline class="st2" points="122.6,60.6 285.4,60.6 285.4,118 325.4,118 "/>
+<polyline class="st2" points="58.6,231.9 64.2,231.9 64.2,119.9 325.4,119.9 "/>
+<polyline class="st1" points="58.6,55 89.6,55 89.6,50.2 286.3,50.2 286.3,117.1 325.4,117.1 "/>
+<polyline class="st1" points="122.6,61.5 284.4,61.5 284.4,118.9 325.4,118.9 "/>
+<polyline class="st1" points="58.6,232.8 66.1,232.8 66.1,120.8 325.4,120.8 "/>
+<polyline class="st1" points="122.6,261.5 163.5,261.5 163.5,350.5 203,350.5 203,348.6 479.7,348.6 "/>
+<polyline class="st1" points="122.6,262.5 164.4,262.5 164.4,274.2 172,274.2 "/>
+<polyline class="st1" points="164.4,271.4 196.4,271.4 196.4,299.6 215.3,299.6 "/>
+<polyline class="st1" points="196.4,289.3 234.6,289.3 234.6,145.3 325.4,145.3 "/>
+<polyline class="st1" points="234.6,238.5 446.8,238.5 446.8,142.5 459,142.5 "/>
+<line class="st1" x1="446.8" y1="175.4" x2="459" y2="175.4"/>
+<line class="st1" x1="446.8" y1="166.5" x2="459" y2="166.5"/>
+<line class="st1" x1="446.8" y1="158.5" x2="459" y2="158.5"/>
+<line class="st1" x1="446.8" y1="150.5" x2="459" y2="150.5"/>
+<rect x="446.7" y="175.3" class="st13" width="0.2" height="0.2"/>
+<rect x="446.7" y="166.4" class="st13" width="0.2" height="0.2"/>
+<rect x="446.7" y="158.4" class="st13" width="0.2" height="0.2"/>
+<rect x="446.7" y="150.4" class="st13" width="0.2" height="0.2"/>
+<rect x="164.4" y="271.3" class="st13" width="0.2" height="0.2"/>
+<rect x="196.3" y="289.2" class="st13" width="0.2" height="0.2"/>
+<rect x="234.5" y="238.4" class="st13" width="0.2" height="0.2"/>
+<polyline class="st2" points="122.6,214 139,214 139,178.2 233.6,178.2 233.6,147.2 325.4,147.2 "/>
+<polyline class="st2" points="219,337.3 275,337.3 275,158.5 325.4,158.5 "/>
+<polyline class="st2" points="122.6,242.2 143.7,242.2 143.7,168.8 325.4,168.8 "/>
+<polyline class="st2" points="122.6,214.9 140.9,214.9 140.9,196.6 253.4,196.6 253.4,148.1 325.4,148.1 "/>
+<polyline class="st2" points="122.6,215.9 142.8,215.9 142.8,197.5 255.3,197.5 255.3,149.1 325.4,149.1 "/>
+<polyline class="st2" points="219,338.2 276.9,338.2 276.9,159.4 325.4,159.4 "/>
+<polyline class="st2" points="122.6,243.2 151.3,243.2 151.3,198.5 267.5,198.5 267.5,169.8 325.4,169.8 "/>
+<polyline class="st1" points="122.6,216.8 145.6,216.8 145.6,199.4 259,199.4 259,150.9 325.4,150.9 "/>
+<polyline class="st1" points="219,339.2 279.7,339.2 279.7,161.3 325.4,161.3 "/>
+<polyline class="st1" points="122.6,244.1 153.2,244.1 153.2,200.4 272.2,200.4 272.2,171.7 325.4,171.7 "/>
+<polyline class="st1" points="122.6,218.7 148.4,218.7 148.4,201.3 260.9,201.3 260.9,152.8 325.4,152.8 "/>
+<polyline class="st1" points="219,341 286.3,341 286.3,163.2 325.4,163.2 "/>
+<polyline class="st1" points="122.6,246 162.6,246 162.6,202.2 273.1,202.2 273.1,173.5 325.4,173.5 "/>
+<polyline class="st2" points="122.6,217.8 133.4,217.8 133.4,151.9 325.4,151.9 "/>
+<polyline class="st2" points="219,340.1 282.6,340.1 282.6,162.2 325.4,162.2 "/>
+<polyline class="st2" points="122.6,245.1 146.6,245.1 146.6,172.6 325.4,172.6 "/>
+<polyline class="st1" points="122.6,219.6 135.3,219.6 135.3,150 325.4,150 "/>
+<polyline class="st1" points="219,342 281.6,342 281.6,160.4 325.4,160.4 "/>
+<polyline class="st1" points="122.6,246.9 147.5,246.9 147.5,170.7 325.4,170.7 "/>
+<polyline class="st2" points="122.6,220.6 136.2,220.6 136.2,153.8 325.4,153.8 "/>
+<polyline class="st2" points="219,342.9 289.1,342.9 289.1,164.1 325.4,164.1 "/>
+<polyline class="st2" points="122.6,247.9 149.4,247.9 149.4,174.5 325.4,174.5 "/>
+<polyline class="st1" points="122.6,221.5 137.2,221.5 137.2,154.7 325.4,154.7 "/>
+<polyline class="st1" points="219,343.9 290.1,343.9 290.1,165.1 325.4,165.1 "/>
+<polyline class="st1" points="122.6,248.8 150.3,248.8 150.3,175.4 325.4,175.4 "/>
+<polyline class="st1" points="122.6,222.5 165.4,222.5 165.4,318.5 172,318.5 "/>
+<polyline class="st1" points="122.6,249.8 162.6,249.8 162.6,358.9 172,358.9 "/>
+<line class="st1" x1="162.6" y1="276.1" x2="172" y2="276.1"/>
+<rect x="162.5" y="276" class="st13" width="0.2" height="0.2"/>
+<polyline class="st2" points="329.1,64.4 394.1,64.4 394.1,60.1 459,60.1 "/>
+<polyline class="st2" points="329.1,65.3 395,65.3 395,61.1 459,61.1 "/>
+<polyline class="st1" points="329.1,66.2 414.8,66.2 414.8,62 459,62 "/>
+<polyline class="st1" points="329.1,67.2 425.1,67.2 425.1,67.7 459,67.7 "/>
+<polyline class="st1" points="329.1,69.1 416.7,69.1 416.7,69.5 459,69.5 "/>
+<polyline class="st2" points="329.1,68.1 418.5,68.1 418.5,68.6 459,68.6 "/>
+<polyline class="st2" points="329.1,70 415.7,70 415.7,63 459,63 "/>
+<polyline class="st1" points="329.1,71 417.6,71 417.6,63.9 459,63.9 "/>
+<polyline class="st1" points="329.1,71.9 423.2,71.9 423.2,64.8 459,64.8 "/>
+<polyline class="st1" points="329.1,73.8 428,73.8 428,66.7 459,66.7 "/>
+<polyline class="st2" points="329.1,72.8 427,72.8 427,65.8 459,65.8 "/>
+<line class="st2" x1="329.1" y1="74.7" x2="459" y2="74.7"/>
+<line class="st2" x1="329.1" y1="75.7" x2="459" y2="75.7"/>
+<line class="st1" x1="329.1" y1="76.6" x2="459" y2="76.6"/>
+<line class="st1" x1="329.1" y1="77.5" x2="459" y2="77.5"/>
+<line class="st1" x1="329.1" y1="79.4" x2="459" y2="79.4"/>
+<line class="st2" x1="329.1" y1="78.5" x2="459" y2="78.5"/>
+<line class="st2" x1="329.1" y1="80.4" x2="459" y2="80.4"/>
+<line class="st2" x1="329.1" y1="81.3" x2="459" y2="81.3"/>
+<line class="st1" x1="329.1" y1="82.2" x2="459" y2="82.2"/>
+<line class="st1" x1="329.1" y1="83.2" x2="459" y2="83.2"/>
+<line class="st1" x1="329.1" y1="85.1" x2="459" y2="85.1"/>
+<line class="st2" x1="329.1" y1="84.1" x2="459" y2="84.1"/>
+<line class="st2" x1="329.1" y1="86" x2="459" y2="86"/>
+<line class="st2" x1="329.1" y1="87" x2="459" y2="87"/>
+<line class="st1" x1="329.1" y1="87.9" x2="459" y2="87.9"/>
+<line class="st1" x1="329.1" y1="88.8" x2="459" y2="88.8"/>
+<line class="st1" x1="329.1" y1="90.7" x2="459" y2="90.7"/>
+<line class="st2" x1="329.1" y1="89.8" x2="459" y2="89.8"/>
+<polyline class="st2" points="219,344.8 291,344.8 291,166 325.4,166 "/>
+<polyline class="st2" points="122.6,250.7 152.2,250.7 152.2,176.4 325.4,176.4 "/>
+<polyline class="st2" points="122.6,223.4 138.1,223.4 138.1,155.7 325.4,155.7 "/>
+<polyline class="st2" points="122.6,224.4 140,224.4 140,156.6 325.4,156.6 "/>
+<polyline class="st1" points="122.6,225.3 141.9,225.3 141.9,157.5 325.4,157.5 "/>
+<polyline class="st1" points="219,345.8 292,345.8 292,166.9 325.4,166.9 "/>
+<polyline class="st1" points="122.6,251.6 154.1,251.6 154.1,177.3 325.4,177.3 "/>
+<polyline class="st2" points="215.3,22 188,22 188,19.2 354.5,19.2 354.5,91.7 329.1,91.7 "/>
+<polyline class="st1" points="215.3,23.9 204.9,23.9 204.9,35.2 353.6,35.2 353.6,92.6 329.1,92.6 "/>
+<polyline class="st1" points="215.3,25.8 205.9,25.8 205.9,36.1 352.7,36.1 352.7,93.5 329.1,93.5 "/>
+<polyline class="st1" points="215.3,33.3 203,33.3 203,41.8 342.3,41.8 342.3,95.4 329.1,95.4 "/>
+<polyline class="st2" points="215.3,31.4 200.2,31.4 200.2,39.9 343.3,39.9 343.3,94.5 329.1,94.5 "/>
+<polyline class="st2" points="215.3,23 197.4,23 197.4,37.1 374.3,37.1 374.3,96.4 329.1,96.4 "/>
+<polyline class="st1" points="215.3,24.8 198.3,24.8 198.3,38 360.2,38 360.2,97.3 329.1,97.3 "/>
+<polyline class="st1" points="215.3,26.7 199.3,26.7 199.3,39 358.3,39 358.3,98.2 329.1,98.2 "/>
+<polyline class="st1" points="215.3,34.3 204,34.3 204,42.7 351.7,42.7 351.7,100.1 329.1,100.1 "/>
+<polyline class="st2" points="215.3,32.4 201.1,32.4 201.1,40.8 357.4,40.8 357.4,99.2 329.1,99.2 "/>
+<polyline class="st1" points="58.6,356.1 69.9,356.1 69.9,242.2 78.3,242.2 "/>
+<polyline class="st1" points="122.6,400.3 136.2,400.3 136.2,397.5 172,397.5 "/>
+<polyline class="st1" points="58.6,386.2 72.7,386.2 72.7,249.8 78.3,249.8 "/>
+<polyline class="st2" points="54.8,51.2 44.9,51.2 44.9,46.5 293.8,46.5 293.8,47.4 350.8,47.4 350.8,101.1 329.1,101.1 "/>
+<polyline class="st1" points="54.8,52.1 45.9,52.1 45.9,47.4 292,47.4 292,48.4 349.8,48.4 349.8,102 329.1,102 "/>
+<polyline class="st1" points="54.8,53.1 49.6,53.1 49.6,48.4 290.1,48.4 290.1,49.3 348.9,49.3 348.9,103 329.1,103 "/>
+<polyline class="st1" points="54.8,54 48.7,54 48.7,57.8 90.6,57.8 90.6,51.2 287.3,51.2 287.3,50.2 356.4,50.2 356.4,104.8 
+	329.1,104.8 "/>
+<polyline class="st2" points="54.8,55 49.6,55 49.6,58.7 91.5,58.7 91.5,52.1 288.2,52.1 288.2,51.2 345.1,51.2 345.1,103.9 
+	329.1,103.9 "/>
+<polyline class="st2" points="118.8,57.8 92.5,57.8 92.5,53.1 348,53.1 348,105.8 329.1,105.8 "/>
+<polyline class="st1" points="118.8,58.7 93.4,58.7 93.4,54 347,54 347,106.7 329.1,106.7 "/>
+<polyline class="st1" points="118.8,59.7 94.3,59.7 94.3,55 346.1,55 346.1,107.7 329.1,107.7 "/>
+<polyline class="st1" points="118.8,60.6 93.4,60.6 93.4,64.4 234.6,64.4 234.6,55.9 355.5,55.9 355.5,109.5 329.1,109.5 "/>
+<polyline class="st2" points="118.8,61.5 94.3,61.5 94.3,65.3 283.5,65.3 283.5,56.8 344.2,56.8 344.2,108.6 329.1,108.6 "/>
+<polyline class="st2" points="54.8,229.1 49.6,229.1 49.6,226.2 68,226.2 68,234.7 269.4,234.7 269.4,258.2 391.2,258.2 
+	391.2,110.5 329.1,110.5 "/>
+<polyline class="st1" points="54.8,230 46.8,230 46.8,236.6 264.7,236.6 264.7,260.1 395,260.1 395,111.4 329.1,111.4 "/>
+<polyline class="st1" points="54.8,230.9 49.6,230.9 49.6,235.6 266.6,235.6 266.6,259.2 386.5,259.2 386.5,112.4 329.1,112.4 "/>
+<polyline class="st1" points="54.8,231.9 47.7,231.9 47.7,237.5 229.9,237.5 229.9,260.6 324.9,260.6 324.9,261.1 385.6,261.1 
+	385.6,114.2 329.1,114.2 "/>
+<polyline class="st2" points="54.8,232.8 48.7,232.8 48.7,238.5 233.6,238.5 233.6,262 394.1,262 394.1,113.3 329.1,113.3 "/>
+<line class="st2" x1="329.1" y1="115.2" x2="459" y2="115.2"/>
+<line class="st2" x1="329.1" y1="116.1" x2="459" y2="116.1"/>
+<line class="st1" x1="329.1" y1="117.1" x2="459" y2="117.1"/>
+<line class="st1" x1="329.1" y1="118" x2="459" y2="118"/>
+<line class="st1" x1="329.1" y1="119.9" x2="459" y2="119.9"/>
+<line class="st2" x1="329.1" y1="118.9" x2="459" y2="118.9"/>
+<polyline class="st2" points="215.3,244.1 198.3,244.1 198.3,239.4 235.5,239.4 235.5,264.8 390.3,264.8 390.3,120.8 329.1,120.8 
+	"/>
+<polyline class="st1" points="215.3,246 199.3,246 199.3,240.4 257.1,240.4 257.1,265.8 389.4,265.8 389.4,121.8 329.1,121.8 "/>
+<polyline class="st1" points="215.3,247.9 205.9,247.9 205.9,257.3 253.4,257.3 253.4,267.6 393.1,267.6 393.1,122.7 329.1,122.7 
+	"/>
+<polyline class="st1" points="215.3,255.4 204,255.4 204,262.9 248.7,262.9 248.7,272.3 406.3,272.3 406.3,124.6 329.1,124.6 "/>
+<polyline class="st2" points="215.3,253.5 200.2,253.5 200.2,241.3 255.3,241.3 255.3,266.7 384.7,266.7 384.7,123.7 329.1,123.7 
+	"/>
+<polyline class="st2" points="215.3,245.1 198.3,245.1 198.3,258.2 252.4,258.2 252.4,268.6 383.7,268.6 383.7,125.5 329.1,125.5 
+	"/>
+<polyline class="st1" points="215.3,246.9 199.3,246.9 199.3,259.2 250.6,259.2 250.6,269.5 382.8,269.5 382.8,126.5 329.1,126.5 
+	"/>
+<polyline class="st1" points="215.3,248.8 201.1,248.8 201.1,260.1 249.6,260.1 249.6,270.5 381.8,270.5 381.8,127.4 329.1,127.4 
+	"/>
+<polyline class="st1" points="215.3,256.3 204.9,256.3 204.9,263.9 247.7,263.9 247.7,273.3 388.4,273.3 388.4,129.3 329.1,129.3 
+	"/>
+<polyline class="st2" points="215.3,254.5 203,254.5 203,262 230.8,262 230.8,271.4 380.9,271.4 380.9,128.4 329.1,128.4 "/>
+<polyline class="st2" points="219,301.5 254.3,301.5 254.3,126.5 325.4,126.5 "/>
+<polyline class="st2" points="219,302.5 256.2,302.5 256.2,127.4 325.4,127.4 "/>
+<polyline class="st2" points="219,303.4 258.1,303.4 258.1,128.4 325.4,128.4 "/>
+<polyline class="st1" points="219,304.3 260,304.3 260,129.3 325.4,129.3 "/>
+<polyline class="st1" points="219,305.3 261.8,305.3 261.8,130.2 325.4,130.2 "/>
+<polyline class="st1" points="219,307.2 263.7,307.2 263.7,133.1 325.4,133.1 "/>
+<polyline class="st2" points="219,306.2 262.8,306.2 262.8,132.1 325.4,132.1 "/>
+<polyline class="st2" points="325.4,108.6 308,108.6 308,233.8 431.7,233.8 431.7,134.9 477.8,134.9 477.8,66.7 462.8,66.7 "/>
+<polyline class="st1" points="325.4,109.5 308.9,109.5 308.9,234.7 436.4,234.7 436.4,135.9 476.9,135.9 476.9,67.7 462.8,67.7 "/>
+<polyline class="st2" points="325.4,106.7 295.7,106.7 295.7,235.6 439.2,235.6 439.2,136.8 475.9,136.8 475.9,68.6 462.8,68.6 "/>
+<polyline class="st1" points="325.4,107.7 296.7,107.7 296.7,236.6 444,236.6 444,137.8 475,137.8 475,69.5 462.8,69.5 "/>
+<polyline class="st2" points="215.3,273.3 203,273.3 203,266.7 245.8,266.7 245.8,279.9 398.8,279.9 398.8,130.2 329.1,130.2 "/>
+<polyline class="st2" points="215.3,274.2 204,274.2 204,267.6 244.9,267.6 244.9,280.8 397.8,280.8 397.8,131.2 329.1,131.2 "/>
+<polyline class="st1" points="215.3,275.2 204.9,275.2 204.9,268.6 244,268.6 244,281.8 396.9,281.8 396.9,132.1 329.1,132.1 "/>
+<polyline class="st1" points="215.3,276.1 205.9,276.1 205.9,270.5 242.1,270.5 242.1,283.6 405.4,283.6 405.4,133.1 329.1,133.1 
+	"/>
+<polyline class="st1" points="215.3,281.8 205.9,281.8 205.9,287.4 235.5,287.4 235.5,289.3 415.7,289.3 415.7,134.9 329.1,134.9 
+	"/>
+<polyline class="st2" points="215.3,280.8 202.1,280.8 202.1,269.5 243,269.5 243,282.7 392.2,282.7 392.2,134 329.1,134 "/>
+<polyline class="st2" points="215.3,300.6 200.2,300.6 200.2,290.2 414.8,290.2 414.8,135.9 329.1,135.9 "/>
+<polyline class="st1" points="215.3,301.5 201.1,301.5 201.1,291.2 413.8,291.2 413.8,136.8 329.1,136.8 "/>
+<polyline class="st1" points="215.3,303.4 202.1,303.4 202.1,292.1 412.9,292.1 412.9,137.8 329.1,137.8 "/>
+<polyline class="st2" points="215.3,304.3 205.9,304.3 205.9,294 416.7,294 416.7,138.7 329.1,138.7 "/>
+<polyline class="st2" points="215.3,305.3 199.3,305.3 199.3,293.1 409.1,293.1 409.1,139.7 329.1,139.7 "/>
+<polyline class="st2" points="215.3,306.2 203,306.2 203,294.9 412,294.9 412,140.6 329.1,140.6 "/>
+<polyline class="st1" points="215.3,308.1 204,308.1 204,295.9 411,295.9 411,141.5 329.1,141.5 "/>
+<polyline class="st1" points="215.3,309.1 204.9,309.1 204.9,296.8 410.1,296.8 410.1,142.5 329.1,142.5 "/>
+<polyline class="st1" points="215.3,311.9 205.9,311.9 205.9,323.2 417.6,323.2 417.6,144.4 329.1,144.4 "/>
+<polyline class="st2" points="215.3,310.9 204.9,310.9 204.9,322.2 418.5,322.2 418.5,143.4 329.1,143.4 "/>
+<polyline class="st2" points="329.1,145.3 430.8,145.3 430.8,140.6 459,140.6 "/>
+<polyline class="st1" points="329.1,146.2 433.6,146.2 433.6,141.5 459,141.5 "/>
+<polyline class="st1" points="329.1,148.1 442.1,148.1 442.1,144.4 459,144.4 "/>
+<polyline class="st2" points="329.1,147.2 443,147.2 443,145.3 459,145.3 "/>
+<polyline class="st2" points="329.1,149.1 444.9,149.1 444.9,148.6 459,148.6 "/>
+<polyline class="st1" points="329.1,150 445.8,150 445.8,149.5 459,149.5 "/>
+<polyline class="st1" points="329.1,151.9 444.9,151.9 444.9,152.4 459,152.4 "/>
+<polyline class="st2" points="329.1,150.9 445.8,150.9 445.8,153.3 459,153.3 "/>
+<polyline class="st2" points="329.1,152.8 443,152.8 443,164.6 459,164.6 "/>
+<polyline class="st1" points="329.1,153.8 442.1,153.8 442.1,165.5 459,165.5 "/>
+<polyline class="st1" points="329.1,155.7 444.9,155.7 444.9,169.3 459,169.3 "/>
+<polyline class="st2" points="329.1,154.7 445.8,154.7 445.8,170.2 459,170.2 "/>
+<line class="st2" x1="329.1" y1="156.6" x2="459" y2="156.6"/>
+<line class="st1" x1="329.1" y1="157.5" x2="459" y2="157.5"/>
+<polyline class="st1" points="329.1,159.4 447.7,159.4 447.7,160.4 459,160.4 "/>
+<polyline class="st2" points="329.1,158.5 440.2,158.5 440.2,161.3 459,161.3 "/>
+<polyline class="st2" points="329.1,160.4 441.1,160.4 441.1,173.5 459,173.5 "/>
+<polyline class="st1" points="329.1,161.3 438.3,161.3 438.3,174.5 459,174.5 "/>
+<polyline class="st1" points="329.1,163.2 432.7,163.2 432.7,177.3 459,177.3 "/>
+<polyline class="st2" points="329.1,162.2 433.6,162.2 433.6,178.2 459,178.2 "/>
+<line class="st2" x1="462.8" y1="142.5" x2="479.7" y2="142.5"/>
+<line class="st2" x1="462.8" y1="183.4" x2="479.7" y2="183.4"/>
+<line class="st2" x1="462.8" y1="166.5" x2="479.7" y2="166.5"/>
+<line class="st2" x1="462.8" y1="191.4" x2="479.7" y2="191.4"/>
+<line class="st2" x1="462.8" y1="199.4" x2="479.7" y2="199.4"/>
+<line class="st1" x1="462.8" y1="150.5" x2="479.7" y2="150.5"/>
+<line class="st1" x1="462.8" y1="158.5" x2="479.7" y2="158.5"/>
+<line class="st1" x1="462.8" y1="175.4" x2="479.7" y2="175.4"/>
+<polyline class="st2" points="329.1,164.1 428,164.1 428,197.5 459,197.5 "/>
+<polyline class="st1" points="329.1,165.1 425.1,165.1 425.1,198.5 459,198.5 "/>
+<polyline class="st1" points="329.1,166.9 422.3,166.9 422.3,201.3 459,201.3 "/>
+<polyline class="st2" points="329.1,166 423.2,166 423.2,202.2 459,202.2 "/>
+<polyline class="st2" points="329.1,167.9 430.8,167.9 430.8,181.5 459,181.5 "/>
+<polyline class="st1" points="329.1,168.8 428.9,168.8 428.9,182.5 459,182.5 "/>
+<polyline class="st1" points="329.1,170.7 426.1,170.7 426.1,185.3 459,185.3 "/>
+<polyline class="st2" points="329.1,169.8 427,169.8 427,186.2 459,186.2 "/>
+<polyline class="st2" points="329.1,171.7 424.2,171.7 424.2,189.5 459,189.5 "/>
+<polyline class="st1" points="329.1,172.6 421.4,172.6 421.4,190.5 459,190.5 "/>
+<polyline class="st1" points="329.1,174.5 419.5,174.5 419.5,193.3 459,193.3 "/>
+<polyline class="st2" points="329.1,173.5 420.4,173.5 420.4,194.2 459,194.2 "/>
+<polyline class="st2" points="118.8,256.8 108.4,256.8 108.4,271.9 160.7,271.9 160.7,266.7 201.1,266.7 201.1,282.7 241.1,282.7 
+	241.1,284.6 374.3,284.6 374.3,175.4 329.1,175.4 "/>
+<polyline class="st1" points="118.8,263.4 107.5,263.4 107.5,273.8 156,273.8 156,268.6 199.3,268.6 199.3,284.6 239.3,284.6 
+	239.3,286.5 375.3,286.5 375.3,176.4 329.1,176.4 "/>
+<polyline class="st1" points="118.8,269.1 109.4,269.1 109.4,270.9 157.9,270.9 157.9,265.8 246.8,265.8 246.8,278.9 360.2,278.9 
+	360.2,178.2 329.1,178.2 "/>
+<polyline class="st2" points="118.8,268.1 106.6,268.1 106.6,275.6 159.7,275.6 159.7,270.5 197.4,270.5 197.4,286.5 237.4,286.5 
+	237.4,288.3 377.1,288.3 377.1,177.3 329.1,177.3 "/>
+<polyline class="st2" points="118.8,214 93.4,214 93.4,270 156.9,270 156.9,264.8 229.9,264.8 229.9,278 352.7,278 352.7,179.2 
+	329.1,179.2 "/>
+<polyline class="st1" points="118.8,214.9 92.5,214.9 92.5,272.8 166.3,272.8 166.3,267.6 200.2,267.6 200.2,283.6 240.2,283.6 
+	240.2,285.5 367.7,285.5 367.7,180.1 329.1,180.1 "/>
+<polyline class="st1" points="118.8,215.9 98.1,215.9 98.1,228.1 278.8,228.1 278.8,251.6 350.8,251.6 350.8,181.1 329.1,181.1 "/>
+<polyline class="st2" points="118.8,216.8 100,216.8 100,229.1 277.8,229.1 277.8,252.6 349.8,252.6 349.8,182 329.1,182 "/>
+<polyline class="st2" points="118.8,217.8 105.6,217.8 105.6,230 276,230 276,253.5 348.9,253.5 348.9,182.9 329.1,182.9 "/>
+<polyline class="st1" points="118.8,218.7 106.6,218.7 106.6,230.9 274.1,230.9 274.1,254.5 348,254.5 348,183.9 329.1,183.9 "/>
+<polyline class="st1" points="118.8,219.6 107.5,219.6 107.5,231.9 273.1,231.9 273.1,255.4 347,255.4 347,184.8 329.1,184.8 "/>
+<polyline class="st1" points="118.8,221.5 108.4,221.5 108.4,232.8 272.2,232.8 272.2,256.3 346.1,256.3 346.1,186.7 329.1,186.7 
+	"/>
+<polyline class="st2" points="118.8,220.6 94.3,220.6 94.3,274.7 158.8,274.7 158.8,269.5 198.3,269.5 198.3,285.5 238.3,285.5 
+	238.3,287.4 363,287.4 363,185.8 329.1,185.8 "/>
+<polyline class="st2" points="118.8,222.5 109.4,222.5 109.4,233.8 271.3,233.8 271.3,257.3 345.1,257.3 345.1,187.6 329.1,187.6 
+	"/>
+<polyline class="st1" points="118.8,223.4 96.2,223.4 96.2,305.3 195.5,305.3 195.5,312.8 373.4,312.8 373.4,188.6 329.1,188.6 "/>
+<polyline class="st1" points="118.8,224.4 97.2,224.4 97.2,306.2 193.6,306.2 193.6,313.8 372.4,313.8 372.4,189.5 329.1,189.5 "/>
+<polyline class="st2" points="215.3,336.3 201.1,336.3 201.1,326 404.4,326 404.4,190.5 329.1,190.5 "/>
+<polyline class="st1" points="215.3,337.3 202.1,337.3 202.1,326.9 403.5,326.9 403.5,191.4 329.1,191.4 "/>
+<polyline class="st2" points="215.3,338.2 203,338.2 203,327.9 402.5,327.9 402.5,192.4 329.1,192.4 "/>
+<polyline class="st2" points="215.3,339.2 204,339.2 204,328.8 401.6,328.8 401.6,193.3 329.1,193.3 "/>
+<polyline class="st1" points="215.3,340.1 204.9,340.1 204.9,331.6 408.2,331.6 408.2,194.2 329.1,194.2 "/>
+<polyline class="st1" points="215.3,341 205.9,341 205.9,332.6 407.2,332.6 407.2,195.2 329.1,195.2 "/>
+<polyline class="st1" points="215.3,342.9 199.3,342.9 199.3,329.8 387.5,329.8 387.5,197.1 329.1,197.1 "/>
+<polyline class="st2" points="215.3,342 200.2,342 200.2,330.7 396,330.7 396,196.1 329.1,196.1 "/>
+<polyline class="st2" points="215.3,343.9 204.9,343.9 204.9,349.5 400.7,349.5 400.7,198 329.1,198 "/>
+<polyline class="st1" points="215.3,344.8 205.9,344.8 205.9,350.5 399.7,350.5 399.7,198.9 329.1,198.9 "/>
+<polyline class="st2" points="118.8,242.2 98.1,242.2 98.1,307.2 182.3,307.2 182.3,314.7 358.3,314.7 358.3,199.9 329.1,199.9 "/>
+<polyline class="st1" points="118.8,243.2 99,243.2 99,308.1 190.8,308.1 190.8,315.6 357.4,315.6 357.4,200.8 329.1,200.8 "/>
+<polyline class="st2" points="118.8,244.1 100,244.1 100,309.1 187,309.1 187,316.6 356.4,316.6 356.4,201.8 329.1,201.8 "/>
+<polyline class="st2" points="118.8,245.1 100.9,245.1 100.9,310 186.1,310 186.1,317.5 355.5,317.5 355.5,202.7 329.1,202.7 "/>
+<polyline class="st1" points="118.8,246 101.9,246 101.9,310.9 185.1,310.9 185.1,318.5 354.5,318.5 354.5,203.6 329.1,203.6 "/>
+<polyline class="st1" points="118.8,246.9 102.8,246.9 102.8,311.9 184.2,311.9 184.2,319.4 353.6,319.4 353.6,204.6 329.1,204.6 
+	"/>
+<polyline class="st1" points="118.8,248.8 105.6,248.8 105.6,312.8 183.3,312.8 183.3,320.3 351.7,320.3 351.7,206.5 329.1,206.5 
+	"/>
+<polyline class="st2" points="118.8,247.9 95.3,247.9 95.3,313.8 181.4,313.8 181.4,321.3 359.3,321.3 359.3,205.5 329.1,205.5 "/>
+<polyline class="st2" points="118.8,249.8 103.7,249.8 103.7,347.6 193.6,347.6 193.6,324.1 362.1,324.1 362.1,207.4 329.1,207.4 
+	"/>
+<polyline class="st1" points="118.8,250.7 104.7,250.7 104.7,348.6 197.4,348.6 197.4,325 361.1,325 361.1,208.4 329.1,208.4 "/>
+<polyline class="st2" points="219,27.7 292.9,27.7 292.9,114.2 325.4,114.2 "/>
+<polyline class="st2" points="219,249.8 230.8,249.8 230.8,123.7 325.4,123.7 "/>
+<polyline class="st2" points="58.6,357 67,357 67,183.9 264.7,183.9 264.7,184.8 325.4,184.8 "/>
+<polyline class="st2" points="122.6,401.3 134.3,401.3 134.3,203.2 274.1,203.2 274.1,185.8 325.4,185.8 "/>
+<polyline class="st2" points="58.6,387.2 71.7,387.2 71.7,184.8 233.6,184.8 233.6,186.7 325.4,186.7 "/>
+<polyline class="st2" points="219,277.1 251.5,277.1 251.5,125.5 325.4,125.5 "/>
+<polyline class="st2" points="325.4,137.8 301.4,137.8 301.4,240.4 475.9,240.4 475.9,143.4 462.8,143.4 "/>
+<polyline class="st2" points="325.4,138.7 302.3,138.7 302.3,241.3 475,241.3 475,151.4 462.8,151.4 "/>
+<polyline class="st2" points="325.4,139.7 303.3,139.7 303.3,242.2 471.2,242.2 471.2,167.4 462.8,167.4 "/>
+<polyline class="st2" points="325.4,140.6 304.2,140.6 304.2,243.2 477.8,243.2 477.8,159.4 462.8,159.4 "/>
+<polyline class="st2" points="325.4,141.5 305.1,141.5 305.1,244.1 474.1,244.1 474.1,176.4 462.8,176.4 "/>
+<polyline class="st2" points="325.4,142.5 294.8,142.5 294.8,247.9 476.9,247.9 476.9,200.4 462.8,200.4 "/>
+<polyline class="st2" points="325.4,143.4 306.1,143.4 306.1,245.1 473.1,245.1 473.1,184.4 462.8,184.4 "/>
+<polyline class="st2" points="325.4,144.4 307,144.4 307,246 472.2,246 472.2,192.4 462.8,192.4 "/>
+<polyline class="st2" points="122.6,263.4 144.7,263.4 144.7,146.2 325.4,146.2 "/>
+<line class="st2" x1="219" y1="182" x2="325.4" y2="182"/>
+<polyline class="st2" points="219,188.6 266.6,188.6 266.6,182.9 325.4,182.9 "/>
+<polyline class="st2" points="219,193.8 269.4,193.8 269.4,183.9 325.4,183.9 "/>
+<polyline class="st2" points="219,28.6 291,28.6 291,115.2 325.4,115.2 "/>
+<polyline class="st2" points="219,250.7 232.7,250.7 232.7,124.6 325.4,124.6 "/>
+<polyline class="st1" points="54.8,56.8 45.9,56.8 45.9,387.2 54.8,387.2 "/>
+<line class="st1" x1="45.9" y1="234.7" x2="54.8" y2="234.7"/>
+<polyline class="st1" points="45.9,244.1 66.1,244.1 66.1,251.6 87.7,251.6 "/>
+<line class="st1" x1="87.7" y1="252.6" x2="118.8" y2="252.6"/>
+<line class="st1" x1="87.7" y1="264.3" x2="118.8" y2="264.3"/>
+<polyline class="st1" points="87.7,392.8 165.4,392.8 165.4,398.5 172,398.5 "/>
+<polyline class="st1" points="165.4,392.8 191.7,392.8 191.7,30.5 215.3,30.5 "/>
+<line class="st1" x1="191.7" y1="346.7" x2="215.3" y2="346.7"/>
+<line class="st1" x1="191.7" y1="279.9" x2="215.3" y2="279.9"/>
+<line class="st1" x1="191.7" y1="195.6" x2="292.9" y2="195.6"/>
+<rect x="292.8" y="195.6" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="459,56.8 435.5,56.8 435.5,274.2 459,274.2 "/>
+<line class="st1" x1="435.5" y1="71.4" x2="459" y2="71.4"/>
+<line class="st1" x1="435.5" y1="121.8" x2="459" y2="121.8"/>
+<line class="st1" x1="435.5" y1="184.4" x2="459" y2="184.4"/>
+<line class="st1" x1="435.5" y1="192.4" x2="459" y2="192.4"/>
+<line class="st1" x1="435.5" y1="200.4" x2="459" y2="200.4"/>
+<line class="st1" x1="435.5" y1="251.6" x2="459" y2="251.6"/>
+<line class="st1" x1="435.5" y1="256.3" x2="459" y2="256.3"/>
+<line class="st1" x1="45.9" y1="357" x2="54.8" y2="357"/>
+<line class="st1" x1="40.2" y1="369.3" x2="45.9" y2="369.3"/>
+<rect x="45.8" y="234.6" class="st13" width="0.2" height="0.2"/>
+<rect x="45.8" y="244" class="st13" width="0.2" height="0.2"/>
+<rect x="45.8" y="357" class="st13" width="0.2" height="0.2"/>
+<rect x="45.8" y="369.2" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="66.1" y1="244.1" x2="78.3" y2="244.1"/>
+<line class="st1" x1="66.1" y1="250.7" x2="78.3" y2="250.7"/>
+<rect x="66" y="244" class="st13" width="0.2" height="0.2"/>
+<rect x="66" y="250.6" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="118.8,63.4 87.7,63.4 87.7,401.3 118.8,401.3 "/>
+<line class="st1" x1="87.7" y1="226.2" x2="118.8" y2="226.2"/>
+<rect x="87.7" y="226.1" class="st13" width="0.2" height="0.2"/>
+<rect x="87.7" y="251.5" class="st13" width="0.2" height="0.2"/>
+<rect x="87.7" y="252.5" class="st13" width="0.2" height="0.2"/>
+<rect x="87.7" y="264.3" class="st13" width="0.2" height="0.2"/>
+<rect x="87.7" y="392.7" class="st13" width="0.2" height="0.2"/>
+<rect x="165.3" y="392.7" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="191.7" y1="194.7" x2="215.3" y2="194.7"/>
+<line class="st1" x1="191.7" y1="189.5" x2="215.3" y2="189.5"/>
+<line class="st1" x1="191.7" y1="182.9" x2="215.3" y2="182.9"/>
+<rect x="191.6" y="346.6" class="st13" width="0.2" height="0.2"/>
+<rect x="191.6" y="279.8" class="st13" width="0.2" height="0.2"/>
+<rect x="191.6" y="195.6" class="st13" width="0.2" height="0.2"/>
+<rect x="191.6" y="194.6" class="st13" width="0.2" height="0.2"/>
+<rect x="191.6" y="189.4" class="st13" width="0.2" height="0.2"/>
+<rect x="191.6" y="182.8" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="325.4,167.9 292.9,167.9 292.9,263.9 435.5,263.9 "/>
+<rect x="435.4" y="71.3" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="121.7" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="184.3" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="192.3" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="200.3" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="251.5" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="256.3" class="st13" width="0.2" height="0.2"/>
+<rect x="435.4" y="263.8" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="175.7,330.7 189.9,330.7 189.9,252.6 215.3,252.6 "/>
+<polyline class="st1" points="189.9,261.1 231.7,261.1 231.7,122.7 325.4,122.7 "/>
+<polyline class="st1" points="231.7,237.5 437.4,237.5 437.4,92.6 459,92.6 "/>
+<rect x="189.8" y="261" class="st13" width="0.2" height="0.2"/>
+<rect x="231.6" y="237.4" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="215.3,302.5 195.5,302.5 195.5,288.3 236.4,288.3 236.4,131.2 325.4,131.2 "/>
+<polyline class="st1" points="236.4,239.4 448.7,239.4 448.7,143.4 459,143.4 "/>
+<line class="st1" x1="448.7" y1="176.4" x2="459" y2="176.4"/>
+<line class="st1" x1="448.7" y1="168.4" x2="459" y2="168.4"/>
+<line class="st1" x1="448.7" y1="159.4" x2="459" y2="159.4"/>
+<line class="st1" x1="448.7" y1="151.4" x2="459" y2="151.4"/>
+<rect x="448.6" y="176.3" class="st13" width="0.2" height="0.2"/>
+<rect x="448.6" y="168.3" class="st13" width="0.2" height="0.2"/>
+<rect x="448.6" y="159.3" class="st13" width="0.2" height="0.2"/>
+<rect x="448.6" y="151.3" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="175.7" y1="289.3" x2="195.5" y2="289.3"/>
+<rect x="195.4" y="289.2" class="st13" width="0.2" height="0.2"/>
+<rect x="236.3" y="239.3" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="175.7,372.1 192.7,372.1 192.7,135.9 325.4,135.9 "/>
+<line class="st1" x1="192.7" y1="310" x2="215.3" y2="310"/>
+<rect x="192.6" y="309.9" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="40.2" y1="370.2" x2="91.5" y2="370.2"/>
+<rect x="91.4" y="253.4" class="st13" width="0.2" height="0.2"/>
+<rect x="91.4" y="370.1" class="st13" width="0.2" height="0.2"/>
+<polyline class="st1" points="118.8,227.2 91.5,227.2 91.5,393.7 149.4,393.7 149.4,399.4 194.6,399.4 194.6,29.5 215.3,29.5 "/>
+<line class="st1" x1="194.6" y1="347.6" x2="215.3" y2="347.6"/>
+<line class="st1" x1="194.6" y1="278.9" x2="215.3" y2="278.9"/>
+<rect x="194.5" y="347.5" class="st13" width="0.2" height="0.2"/>
+<rect x="194.5" y="278.8" class="st13" width="0.2" height="0.2"/>
+<line class="st1" x1="91.5" y1="253.5" x2="118.8" y2="253.5"/>
+<polyline class="st1" points="175.7,331.6 188.9,331.6 188.9,251.6 215.3,251.6 "/>
+<polyline class="st2" points="325.4,178.2 297.6,178.2 297.6,274.2 433.6,274.2 433.6,252.6 471.2,252.6 471.2,260.1 462.8,260.1 
+	"/>
+<polyline class="st2" points="329.1,209.3 428.9,209.3 428.9,257.3 459,257.3 "/>
+<polyline class="st1" points="329.1,210.2 428,210.2 428,258.2 459,258.2 "/>
+<polyline class="st1" points="329.1,211.2 427,211.2 427,259.2 459,259.2 "/>
+<polyline class="st1" points="329.1,213.1 425.1,213.1 425.1,261.1 459,261.1 "/>
+<polyline class="st2" points="329.1,212.1 426.1,212.1 426.1,260.1 459,260.1 "/>
+<polyline class="st2" points="329.1,214 424.2,214 424.2,267.6 459,267.6 "/>
+<polyline class="st2" points="329.1,214.9 423.2,214.9 423.2,268.6 459,268.6 "/>
+<polyline class="st1" points="329.1,215.9 422.3,215.9 422.3,269.5 459,269.5 "/>
+<polyline class="st1" points="329.1,216.8 421.4,216.8 421.4,271.4 459,271.4 "/>
+<polyline class="st1" points="329.1,218.7 419.5,218.7 419.5,272.3 459,272.3 "/>
+<polyline class="st2" points="329.1,217.8 420.4,217.8 420.4,270.5 459,270.5 "/>
+<polyline class="st2" points="82.1,242.2 90.6,242.2 90.6,225.3 118.8,225.3 "/>
+<polyline class="st2" points="175.7,396.6 204,396.6 204,345.8 215.3,345.8 "/>
+<polyline class="st2" points="82.1,248.8 88.7,248.8 88.7,251.6 118.8,251.6 "/>
+<polyline class="st2" points="215.3,181.1 204,181.1 204,225.3 288.2,225.3 288.2,248.8 344.2,248.8 344.2,219.6 329.1,219.6 "/>
+<polyline class="st2" points="215.3,187.6 204.9,187.6 204.9,226.2 285.4,226.2 285.4,249.8 343.3,249.8 343.3,220.6 329.1,220.6 
+	"/>
+<polyline class="st2" points="215.3,192.8 205.9,192.8 205.9,227.2 280.7,227.2 280.7,250.7 342.3,250.7 342.3,221.5 329.1,221.5 
+	"/>
+<polyline class="st2" points="219,308.1 265.6,308.1 265.6,134 325.4,134 "/>
+<polyline class="st1" points="219,309.1 268.4,309.1 268.4,134.9 325.4,134.9 "/>
+<polyline class="st1" points="219,310 270.3,310 270.3,136.8 325.4,136.8 "/>
+<polyline class="st2" points="54.8,354.2 48.7,354.2 48.7,349.5 161.6,349.5 161.6,351.4 370.5,351.4 370.5,222.5 329.1,222.5 "/>
+<polyline class="st1" points="54.8,355.2 49.6,355.2 49.6,350.5 136.2,350.5 136.2,352.3 369.6,352.3 369.6,223.4 329.1,223.4 "/>
+<polyline class="st1" points="54.8,358 48.7,358 48.7,359.9 164.4,359.9 164.4,353.3 368.7,353.3 368.7,225.3 329.1,225.3 "/>
+<polyline class="st2" points="54.8,358.9 49.6,358.9 49.6,360.8 165.4,360.8 165.4,354.2 371.5,354.2 371.5,224.4 329.1,224.4 "/>
+<polyline class="st2" points="118.8,398.5 108.4,398.5 108.4,394.7 143.7,394.7 143.7,400.3 379,400.3 379,226.2 329.1,226.2 "/>
+<polyline class="st1" points="118.8,399.4 109.4,399.4 109.4,395.6 138.1,395.6 138.1,401.3 378.1,401.3 378.1,227.2 329.1,227.2 
+	"/>
+<polyline class="st1" points="118.8,402.2 108.4,402.2 108.4,405 376.2,405 376.2,229.1 329.1,229.1 "/>
+<polyline class="st2" points="118.8,403.2 109.4,403.2 109.4,406 380,406 380,228.1 329.1,228.1 "/>
+<polyline class="st2" points="54.8,384.3 48.7,384.3 48.7,380.6 141.9,380.6 141.9,388.1 365.8,388.1 365.8,230 329.1,230 "/>
+<polyline class="st1" points="54.8,385.3 49.6,385.3 49.6,381.5 136.2,381.5 136.2,389 364.9,389 364.9,230.9 329.1,230.9 "/>
+<polyline class="st1" points="54.8,388.1 48.7,388.1 48.7,390.9 364,390.9 364,232.8 329.1,232.8 "/>
+<polyline class="st2" points="54.8,389 49.6,389 49.6,391.9 366.8,391.9 366.8,231.9 329.1,231.9 "/>
+<polyline class="st2" points="325.4,179.2 298.6,179.2 298.6,275.2 448.7,275.2 448.7,262 472.2,262 472.2,265.8 462.8,265.8 "/>
+<polyline class="st1" points="325.4,180.1 299.5,180.1 299.5,276.1 450.5,276.1 450.5,262.9 471.2,262.9 471.2,266.7 462.8,266.7 
+	"/>
+<polyline class="st1" points="325.4,181.1 300.4,181.1 300.4,277.1 471.2,277.1 471.2,267.6 462.8,267.6 "/>
+<line class="st2" x1="462.8" y1="268.6" x2="479.7" y2="268.6"/>
+<line class="st2" x1="462.8" y1="269.5" x2="479.7" y2="269.5"/>
+<line class="st1" x1="462.8" y1="270.5" x2="479.7" y2="270.5"/>
+<line class="st1" x1="462.8" y1="271.4" x2="479.7" y2="271.4"/>
+<line class="st1" x1="462.8" y1="272.3" x2="479.7" y2="272.3"/>
+<line class="st2" x1="462.8" y1="273.3" x2="479.7" y2="273.3"/>
+<line class="st2" x1="462.8" y1="274.2" x2="479.7" y2="274.2"/>
+<line class="st1" x1="462.8" y1="275.2" x2="479.7" y2="275.2"/>
+<line class="st1" x1="462.8" y1="276.1" x2="479.7" y2="276.1"/>
+<polyline class="st1" points="480.7,118 501.8,118 501.8,40.4 547,40.4 "/>
+<polyline class="st1" points="480.7,118.9 505.6,118.9 505.6,41.3 547,41.3 "/>
+<polyline class="st1" points="480.7,257.3 509.4,257.3 509.4,42.2 547,42.2 "/>
+<polyline class="st1" points="480.7,258.2 511.2,258.2 511.2,43.2 547,43.2 "/>
+<polyline class="st2" points="480.7,259.2 513.1,259.2 513.1,44.1 547,44.1 "/>
+<polyline class="st1" points="480.7,348.6 523.5,348.6 523.5,45.1 547,45.1 "/>
+<polyline class="st2" points="480.7,268.6 515,268.6 515,46 547,46 "/>
+<polyline class="st2" points="480.7,269.5 517.8,269.5 517.8,47 547,47 "/>
+<polyline class="st1" points="480.7,270.5 519.7,270.5 519.7,47.9 547,47.9 "/>
+<polyline class="st1" points="480.7,271.4 521.6,271.4 521.6,48.8 547,48.8 "/>
+<polyline class="st1" points="480.7,272.3 524.4,272.3 524.4,49.8 547,49.8 "/>
+<polyline class="st2" points="480.7,273.3 526.3,273.3 526.3,50.7 547,50.7 "/>
+<polyline class="st2" points="480.7,274.2 528.2,274.2 528.2,51.7 547,51.7 "/>
+<polyline class="st1" points="480.7,275.2 530.1,275.2 530.1,52.6 547,52.6 "/>
+<polyline class="st1" points="480.7,276.1 531,276.1 531,53.5 547,53.5 "/>
+<polyline class="st2" points="480.7,78.5 502.8,78.5 502.8,54.5 547,54.5 "/>
+<polyline class="st1" points="480.7,79.4 506.5,79.4 506.5,55.4 547,55.4 "/>
+<polyline class="st2" points="480.7,80.4 507.5,80.4 507.5,56.4 547,56.4 "/>
+<polyline class="st1" points="480.7,81.3 508.4,81.3 508.4,57.3 547,57.3 "/>
+<polyline class="st1" points="480.7,82.2 510.3,82.2 510.3,58.2 547,58.2 "/>
+<polyline class="st1" points="480.7,83.2 512.2,83.2 512.2,59.2 547,59.2 "/>
+<polyline class="st1" points="480.7,84.1 514.1,84.1 514.1,60.1 547,60.1 "/>
+<polyline class="st2" points="480.7,86 515.9,86 515.9,61.1 547,61.1 "/>
+<polyline class="st1" points="480.7,85.1 516.9,85.1 516.9,62 547,62 "/>
+<polyline class="st1" points="480.7,87 518.8,87 518.8,63 547,63 "/>
+<polyline class="st2" points="480.7,87.9 520.6,87.9 520.6,63.9 547,63.9 "/>
+<polyline class="st1" points="480.7,88.8 522.5,88.8 522.5,64.8 547,64.8 "/>
+<polyline class="st2" points="480.7,89.8 525.4,89.8 525.4,65.8 547,65.8 "/>
+<polyline class="st1" points="480.7,90.7 527.2,90.7 527.2,66.7 547,66.7 "/>
+<polyline class="st1" points="480.7,91.7 529.1,91.7 529.1,67.7 547,67.7 "/>
+<text transform="matrix(1 0 0 1 503.9922 37.3994)" class="st3 st7">23:20</text>
+<text transform="matrix(1 0 0 1 503.9922 34.1055)" class="st3 st7">15:12</text>
+<text transform="matrix(1 0 0 1 503.9922 30.812)" class="st3 st7">11:8</text>
+<text transform="matrix(1 0 0 1 503.9922 27.5181)" class="st3 st7">7:4</text>
+<text transform="matrix(1 0 0 1 503.9922 24.2241)" class="st3 st7">3:0</text>
+<text transform="matrix(1 0 0 1 503.9922 20.9302)" class="st3 st7">31:28</text>
+<text transform="matrix(1 0 0 1 503.9922 17.6362)" class="st3 st7">27:24</text>
+<text transform="matrix(1 0 0 1 503.9922 14.3428)" class="st3 st7">19:16</text>
+</svg>
diff --git a/docs/toplevel.svg b/docs/toplevel.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3f27c10a6e28716e8dd236e61b619781de664047
--- /dev/null
+++ b/docs/toplevel.svg
@@ -0,0 +1,662 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 544 650" style="enable-background:new 0 0 544 650;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#0000FF;stroke-width:0.3741;}
+	.st1{font-family:'Helvetica';}
+	.st2{font-size:4.4891px;}
+	.st3{fill:#81BF5F;}
+	.st4{fill:none;stroke:#2D2D2D;stroke-width:0.3741;}
+	.st5{fill:none;stroke:#2D2D2D;stroke-width:1.1223;}
+	.st6{fill:none;stroke:#06476F;stroke-width:0.3741;}
+	.st7{fill:#06476F;}
+	.st8{font-size:3.7409px;}
+	.st9{fill:none;stroke:#06476F;stroke-width:1.1223;}
+	.st10{fill:none;stroke:#0000FF;stroke-width:1.1223;}
+	.st11{fill:#73ACAC;}
+	.st12{fill:#2D2D2D;}
+</style>
+<font horiz-adv-x="2048">
+<!-- Helvetica is a registered trademark of Linotype AG -->
+<!-- Copyright: Copyright 2017 Adobe System Incorporated. All rights reserved. -->
+<font-face font-family="Helvetica" units-per-em="2048" underline-position="-155" underline-thickness="101"/>
+<missing-glyph horiz-adv-x="1298" d="M66,0l0,1469l1166,0l0,-1469M1048,184l0,1101l-798,0l0,-1101z"/>
+<glyph unicode="'" horiz-adv-x="391" d="M338,1469l-33,-588l-116,0l-33,588z"/>
+<glyph unicode="." horiz-adv-x="569" d="M175,218l209,0l0,-218l-209,0z"/>
+<glyph unicode="0" horiz-adv-x="1139" d="M956,1203C1020,1085 1052,923 1052,718C1052,523 1023,362 965,235C881,52 744,-39 553,-39C381,-39 253,36 169,185C99,310 64,477 64,687C64,850 85,989 127,1106C206,1323 348,1432 554,1432C739,1432 873,1356 956,1203M858,711C858,874 838,1008 798,1113C758,1218 680,1270 565,1270C459,1270 382,1220 333,1121C284,1021 259,874 259,680C259,534 275,417 306,328C354,193 436,125 552,125C645,125 720,166 775,249C830,332 858,486 858,711z"/>
+<glyph unicode="1" horiz-adv-x="1139" d="M196,1014l0,138C326,1165 417,1186 468,1216C519,1245 558,1315 583,1426l142,0l0,-1426l-192,0l0,1014z"/>
+<glyph unicode="2" horiz-adv-x="1139" d="M400,571l192,111C678,732 738,775 773,810C828,865 855,929 855,1000C855,1083 830,1150 780,1199C730,1248 663,1272 580,1272C457,1272 371,1225 324,1132C299,1082 285,1013 282,924l-183,0C101,1049 124,1150 168,1229C246,1368 384,1437 581,1437C745,1437 865,1393 941,1304C1016,1215 1054,1117 1054,1008C1054,893 1014,795 933,714C886,667 803,609 682,542l-137,-76C480,430 428,396 391,363C324,305 282,241 265,170l782,0l0,-170l-983,0C71,123 96,231 141,322C185,413 271,496 400,571z"/>
+<glyph unicode="3" horiz-adv-x="1139" d="M49,440l188,0C245,347 262,280 289,238C336,163 420,125 542,125C637,125 713,150 770,201C827,252 856,317 856,397C856,496 826,565 766,604C705,643 621,663 514,663C502,663 490,663 478,663C465,662 453,662 440,661l0,159C459,818 474,817 487,816C500,815 513,815 528,815C595,815 651,826 694,847C770,884 808,951 808,1047C808,1118 783,1173 732,1212C681,1251 622,1270 555,1270C435,1270 352,1230 306,1150C281,1106 266,1043 263,962l-178,0C85,1069 106,1159 149,1234C222,1367 351,1434 536,1434C682,1434 795,1402 875,1337C955,1272 995,1177 995,1054C995,966 971,895 924,840C895,806 857,779 810,760C885,739 944,700 987,641C1029,582 1050,509 1050,424C1050,287 1005,176 915,90C825,4 697,-39 532,-39C363,-39 240,8 164,101C87,194 49,307 49,440z"/>
+<glyph unicode="4" horiz-adv-x="1139" d="M677,507l0,649l-459,-649M680,0l0,350l-628,0l0,176l656,910l152,0l0,-929l211,0l0,-157l-211,0l0,-350z"/>
+<glyph unicode="5" horiz-adv-x="1139" d="M253,365C265,262 313,191 396,152C439,132 488,122 544,122C651,122 730,156 781,224C832,292 858,367 858,450C858,550 828,627 767,682C706,737 632,764 547,764C485,764 432,752 388,728C343,704 305,671 274,628l-156,9l109,771l744,0l0,-174l-609,0l-61,-398C334,861 366,880 396,893C449,915 511,926 581,926C712,926 824,884 915,799C1006,714 1052,607 1052,477C1052,342 1010,222 927,119C843,16 709,-36 526,-36C409,-36 306,-3 217,63C127,128 77,229 66,365z"/>
+<glyph unicode="6" horiz-adv-x="1139" d="M1028,1057l-178,0C839,1114 822,1158 799,1190C756,1250 690,1280 602,1280C501,1280 421,1234 362,1141C303,1048 270,914 263,741C304,802 356,847 419,877C476,904 540,917 611,917C731,917 836,879 925,802C1014,725 1059,611 1059,459C1059,329 1017,214 932,114C847,13 727,-37 570,-37C436,-37 320,14 223,116C126,217 77,388 77,629C77,807 99,958 142,1082C225,1319 378,1438 599,1438C759,1438 871,1397 934,1314C997,1231 1028,1145 1028,1057M869,444C869,517 848,587 806,654C764,720 688,753 577,753C500,753 432,727 374,676C315,625 286,547 286,444C286,353 313,277 366,216C419,154 492,123 586,123C681,123 752,155 799,219C846,282 869,357 869,444z"/>
+<glyph unicode="7" horiz-adv-x="1139" d="M1071,1408l0,-157C1025,1206 964,1129 888,1018C811,907 744,788 685,660C627,535 583,422 553,319C534,253 509,147 478,0l-199,0C324,273 424,545 579,816C670,975 766,1112 867,1227l-792,0l0,181z"/>
+<glyph unicode="8" horiz-adv-x="1139" d="M810,1057C810,1110 789,1159 746,1204C703,1249 638,1271 551,1271C464,1271 402,1249 363,1204C324,1159 305,1107 305,1047C305,980 330,927 380,889C430,851 489,832 557,832C636,832 698,854 743,899C788,943 810,996 810,1057M858,392C858,485 830,555 773,603C716,651 644,675 555,675C469,675 399,651 345,602C290,553 263,485 263,398C263,323 288,259 338,205C387,150 464,123 568,123C651,123 721,146 776,191C831,236 858,303 858,392M195,838C142,891 116,961 116,1046C116,1153 155,1244 232,1321C309,1398 419,1436 561,1436C698,1436 806,1400 884,1328C962,1255 1001,1171 1001,1074C1001,985 978,912 933,857C908,826 868,795 815,765C874,738 921,706 955,671C1018,604 1050,518 1050,411C1050,285 1008,178 923,91C838,3 719,-41 564,-41C425,-41 307,-3 211,73C114,148 66,258 66,402C66,487 87,560 128,622C169,683 231,730 312,763C262,784 223,809 195,838z"/>
+<glyph unicode="9" horiz-adv-x="1139" d="M272,346C277,247 316,178 387,140C424,120 465,110 511,110C597,110 670,146 731,218C792,289 835,435 860,654C820,591 771,546 712,521C653,495 589,482 521,482C383,482 274,525 194,611C113,697 73,808 73,943C73,1073 113,1187 192,1286C271,1385 388,1434 543,1434C752,1434 896,1340 975,1152C1019,1049 1041,919 1041,764C1041,589 1015,433 962,298C875,73 727,-40 518,-40C378,-40 272,-3 199,70C126,143 90,235 90,346M829,957C829,1062 803,1141 750,1193C697,1244 629,1270 547,1270C459,1270 389,1241 338,1182C286,1123 260,1044 260,945C260,852 283,778 328,723C373,668 446,640 545,640C616,640 682,664 741,711C800,758 829,840 829,957z"/>
+<glyph unicode=":" horiz-adv-x="569" d="M227,1057l209,0l0,-218l-209,0M227,218l209,0l0,-218l-209,0z"/>
+<glyph unicode="A" horiz-adv-x="1366" d="M910,602l-223,649l-237,-649M583,1469l225,0l533,-1469l-218,0l-149,440l-581,0l-159,-440l-204,0z"/>
+<glyph unicode="B" horiz-adv-x="1366" d="M708,848C792,848 857,860 904,883C977,920 1014,986 1014,1081C1014,1177 975,1242 897,1275C853,1294 788,1303 701,1303l-355,0l0,-455M775,170C897,170 984,205 1036,276C1069,321 1085,375 1085,438C1085,545 1037,617 942,656C891,677 824,687 741,687l-395,0l0,-517M151,1469l631,0C954,1469 1076,1418 1149,1315C1192,1254 1213,1184 1213,1105C1213,1012 1187,936 1134,877C1107,846 1067,817 1016,791C1091,762 1148,730 1185,694C1251,630 1284,542 1284,429C1284,334 1254,249 1195,172C1106,57 965,0 772,0l-621,0z"/>
+<glyph unicode="C" horiz-adv-x="1479" d="M1379,1028l-194,0C1163,1123 1119,1198 1054,1253C988,1308 896,1336 777,1336C632,1336 516,1285 427,1184C338,1082 293,926 293,716C293,544 333,405 414,298C494,191 614,137 773,137C920,137 1031,193 1108,306C1149,365 1179,443 1199,540l194,0C1376,385 1318,256 1221,151C1104,25 947,-38 749,-38C578,-38 435,14 319,117C166,254 90,465 90,750C90,967 147,1144 262,1283C386,1434 557,1509 775,1509C961,1509 1105,1460 1208,1362C1311,1264 1368,1153 1379,1028z"/>
+<glyph unicode="D" horiz-adv-x="1479" d="M720,170C787,170 843,177 886,191C963,217 1027,267 1076,341C1115,400 1144,476 1161,569C1171,624 1176,676 1176,723C1176,905 1140,1046 1068,1147C995,1248 879,1298 718,1298l-353,0l0,-1128M165,1469l595,0C962,1469 1119,1397 1230,1254C1329,1125 1379,959 1379,757C1379,601 1350,460 1291,334C1188,111 1010,0 758,0l-593,0z"/>
+<glyph unicode="E" horiz-adv-x="1366" d="M175,1469l1071,0l0,-180l-877,0l0,-446l811,0l0,-170l-811,0l0,-498l892,0l0,-175l-1086,0z"/>
+<glyph unicode="F" horiz-adv-x="1251" d="M175,1469l1019,0l0,-180l-820,0l0,-446l721,0l0,-175l-721,0l0,-668l-199,0z"/>
+<glyph unicode="G" horiz-adv-x="1593" d="M1149,1427C1295,1350 1384,1216 1417,1024l-197,0C1196,1131 1146,1210 1071,1259C996,1308 901,1332 786,1332C650,1332 536,1281 443,1179C350,1077 303,925 303,723C303,548 341,406 418,297C495,187 620,132 793,132C926,132 1036,171 1123,248C1210,325 1254,449 1256,621l-460,0l0,165l645,0l0,-786l-128,0l-48,189C1198,115 1138,64 1086,35C999,-14 888,-39 753,-39C579,-39 429,17 304,130C167,271 99,465 99,712C99,958 166,1154 299,1299C426,1438 590,1507 791,1507C929,1507 1048,1480 1149,1427z"/>
+<glyph unicode="H" horiz-adv-x="1479" d="M161,1469l201,0l0,-607l764,0l0,607l201,0l0,-1469l-201,0l0,687l-764,0l0,-687l-201,0z"/>
+<glyph unicode="I" horiz-adv-x="569" d="M201,1469l201,0l0,-1469l-201,0z"/>
+<glyph unicode="K" horiz-adv-x="1366" d="M156,1469l194,0l0,-716l716,716l275,0l-611,-592l628,-877l-259,0l-514,737l-235,-225l0,-512l-194,0z"/>
+<glyph unicode="L" horiz-adv-x="1139" d="M156,1469l199,0l0,-1294l744,0l0,-175l-943,0z"/>
+<glyph unicode="M" horiz-adv-x="1706" d="M151,1469l285,0l422,-1242l419,1242l282,0l0,-1469l-189,0l0,867C1370,897 1371,947 1372,1016C1373,1085 1374,1160 1374,1239l-419,-1239l-197,0l-422,1239l0,-45C336,1158 337,1103 339,1030C340,956 341,902 341,867l0,-867l-190,0z"/>
+<glyph unicode="N" horiz-adv-x="1479" d="M156,1469l235,0l742,-1190l0,1190l189,0l0,-1469l-223,0l-753,1189l0,-1189l-190,0z"/>
+<glyph unicode="O" horiz-adv-x="1593" d="M1366,1259C1463,1129 1512,963 1512,760C1512,541 1456,358 1345,213C1214,42 1028,-43 786,-43C560,-43 382,32 253,181C138,325 80,507 80,727C80,926 129,1096 228,1237C355,1418 542,1509 790,1509C1049,1509 1241,1426 1366,1259M1308,757C1308,930 1263,1069 1173,1174C1082,1279 959,1332 802,1332C650,1332 526,1280 430,1176C334,1071 286,917 286,714C286,551 327,414 410,303C492,191 625,135 810,135C985,135 1112,198 1191,324C1269,449 1308,594 1308,757z"/>
+<glyph unicode="P" horiz-adv-x="1366" d="M175,1469l661,0C967,1469 1072,1432 1152,1359C1232,1285 1272,1181 1272,1048C1272,933 1236,834 1165,749C1094,664 984,621 836,621l-462,0l0,-621l-199,0M951,1267C907,1288 847,1298 770,1298l-396,0l0,-509l396,0C859,789 932,808 988,846C1043,884 1071,951 1071,1047C1071,1155 1031,1228 951,1267z"/>
+<glyph unicode="Q" horiz-adv-x="1593" d="M1500,4l-100,-121l-227,173C1118,26 1059,2 996,-16C932,-34 862,-43 787,-43C559,-43 380,32 251,181C137,326 80,508 80,727C80,926 129,1096 228,1237C355,1418 542,1509 790,1509C1049,1509 1241,1426 1366,1259C1463,1129 1512,963 1512,760C1512,665 1500,574 1477,487C1442,354 1382,245 1298,161M1021,177l-161,126l100,123l192,-149C1213,346 1254,424 1276,510C1297,596 1308,678 1308,757C1308,930 1263,1069 1173,1174C1082,1279 959,1332 802,1332C643,1332 518,1282 425,1181C332,1080 286,924 286,714C286,537 331,397 420,292C509,187 639,135 811,135C852,135 891,138 927,144C963,149 994,160 1021,177z"/>
+<glyph unicode="R" horiz-adv-x="1479" d="M839,796C932,796 1006,815 1061,852C1115,889 1142,957 1142,1054C1142,1159 1104,1230 1028,1268C987,1288 933,1298 865,1298l-486,0l0,-502M180,1469l680,0C972,1469 1064,1453 1137,1420C1275,1357 1344,1242 1344,1073C1344,985 1326,913 1290,857C1253,801 1202,756 1137,722C1194,699 1238,668 1267,630C1296,592 1312,530 1315,445l7,-197C1324,192 1329,150 1336,123C1348,76 1369,46 1400,33l0,-33l-244,0C1149,13 1144,29 1140,49C1136,69 1133,108 1130,165l-12,245C1113,506 1078,570 1011,603C973,621 913,630 832,630l-453,0l0,-630l-199,0z"/>
+<glyph unicode="S" horiz-adv-x="1366" d="M286,474C291,391 310,323 345,271C411,174 527,125 694,125C769,125 837,136 898,157C1017,198 1076,272 1076,379C1076,459 1051,516 1001,550C950,583 871,612 763,637l-199,45C434,711 342,744 288,779C195,840 148,932 148,1054C148,1186 194,1294 285,1379C376,1464 506,1506 673,1506C827,1506 958,1469 1066,1395C1173,1320 1227,1201 1227,1038l-187,0C1030,1117 1009,1177 976,1219C915,1296 812,1334 667,1334C550,1334 465,1309 414,1260C363,1211 337,1153 337,1088C337,1016 367,963 427,930C466,909 555,882 694,850l206,-47C999,780 1076,749 1130,710C1223,641 1270,542 1270,411C1270,248 1211,132 1093,62C974,-8 837,-43 680,-43C497,-43 354,4 251,97C148,190 97,315 99,474z"/>
+<glyph unicode="T" horiz-adv-x="1251" d="M1225,1469l0,-175l-495,0l0,-1294l-202,0l0,1294l-495,0l0,175z"/>
+<glyph unicode="U" horiz-adv-x="1479" d="M372,1469l0,-908C372,454 392,366 432,295C491,188 591,135 732,135C901,135 1015,193 1076,308C1109,371 1125,455 1125,561l0,908l202,0l0,-825C1327,463 1303,324 1254,227C1165,50 996,-39 748,-39C500,-39 332,50 243,227C194,324 170,463 170,644l0,825z"/>
+<glyph unicode="V" horiz-adv-x="1366" d="M272,1469l422,-1251l417,1251l223,0l-536,-1469l-211,0l-535,1469z"/>
+<glyph unicode="W" horiz-adv-x="1933" d="M253,1469l277,-1195l332,1195l216,0l332,-1195l277,1195l218,0l-386,-1469l-209,0l-339,1218l-341,-1218l-209,0l-384,1469z"/>
+<glyph unicode="X" horiz-adv-x="1366" d="M282,0l-240,0l526,753l-493,716l249,0l375,-562l372,562l237,0l-493,-716l517,-753l-247,0l-396,604z"/>
+<glyph unicode="Y" horiz-adv-x="1366" d="M42,1469l232,0l422,-706l422,706l233,0l-555,-877l0,-592l-199,0l0,592z"/>
+<glyph unicode="[" horiz-adv-x="569" d="M128,1479l384,0l0,-147l-214,0l0,-1588l214,0l0,-147l-384,0z"/>
+<glyph unicode="]" horiz-adv-x="569" d="M47,-256l213,0l0,1588l-213,0l0,147l384,0l0,-1882l-384,0z"/>
+<glyph unicode="_" horiz-adv-x="1139" d="M0,-256l0,101l1139,0l0,-101z"/>
+<glyph unicode="a" horiz-adv-x="1139" d="M462,117C525,117 587,132 646,161C746,210 796,289 796,400l0,145C774,531 746,519 711,510C676,501 642,494 609,490l-109,-14C435,467 386,454 353,435C298,404 270,354 270,285C270,233 289,192 327,162C365,132 410,117 462,117M706,649C747,654 775,672 789,701C797,717 801,740 801,770C801,831 779,876 736,904C692,931 629,945 548,945C454,945 387,920 348,869C326,841 312,799 305,744l-168,0C140,876 183,968 266,1020C348,1071 443,1097 552,1097C678,1097 780,1073 859,1025C937,977 976,902 976,801l0,-617C976,165 980,150 988,139C995,128 1011,122 1036,122C1044,122 1053,123 1063,124C1073,125 1084,126 1095,128l0,-133C1067,-13 1046,-18 1031,-20C1016,-22 996,-23 971,-23C909,-23 864,-1 836,43C821,66 811,99 805,142C768,94 716,52 647,17C578,-18 503,-36 420,-36C321,-36 240,-6 177,55C114,115 82,190 82,281C82,380 113,457 175,512C237,567 318,600 419,613z"/>
+<glyph unicode="b" horiz-adv-x="1139" d="M118,1474l175,0l0,-533C332,992 379,1032 434,1059C489,1086 548,1099 612,1099C745,1099 854,1053 937,962C1020,870 1061,735 1061,556C1061,387 1020,246 938,134C856,22 742,-34 597,-34C516,-34 447,-14 391,25C358,48 322,86 284,137l0,-137l-166,0M877,547C877,660 853,753 805,827C756,901 685,938 591,938C509,938 437,908 376,847C314,786 283,686 283,547C283,446 296,365 321,302C368,184 457,125 586,125C683,125 756,164 805,241C853,318 877,420 877,547z"/>
+<glyph unicode="c" horiz-adv-x="1024" d="M976,711l-175,0C790,777 766,832 728,876C690,919 629,941 545,941C430,941 348,885 299,773C267,700 251,611 251,504C251,397 274,306 319,233C364,160 436,123 533,123C608,123 667,146 711,192C754,237 784,300 801,379l175,0C956,237 906,133 826,68C746,2 644,-31 519,-31C379,-31 267,20 184,123C101,225 59,353 59,506C59,694 105,840 196,945C287,1050 404,1102 545,1102C666,1102 764,1073 840,1014C915,955 961,854 976,711z"/>
+<glyph unicode="d" horiz-adv-x="1139" d="M553,119C636,119 705,155 759,227C812,298 839,401 839,535C839,670 811,771 756,836C701,901 632,933 551,933C460,933 387,898 331,829C274,760 246,658 246,523C246,408 270,312 319,235C368,158 446,119 553,119M723,1038C755,1018 791,983 832,933l0,541l173,0l0,-1474l-162,0l0,149C801,83 751,35 694,6C637,-23 571,-38 497,-38C378,-38 274,12 187,113C100,213 56,346 56,513C56,669 96,804 176,919C255,1033 369,1090 517,1090C599,1090 668,1073 723,1038z"/>
+<glyph unicode="e" horiz-adv-x="1139" d="M962,903C998,849 1022,786 1034,714C1045,665 1050,586 1050,478l-785,0C268,369 294,282 342,217C390,151 464,118 565,118C659,118 734,149 790,211C822,247 845,289 858,336l177,0C1030,297 1015,253 989,205C962,156 933,117 900,86C845,33 778,-3 697,-22C654,-33 605,-38 550,-38C417,-38 304,11 211,108C118,205 72,340 72,515C72,687 119,827 212,934C305,1041 427,1095 578,1095C654,1095 728,1077 799,1042C870,1006 925,960 962,903M865,621C858,699 841,761 814,808C765,895 682,938 567,938C484,938 415,908 359,849C303,789 273,713 270,621z"/>
+<glyph unicode="f" horiz-adv-x="569" d="M216,1398C258,1459 339,1490 459,1490C470,1490 482,1490 494,1489C506,1488 520,1487 535,1486l0,-164C516,1323 503,1324 495,1325C486,1325 478,1325 471,1325C416,1325 384,1311 373,1283C362,1254 357,1182 357,1066l178,0l0,-142l-180,0l0,-924l-178,0l0,924l-149,0l0,142l149,0l0,168C180,1309 193,1363 216,1398z"/>
+<glyph unicode="g" horiz-adv-x="1139" d="M730,1028C764,1005 799,971 834,926l0,135l166,0l0,-974C1000,-49 980,-156 940,-235C865,-380 724,-453 517,-453C402,-453 305,-427 226,-375C147,-324 103,-243 94,-133l183,0C286,-181 303,-218 329,-244C370,-284 434,-304 521,-304C659,-304 749,-255 792,-158C817,-101 829,2 827,149C791,94 748,54 697,27C646,0 579,-13 496,-13C380,-13 279,28 192,111C105,193 61,329 61,519C61,698 105,838 193,939C280,1040 386,1090 510,1090C594,1090 667,1069 730,1028M543,931C416,931 330,872 283,753C258,690 246,607 246,504C246,383 271,292 320,229C369,166 434,134 517,134C646,134 737,192 790,309C819,375 834,452 834,540C834,673 807,771 752,835C697,899 628,931 543,931z"/>
+<glyph unicode="h" horiz-adv-x="1139" d="M132,1474l180,0l0,-548C355,980 393,1018 427,1040C485,1078 557,1097 644,1097C799,1097 905,1043 960,934C990,875 1005,792 1005,687l0,-687l-185,0l0,675C820,754 810,811 790,848C757,907 696,936 606,936C531,936 464,910 403,859C342,808 312,711 312,568l0,-568l-180,0z"/>
+<glyph unicode="i" horiz-adv-x="455" d="M132,1066l183,0l0,-1066l-183,0M132,1469l183,0l0,-204l-183,0z"/>
+<glyph unicode="k" horiz-adv-x="1024" d="M128,1469l173,0l0,-853l462,455l230,0l-410,-401l433,-670l-230,0l-334,540l-151,-138l0,-402l-173,0z"/>
+<glyph unicode="l" horiz-adv-x="455" d="M137,1469l180,0l0,-1469l-180,0z"/>
+<glyph unicode="m" horiz-adv-x="1706" d="M132,1071l178,0l0,-152C353,972 391,1010 426,1034C485,1075 553,1095 628,1095C713,1095 782,1074 834,1032C863,1008 890,973 914,926C954,983 1001,1026 1055,1054C1109,1081 1170,1095 1237,1095C1381,1095 1479,1043 1531,939C1559,883 1573,808 1573,713l0,-713l-187,0l0,744C1386,815 1368,864 1333,891C1297,918 1253,931 1202,931C1131,931 1071,907 1020,860C969,813 943,734 943,623l0,-623l-183,0l0,699C760,772 751,825 734,858C707,908 656,933 581,933C513,933 451,907 396,854C340,801 312,706 312,568l0,-568l-180,0z"/>
+<glyph unicode="n" horiz-adv-x="1139" d="M132,1071l171,0l0,-152C354,982 407,1027 464,1054C521,1081 584,1095 653,1095C805,1095 908,1042 961,936C990,878 1005,795 1005,687l0,-687l-183,0l0,675C822,740 812,793 793,833C761,900 703,933 619,933C576,933 541,929 514,920C465,905 421,876 384,832C354,797 335,760 326,723C317,685 312,631 312,561l0,-561l-180,0z"/>
+<glyph unicode="o" horiz-adv-x="1139" d="M869,553C869,653 853,734 821,797C770,896 683,945 559,945C449,945 369,903 319,819C269,735 244,634 244,515C244,401 269,306 319,230C369,154 448,116 557,116C676,116 758,161 803,252C847,342 869,442 869,553M1057,558C1057,385 1015,243 931,130C847,17 717,-39 540,-39C393,-39 276,11 189,111C102,210 59,344 59,512C59,692 105,835 196,942C287,1049 410,1102 564,1102C702,1102 819,1056 914,964C1009,872 1057,737 1057,558z"/>
+<glyph unicode="p" horiz-adv-x="1139" d="M877,542C877,627 865,701 840,762C793,880 708,939 584,939C459,939 374,877 328,752C303,685 291,601 291,498C291,415 303,345 328,287C375,176 460,121 584,121C668,121 738,156 794,227C849,297 877,402 877,542M118,1066l175,0l0,-142C329,973 368,1010 411,1037C472,1077 543,1097 625,1097C746,1097 849,1051 934,958C1019,865 1061,732 1061,559C1061,326 1000,159 878,59C801,-4 711,-36 608,-36C527,-36 460,-18 405,17C373,37 337,71 298,120l0,-547l-180,0z"/>
+<glyph unicode="q" horiz-adv-x="1139" d="M287,288C333,177 415,121 534,121C659,121 746,180 793,297C819,362 832,444 832,545C832,638 818,715 789,777C740,883 655,936 532,936C454,936 387,902 332,835C276,767 248,662 248,521C248,428 261,351 287,288M738,1028C771,1004 803,969 834,922l0,149l171,0l0,-1498l-181,0l0,550C794,75 753,37 700,9C647,-20 580,-34 501,-34C387,-34 285,11 195,100C105,189 60,325 60,508C60,679 102,820 187,930C271,1040 380,1095 514,1095C603,1095 677,1073 738,1028z"/>
+<glyph unicode="r" horiz-adv-x="682" d="M137,1071l171,0l0,-185C322,922 356,966 411,1018C466,1069 529,1095 600,1095C603,1095 609,1095 617,1094C625,1093 639,1092 658,1090l0,-190C647,902 638,903 629,904C620,905 610,905 599,905C508,905 439,876 390,818C341,759 317,692 317,616l0,-616l-180,0z"/>
+<glyph unicode="s" horiz-adv-x="1024" d="M239,336C244,276 259,230 284,198C329,140 408,111 520,111C587,111 645,126 696,155C747,184 772,228 772,289C772,335 752,370 711,394C685,409 634,426 557,445l-143,36C323,504 255,529 212,557C135,606 96,673 96,759C96,860 133,942 206,1005C279,1068 377,1099 500,1099C661,1099 778,1052 849,957C894,897 915,832 914,763l-170,0C741,804 726,841 701,874C660,921 588,945 486,945C418,945 367,932 332,906C297,880 279,846 279,803C279,756 302,719 348,691C375,674 414,660 466,647l119,-29C714,587 801,556 845,527C915,481 950,409 950,310C950,215 914,132 842,63C769,-6 659,-41 511,-41C352,-41 239,-5 173,68C106,140 71,229 66,336z"/>
+<glyph unicode="t" horiz-adv-x="569" d="M168,1370l182,0l0,-299l171,0l0,-147l-171,0l0,-699C350,188 363,163 388,150C402,143 425,139 458,139C467,139 476,139 486,140C496,140 508,141 521,142l0,-142C500,-6 479,-10 457,-13C434,-16 410,-17 384,-17C300,-17 243,5 213,48C183,91 168,146 168,215l0,709l-145,0l0,147l145,0z"/>
+<glyph unicode="u" horiz-adv-x="1139" d="M312,1071l0,-711C312,305 321,261 338,226C370,162 430,130 517,130C642,130 728,186 773,298C798,358 810,440 810,545l0,526l180,0l0,-1071l-170,0l2,158C799,117 770,83 735,55C666,-1 583,-29 485,-29C332,-29 228,22 173,124C143,179 128,252 128,343l0,728z"/>
+<glyph unicode="v" horiz-adv-x="1024" d="M220,1071l286,-872l299,872l197,0l-404,-1071l-192,0l-395,1071z"/>
+<glyph unicode="w" horiz-adv-x="1479" d="M215,1071l206,-844l209,844l202,0l210,-839l219,839l180,0l-311,-1071l-187,0l-218,829l-211,-829l-187,0l-309,1071z"/>
+<glyph unicode="x" horiz-adv-x="1024" d="M30,1071l233,0l246,-377l249,377l219,-5l-361,-517l377,-549l-230,0l-266,402l-258,-402l-228,0l377,549z"/>
+<glyph unicode="y" horiz-adv-x="1024" d="M801,1071l199,0C975,1002 918,846 831,601C766,417 711,267 667,151C563,-122 490,-289 447,-349C404,-409 331,-439 227,-439C202,-439 182,-438 169,-436C155,-434 138,-430 118,-425l0,164C149,-270 172,-275 186,-277C200,-279 212,-280 223,-280C256,-280 281,-274 297,-263C312,-252 325,-239 336,-223C339,-218 351,-190 372,-141C393,-92 408,-55 417,-31l-396,1102l204,0l287,-872z"/>
+</font>
+
+	<polygon class="st0" points="492.4,2.6 495,0 498.4,0 501,2.6 498.4,5.2 495,5.2 "/>
+<text transform="matrix(1 0 0 1 504.0234 4.2301)" class="st1 st2">AUD_ADCLRCK</text>
+<rect x="225" y="153.4" width="22.4" height="389.8"/>
+<rect x="223.1" y="151.5" class="st3" width="22.4" height="389.8"/>
+<rect x="223.1" y="151.5" class="st4" width="22.4" height="389.8"/>
+<line class="st5" x1="227.2" y1="153.4" x2="227.2" y2="157.9"/>
+<line class="st5" x1="225" y1="155.6" x2="229.4" y2="155.6"/>
+<rect x="224.2" y="152.6" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 215.3438 149.8282)" class="st1 st2">otogame:main_soc</text>
+<line class="st6" x1="219.3" y1="335.6" x2="223.1" y2="335.6"/>
+<text transform="matrix(1 0 0 1 195.7148 334.4093)" class="st7 st1 st8">audio_adc_data</text>
+<line class="st6" x1="219.3" y1="343" x2="223.1" y2="343"/>
+<text transform="matrix(1 0 0 1 211.1123 341.8917)" class="st7 st1 st8">clk_clk</text>
+<path class="st6" d="M223.1,358c0-0.6-0.5-1.1-1.1-1.1c-0.6,0-1.1,0.5-1.1,1.1s0.5,1.1,1.1,1.1C222.6,359.1,223.1,358.6,223.1,358"
+	/>
+<line class="st6" x1="219.3" y1="358" x2="220.8" y2="358"/>
+<text transform="matrix(1 0 0 1 197.9668 356.8546)" class="st7 st1 st8">reset_reset_n</text>
+<line class="st9" x1="219.3" y1="350.5" x2="223.1" y2="350.5"/>
+<text transform="matrix(1 0 0 1 176.7896 349.3732)" class="st7 st1 st8">otg_hpi_data_in_port[15..0]</text>
+<line class="st6" x1="249.3" y1="163.5" x2="245.5" y2="163.5"/>
+<text transform="matrix(1 0 0 1 247.7729 162.3282)" class="st7 st1 st8">audio_adc_clk</text>
+<line class="st6" x1="249.3" y1="171" x2="245.5" y2="171"/>
+<text transform="matrix(1 0 0 1 247.7729 169.8107)" class="st7 st1 st8">audio_bclk</text>
+<line class="st6" x1="249.3" y1="178.4" x2="245.5" y2="178.4"/>
+<text transform="matrix(1 0 0 1 247.7729 177.2921)" class="st7 st1 st8">audio_clk_clk</text>
+<line class="st6" x1="249.3" y1="185.9" x2="245.5" y2="185.9"/>
+<text transform="matrix(1 0 0 1 247.7729 184.7736)" class="st7 st1 st8">audio_dac_clk</text>
+<line class="st6" x1="249.3" y1="193.4" x2="245.5" y2="193.4"/>
+<text transform="matrix(1 0 0 1 247.7729 192.256)" class="st7 st1 st8">audio_dac_data</text>
+<line class="st6" x1="249.3" y1="200.9" x2="245.5" y2="200.9"/>
+<text transform="matrix(1 0 0 1 247.7729 199.7374)" class="st7 st1 st8">audio_i2c_sclk</text>
+<line class="st6" x1="249.3" y1="208.4" x2="245.5" y2="208.4"/>
+<text transform="matrix(1 0 0 1 247.7729 207.2189)" class="st7 st1 st8">audio_i2c_sdat</text>
+<line class="st6" x1="249.3" y1="223.3" x2="245.5" y2="223.3"/>
+<text transform="matrix(1 0 0 1 247.7729 222.1827)" class="st7 st1 st8">flash_conn_CE_N</text>
+<line class="st6" x1="249.3" y1="238.3" x2="245.5" y2="238.3"/>
+<text transform="matrix(1 0 0 1 247.7729 237.1466)" class="st7 st1 st8">flash_conn_OE_N</text>
+<line class="st6" x1="249.3" y1="245.8" x2="245.5" y2="245.8"/>
+<text transform="matrix(1 0 0 1 247.7729 244.6281)" class="st7 st1 st8">flash_conn_RST_N</text>
+<line class="st6" x1="249.3" y1="253.3" x2="245.5" y2="253.3"/>
+<text transform="matrix(1 0 0 1 247.7729 252.1105)" class="st7 st1 st8">flash_conn_WE_N</text>
+<line class="st6" x1="249.3" y1="290.7" x2="245.5" y2="290.7"/>
+<text transform="matrix(1 0 0 1 247.7729 289.5187)" class="st7 st1 st8">otg_hpi_cs_export</text>
+<line class="st6" x1="249.3" y1="305.6" x2="245.5" y2="305.6"/>
+<text transform="matrix(1 0 0 1 247.7729 304.4825)" class="st7 st1 st8">otg_hpi_r_export</text>
+<line class="st6" x1="249.3" y1="313.1" x2="245.5" y2="313.1"/>
+<text transform="matrix(1 0 0 1 247.7729 311.964)" class="st7 st1 st8">otg_hpi_w_export</text>
+<line class="st6" x1="249.3" y1="320.6" x2="245.5" y2="320.6"/>
+<text transform="matrix(1 0 0 1 247.7729 319.4464)" class="st7 st1 st8">ps2_clk_export</text>
+<line class="st6" x1="249.3" y1="328.1" x2="245.5" y2="328.1"/>
+<text transform="matrix(1 0 0 1 247.7729 326.9279)" class="st7 st1 st8">ps2_data_export</text>
+<line class="st6" x1="249.3" y1="335.6" x2="245.5" y2="335.6"/>
+<text transform="matrix(1 0 0 1 247.7729 334.4093)" class="st7 st1 st8">sd_sd_clk</text>
+<line class="st6" x1="249.3" y1="343" x2="245.5" y2="343"/>
+<text transform="matrix(1 0 0 1 247.7729 341.8917)" class="st7 st1 st8">sd_sd_cmd</text>
+<line class="st6" x1="249.3" y1="358" x2="245.5" y2="358"/>
+<text transform="matrix(1 0 0 1 247.7729 356.8546)" class="st7 st1 st8">sdram_clk_clk</text>
+<line class="st6" x1="249.3" y1="380.4" x2="245.5" y2="380.4"/>
+<text transform="matrix(1 0 0 1 247.7729 379.2999)" class="st7 st1 st8">sdram_wire_cas_n</text>
+<line class="st6" x1="249.3" y1="387.9" x2="245.5" y2="387.9"/>
+<text transform="matrix(1 0 0 1 247.7729 386.7823)" class="st7 st1 st8">sdram_wire_cke</text>
+<line class="st6" x1="249.3" y1="395.4" x2="245.5" y2="395.4"/>
+<text transform="matrix(1 0 0 1 247.7729 394.2638)" class="st7 st1 st8">sdram_wire_cs_n</text>
+<line class="st6" x1="249.3" y1="417.9" x2="245.5" y2="417.9"/>
+<text transform="matrix(1 0 0 1 247.7729 416.7091)" class="st7 st1 st8">sdram_wire_ras_n</text>
+<line class="st6" x1="249.3" y1="425.3" x2="245.5" y2="425.3"/>
+<text transform="matrix(1 0 0 1 247.7729 424.1906)" class="st7 st1 st8">sdram_wire_we_n</text>
+<line class="st6" x1="249.3" y1="440.3" x2="245.5" y2="440.3"/>
+<text transform="matrix(1 0 0 1 247.7729 439.1544)" class="st7 st1 st8">sram_ce_n</text>
+<line class="st6" x1="249.3" y1="455.3" x2="245.5" y2="455.3"/>
+<text transform="matrix(1 0 0 1 247.7729 454.1183)" class="st7 st1 st8">sram_lb_n</text>
+<line class="st6" x1="249.3" y1="462.7" x2="245.5" y2="462.7"/>
+<text transform="matrix(1 0 0 1 247.7729 461.5997)" class="st7 st1 st8">sram_oe_n</text>
+<line class="st6" x1="249.3" y1="470.2" x2="245.5" y2="470.2"/>
+<text transform="matrix(1 0 0 1 247.7729 469.0812)" class="st7 st1 st8">sram_ub_n</text>
+<line class="st6" x1="249.3" y1="477.7" x2="245.5" y2="477.7"/>
+<text transform="matrix(1 0 0 1 247.7729 476.5636)" class="st7 st1 st8">sram_we_n</text>
+<line class="st6" x1="249.3" y1="492.7" x2="245.5" y2="492.7"/>
+<text transform="matrix(1 0 0 1 247.7729 491.5265)" class="st7 st1 st8">vga_blank_n</text>
+<line class="st6" x1="249.3" y1="500.2" x2="245.5" y2="500.2"/>
+<text transform="matrix(1 0 0 1 247.7729 499.0089)" class="st7 st1 st8">vga_clk</text>
+<line class="st6" x1="249.3" y1="515.1" x2="245.5" y2="515.1"/>
+<text transform="matrix(1 0 0 1 247.7729 513.9728)" class="st7 st1 st8">vga_hs</text>
+<line class="st6" x1="249.3" y1="530.1" x2="245.5" y2="530.1"/>
+<text transform="matrix(1 0 0 1 247.7729 528.9357)" class="st7 st1 st8">vga_sync_n</text>
+<line class="st6" x1="249.3" y1="537.6" x2="245.5" y2="537.6"/>
+<text transform="matrix(1 0 0 1 247.7729 536.4181)" class="st7 st1 st8">vga_vs</text>
+<line class="st9" x1="249.3" y1="215.8" x2="245.5" y2="215.8"/>
+<text transform="matrix(1 0 0 1 247.7729 214.7013)" class="st7 st1 st8">flash_conn_ADDR[22..0]</text>
+<line class="st9" x1="249.3" y1="260.7" x2="245.5" y2="260.7"/>
+<text transform="matrix(1 0 0 1 247.7729 259.5919)" class="st7 st1 st8">hex_export[31..0]</text>
+<line class="st9" x1="249.3" y1="268.2" x2="245.5" y2="268.2"/>
+<text transform="matrix(1 0 0 1 247.7729 267.0734)" class="st7 st1 st8">ledg_export[8..0]</text>
+<line class="st9" x1="249.3" y1="275.7" x2="245.5" y2="275.7"/>
+<text transform="matrix(1 0 0 1 247.7729 274.5558)" class="st7 st1 st8">ledr_export[17..0]</text>
+<line class="st9" x1="249.3" y1="283.2" x2="245.5" y2="283.2"/>
+<text transform="matrix(1 0 0 1 247.7729 282.0372)" class="st7 st1 st8">otg_hpi_address_export[1..0]</text>
+<line class="st9" x1="249.3" y1="298.1" x2="245.5" y2="298.1"/>
+<text transform="matrix(1 0 0 1 247.7729 297.0011)" class="st7 st1 st8">otg_hpi_data_out_port[15..0]</text>
+<line class="st9" x1="249.3" y1="365.5" x2="245.5" y2="365.5"/>
+<text transform="matrix(1 0 0 1 247.7729 364.337)" class="st7 st1 st8">sdram_wire_addr[12..0]</text>
+<line class="st9" x1="249.3" y1="373" x2="245.5" y2="373"/>
+<text transform="matrix(1 0 0 1 247.7729 371.8185)" class="st7 st1 st8">sdram_wire_ba[1..0]</text>
+<line class="st9" x1="249.3" y1="410.4" x2="245.5" y2="410.4"/>
+<text transform="matrix(1 0 0 1 247.7729 409.2277)" class="st7 st1 st8">sdram_wire_dqm[3..0]</text>
+<line class="st9" x1="249.3" y1="432.8" x2="245.5" y2="432.8"/>
+<text transform="matrix(1 0 0 1 247.7729 431.673)" class="st7 st1 st8">sram_addr[19..0]</text>
+<line class="st9" x1="249.3" y1="485.2" x2="245.5" y2="485.2"/>
+<text transform="matrix(1 0 0 1 247.7729 484.045)" class="st7 st1 st8">vga_b[7..0]</text>
+<line class="st9" x1="249.3" y1="507.6" x2="245.5" y2="507.6"/>
+<text transform="matrix(1 0 0 1 247.7729 506.4904)" class="st7 st1 st8">vga_g[7..0]</text>
+<line class="st9" x1="249.3" y1="522.6" x2="245.5" y2="522.6"/>
+<text transform="matrix(1 0 0 1 247.7729 521.4542)" class="st7 st1 st8">vga_r[7..0]</text>
+<line class="st9" x1="249.3" y1="230.8" x2="245.5" y2="230.8"/>
+<text transform="matrix(1 0 0 1 247.7729 229.6652)" class="st7 st1 st8">flash_conn_DQ[7..0]</text>
+<line class="st9" x1="249.3" y1="350.5" x2="245.5" y2="350.5"/>
+<text transform="matrix(1 0 0 1 247.7729 349.3732)" class="st7 st1 st8">sd_sd_dat[3..0]</text>
+<line class="st9" x1="249.3" y1="402.9" x2="245.5" y2="402.9"/>
+<text transform="matrix(1 0 0 1 247.7729 401.7452)" class="st7 st1 st8">sdram_wire_dq[31..0]</text>
+<line class="st9" x1="249.3" y1="447.8" x2="245.5" y2="447.8"/>
+<text transform="matrix(1 0 0 1 247.7729 446.6359)" class="st7 st1 st8">sram_data[15..0]</text>
+<line class="st6" x1="226.8" y1="335.6" x2="223.1" y2="335.6"/>
+<line class="st6" x1="226.8" y1="343" x2="223.1" y2="343"/>
+<line class="st6" x1="226.8" y1="358" x2="223.1" y2="358"/>
+<line class="st9" x1="226.8" y1="350.5" x2="223.1" y2="350.5"/>
+<line class="st6" x1="241.8" y1="163.5" x2="245.5" y2="163.5"/>
+<line class="st6" x1="241.8" y1="171" x2="245.5" y2="171"/>
+<line class="st6" x1="241.8" y1="178.4" x2="245.5" y2="178.4"/>
+<line class="st6" x1="241.8" y1="185.9" x2="245.5" y2="185.9"/>
+<line class="st6" x1="241.8" y1="193.4" x2="245.5" y2="193.4"/>
+<line class="st6" x1="241.8" y1="200.9" x2="245.5" y2="200.9"/>
+<line class="st6" x1="241.8" y1="208.4" x2="245.5" y2="208.4"/>
+<line class="st6" x1="241.8" y1="223.3" x2="245.5" y2="223.3"/>
+<line class="st6" x1="241.8" y1="238.3" x2="245.5" y2="238.3"/>
+<line class="st6" x1="241.8" y1="245.8" x2="245.5" y2="245.8"/>
+<line class="st6" x1="241.8" y1="253.3" x2="245.5" y2="253.3"/>
+<line class="st6" x1="241.8" y1="290.7" x2="245.5" y2="290.7"/>
+<line class="st6" x1="241.8" y1="305.6" x2="245.5" y2="305.6"/>
+<line class="st6" x1="241.8" y1="313.1" x2="245.5" y2="313.1"/>
+<line class="st6" x1="241.8" y1="320.6" x2="245.5" y2="320.6"/>
+<line class="st6" x1="241.8" y1="328.1" x2="245.5" y2="328.1"/>
+<line class="st6" x1="241.8" y1="335.6" x2="245.5" y2="335.6"/>
+<line class="st6" x1="241.8" y1="343" x2="245.5" y2="343"/>
+<line class="st6" x1="241.8" y1="358" x2="245.5" y2="358"/>
+<line class="st6" x1="241.8" y1="380.4" x2="245.5" y2="380.4"/>
+<line class="st6" x1="241.8" y1="387.9" x2="245.5" y2="387.9"/>
+<line class="st6" x1="241.8" y1="395.4" x2="245.5" y2="395.4"/>
+<line class="st6" x1="241.8" y1="417.9" x2="245.5" y2="417.9"/>
+<line class="st6" x1="241.8" y1="425.3" x2="245.5" y2="425.3"/>
+<line class="st6" x1="241.8" y1="440.3" x2="245.5" y2="440.3"/>
+<line class="st6" x1="241.8" y1="455.3" x2="245.5" y2="455.3"/>
+<line class="st6" x1="241.8" y1="462.7" x2="245.5" y2="462.7"/>
+<line class="st6" x1="241.8" y1="470.2" x2="245.5" y2="470.2"/>
+<line class="st6" x1="241.8" y1="477.7" x2="245.5" y2="477.7"/>
+<line class="st6" x1="241.8" y1="492.7" x2="245.5" y2="492.7"/>
+<line class="st6" x1="241.8" y1="500.2" x2="245.5" y2="500.2"/>
+<line class="st6" x1="241.8" y1="515.1" x2="245.5" y2="515.1"/>
+<line class="st6" x1="241.8" y1="530.1" x2="245.5" y2="530.1"/>
+<line class="st6" x1="241.8" y1="537.6" x2="245.5" y2="537.6"/>
+<line class="st9" x1="241.8" y1="215.8" x2="245.5" y2="215.8"/>
+<line class="st9" x1="241.8" y1="260.7" x2="245.5" y2="260.7"/>
+<line class="st9" x1="241.8" y1="268.2" x2="245.5" y2="268.2"/>
+<line class="st9" x1="241.8" y1="275.7" x2="245.5" y2="275.7"/>
+<line class="st9" x1="241.8" y1="283.2" x2="245.5" y2="283.2"/>
+<line class="st9" x1="241.8" y1="298.1" x2="245.5" y2="298.1"/>
+<line class="st9" x1="241.8" y1="365.5" x2="245.5" y2="365.5"/>
+<line class="st9" x1="241.8" y1="373" x2="245.5" y2="373"/>
+<line class="st9" x1="241.8" y1="410.4" x2="245.5" y2="410.4"/>
+<line class="st9" x1="241.8" y1="432.8" x2="245.5" y2="432.8"/>
+<line class="st9" x1="241.8" y1="485.2" x2="245.5" y2="485.2"/>
+<line class="st9" x1="241.8" y1="507.6" x2="245.5" y2="507.6"/>
+<line class="st9" x1="241.8" y1="522.6" x2="245.5" y2="522.6"/>
+<line class="st9" x1="241.8" y1="230.8" x2="245.5" y2="230.8"/>
+<line class="st9" x1="241.8" y1="350.5" x2="245.5" y2="350.5"/>
+<line class="st9" x1="241.8" y1="402.9" x2="245.5" y2="402.9"/>
+<line class="st9" x1="241.8" y1="447.8" x2="245.5" y2="447.8"/>
+<polygon class="st0" points="492.4,10.1 495,7.5 498.4,7.5 501,10.1 498.4,12.7 495,12.7 "/>
+<text transform="matrix(1 0 0 1 504.0234 11.712)" class="st1 st2">AUD_BCLK</text>
+<polygon class="st0" points="492.4,17.6 492.4,15 497.7,15 500.3,17.6 497.7,20.2 492.4,20.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 19.194)" class="st1 st2">AUD_XCK</text>
+<polygon class="st0" points="492.4,32.5 492.4,29.9 497.7,29.9 500.3,32.5 497.7,35.2 492.4,35.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 34.1573)" class="st1 st2">AUD_DACDAT</text>
+<polygon class="st0" points="492.4,25.1 495,22.4 498.4,22.4 501,25.1 498.4,27.7 495,27.7 "/>
+<text transform="matrix(1 0 0 1 504.0234 26.6759)" class="st1 st2">AUD_DACLRCK</text>
+<polygon class="st10" points="492.4,55 492.4,52.4 497.7,52.4 500.3,55 497.7,57.6 492.4,57.6 "/>
+<text transform="matrix(1 0 0 1 503.2754 56.6027)" class="st1 st2">FL_ADDR[22..0]</text>
+<polygon class="st0" points="492.4,62.5 492.4,59.9 497.7,59.9 500.3,62.5 497.7,65.1 492.4,65.1 "/>
+<text transform="matrix(1 0 0 1 503.2754 64.0846)" class="st1 st2">FL_CE_N</text>
+<polygon class="st10" points="492.4,70 495,67.3 498.4,67.3 501,70 498.4,72.6 495,72.6 "/>
+<text transform="matrix(1 0 0 1 504.0234 71.5665)" class="st1 st2">FL_DQ[7..0]</text>
+<polygon class="st0" points="492.4,77.4 492.4,74.8 497.7,74.8 500.3,77.4 497.7,80.1 492.4,80.1 "/>
+<text transform="matrix(1 0 0 1 503.2754 79.048)" class="st1 st2">FL_OE_N</text>
+<polygon class="st0" points="492.4,84.9 492.4,82.3 497.7,82.3 500.3,84.9 497.7,87.5 492.4,87.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 86.5299)" class="st1 st2">FL_RESET_N</text>
+<polygon class="st0" points="492.4,92.4 492.4,89.8 497.7,89.8 500.3,92.4 497.7,95 492.4,95 "/>
+<text transform="matrix(1 0 0 1 503.2754 94.0118)" class="st1 st2">FL_WE_N</text>
+<polygon class="st0" points="39.8,335.6 37.2,338.2 31.9,338.2 31.9,332.9 37.2,332.9 "/>
+<text transform="matrix(1 0 0 1 0 337.1691)" class="st1 st2">AUD_ADCDAT</text>
+<polygon class="st10" points="492.4,305.6 492.4,303 497.7,303 500.3,305.6 497.7,308.2 492.4,308.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 307.2423)" class="st1 st2">LEDG[7..0]</text>
+<polygon class="st10" points="492.4,313.1 492.4,310.5 497.7,310.5 500.3,313.1 497.7,315.7 492.4,315.7 "/>
+<text transform="matrix(1 0 0 1 503.2754 314.7242)" class="st1 st2">LEDR[17..0]</text>
+<polygon class="st0" points="492.4,320.6 495,318 498.4,318 501,320.6 498.4,323.2 495,323.2 "/>
+<text transform="matrix(1 0 0 1 504.0234 322.2062)" class="st1 st2">PS2_KBCLK</text>
+<polygon class="st0" points="492.4,328.1 495,325.5 498.4,325.5 501,328.1 498.4,330.7 495,330.7 "/>
+<text transform="matrix(1 0 0 1 504.0234 329.6876)" class="st1 st2">PS2_KBDAT</text>
+<polygon class="st0" points="492.4,335.6 492.4,332.9 497.7,332.9 500.3,335.6 497.7,338.2 492.4,338.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 337.1691)" class="st1 st2">SD_CLK</text>
+<polygon class="st0" points="492.4,343 495,340.4 498.4,340.4 501,343 498.4,345.7 495,345.7 "/>
+<text transform="matrix(1 0 0 1 504.0234 344.6515)" class="st1 st2">SD_CMD</text>
+<polygon class="st10" points="492.4,350.5 495,347.9 498.4,347.9 501,350.5 498.4,353.1 495,353.1 "/>
+<text transform="matrix(1 0 0 1 504.0234 352.1329)" class="st1 st2">SD_DAT[3..0]</text>
+<polygon class="st0" points="492.4,358 492.4,355.4 497.7,355.4 500.3,358 497.7,360.6 492.4,360.6 "/>
+<text transform="matrix(1 0 0 1 503.2754 359.6144)" class="st1 st2">DRAM_CLK</text>
+<polygon class="st10" points="492.4,365.5 492.4,362.9 497.7,362.9 500.3,365.5 497.7,368.1 492.4,368.1 "/>
+<text transform="matrix(1 0 0 1 503.2754 367.0968)" class="st1 st2">DRAM_ADDR[12..0]</text>
+<polygon class="st10" points="492.4,373 492.4,370.3 497.7,370.3 500.3,373 497.7,375.6 492.4,375.6 "/>
+<text transform="matrix(1 0 0 1 503.2754 374.5782)" class="st1 st2">DRAM_BA[1..0]</text>
+<polygon class="st0" points="492.4,380.4 492.4,377.8 497.7,377.8 500.3,380.4 497.7,383.1 492.4,383.1 "/>
+<text transform="matrix(1 0 0 1 503.2754 382.0597)" class="st1 st2">DRAM_CAS_N</text>
+<polygon class="st0" points="39.8,369.2 37.2,371.8 31.9,371.8 31.9,366.6 37.2,366.6 "/>
+<text transform="matrix(1 0 0 1 7.4746 370.837)" class="st1 st2">CLOCK_50</text>
+<polygon class="st0" points="492.4,387.9 492.4,385.3 497.7,385.3 500.3,387.9 497.7,390.5 492.4,390.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 389.5421)" class="st1 st2">DRAM_CKE</text>
+<rect x="75.3" y="356.1" width="22.4" height="29.9"/>
+<rect x="73.4" y="354.3" class="st11" width="22.4" height="29.9"/>
+<rect x="73.4" y="354.3" class="st4" width="22.4" height="29.9"/>
+<polyline class="st4" points="73.4,370.3 76.1,369.2 73.4,368.1 "/>
+<text transform="matrix(1 0 0 1 76.3115 352.5851)" class="st1 st2">Reset_h</text>
+<path class="st6" d="M73.4,361.7c0-0.6-0.5-1.1-1.1-1.1s-1.1,0.5-1.1,1.1c0,0.6,0.5,1.1,1.1,1.1S73.4,362.4,73.4,361.7"/>
+<line class="st6" x1="69.7" y1="361.7" x2="71.2" y2="361.7"/>
+<text transform="matrix(1 0 0 1 74.1958 363.087)" class="st7 st1 st8">D</text>
+<line class="st6" x1="69.7" y1="369.2" x2="73.4" y2="369.2"/>
+<text transform="matrix(1 0 0 1 76.8145 370.5695)" class="st7 st1 st8">CLK</text>
+<line class="st6" x1="69.7" y1="376.7" x2="73.4" y2="376.7"/>
+<text transform="matrix(1 0 0 1 74.1958 378.0509)" class="st7 st1 st8">SCLR</text>
+<text transform="matrix(1 0 0 1 64.2148 375.4044)" class="st7 st1 st2">1&apos;h0</text>
+<line class="st6" x1="99.6" y1="369.2" x2="95.9" y2="369.2"/>
+<text transform="matrix(1 0 0 1 92.2344 370.5695)" class="st7 st1 st8">Q</text>
+<polygon class="st10" points="39.8,361.7 37.2,364.4 31.9,364.4 31.9,359.1 37.2,359.1 "/>
+<text transform="matrix(1 0 0 1 11.4609 363.3556)" class="st1 st2">KEY[1..0]</text>
+<polygon class="st0" points="492.4,395.4 492.4,392.8 497.7,392.8 500.3,395.4 497.7,398 492.4,398 "/>
+<text transform="matrix(1 0 0 1 503.2754 397.0245)" class="st1 st2">DRAM_CS_N</text>
+<polygon class="st10" points="492.4,402.9 495,400.3 498.4,400.3 501,402.9 498.4,405.5 495,405.5 "/>
+<text transform="matrix(1 0 0 1 504.0234 404.505)" class="st1 st2">DRAM_DQ[31..0]</text>
+<polygon class="st10" points="492.4,410.4 492.4,407.8 497.7,407.8 500.3,410.4 497.7,413 492.4,413 "/>
+<text transform="matrix(1 0 0 1 503.2754 411.9874)" class="st1 st2">DRAM_DQM[3..0]</text>
+<polygon class="st0" points="492.4,417.9 492.4,415.2 497.7,415.2 500.3,417.9 497.7,420.5 492.4,420.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 419.4698)" class="st1 st2">DRAM_RAS_N</text>
+<polygon class="st0" points="492.4,425.3 492.4,422.7 497.7,422.7 500.3,425.3 497.7,428 492.4,428 "/>
+<text transform="matrix(1 0 0 1 503.2754 426.9503)" class="st1 st2">DRAM_WE_N</text>
+<polygon class="st10" points="492.4,432.8 492.4,430.2 497.7,430.2 500.3,432.8 497.7,435.4 492.4,435.4 "/>
+<text transform="matrix(1 0 0 1 503.2754 434.4327)" class="st1 st2">SRAM_ADDR[19..0]</text>
+<polygon class="st0" points="492.4,470.2 492.4,467.6 497.7,467.6 500.3,470.2 497.7,472.8 492.4,472.8 "/>
+<text transform="matrix(1 0 0 1 503.2754 471.8409)" class="st1 st2">SRAM_UB_N</text>
+<polygon class="st0" points="492.4,477.7 492.4,475.1 497.7,475.1 500.3,477.7 497.7,480.3 492.4,480.3 "/>
+<text transform="matrix(1 0 0 1 503.2754 479.3234)" class="st1 st2">SRAM_WE_N</text>
+<polygon class="st10" points="492.4,485.2 492.4,482.6 497.7,482.6 500.3,485.2 497.7,487.8 492.4,487.8 "/>
+<text transform="matrix(1 0 0 1 503.2754 486.8058)" class="st1 st2">VGA_B[7..0]</text>
+<polygon class="st0" points="492.4,492.7 492.4,490.1 497.7,490.1 500.3,492.7 497.7,495.3 492.4,495.3 "/>
+<text transform="matrix(1 0 0 1 503.2754 494.2863)" class="st1 st2">VGA_BLANK_N</text>
+<polygon class="st0" points="492.4,500.2 492.4,497.5 497.7,497.5 500.3,500.2 497.7,502.8 492.4,502.8 "/>
+<text transform="matrix(1 0 0 1 503.2754 501.7687)" class="st1 st2">VGA_CLK</text>
+<polygon class="st10" points="492.4,507.6 492.4,505 497.7,505 500.3,507.6 497.7,510.3 492.4,510.3 "/>
+<text transform="matrix(1 0 0 1 503.2754 509.2511)" class="st1 st2">VGA_G[7..0]</text>
+<polygon class="st0" points="492.4,515.1 492.4,512.5 497.7,512.5 500.3,515.1 497.7,517.7 492.4,517.7 "/>
+<text transform="matrix(1 0 0 1 503.2754 516.7316)" class="st1 st2">VGA_HS</text>
+<polygon class="st10" points="492.4,522.6 492.4,520 497.7,520 500.3,522.6 497.7,525.2 492.4,525.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 524.214)" class="st1 st2">VGA_R[7..0]</text>
+<polygon class="st0" points="492.4,530.1 492.4,527.5 497.7,527.5 500.3,530.1 497.7,532.7 492.4,532.7 "/>
+<text transform="matrix(1 0 0 1 503.2754 531.6964)" class="st1 st2">VGA_SYNC_N</text>
+<polygon class="st0" points="492.4,537.6 492.4,534.9 497.7,534.9 500.3,537.6 497.7,540.2 492.4,540.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 539.1779)" class="st1 st2">VGA_VS</text>
+<polygon class="st0" points="492.4,440.3 492.4,437.7 497.7,437.7 500.3,440.3 497.7,442.9 492.4,442.9 "/>
+<text transform="matrix(1 0 0 1 503.2754 441.9152)" class="st1 st2">SRAM_CE_N</text>
+<polygon class="st10" points="492.4,447.8 495,445.2 498.4,445.2 501,447.8 498.4,450.4 495,450.4 "/>
+<text transform="matrix(1 0 0 1 504.0234 449.3956)" class="st1 st2">SRAM_DQ[15..0]</text>
+<polygon class="st0" points="492.4,455.3 492.4,452.6 497.7,452.6 500.3,455.3 497.7,457.9 492.4,457.9 "/>
+<text transform="matrix(1 0 0 1 503.2754 456.8781)" class="st1 st2">SRAM_LB_N</text>
+<polygon class="st0" points="492.4,462.7 492.4,460.1 497.7,460.1 500.3,462.7 497.7,465.4 492.4,465.4 "/>
+<text transform="matrix(1 0 0 1 503.2754 464.3605)" class="st1 st2">SRAM_OE_N</text>
+<polygon class="st0" points="492.4,40 492.4,37.4 497.7,37.4 500.3,40 497.7,42.6 492.4,42.6 "/>
+<text transform="matrix(1 0 0 1 503.2754 41.6393)" class="st1 st2">I2C_SCLK</text>
+<polygon class="st0" points="492.4,47.5 495,44.9 498.4,44.9 501,47.5 498.4,50.1 495,50.1 "/>
+<text transform="matrix(1 0 0 1 504.0234 49.1212)" class="st1 st2">I2C_SDAT</text>
+<polygon class="st10" points="492.4,597.4 492.4,594.8 497.7,594.8 500.3,597.4 497.7,600 492.4,600 "/>
+<text transform="matrix(1 0 0 1 503.2754 599.0323)" class="st1 st2">OTG_ADDR[1..0]</text>
+<polygon class="st0" points="492.4,604.9 492.4,602.3 497.7,602.3 500.3,604.9 497.7,607.5 492.4,607.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 606.5138)" class="st1 st2">OTG_CS_N</text>
+<polygon class="st10" points="492.4,612.4 495,609.8 498.4,609.8 501,612.4 498.4,615 495,615 "/>
+<text transform="matrix(1 0 0 1 504.0234 613.9952)" class="st1 st2">OTG_DATA[15..0]</text>
+<rect x="225" y="587.3" width="22.4" height="60.6"/>
+<rect x="223.1" y="585.4" class="st3" width="22.4" height="60.6"/>
+<rect x="223.1" y="585.4" class="st4" width="22.4" height="60.6"/>
+<line class="st5" x1="227.2" y1="587.3" x2="227.2" y2="591.8"/>
+<line class="st5" x1="225" y1="589.6" x2="229.4" y2="589.6"/>
+<rect x="224.2" y="586.6" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 212.7222 583.7716)" class="st1 st2">hpi_io_intf:hpi_io_inst</text>
+<line class="st6" x1="219.3" y1="597.4" x2="223.1" y2="597.4"/>
+<text transform="matrix(1 0 0 1 216.9331 596.2716)" class="st7 st1 st8">Clk</text>
+<line class="st6" x1="219.3" y1="604.9" x2="223.1" y2="604.9"/>
+<text transform="matrix(1 0 0 1 212.5635 603.754)" class="st7 st1 st8">Reset</text>
+<line class="st6" x1="219.3" y1="619.9" x2="223.1" y2="619.9"/>
+<text transform="matrix(1 0 0 1 202.3809 618.7169)" class="st7 st1 st8">from_sw_cs</text>
+<line class="st6" x1="219.3" y1="634.8" x2="223.1" y2="634.8"/>
+<text transform="matrix(1 0 0 1 204.876 633.6808)" class="st7 st1 st8">from_sw_r</text>
+<line class="st6" x1="219.3" y1="642.3" x2="223.1" y2="642.3"/>
+<text transform="matrix(1 0 0 1 203.4209 641.1622)" class="st7 st1 st8">from_sw_w</text>
+<line class="st9" x1="219.3" y1="612.4" x2="223.1" y2="612.4"/>
+<text transform="matrix(1 0 0 1 184.4961 611.2355)" class="st7 st1 st8">from_sw_address[1..0]</text>
+<line class="st9" x1="219.3" y1="627.3" x2="223.1" y2="627.3"/>
+<text transform="matrix(1 0 0 1 181.1626 626.1993)" class="st7 st1 st8">from_sw_data_out[15..0]</text>
+<line class="st6" x1="249.3" y1="604.9" x2="245.5" y2="604.9"/>
+<text transform="matrix(1 0 0 1 247.7729 603.754)" class="st7 st1 st8">OTG_CS_N</text>
+<line class="st6" x1="249.3" y1="619.9" x2="245.5" y2="619.9"/>
+<text transform="matrix(1 0 0 1 247.7729 618.7169)" class="st7 st1 st8">OTG_RD_N</text>
+<line class="st6" x1="249.3" y1="627.3" x2="245.5" y2="627.3"/>
+<text transform="matrix(1 0 0 1 247.7729 626.1993)" class="st7 st1 st8">OTG_RST_N</text>
+<line class="st6" x1="249.3" y1="634.8" x2="245.5" y2="634.8"/>
+<text transform="matrix(1 0 0 1 247.7729 633.6808)" class="st7 st1 st8">OTG_WR_N</text>
+<line class="st9" x1="249.3" y1="642.3" x2="245.5" y2="642.3"/>
+<text transform="matrix(1 0 0 1 247.7729 641.1622)" class="st7 st1 st8">from_sw_data_in[15..0]</text>
+<line class="st9" x1="249.3" y1="597.4" x2="245.5" y2="597.4"/>
+<text transform="matrix(1 0 0 1 247.7729 596.2716)" class="st7 st1 st8">OTG_ADDR[1..0]</text>
+<line class="st9" x1="249.3" y1="612.4" x2="245.5" y2="612.4"/>
+<text transform="matrix(1 0 0 1 247.7729 611.2355)" class="st7 st1 st8">OTG_DATA[15..0]</text>
+<line class="st6" x1="226.8" y1="597.4" x2="223.1" y2="597.4"/>
+<line class="st6" x1="226.8" y1="604.9" x2="223.1" y2="604.9"/>
+<line class="st6" x1="226.8" y1="619.9" x2="223.1" y2="619.9"/>
+<line class="st6" x1="226.8" y1="634.8" x2="223.1" y2="634.8"/>
+<line class="st6" x1="226.8" y1="642.3" x2="223.1" y2="642.3"/>
+<line class="st9" x1="226.8" y1="612.4" x2="223.1" y2="612.4"/>
+<line class="st9" x1="226.8" y1="627.3" x2="223.1" y2="627.3"/>
+<line class="st6" x1="241.8" y1="604.9" x2="245.5" y2="604.9"/>
+<line class="st6" x1="241.8" y1="619.9" x2="245.5" y2="619.9"/>
+<line class="st6" x1="241.8" y1="627.3" x2="245.5" y2="627.3"/>
+<line class="st6" x1="241.8" y1="634.8" x2="245.5" y2="634.8"/>
+<line class="st9" x1="241.8" y1="642.3" x2="245.5" y2="642.3"/>
+<line class="st9" x1="241.8" y1="597.4" x2="245.5" y2="597.4"/>
+<line class="st9" x1="241.8" y1="612.4" x2="245.5" y2="612.4"/>
+<polygon class="st0" points="492.4,619.9 492.4,617.2 497.7,617.2 500.3,619.9 497.7,622.5 492.4,622.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 621.4777)" class="st1 st2">OTG_OE_N</text>
+<polygon class="st0" points="492.4,627.3 492.4,624.7 497.7,624.7 500.3,627.3 497.7,630 492.4,630 "/>
+<text transform="matrix(1 0 0 1 503.2754 628.9591)" class="st1 st2">OTG_RST_N</text>
+<polygon class="st0" points="492.4,634.8 492.4,632.2 497.7,632.2 500.3,634.8 497.7,637.4 492.4,637.4 "/>
+<text transform="matrix(1 0 0 1 503.2754 636.4406)" class="st1 st2">OTG_WE_N</text>
+<rect x="434.4" y="104.7" width="22.4" height="15.7"/>
+<rect x="432.6" y="102.9" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="102.9" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="104.7" x2="436.7" y2="109.2"/>
+<line class="st5" x1="434.4" y1="107" x2="438.9" y2="107"/>
+<rect x="433.7" y="104" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 101.1974)" class="st1 st2">hexdriver:hexdrv4</text>
+<line class="st9" x1="428.8" y1="114.8" x2="432.6" y2="114.8"/>
+<text transform="matrix(1 0 0 1 420.3848 113.6974)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="114.8" x2="455" y2="114.8"/>
+<text transform="matrix(1 0 0 1 457.2627 113.6974)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="114.8" x2="432.6" y2="114.8"/>
+<line class="st9" x1="451.3" y1="114.8" x2="455" y2="114.8"/>
+<polygon class="st10" points="492.4,114.8 492.4,112.2 497.7,112.2 500.3,114.8 497.7,117.5 492.4,117.5 "/>
+<text transform="matrix(1 0 0 1 503.2754 116.4572)" class="st1 st2">HEX4[6..0]</text>
+<rect x="434.4" y="130.9" width="22.4" height="15.7"/>
+<rect x="432.6" y="129.1" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="129.1" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="130.9" x2="436.7" y2="135.4"/>
+<line class="st5" x1="434.4" y1="133.2" x2="438.9" y2="133.2"/>
+<rect x="433.7" y="130.2" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 127.3829)" class="st1 st2">hexdriver:hexdrv6</text>
+<line class="st9" x1="428.8" y1="141" x2="432.6" y2="141"/>
+<text transform="matrix(1 0 0 1 420.3848 139.8829)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="141" x2="455" y2="141"/>
+<text transform="matrix(1 0 0 1 457.2627 139.8829)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="141" x2="432.6" y2="141"/>
+<line class="st9" x1="451.3" y1="141" x2="455" y2="141"/>
+<polygon class="st10" points="492.4,141 492.4,138.4 497.7,138.4 500.3,141 497.7,143.7 492.4,143.7 "/>
+<text transform="matrix(1 0 0 1 503.2754 142.6432)" class="st1 st2">HEX6[6..0]</text>
+<rect x="434.4" y="157.1" width="22.4" height="15.7"/>
+<rect x="432.6" y="155.2" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="155.2" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="157.1" x2="436.7" y2="161.6"/>
+<line class="st5" x1="434.4" y1="159.4" x2="438.9" y2="159.4"/>
+<rect x="433.7" y="156.4" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 153.5695)" class="st1 st2">hexdriver:hexdrv7</text>
+<line class="st9" x1="428.8" y1="167.2" x2="432.6" y2="167.2"/>
+<text transform="matrix(1 0 0 1 420.3848 166.0695)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="167.2" x2="455" y2="167.2"/>
+<text transform="matrix(1 0 0 1 457.2627 166.0695)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="167.2" x2="432.6" y2="167.2"/>
+<line class="st9" x1="451.3" y1="167.2" x2="455" y2="167.2"/>
+<polygon class="st10" points="492.4,167.2 492.4,164.6 497.7,164.6 500.3,167.2 497.7,169.8 492.4,169.8 "/>
+<text transform="matrix(1 0 0 1 503.2754 168.8297)" class="st1 st2">HEX7[6..0]</text>
+<rect x="434.4" y="183.3" width="22.4" height="15.7"/>
+<rect x="432.6" y="181.4" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="181.4" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="183.3" x2="436.7" y2="187.8"/>
+<line class="st5" x1="434.4" y1="185.5" x2="438.9" y2="185.5"/>
+<rect x="433.7" y="182.6" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 179.756)" class="st1 st2">hexdriver:hexdrv0</text>
+<line class="st9" x1="428.8" y1="193.4" x2="432.6" y2="193.4"/>
+<text transform="matrix(1 0 0 1 420.3848 192.256)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="193.4" x2="455" y2="193.4"/>
+<text transform="matrix(1 0 0 1 457.2627 192.256)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="193.4" x2="432.6" y2="193.4"/>
+<line class="st9" x1="451.3" y1="193.4" x2="455" y2="193.4"/>
+<polygon class="st10" points="492.4,193.4 492.4,190.8 497.7,190.8 500.3,193.4 497.7,196 492.4,196 "/>
+<text transform="matrix(1 0 0 1 503.2754 195.0157)" class="st1 st2">HEX0[6..0]</text>
+<rect x="434.4" y="209.5" width="22.4" height="15.7"/>
+<rect x="432.6" y="207.6" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="207.6" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="209.5" x2="436.7" y2="214"/>
+<line class="st5" x1="434.4" y1="211.7" x2="438.9" y2="211.7"/>
+<rect x="433.7" y="208.7" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 205.9425)" class="st1 st2">hexdriver:hexdrv1</text>
+<line class="st9" x1="428.8" y1="219.6" x2="432.6" y2="219.6"/>
+<text transform="matrix(1 0 0 1 420.3848 218.4425)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="219.6" x2="455" y2="219.6"/>
+<text transform="matrix(1 0 0 1 457.2627 218.4425)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="219.6" x2="432.6" y2="219.6"/>
+<line class="st9" x1="451.3" y1="219.6" x2="455" y2="219.6"/>
+<polygon class="st10" points="492.4,219.6 492.4,217 497.7,217 500.3,219.6 497.7,222.2 492.4,222.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 221.2018)" class="st1 st2">HEX1[6..0]</text>
+<rect x="434.4" y="235.7" width="22.4" height="15.7"/>
+<rect x="432.6" y="233.8" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="233.8" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="235.7" x2="436.7" y2="240.2"/>
+<line class="st5" x1="434.4" y1="237.9" x2="438.9" y2="237.9"/>
+<rect x="433.7" y="234.9" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 232.1281)" class="st1 st2">hexdriver:hexdrv2</text>
+<line class="st9" x1="428.8" y1="245.8" x2="432.6" y2="245.8"/>
+<text transform="matrix(1 0 0 1 420.3848 244.6281)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="245.8" x2="455" y2="245.8"/>
+<text transform="matrix(1 0 0 1 457.2627 244.6281)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="245.8" x2="432.6" y2="245.8"/>
+<line class="st9" x1="451.3" y1="245.8" x2="455" y2="245.8"/>
+<polygon class="st10" points="492.4,245.8 492.4,243.2 497.7,243.2 500.3,245.8 497.7,248.4 492.4,248.4 "/>
+<text transform="matrix(1 0 0 1 503.2754 247.3883)" class="st1 st2">HEX2[6..0]</text>
+<rect x="434.4" y="261.9" width="22.4" height="15.7"/>
+<rect x="432.6" y="260" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="260" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="261.9" x2="436.7" y2="266.4"/>
+<line class="st5" x1="434.4" y1="264.1" x2="438.9" y2="264.1"/>
+<rect x="433.7" y="261.1" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 258.3146)" class="st1 st2">hexdriver:hexdrv3</text>
+<line class="st9" x1="428.8" y1="272" x2="432.6" y2="272"/>
+<text transform="matrix(1 0 0 1 420.3848 270.8146)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="272" x2="455" y2="272"/>
+<text transform="matrix(1 0 0 1 457.2627 270.8146)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="272" x2="432.6" y2="272"/>
+<line class="st9" x1="451.3" y1="272" x2="455" y2="272"/>
+<polygon class="st10" points="492.4,272 492.4,269.3 497.7,269.3 500.3,272 497.7,274.6 492.4,274.6 "/>
+<text transform="matrix(1 0 0 1 503.2754 273.5743)" class="st1 st2">HEX3[6..0]</text>
+<rect x="434.4" y="288" width="22.4" height="15.7"/>
+<rect x="432.6" y="286.2" class="st3" width="22.4" height="15.7"/>
+<rect x="432.6" y="286.2" class="st4" width="22.4" height="15.7"/>
+<line class="st5" x1="436.7" y1="288" x2="436.7" y2="292.5"/>
+<line class="st5" x1="434.4" y1="290.3" x2="438.9" y2="290.3"/>
+<rect x="433.7" y="287.3" class="st4" width="6" height="6"/>
+<text transform="matrix(1 0 0 1 425.958 284.5011)" class="st1 st2">hexdriver:hexdrv5</text>
+<line class="st9" x1="428.8" y1="298.1" x2="432.6" y2="298.1"/>
+<text transform="matrix(1 0 0 1 420.3848 297.0011)" class="st7 st1 st8">In[3..0]</text>
+<line class="st9" x1="458.8" y1="298.1" x2="455" y2="298.1"/>
+<text transform="matrix(1 0 0 1 457.2627 297.0011)" class="st7 st1 st8">Out[6..0]</text>
+<line class="st9" x1="436.3" y1="298.1" x2="432.6" y2="298.1"/>
+<line class="st9" x1="451.3" y1="298.1" x2="455" y2="298.1"/>
+<polygon class="st10" points="492.4,298.1 492.4,295.5 497.7,295.5 500.3,298.1 497.7,300.8 492.4,300.8 "/>
+<text transform="matrix(1 0 0 1 503.2754 299.7609)" class="st1 st2">HEX5[6..0]</text>
+<polygon class="st0" points="492.4,103.6 492.4,101 497.7,101 500.3,103.6 497.7,106.2 492.4,106.2 "/>
+<text transform="matrix(1 0 0 1 503.2754 105.2345)" class="st1 st2">FL_WP_N</text>
+<text transform="matrix(1 0 0 1 483.1953 101.9454)" class="st7 st1 st2">1&apos;h1</text>
+<line class="st5" x1="249.3" y1="597.4" x2="492.4" y2="597.4"/>
+<line class="st4" x1="249.3" y1="604.9" x2="492.4" y2="604.9"/>
+<line class="st5" x1="249.3" y1="612.4" x2="492.4" y2="612.4"/>
+<line class="st4" x1="249.3" y1="619.9" x2="492.4" y2="619.9"/>
+<line class="st4" x1="249.3" y1="627.3" x2="492.4" y2="627.3"/>
+<line class="st4" x1="249.3" y1="634.8" x2="492.4" y2="634.8"/>
+<polyline class="st4" points="219.3,358 114.6,358 114.6,604.9 219.3,604.9 "/>
+<line class="st4" x1="99.6" y1="369.2" x2="114.6" y2="369.2"/>
+<rect x="113.8" y="368.5" class="st12" width="1.9" height="1.9"/>
+<polyline class="st4" points="69.7,369.2 47.3,369.2 47.3,343 107.1,343 107.1,597.4 219.3,597.4 "/>
+<line class="st4" x1="107.1" y1="343" x2="219.3" y2="343"/>
+<rect x="106.4" y="342.3" class="st12" width="1.9" height="1.9"/>
+<line class="st4" x1="39.8" y1="369.2" x2="47.3" y2="369.2"/>
+<rect x="46.5" y="368.5" class="st12" width="1.9" height="1.9"/>
+<line class="st4" x1="39.8" y1="335.6" x2="219.3" y2="335.6"/>
+<line class="st5" x1="39.8" y1="361.7" x2="69.7" y2="361.7"/>
+<line class="st5" x1="458.8" y1="167.2" x2="492.4" y2="167.2"/>
+<line class="st5" x1="458.8" y1="141" x2="492.4" y2="141"/>
+<line class="st5" x1="458.8" y1="298.1" x2="492.4" y2="298.1"/>
+<line class="st5" x1="458.8" y1="114.8" x2="492.4" y2="114.8"/>
+<line class="st5" x1="458.8" y1="272" x2="492.4" y2="272"/>
+<line class="st5" x1="458.8" y1="245.8" x2="492.4" y2="245.8"/>
+<line class="st5" x1="458.8" y1="219.6" x2="492.4" y2="219.6"/>
+<line class="st5" x1="458.8" y1="193.4" x2="492.4" y2="193.4"/>
+<polyline class="st4" points="249.3,163.5 312.9,163.5 312.9,2.6 492.4,2.6 "/>
+<polyline class="st4" points="249.3,171 320.3,171 320.3,10.1 492.4,10.1 "/>
+<polyline class="st4" points="249.3,178.4 327.8,178.4 327.8,17.6 492.4,17.6 "/>
+<polyline class="st4" points="249.3,185.9 335.3,185.9 335.3,25.1 492.4,25.1 "/>
+<polyline class="st4" points="249.3,193.4 342.8,193.4 342.8,32.5 492.4,32.5 "/>
+<polyline class="st4" points="249.3,200.9 350.3,200.9 350.3,40 492.4,40 "/>
+<polyline class="st4" points="249.3,208.4 357.8,208.4 357.8,47.5 492.4,47.5 "/>
+<polyline class="st5" points="249.3,215.8 365.2,215.8 365.2,55 492.4,55 "/>
+<polyline class="st4" points="249.3,223.3 372.7,223.3 372.7,62.5 492.4,62.5 "/>
+<polyline class="st5" points="249.3,230.8 380.2,230.8 380.2,70 492.4,70 "/>
+<polyline class="st4" points="249.3,238.3 387.7,238.3 387.7,77.4 492.4,77.4 "/>
+<polyline class="st4" points="249.3,245.8 395.2,245.8 395.2,84.9 492.4,84.9 "/>
+<polyline class="st4" points="249.3,253.3 402.6,253.3 402.6,92.4 492.4,92.4 "/>
+<polyline class="st5" points="219.3,350.5 122.1,350.5 122.1,649.8 312.9,649.8 312.9,642.3 249.3,642.3 "/>
+<line class="st5" x1="410.1" y1="113.7" x2="410.1" y2="299.3"/>
+<line class="st5" x1="410.1" y1="114.8" x2="428.8" y2="114.8"/>
+<line class="st5" x1="410.1" y1="141" x2="428.8" y2="141"/>
+<line class="st5" x1="410.1" y1="167.2" x2="428.8" y2="167.2"/>
+<line class="st5" x1="410.1" y1="193.4" x2="428.8" y2="193.4"/>
+<line class="st5" x1="410.1" y1="219.6" x2="428.8" y2="219.6"/>
+<line class="st5" x1="410.1" y1="245.8" x2="428.8" y2="245.8"/>
+<line class="st5" x1="249.3" y1="260.7" x2="410.1" y2="260.7"/>
+<line class="st5" x1="410.1" y1="272" x2="428.8" y2="272"/>
+<line class="st5" x1="410.1" y1="298.1" x2="428.8" y2="298.1"/>
+<rect x="409" y="259.6" class="st12" width="2.6" height="2.6"/>
+<polyline points="409.8,113 409.8,116.7 413.9,114.8 "/>
+<polyline points="409.8,139.2 409.8,142.9 413.9,141 "/>
+<polyline points="409.8,165.3 409.8,169.1 413.9,167.2 "/>
+<polyline points="409.8,191.5 409.8,195.3 413.9,193.4 "/>
+<polyline points="409.8,217.7 409.8,221.5 413.9,219.6 "/>
+<polyline points="409.8,243.9 409.8,247.6 413.9,245.8 "/>
+<polyline points="409.8,270.1 409.8,273.8 413.9,272 "/>
+<polyline points="409.8,296.3 409.8,300 413.9,298.1 "/>
+<polyline class="st5" points="249.3,268.2 395.2,268.2 395.2,305.6 492.4,305.6 "/>
+<polyline class="st5" points="249.3,275.7 380.2,275.7 380.2,313.1 492.4,313.1 "/>
+<polyline class="st5" points="219.3,612.4 129.6,612.4 129.6,545 372.7,545 372.7,283.2 249.3,283.2 "/>
+<polyline class="st4" points="219.3,619.9 137,619.9 137,552.5 357.8,552.5 357.8,290.7 249.3,290.7 "/>
+<polyline class="st5" points="219.3,627.3 144.5,627.3 144.5,560 342.8,560 342.8,298.1 249.3,298.1 "/>
+<polyline class="st4" points="219.3,634.8 152,634.8 152,567.5 320.3,567.5 320.3,305.6 249.3,305.6 "/>
+<polyline class="st4" points="219.3,642.3 159.5,642.3 159.5,575 312.9,575 312.9,313.1 249.3,313.1 "/>
+<line class="st4" x1="249.3" y1="320.6" x2="492.4" y2="320.6"/>
+<line class="st4" x1="249.3" y1="328.1" x2="492.4" y2="328.1"/>
+<line class="st4" x1="249.3" y1="335.6" x2="492.4" y2="335.6"/>
+<line class="st4" x1="249.3" y1="343" x2="492.4" y2="343"/>
+<line class="st5" x1="249.3" y1="350.5" x2="492.4" y2="350.5"/>
+<line class="st4" x1="249.3" y1="358" x2="492.4" y2="358"/>
+<line class="st5" x1="249.3" y1="365.5" x2="492.4" y2="365.5"/>
+<line class="st5" x1="249.3" y1="373" x2="492.4" y2="373"/>
+<line class="st4" x1="249.3" y1="380.4" x2="492.4" y2="380.4"/>
+<line class="st4" x1="249.3" y1="387.9" x2="492.4" y2="387.9"/>
+<line class="st4" x1="249.3" y1="395.4" x2="492.4" y2="395.4"/>
+<line class="st5" x1="249.3" y1="402.9" x2="492.4" y2="402.9"/>
+<line class="st5" x1="249.3" y1="410.4" x2="492.4" y2="410.4"/>
+<line class="st4" x1="249.3" y1="417.9" x2="492.4" y2="417.9"/>
+<line class="st4" x1="249.3" y1="425.3" x2="492.4" y2="425.3"/>
+<line class="st5" x1="249.3" y1="432.8" x2="492.4" y2="432.8"/>
+<line class="st4" x1="249.3" y1="440.3" x2="492.4" y2="440.3"/>
+<line class="st5" x1="249.3" y1="447.8" x2="492.4" y2="447.8"/>
+<line class="st4" x1="249.3" y1="455.3" x2="492.4" y2="455.3"/>
+<line class="st4" x1="249.3" y1="462.7" x2="492.4" y2="462.7"/>
+<line class="st4" x1="249.3" y1="470.2" x2="492.4" y2="470.2"/>
+<line class="st4" x1="249.3" y1="477.7" x2="492.4" y2="477.7"/>
+<line class="st5" x1="249.3" y1="485.2" x2="492.4" y2="485.2"/>
+<line class="st4" x1="249.3" y1="492.7" x2="492.4" y2="492.7"/>
+<line class="st4" x1="249.3" y1="500.2" x2="492.4" y2="500.2"/>
+<line class="st5" x1="249.3" y1="507.6" x2="492.4" y2="507.6"/>
+<line class="st4" x1="249.3" y1="515.1" x2="492.4" y2="515.1"/>
+<line class="st5" x1="249.3" y1="522.6" x2="492.4" y2="522.6"/>
+<line class="st4" x1="249.3" y1="530.1" x2="492.4" y2="530.1"/>
+<line class="st4" x1="249.3" y1="537.6" x2="492.4" y2="537.6"/>
+<text transform="matrix(1 0 0 1 412.3721 113.6974)" class="st1 st8">19:16</text>
+<text transform="matrix(1 0 0 1 412.3721 139.8829)" class="st1 st8">27:24</text>
+<text transform="matrix(1 0 0 1 412.3721 166.0695)" class="st1 st8">31:28</text>
+<text transform="matrix(1 0 0 1 412.3721 192.256)" class="st1 st8">3:0</text>
+<text transform="matrix(1 0 0 1 412.3721 218.4425)" class="st1 st8">7:4</text>
+<text transform="matrix(1 0 0 1 412.3721 244.6281)" class="st1 st8">11:8</text>
+<text transform="matrix(1 0 0 1 412.3721 270.8146)" class="st1 st8">15:12</text>
+<text transform="matrix(1 0 0 1 412.3721 297.0011)" class="st1 st8">23:20</text>
+</svg>