Merge branch 'main' of https://git.1159.cl/Mario1159/sscs-chipathon-sar-adc
This commit is contained in:
commit
4a5d1894fc
@ -25,6 +25,7 @@
|
||||
<glyph unicode='4' horiz-adv-x='569' vert-adv-y='569' glyph-name='four' d='M529 164V200H418V646C418 667 418 674 396 674C384 674 380 674 370 660L39 200V164H333V82C333 48 333 36 252 36H225V0C275 2 339 4 375 4C412 4 476 2 526 0V36H499C418 36 418 48 418 82V164H529ZM340 566V200H76L340 566Z'/>
|
||||
<glyph unicode='5' horiz-adv-x='569' vert-adv-y='569' glyph-name='five' d='M155 558C206 545 236 545 252 545C384 545 462 635 462 650C462 661 455 664 450 664C448 664 446 664 442 661C418 652 365 632 291 632C263 632 210 634 145 659C135 664 133 664 132 664C119 664 119 653 119 637V342C119 325 119 313 135 313C144 313 145 315 155 327C198 382 259 390 294 390C354 390 381 342 386 334C404 301 410 263 410 205C410 175 410 116 380 72C355 36 312 12 263 12C198 12 131 48 106 114C144 111 163 136 163 163C163 206 126 214 113 214C111 214 63 214 63 160C63 70 145-20 265-20C393-20 505 75 505 201C505 314 419 418 295 418C251 418 199 407 155 369V558Z'/>
|
||||
<glyph unicode='6' horiz-adv-x='569' vert-adv-y='569' glyph-name='six' d='M150 327C150 409 157 483 195 544C229 598 283 635 347 635C377 635 417 627 437 600C412 598 391 581 391 552C391 527 408 505 438 505S486 525 486 554C486 612 444 664 345 664C201 664 54 532 54 317C54 58 176-20 286-20C408-20 514 73 514 204C514 331 413 425 296 425C216 425 172 372 150 327ZM286 12C236 12 197 41 176 85C161 115 153 165 153 225C153 322 211 397 291 397C337 397 368 379 393 342C417 304 418 262 418 204C418 147 418 105 391 66C367 31 335 12 286 12Z'/>
|
||||
<glyph unicode='7' horiz-adv-x='569' vert-adv-y='569' glyph-name='seven' d='M535 604C545 616 545 618 545 644H283C243 644 232 645 196 648C144 652 142 659 139 676H105L70 462H104C106 477 116 543 132 553C140 559 221 559 236 559H454C422 517 371 455 350 427C219 255 207 96 207 37C207 26 207-20 254-20C302-20 302 25 302 38V78C302 272 342 361 385 415L535 604Z'/>
|
||||
<glyph unicode='8' horiz-adv-x='569' vert-adv-y='569' glyph-name='eight' d='M355 361C433 399 483 446 483 515C483 612 382 664 285 664C175 664 85 592 85 497C85 450 107 416 125 396C143 375 150 371 209 336C153 312 54 258 54 153C54 42 169-20 283-20C410-20 514 61 514 169C514 235 475 291 417 325C404 333 369 353 355 361ZM192 456C166 471 138 498 138 535C138 598 211 635 283 635C361 635 430 586 430 515C430 426 326 381 324 381S320 382 313 386L192 456ZM241 317L378 238C404 223 454 193 454 134C454 59 371 12 285 12C193 12 114 71 114 153C114 227 169 284 241 317Z'/>
|
||||
<glyph unicode='9' horiz-adv-x='569' vert-adv-y='569' glyph-name='nine' d='M418 298C418 50 295 12 235 12C213 12 160 14 133 45C174 49 177 83 177 92C177 117 160 139 130 139S82 119 82 90C82 22 139-20 236-20C379-20 514 115 514 329C514 577 404 664 287 664C254 664 185 659 128 603C94 570 54 531 54 441C54 314 155 220 272 220C352 220 395 273 418 318V298ZM277 248C238 248 201 261 173 307C150 344 150 386 150 441C150 499 150 539 179 579C203 614 236 635 288 635C339 635 369 603 385 577C412 535 415 465 415 430C415 300 340 248 277 248Z'/>
|
||||
</font>
|
||||
@ -109,10 +110,13 @@ text.f3 {font-family:cmr7;font-size:6.973848px}
|
||||
<path d='M172.9612 53.6558V68.0428H186.8472M186.8472 83.3238H172.9612V97.7108' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M186.8472 64.7698V86.5978M190.1832 68.0428V83.3238' stroke='#000' fill='none' stroke-width='.797' stroke-miterlimit='10'/>
|
||||
<path d='M190.1832 75.6838H200.9372' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M150.9332-2.2695H165.3202V11.6211M180.5972 11.6211V-2.2695H194.9842' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M150.9332-2.2695H165.3202V11.6211' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M162.0472 11.6211H183.8752M165.3202 14.9531H180.5972' stroke='#000' fill='none' stroke-width='.797' stroke-miterlimit='10'/>
|
||||
<path d='M180.5972 11.6211V-2.2695H194.9842' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M172.9612 14.9531V25.7109' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M151.1332-2.2695V12.4727H73.7462' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M172.9612 14.9531C172.0822 14.9531 171.3712 15.6641 171.3712 16.543C171.3712 17.418 172.0822 18.1289 172.9612 18.1289C173.8362 18.1289 174.5472 17.418 174.5472 16.543C174.5472 15.6641 173.8362 14.9531 172.9612 14.9531Z'/>
|
||||
<path d='M172.9612 14.9531C172.0822 14.9531 171.3712 15.6641 171.3712 16.543C171.3712 17.418 172.0822 18.1289 172.9612 18.1289C173.8362 18.1289 174.5472 17.418 174.5472 16.543C174.5472 15.6641 173.8362 14.9531 172.9612 14.9531Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M151.1332-2.2695V-31.1836H73.7462' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M200.7382 75.6838H214.9142H271.6052' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M236.9372 103.4648H222.5512V89.5738M207.2732 89.5738V103.4648H192.8872' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M225.8282 89.5738H204.0002M222.5512 86.2418H207.2732' stroke='#000' fill='none' stroke-width='.797' stroke-miterlimit='10'/>
|
||||
@ -158,6 +162,8 @@ text.f3 {font-family:cmr7;font-size:6.973848px}
|
||||
<text class='f3' x='-44.149636' y='-50.381854' transform='matrix(1 0 0 1 201.9478 86.5632)'>5</text>
|
||||
<text class='f0' x='-53.814796' y='-51.876234' transform='matrix(1 0 0 1 201.9478 130.2174)'>M</text>
|
||||
<text class='f3' x='-44.149636' y='-50.381854' transform='matrix(1 0 0 1 201.9478 130.2174)'>6</text>
|
||||
<text class='f0' x='-53.814796' y='-51.876234' transform='matrix(1 0 0 1 219.7068 44.59291)'>M</text>
|
||||
<text class='f3' x='-44.149636' y='-50.381854' transform='matrix(1 0 0 1 219.7068 44.59291)'>7</text>
|
||||
<text class='f0' x='-53.814796' y='-51.876234' transform='matrix(1 0 0 1 247.4868 122.5464)'>M</text>
|
||||
<text class='f3' x='-44.149636' y='-50.381854' transform='matrix(1 0 0 1 247.4868 122.5464)'>8</text>
|
||||
<text class='f0' x='-53.814796' y='-51.876234' transform='matrix(1 0 0 1 261.6598 165.6682)'>M</text>
|
||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 29 KiB |
54
figures/tgate.svg
Normal file
54
figures/tgate.svg
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- This file was generated by dvisvgm 3.0.3 -->
|
||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='102.582852pt' height='107.062782pt' viewBox='-63.698806 -63.698286 102.582852 107.062782'>
|
||||
<defs>
|
||||
<font id='cmr10' horiz-adv-x='0'>
|
||||
<font-face font-family='cmr10' units-per-em='1000' ascent='750' descent='250'/>
|
||||
<glyph unicode='¯' horiz-adv-x='500' vert-adv-y='500' glyph-name='macron' d='M430 559V590H69V559H430Z'/>
|
||||
</font>
|
||||
<font id='cmmi10' horiz-adv-x='0'>
|
||||
<font-face font-family='cmmi10' units-per-em='1000' ascent='750' descent='250'/>
|
||||
<glyph unicode='A' horiz-adv-x='750' vert-adv-y='750' glyph-name='A' d='M179 115C139 48 100 34 56 31C44 30 35 30 35 11C35 5 40 0 48 0C75 0 106 3 134 3C167 3 202 0 234 0C240 0 253 0 253 19C253 30 244 31 237 31C214 33 190 41 190 66C190 78 196 89 204 103L280 231H531C533 210 547 74 547 64C547 34 495 31 475 31C461 31 451 31 451 11C451 0 463 0 465 0C506 0 549 3 590 3C615 3 678 0 703 0C709 0 721 0 721 20C721 31 711 31 698 31C636 31 636 38 633 67L572 692C570 712 570 716 553 716C537 716 533 709 527 699L179 115ZM299 262L496 592L528 262H299Z'/>
|
||||
<glyph unicode='i' horiz-adv-x='344' vert-adv-y='344' glyph-name='i' d='M284 625C284 645 270 661 247 661C220 661 193 635 193 608C193 589 207 572 231 572C254 572 284 595 284 625ZM208 249C220 278 220 280 230 307C238 327 243 341 243 360C243 405 211 442 161 442C67 442 29 297 29 288C29 278 39 278 41 278C51 278 52 280 57 296C84 390 124 420 158 420C166 420 183 420 183 388C183 367 176 346 172 336C164 310 119 194 103 151C93 125 80 92 80 71C80 24 114-11 162-11C256-11 293 134 293 143C293 153 284 153 281 153C271 153 271 150 266 135C248 72 215 11 164 11C147 11 140 21 140 44C140 69 146 83 169 144L208 249Z'/>
|
||||
<glyph unicode='n' horiz-adv-x='600' vert-adv-y='600' glyph-name='n' d='M88 59C85 44 79 21 79 16C79-2 93-11 108-11C120-11 138-3 145 17C146 19 158 66 164 91L186 181C192 203 198 225 203 248C207 265 215 294 216 298C231 329 284 420 379 420C424 420 433 383 433 350C433 288 384 160 368 117C359 94 358 82 358 71C358 24 393-11 440-11C534-11 571 135 571 143C571 153 562 153 559 153C549 153 549 150 544 135C524 67 491 11 442 11C425 11 418 21 418 44C418 69 427 93 436 115C455 168 497 278 497 335C497 402 454 442 382 442C292 442 243 378 226 355C221 411 180 442 134 442S69 403 59 385C43 351 29 292 29 288C29 278 39 278 41 278C51 278 52 279 58 301C75 372 95 420 131 420C151 420 162 407 162 374C162 353 159 342 146 290L88 59Z'/>
|
||||
<glyph unicode='o' horiz-adv-x='484' vert-adv-y='484' glyph-name='o' d='M469 273C469 377 399 442 309 442C175 442 41 300 41 158C41 59 108-11 201-11C334-11 469 127 469 273ZM202 11C159 11 115 42 115 120C115 169 141 277 173 328C223 405 280 420 308 420C366 420 396 372 396 312C396 273 376 168 338 103C303 45 248 11 202 11Z'/>
|
||||
<glyph unicode='t' horiz-adv-x='361' vert-adv-y='361' glyph-name='t' d='M206 400H300C320 400 330 400 330 420C330 431 320 431 302 431H214C250 573 255 593 255 599C255 616 243 626 226 626C223 626 195 625 186 590L147 431H53C33 431 23 431 23 412C23 400 31 400 51 400H139C67 116 63 99 63 81C63 27 101-11 155-11C257-11 314 135 314 143C314 153 306 153 302 153C293 153 292 150 287 139C244 35 191 11 157 11C136 11 126 24 126 57C126 81 128 88 132 105L206 400Z'/>
|
||||
<glyph unicode='u' horiz-adv-x='572' vert-adv-y='572' glyph-name='u' d='M350 56C361 15 396-11 439-11C474-11 497 12 513 44C530 80 543 141 543 143C543 153 534 153 531 153C521 153 520 149 517 135C503 79 484 11 442 11C421 11 411 24 411 57C411 79 423 126 431 161L459 269C462 284 472 322 476 337C481 360 491 398 491 404C491 422 477 431 462 431C457 431 431 430 423 396C404 323 360 148 348 95C347 91 307 11 234 11C182 11 172 56 172 93C172 149 200 228 226 297C238 327 243 341 243 360C243 405 211 442 161 442C66 442 29 297 29 288C29 278 39 278 41 278C51 278 52 280 57 296C82 383 120 420 158 420C167 420 183 419 183 387C183 363 172 334 166 319C129 220 108 158 108 109C108 14 177-11 231-11C297-11 333 34 350 56Z'/>
|
||||
</font>
|
||||
</defs>
|
||||
<style type='text/css'>
|
||||
<![CDATA[text.f0 {font-family:cmmi10;font-size:9.96264px}
|
||||
text.f1 {font-family:cmr10;font-size:9.96264px}
|
||||
]]>
|
||||
</style>
|
||||
<g id='page1'>
|
||||
<path d='M7.2617-17.1367H-7.125V-31.0273' stroke='#000' fill='none' stroke-width='.3985'/>
|
||||
<path d='M-3.8516-31.0273H-25.6797M-7.125-34.3594H-22.40625' stroke='#000' fill='none' stroke-width='.797'/>
|
||||
<path d='M-22.40625-31.0273V-17.1367H-36.793' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-14.765625-34.3594V-45.117187' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-14.765625-34.3594C-13.890625-34.3594-13.17969-35.07031-13.17969-35.94922C-13.17969-36.82422-13.890625-37.53516-14.765625-37.53516C-15.644531-37.53516-16.35156-36.82422-16.35156-35.94922C-16.35156-35.07031-15.644531-34.3594-14.765625-34.3594Z'/>
|
||||
<path d='M-14.765625-34.3594C-13.890625-34.3594-13.17969-35.07031-13.17969-35.94922C-13.17969-36.82422-13.890625-37.53516-14.765625-37.53516C-15.644531-37.53516-16.35156-36.82422-16.35156-35.94922C-16.35156-35.07031-15.644531-34.3594-14.765625-34.3594Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-36.793-1.8281H-22.40625V12.0586M-7.125 12.0586V-1.8281H7.2617' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-25.6797 12.0586H-3.8516M-22.40625 15.3945H-7.125' stroke='#000' fill='none' stroke-width='.797' stroke-miterlimit='10'/>
|
||||
<path d='M-14.765625 15.3945V26.1484' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-36.5937-17.1367V-1.8281' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M7.0625-17.1367V-1.8281' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M7.0625-9.4844H14.1484M14.1484-9.4844H21.2344' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M22.8203-9.4844C22.8203-10.3594 22.1094-11.0703 21.2344-11.0703S19.6484-10.3594 19.6484-9.4844C19.6484-8.6055 20.3594-7.8945 21.2344-7.8945S22.8203-8.6055 22.8203-9.4844Z'/>
|
||||
<path d='M22.8203-9.4844C22.8203-10.3594 22.1094-11.0703 21.2344-11.0703S19.6484-10.3594 19.6484-9.4844C19.6484-8.6055 20.3594-7.8945 21.2344-7.8945S22.8203-8.6055 22.8203-9.4844Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<text class='f0' x='-14.766206' y='-44.916904' transform='matrix(1 0 0 1 39.5203 38.49744)'>out</text>
|
||||
<path d='M-36.5937-9.4844H-43.6797M-43.6797-9.4844H-50.7656' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-49.1797-9.4844C-49.1797-10.3594-49.8906-11.0703-50.7656-11.0703C-51.6445-11.0703-52.3555-10.3594-52.3555-9.4844C-52.3555-8.6055-51.6445-7.8945-50.7656-7.8945C-49.8906-7.8945-49.1797-8.6055-49.1797-9.4844Z'/>
|
||||
<path d='M-49.1797-9.4844C-49.1797-10.3594-49.8906-11.0703-50.7656-11.0703C-51.6445-11.0703-52.3555-10.3594-52.3555-9.4844C-52.3555-8.6055-51.6445-7.8945-50.7656-7.8945C-49.8906-7.8945-49.1797-8.6055-49.1797-9.4844Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<text class='f0' x='-14.766206' y='-44.916904' transform='matrix(1 0 0 1 -48.9326 38.71884)'>in</text>
|
||||
<path d='M-14.765625-44.917968V-48.46094M-14.765625-48.46094V-52.00391' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-13.17969-52.00391C-13.17969-52.87891-13.890625-53.58984-14.765625-53.58984C-15.644531-53.58984-16.35156-52.87891-16.35156-52.00391S-15.644531-50.41797-14.765625-50.41797C-13.890625-50.41797-13.17969-51.12891-13.17969-52.00391Z'/>
|
||||
<path d='M-13.17969-52.00391C-13.17969-52.87891-13.890625-53.58984-14.765625-53.58984C-15.644531-53.58984-16.35156-52.87891-16.35156-52.00391S-15.644531-50.41797-14.765625-50.41797C-13.890625-50.41797-13.17969-51.12891-13.17969-52.00391Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<text class='f1' x='-12.137133' y='-47.435231' transform='matrix(1 0 0 1 -3.736 -10.6065)'>¯</text>
|
||||
<text class='f0' x='-14.766206' y='-44.916904' transform='matrix(1 0 0 1 -3.736 -10.6065)'>A</text>
|
||||
<path d='M-14.765625 25.9492V29.4922M-14.765625 29.4922V33.0352' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<path d='M-13.17969 33.0352C-13.17969 32.1602-13.890625 31.4492-14.765625 31.4492C-15.644531 31.4492-16.35156 32.1602-16.35156 33.0352C-16.35156 33.9141-15.644531 34.625-14.765625 34.625C-13.890625 34.625-13.17969 33.9141-13.17969 33.0352Z'/>
|
||||
<path d='M-13.17969 33.0352C-13.17969 32.1602-13.890625 31.4492-14.765625 31.4492C-15.644531 31.4492-16.35156 32.1602-16.35156 33.0352C-16.35156 33.9141-15.644531 34.625-14.765625 34.625C-13.890625 34.625-13.17969 33.9141-13.17969 33.0352Z' stroke='#000' fill='none' stroke-width='.3985' stroke-miterlimit='10'/>
|
||||
<text class='f0' x='-14.766206' y='-44.916904' transform='matrix(1 0 0 1 -3.736 88.2814)'>A</text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.7 KiB |
249
spice/comp.spice
Normal file
249
spice/comp.spice
Normal file
@ -0,0 +1,249 @@
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch_tb.sch
|
||||
**.subckt adc_comp_latch_tb
|
||||
V1 VDD GND 1.8
|
||||
V2 clk GND 0 PULSE(0 1.8 400n 1f 1f 400n 800n)
|
||||
V3 inp GND 0 PULSE({vcm-5m} {vcm+5m} 0 8u 8u 8u 16u)
|
||||
V4 inn GND 0 PULSE({vcm+5m} {vcm-5m} 0 8u 8u 8u 16u)
|
||||
x1 VDD GND clk inp inn comp_trig qn q adc_comp_latch
|
||||
**** begin user architecture code
|
||||
|
||||
.param mc_mm_switch=0
|
||||
.param mc_pr_switch=0
|
||||
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/corners/tt.spice
|
||||
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical.spice
|
||||
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical__lin.spice
|
||||
.include /content/conda-env/share/pdk/sky130A/libs.tech/ngspice/corners/tt/specialized_cells.spice
|
||||
|
||||
|
||||
.save all
|
||||
.temp 25
|
||||
.OPTIONS RELTOL=.001 TRTOL=1 ABSTOL=1e-16 CHGTOL=1.0e-16 DEFAD=1.0e-16
|
||||
.param vcm=900m
|
||||
.control
|
||||
tran 100p 4.403u 4.3995u
|
||||
set wr_singlescale
|
||||
wrdata plot1.txt v(inp)-v(inn)
|
||||
wrdata plot2.txt v(q) v(comp_trig)
|
||||
wrdata delay.txt v(clk) v(comp_trig) v(q)
|
||||
wrdata plot4.txt v(x1.x1.on) v(x1.x1.op)
|
||||
wrdata plot5.txt v(x1.x1.bn) v(x1.x1.bp)
|
||||
.endc
|
||||
|
||||
**** end user architecture code
|
||||
**.ends
|
||||
|
||||
* expanding symbol: adc_comp_latch.sym # of pins=8
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_latch.sch
|
||||
.subckt adc_comp_latch VDD VSS clk inp inn comp_trig latch_qn latch_q
|
||||
*.iopin VDD
|
||||
*.iopin VSS
|
||||
*.ipin clk
|
||||
*.ipin inp
|
||||
*.ipin inn
|
||||
*.opin comp_trig
|
||||
*.opin latch_qn
|
||||
*.opin latch_q
|
||||
x4 VDD VSS clk net1 adc_inverter
|
||||
x5 VDD VSS net1 net2 adc_inverter
|
||||
x1 VDD VSS net2 net1 inp inn comp_outp comp_outn adc_comp_circuit
|
||||
x3 comp_outp comp_outn VDD comp_trig VSS adc_nor
|
||||
x2 comp_outp latch_qn VDD latch_q VSS comp_outn adc_nor_latch
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_inverter.sym # of pins=4
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_inverter.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_inverter.sch
|
||||
.subckt adc_inverter VDD VSS in out
|
||||
*.iopin VDD
|
||||
*.iopin VSS
|
||||
*.ipin in
|
||||
*.opin out
|
||||
XM2 out in VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.84 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM1 out in VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_comp_circuit.sym # of pins=8
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_circuit.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_circuit.sch
|
||||
.subckt adc_comp_circuit VPWR VGND clk nclk inp inn outp outn
|
||||
*.iopin VPWR
|
||||
*.iopin VGND
|
||||
*.ipin clk
|
||||
*.ipin nclk
|
||||
*.ipin inp
|
||||
*.ipin inn
|
||||
*.opin outp
|
||||
*.opin outn
|
||||
XM3 on inp in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=8 nf=4 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM4 op inn in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=8 nf=4 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM5 in_stage_net1 clk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=4 nf=8 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM6 in_stage_net2 bp VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM7 in_stage_net3 bn VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM8 bn op in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM9 bp on in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=4 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM10 bn bp VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM11 bn nclk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM12 bp nclk VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM13 bp bn VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM2 op clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=4 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM1 on clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=4 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
x1 VPWR VGND bp outp adc_comp_buffer
|
||||
x2 VPWR VGND bn outn adc_comp_buffer
|
||||
x3 VGND VGND on VGND VGND adc_noise_decoup_cell2
|
||||
x4 VGND VGND op VGND VGND adc_noise_decoup_cell2
|
||||
XM4_DUMMY in_stage_net1 inn in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM3_DUMMY in_stage_net1 inp in_stage_net1 VGND sky130_fd_pr__nfet_01v8_lvt L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM5_DUMMY2 in_stage_net1 clk in_stage_net1 VGND sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM5_DUMMY1 in_stage_net1 clk in_stage_net1 VGND sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM2_DUMMY VPWR clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM1_DUMMY VPWR clk VPWR VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM8_DUMMY in_stage_net2 op in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM9_DUMMY in_stage_net3 on in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM6_DUMMY in_stage_net2 bp in_stage_net2 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM7_DUMMY in_stage_net3 bn in_stage_net3 VPWR sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM12_DUMMY VGND VGND VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM11_DUMMY VGND VGND VGND VGND sky130_fd_pr__nfet_01v8 L=0.15 W=2 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
|
||||
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
|
||||
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_nor.sym # of pins=5
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor.sch
|
||||
.subckt adc_nor b a VDD q VSS
|
||||
*.iopin VDD
|
||||
*.iopin VSS
|
||||
*.ipin b
|
||||
*.ipin a
|
||||
*.opin q
|
||||
XM5 q b VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM6 q a VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.42 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM1 q b net1 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM2 q a net2 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM3 net2 b VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM4 net1 a VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=0.8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_nor_latch.sym # of pins=6
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor_latch.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_nor_latch.sch
|
||||
.subckt adc_nor_latch s qn VDD q VSS r
|
||||
*.iopin VDD
|
||||
*.iopin VSS
|
||||
*.ipin s
|
||||
*.ipin r
|
||||
*.opin q
|
||||
*.opin qn
|
||||
x1 q s VDD qn VSS adc_nor
|
||||
x2 qn r VDD q VSS adc_nor
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_comp_buffer.sym # of pins=4
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_buffer.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_comp_buffer.sch
|
||||
.subckt adc_comp_buffer VDD VSS in out
|
||||
*.iopin VDD
|
||||
*.iopin VSS
|
||||
*.ipin in
|
||||
*.opin out
|
||||
XM5 buf_mid in VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM1 buf_mid in VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM2 out buf_mid VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=2 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
XM6 out buf_mid VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
|
||||
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
|
||||
+ sa=0 sb=0 sd=0 mult=1 m=1
|
||||
.ends
|
||||
|
||||
|
||||
* expanding symbol: adc_noise_decoup_cell2.sym # of pins=5
|
||||
** sym_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_noise_decoup_cell2.sym
|
||||
** sch_path: /foss/designs/personal/SKY130_SAR-ADC/xschem/adc_noise_decoup_cell2.sch
|
||||
.subckt adc_noise_decoup_cell2 mimcap_top mimcap_bot nmoscap_top nmoscap_bot pwell
|
||||
*.iopin nmoscap_top
|
||||
*.iopin mimcap_top
|
||||
*.iopin mimcap_bot
|
||||
*.iopin nmoscap_bot
|
||||
*.iopin pwell
|
||||
XC1 mimcap_top mimcap_bot sky130_fd_pr__cap_mim_m3_1 W=18.9 L=5.1 MF=1 m=1
|
||||
XC2 nmoscap_top nmoscap_bot pwell sky130_fd_pr__cap_var_lvt W=18.4 L=3.9 VM=1 m=1
|
||||
.ends
|
||||
|
||||
.GLOBAL GND
|
||||
.GLOBAL VDD
|
||||
.end
|
Reference in New Issue
Block a user