• Building block : divide by two

    Yann Guidon / YGDES02/09/2020 at 23:10 0 comments

    This circuit shows a variation on the one presented in the first log :

    This shows the "SCR slices" linked by two NPN "pass gates". The output is looped back to the input with an additional NPN.

    So it is possible to have two configurations :

    • either 3 PNP and 3 NPN per DFF, or
    • 2PNP and 4 NPN.

    The choice depends on the availability of the transistors, and influences the clocking scheme : using "NPN pass gates" only requires the creation of two independent non-overlapping pulses per clock cycle.

    Apparently the clock system will be a whole problem in itself...


    Here is the source code :
    $ 1 1e-9 1.2182493960703473 66 5 43
    g 672 432 672 464 0
    w 624 144 624 224 1
    w 624 320 528 320 3
    w 624 128 624 144 2
    w 624 320 624 336 0
    w 640 320 624 320 0
    w 672 272 672 304 2
    w 624 400 624 432 1
    w 624 320 624 288 2
    w 672 432 624 432 0
    w 672 336 672 432 1
    w 672 112 656 112 0
    w 672 96 672 112 2
    w 624 0 624 96 1
    w 624 0 672 0 0
    w 672 0 672 32 1
    w 672 112 672 144 1
    r 672 144 672 208 0 2000
    r 624 224 624 288 0 2200
    r 672 32 672 96 0 1000
    r 624 336 624 400 0 2200
    t 656 112 624 112 0 -1 2.930529235861507 -1.1867824944999938e-8 100
    t 640 320 672 320 0 1 -2.9305256619877182 0.06947075183066788 100
    r 512 144 512 224 0 2200
    t 512 288 512 320 1 1 0.5968215934651058 0.5973307394672914 100
    w 496 432 624 432 0
    w 512 -32 512 144 0
    w 512 224 512 288 3
    d 672 208 672 272 2 default
    d 752 304 672 304 2 1N4148
    w 928 272 976 272 0
    w 976 496 448 496 0
    w 768 224 768 272 3
    w 736 0 816 0 0
    w 768 -32 768 144 0
    w 816 0 816 -48 1
    w 672 432 880 432 0
    w 784 304 784 320 0
    t 768 272 768 304 1 1 -2.8805655700300177 0.11937009322376849 100
    r 768 144 768 224 0 2200
    t 896 320 928 320 0 1 -2.607606715813171 3.037300559797447e-8 100
    t 912 112 880 112 0 -1 2.908745716789634 -0.09125424512435565 100
    r 880 336 880 400 0 2200
    r 928 32 928 96 0 1000
    r 880 224 880 288 0 2200
    r 928 144 928 272 0 3300
    w 928 112 928 144 1
    w 928 0 928 32 1
    w 880 0 928 0 0
    w 880 0 880 96 1
    w 928 96 928 112 2
    w 928 112 912 112 0
    w 928 336 928 432 1
    w 928 432 880 432 0
    w 880 320 880 288 2
    w 880 400 880 432 1
    w 928 272 928 304 2
    w 896 320 880 320 0
    w 880 320 880 336 0
    w 880 128 880 144 2
    w 880 320 784 320 1
    w 880 144 880 224 1
    w 816 0 880 0 1
    w 672 0 736 0 1
    R 816 -48 816 -80 0 0 40 3 0 0 0.5
    S 624 -112 624 -48 0 1 false 0 2
    R 624 -112 624 -144 0 0 40 3 0 0 0.5
    w 608 -48 512 -32 0
    w 640 -48 768 -32 0
    t 464 384 496 384 0 1 0.5300334614902087 0.6000133593230622 100
    w 496 320 496 368 3
    w 496 400 496 432 0
    r 976 288 976 496 0 22000
    w 448 496 448 384 0
    w 448 384 464 384 0
    r 608 -48 624 0 0 1000000000
    w 976 288 976 272 3
    o 2 4 0 4355 1.25 0.0015625 0 2 2 3
    o 6 4 0 4354 5 0.1 0 2 6 3
    o 31 4 0 4354 0.625 0.0015625 0 2 31 3
    o 31 4 0 4355 0.625 0.00009765625 0 2 31 3
    o 60 4 0 4355 1.25 0.0015625 0 2 60 3

  • First log: a minimal parts count shift register !

    Yann Guidon / YGDES02/09/2020 at 22:49 0 comments

    It all starts with this circuit :

    The goal is to make a shift register that works at about 115200 bps (hopefully) for receive and send, with one receive and send buffer, with the minimal count of transistors. The above circuit is the basis, the building block for the rest. I don't think a sophisticated and optimised structure would make sense, so I'll focus on a single module with 3 "SCR-style" latches, a pair for the shift register and the third for the in\out buffer (depending on the configuration).

    The source code for Falstad is pretty long, sorry...
    $ 1 1e-9 0.9487735836358526 60 5 43
    d 768 288 672 288 2 1N4148
    w 880 0 816 0 1
    w 800 288 800 304 0
    t 768 320 800 320 1 1 0.5898352006989318 0.5895778354142961 100
    r 752 208 752 256 0 2200
    t 896 320 928 320 0 1 0.603203789466672 0.6297696664295094 100
    t 912 80 880 80 0 -1 -0.5878533226791691 -0.6294666250239822 100
    r 880 336 880 400 0 2200
    r 928 16 928 80 0 2200
    r 880 224 880 288 0 2200
    r 928 224 928 288 0 2200
    w 928 96 928 224 1
    w 928 0 928 16 1
    w 880 0 928 0 0
    w 880 0 880 32 1
    w 928 80 928 96 2
    w 928 80 912 80 0
    w 928 336 928 432 1
    w 928 432 880 432 0
    w 880 320 880 288 2
    w 880 400 880 432 1
    w 928 288 928 304 2
    w 896 320 880 320 0
    w 880 320 880 336 0
    w 880 96 880 112 2
    w 880 336 800 336 1
    w 880 112 880 128 1
    R 816 0 784 0 0 0 40 3 0 0 0.5
    w 752 272 752 256 3
    w 768 320 752 320 0
    w 1024 80 1008 80 1
    r 1040 112 1040 160 0 2200
    t 1040 112 1040 80 0 -1 0.04161325390746562 0.000009567860214332313 100
    w 1056 80 1072 80 3
    w 752 144 752 208 1
    w 1040 208 1040 160 1
    w 752 272 752 320 0
    w 768 288 800 288 0
    w 1040 208 752 208 0
    w 1152 112 1152 80 0
    w 1152 0 1200 0 0
    d 1152 208 1152 288 2 default
    t 1120 320 1152 320 0 1 -2.9986849584196444 6.600983002054078e-10 100
    t 1136 112 1104 112 0 -1 2.999990370503179 -0.000009568036190898965 100
    r 1104 336 1104 400 0 2200
    r 1152 16 1152 80 0 2200
    r 1104 208 1104 272 0 2200
    r 1152 144 1152 208 0 2200
    w 1152 128 1152 144 1
    w 1152 0 1152 16 1
    w 1104 0 1152 0 0
    w 1104 0 1104 32 1
    w 1152 112 1152 128 2
    w 1152 112 1136 112 0
    w 1152 336 1152 432 1
    w 1152 432 1104 432 0
    w 1104 400 1104 432 1
    w 1152 288 1152 304 2
    w 1120 320 1104 320 0
    w 1104 320 1104 336 0
    w 1104 128 1104 144 2
    w 1104 272 1104 320 1
    w 960 432 1104 432 0
    w 928 0 1104 0 0
    w 1040 208 1232 208 0
    w 1104 32 1104 96 0
    w 1152 80 1072 80 0
    w 880 32 880 64 0
    d 880 128 880 224 2 default
    d 960 128 1008 128 2 default
    w 1008 128 1008 80 0
    w 960 128 880 128 0
    g 1152 432 1152 464 0
    d 1280 288 1232 288 2 1N4148
    w 1152 432 1360 432 0
    w 1280 288 1280 304 0
    t 1248 320 1280 320 1 1 0.5898352012281517 0.5895776955139157 100
    r 1232 208 1232 256 0 2200
    t 1376 320 1408 320 0 1 0.6032038700972324 0.6297697242398047 100
    t 1392 80 1360 80 0 -1 -0.5878533230430105 -0.6294666249949361 100
    r 1360 336 1360 400 0 2200
    r 1408 16 1408 80 0 2200
    r 1360 224 1360 288 0 2200
    r 1408 192 1408 288 0 2200
    w 1408 96 1408 192 1
    w 1408 0 1408 16 1
    w 1360 0 1408 0 0
    w 1360 0 1360 32 1
    w 1408 80 1408 96 2
    w 1408 80 1392 80 0
    w 1408 336 1408 432 1
    w 1408 432 1360 432 0
    w 1360 320 1360 288 2
    w 1360 400 1360 432 1
    w 1408 288 1408 304 2
    w 1376 320 1360 320 0
    w 1360 320 1360 336 0
    w 1360 96 1360 112 2
    w 1360 336 1280 336 1
    w 1360 112 1360 128 1
    w 1232 272 1232 256 3
    w 1248 320 1232 320 0
    w 1504 80 1488 80 1
    r 1520 112 1520 160 0 2200
    t 1520 112 1520 80 0 -1 0.04161325351457945 0.00000956783734107347 100
    w 1200 0 1360 0 0
    w 1536 80 1552 80 3
    w 1520 208 1520 160 1
    w 1232 272 1232 320 0
    w 1152 288 1200 288 0
    w 1520 208 1232 208 0
    w 1632 112 1632 80 0
    d 1632 208 1632 288 2 default
    t 1600 320 1632 320 0 1 -2.998684961523275 6.600340191111187e-10 100
    t 1616 112 1584 112 0 -1 2.999990370526181 -0.000009568013317640123 100
    r 1584 336 1584 400 0 2200
    r 1632 16 1632 80 0 2200
    r 1584 208 1584 272 0 2200
    r 1632 144 1632 208 0 2200
    w 1632 128 1632 144 1
    w 1632 0 1632 16 1
    w 1584 0 1632 0 0
    w 1584 0 1584 32 1
    w 1632 112 1632 128 2
    w 1632 112 1616 112 0
    w 1632 336 1632 432 1
    w 1632 432 1584 432 0
    w 1584 400 1584 432 1
    w 1632 288 1632 304 2
    w 1600 320 1584 320 0
    ...
    Read more »