diff --git a/README.md b/README.md index 5745f9d..e1efe2b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Besides being simple, low-cost, and fast, it is easy to get right, unlike other INMs are suitable for both board level implementation, and ASIC implementation. Speed is limited by the speed of a voltage buffer and comparator, and can run in excess of 100 Mbit/second per second with high performance components. Cheap solutions with CMOS quad -op-amps can run at 500 Kbit/second. +op-amps can run at 6Mbit/second. Adjacent bits from an INM are correlated, so whitening is required before use in cryptography. INM output has a highly predictable amount of entropy for easy estimation @@ -102,14 +102,14 @@ for the small verision: ![Simulation of small Infinite Noise Multiplier](infnoise_small/shortsim.png?raw=true "Small Infinite Noise Multiplier") -![Simulation of small Infinite Noise Multiplier](infnoise_full/shortsim.png?raw=true "Small +![Simulation of small Infinite Noise Multiplier](infnoise_fast/shortsim.png?raw=true "Small Infinite Noise Multiplier") And again for the fast version. ![Simulation of fast Infinite Noise Multiplier](infnoise_fast/shortsim.png?raw=true "Fast Infinite Noise Multiplier") -![Simulation of fast Infinite Noise Multiplier](infnoise_full/shortsim.png?raw=true "Fast +![Simulation of fast Infinite Noise Multiplier](infnoise_fast/shortsim.png?raw=true "Fast Infinite Noise Multiplier") ### Design Analysis diff --git a/infnoise.parlist b/infnoise.parlist index 2046ce5..f5bf83f 100644 --- a/infnoise.parlist +++ b/infnoise.parlist @@ -6,6 +6,7 @@ P/N: ADA4891-1ARJZ-R7 Digikey: ADA4891-1ARJZ-R7CT-ND Package: SOT-23 5 pin Note: Vin can only go up to V+ - 0.8V +Note: Quad op-amp version available: ADA4891-4 USB 2.0 to parallel FIFO P/N FT240XQ-T @@ -27,6 +28,16 @@ P/N: TS5A23157RSER Digikey: 296-21919-1-ND Package: 10-UQFN, 2mm X 1.5mm, 0.5mm pitch +Fast quad SPST analog switch, break-before-make +P/N: ADG713BRUZ-REEL7 +Digikey: ADG713BRUZ-REEL7CT-ND +Package: 16-TSSOP + +Rail-to-rail high-speed quad op-amp +P/N: OPA4354AIDR +Digikey: 296-12643-1-ND +Package: + Passives -------- @@ -45,3 +56,31 @@ Digikey: RHM8.2KCDCT-ND 10K Ohm 1% 1/16W chip resistor P/N: MCR01MRTF1002 Digikey: RHM10.0KCDCT-ND + +4X 10K Ohm 1% 65mW chip resistors +P/N: CRA04S08310K0FTD +Digikey: CRA4S810.0KACT-ND + +2.7K 1% 63mW chip resistor +P/N: MCR01MRTF2701 +Digikey: RHM2.70KCDCT-ND + +100K 5% 63mW chip resistor +P/N: CRCW0402100KJNED +Digikey: 541-100KJCT-ND + +51K 1% 63mW chip resistor +P/N: RC1005F513CS +Digikey: 1276-4178-2-ND + +53.6K 1% 63mW chip resistor +P/N: RMCF0402FT53K6 +Digikey: RMCF0402FT53K6TR-ND + +300 Ohm 1% 63mW chip resistor +P/N: CRCW0402300RFKED +Digikey: 541-300LCT-ND + +1.1K 1% 100mW chip resistor +P/N: CRCW06031K10FKEA +Digikey: 541-1.10KHCT-ND diff --git a/infnoise_fast/InfNoiseMult.asc b/infnoise_fast/InfNoiseMult.asc deleted file mode 100644 index 92790c7..0000000 --- a/infnoise_fast/InfNoiseMult.asc +++ /dev/null @@ -1,200 +0,0 @@ -Version 4 -SHEET 1 1396 1108 -WIRE 560 -336 448 -336 -WIRE 1056 -336 960 -336 -WIRE 448 -304 448 -336 -WIRE -240 -288 -240 -352 -WIRE 960 -288 960 -336 -WIRE -240 -160 -240 -208 -WIRE -48 -160 -240 -160 -WIRE 112 -160 -48 -160 -WIRE 192 -160 112 -160 -WIRE 320 -160 272 -160 -WIRE 448 -160 448 -224 -WIRE 960 -160 960 -208 -WIRE 1328 -48 528 -48 -WIRE 1344 -48 1328 -48 -WIRE -640 -16 -640 -96 -WIRE 224 -16 224 -32 -WIRE 112 0 112 -160 -WIRE 192 0 112 0 -WIRE 320 16 320 -160 -WIRE 320 16 256 16 -WIRE 416 16 320 16 -WIRE 672 16 416 16 -WIRE 192 32 144 32 -WIRE 224 80 224 48 -WIRE -640 112 -640 64 -WIRE -336 112 -640 112 -WIRE 80 112 -336 112 -WIRE 1312 112 1104 112 -WIRE 672 128 672 16 -WIRE 624 144 592 144 -WIRE -640 160 -640 112 -WIRE 1184 224 1184 208 -WIRE 224 240 224 224 -WIRE 1104 240 1104 112 -WIRE 1152 240 1104 240 -WIRE 80 256 80 112 -WIRE 192 256 80 256 -WIRE 1312 256 1312 112 -WIRE 1312 256 1216 256 -WIRE 432 272 256 272 -WIRE 528 272 528 -48 -WIRE 528 272 432 272 -WIRE 624 272 624 192 -WIRE 624 272 528 272 -WIRE 672 272 672 208 -WIRE 752 272 672 272 -WIRE 848 272 752 272 -WIRE 992 272 928 272 -WIRE 1040 272 992 272 -WIRE 1152 272 1040 272 -WIRE -288 288 -496 288 -WIRE -64 288 -208 288 -WIRE 16 288 -64 288 -WIRE 128 288 16 288 -WIRE 144 288 144 32 -WIRE 144 288 128 288 -WIRE 192 288 144 288 -WIRE 1040 304 1040 272 -WIRE -640 320 -640 240 -WIRE -64 320 -64 288 -WIRE 1184 320 1184 288 -WIRE 224 336 224 304 -WIRE 672 336 672 272 -WIRE 624 352 624 272 -WIRE 1312 368 1312 256 -WIRE 624 400 592 400 -WIRE -64 432 -64 384 -WIRE 1040 432 1040 368 -WIRE 224 464 224 448 -WIRE 192 480 64 480 -WIRE 320 496 256 496 -WIRE 448 496 320 496 -WIRE 672 496 672 416 -WIRE 672 496 448 496 -WIRE 128 512 128 288 -WIRE 192 512 128 512 -WIRE 224 560 224 528 -WIRE 1312 576 1312 368 -WIRE -96 640 -240 640 -WIRE 64 640 64 480 -WIRE 64 640 -96 640 -WIRE 176 640 64 640 -WIRE 320 640 320 496 -WIRE 320 640 256 640 -WIRE -240 688 -240 640 -WIRE 1040 784 1040 768 -WIRE -240 816 -240 768 -WIRE -496 912 -496 288 -WIRE 32 912 -496 912 -WIRE 1024 912 32 912 -WIRE 1040 912 1040 864 -WIRE 1040 912 1024 912 -WIRE 1312 912 1312 656 -WIRE 1312 912 1040 912 -WIRE 1024 976 1024 912 -WIRE 1024 1088 1024 1056 -FLAG -640 320 0 -FLAG -640 -96 Vsup -FLAG -64 432 0 -FLAG -240 816 0 -FLAG -240 -352 Vsup -FLAG 1040 432 0 -FLAG 224 560 0 -FLAG 224 336 0 -FLAG 224 80 0 -FLAG 1184 320 0 -FLAG 224 -32 Vsup -FLAG 224 224 Vsup -FLAG 224 448 Vsup -FLAG 1184 208 Vsup -FLAG 592 144 Vref -FLAG 592 400 Vref -FLAG -272 336 CLK -FLAG 448 -160 0 -FLAG 560 -336 CLK -FLAG -224 336 Vref -FLAG 864 320 Vref -FLAG 912 320 CLK -FLAG 960 -160 0 -FLAG 1056 -336 Vsup -FLAG 1024 1088 0 -FLAG 1040 768 Vsup -FLAG 16 288 A -FLAG 992 272 B -FLAG 1312 368 BUFOUT -FLAG 32 912 AIN -FLAG 752 272 BIN -FLAG 416 16 HighAmpOut -FLAG 448 496 LowAmpOut -FLAG 432 272 OUT -FLAG -48 -160 Vhigh -FLAG -96 640 Vlow -FLAG 1328 -48 OUT -FLAG -336 112 Vref -SYMBOL Opamps\\LTC6088 224 272 R0 -SYMATTR InstName COMP -SYMBOL Opamps\\LTC6088 224 496 R0 -SYMATTR InstName LOWAMP -SYMBOL Opamps\\LTC6088 224 16 R0 -SYMATTR InstName HIGHAMP -SYMBOL Opamps\\LTC6088 1184 256 R0 -SYMATTR InstName BUF -SYMBOL res -656 -32 R0 -SYMATTR InstName R1 -SYMATTR Value 10K -SYMBOL res -656 144 R0 -SYMATTR InstName R2 -SYMATTR Value 10K -SYMBOL sw -304 288 R270 -SYMATTR InstName S1 -SYMBOL sw 832 272 R270 -SYMATTR InstName S2 -SYMBOL sw 672 112 R0 -SYMATTR InstName S3 -SYMBOL sw 672 320 R0 -SYMATTR InstName S4 -SYMBOL cap -80 320 R0 -SYMATTR InstName C1 -SYMATTR Value 100pF -SYMBOL res -256 -304 R0 -SYMATTR InstName R3 -SYMATTR Value 10K -SYMBOL res -256 672 R0 -SYMATTR InstName R6 -SYMATTR Value 10K -SYMBOL cap 1024 304 R0 -SYMATTR InstName C2 -SYMATTR Value 100pF -SYMBOL voltage 448 -320 R0 -WINDOW 123 0 0 Left 2 -WINDOW 39 0 0 Left 2 -SYMATTR InstName V1 -SYMATTR Value PULSE(0 5 1u 1n 1n 1u 2u) -SYMBOL voltage 960 -304 R0 -WINDOW 123 0 0 Left 2 -WINDOW 39 0 0 Left 2 -SYMATTR InstName V2 -SYMATTR Value 5 -SYMBOL res 176 -144 R270 -WINDOW 0 32 56 VTop 2 -WINDOW 3 0 56 VBottom 2 -SYMATTR InstName R7 -SYMATTR Value 10K -SYMBOL res 160 656 R270 -WINDOW 0 32 56 VTop 2 -WINDOW 3 0 56 VBottom 2 -SYMATTR InstName R8 -SYMATTR Value 10K -SYMBOL res 1296 560 R0 -SYMATTR InstName R9 -SYMATTR Value 150 -SYMBOL res 1024 768 R0 -SYMATTR InstName R10 -SYMATTR Value 10K -SYMBOL res 1008 960 R0 -SYMATTR InstName R11 -SYMATTR Value 10K -TEXT 632 -128 Left 2 !.tran 1m diff --git a/infnoise_fast/infnoise_fast.tsc b/infnoise_fast/infnoise_fast.tsc new file mode 100644 index 0000000..3f5f409 Binary files /dev/null and b/infnoise_fast/infnoise_fast.tsc differ diff --git a/infnoise_fast/longsim.png b/infnoise_fast/longsim.png index 8620030..7ce4a67 100644 Binary files a/infnoise_fast/longsim.png and b/infnoise_fast/longsim.png differ diff --git a/infnoise_fast/schematic.png b/infnoise_fast/schematic.png index 3e6e840..1269e9a 100644 Binary files a/infnoise_fast/schematic.png and b/infnoise_fast/schematic.png differ diff --git a/infnoise_fast/shortsim.png b/infnoise_fast/shortsim.png index a1c9051..9336dd9 100644 Binary files a/infnoise_fast/shortsim.png and b/infnoise_fast/shortsim.png differ diff --git a/infnoise_small/InfNoiseMult.asc b/infnoise_small/InfNoiseMult.asc deleted file mode 100644 index 24ccd6b..0000000 --- a/infnoise_small/InfNoiseMult.asc +++ /dev/null @@ -1,147 +0,0 @@ -Version 4 -SHEET 1 1396 1108 -WIRE 384 -64 272 -64 -WIRE 880 -64 784 -64 -WIRE 272 -32 272 -64 -WIRE -640 -16 -640 -96 -WIRE 784 -16 784 -64 -WIRE 272 80 272 48 -WIRE -640 112 -640 64 -WIRE -336 112 -640 112 -WIRE 80 112 -336 112 -WIRE 784 112 784 64 -WIRE -640 160 -640 112 -WIRE 224 240 224 224 -WIRE 80 256 80 112 -WIRE 192 256 80 256 -WIRE 400 272 256 272 -WIRE 432 272 400 272 -WIRE 1088 272 432 272 -WIRE 1104 272 1088 272 -WIRE -288 288 -384 288 -WIRE -64 288 -208 288 -WIRE 16 288 -64 288 -WIRE 128 288 16 288 -WIRE 192 288 128 288 -WIRE -640 320 -640 240 -WIRE -64 320 -64 288 -WIRE 224 336 224 304 -WIRE 976 336 768 336 -WIRE -64 432 -64 384 -WIRE 848 448 848 432 -WIRE 224 464 224 448 -WIRE 768 464 768 336 -WIRE 816 464 768 464 -WIRE 192 480 64 480 -WIRE 976 480 976 336 -WIRE 976 480 880 480 -WIRE 320 496 256 496 -WIRE 336 496 320 496 -WIRE 512 496 336 496 -WIRE 656 496 592 496 -WIRE 704 496 656 496 -WIRE 816 496 704 496 -WIRE 128 512 128 288 -WIRE 192 512 128 512 -WIRE 704 528 704 496 -WIRE 848 544 848 512 -WIRE 224 560 224 528 -WIRE 976 592 976 480 -WIRE 64 640 64 480 -WIRE 176 640 64 640 -WIRE 320 640 320 496 -WIRE 320 640 256 640 -WIRE 704 656 704 592 -WIRE 976 672 976 592 -WIRE 64 704 64 640 -WIRE 704 784 704 768 -WIRE 64 816 64 784 -WIRE 400 816 400 272 -WIRE 400 816 64 816 -WIRE -384 912 -384 288 -WIRE 32 912 -384 912 -WIRE 688 912 32 912 -WIRE 704 912 704 864 -WIRE 704 912 688 912 -WIRE 976 912 976 752 -WIRE 976 912 704 912 -WIRE 688 976 688 912 -WIRE 688 1088 688 1056 -FLAG -640 320 0 -FLAG -640 -96 Vsup -FLAG -64 432 0 -FLAG 704 656 0 -FLAG 224 560 0 -FLAG 224 336 0 -FLAG 848 544 0 -FLAG 224 224 Vsup -FLAG 224 448 Vsup -FLAG 848 432 Vsup -FLAG -272 336 CLK -FLAG 384 -64 CLK -FLAG -224 336 Vref -FLAG 528 544 Vref -FLAG 576 544 CLK -FLAG 784 112 0 -FLAG 880 -64 Vsup -FLAG 688 1088 0 -FLAG 704 768 Vsup -FLAG 16 288 A -FLAG 656 496 B -FLAG 976 592 BUFOUT -FLAG 32 912 AIN -FLAG 432 272 OUT -FLAG 1088 272 OUT -FLAG -336 112 Vref -FLAG 272 80 0 -FLAG 336 496 AmpOut -SYMBOL Opamps\\LTC6088 224 272 R0 -SYMATTR InstName COMP -SYMBOL Opamps\\LTC6088 224 496 R0 -SYMATTR InstName AMP -SYMBOL Opamps\\LTC6088 848 480 R0 -SYMATTR InstName BUF -SYMBOL res -656 -32 R0 -SYMATTR InstName R1 -SYMATTR Value 10K -SYMBOL res -656 144 R0 -SYMATTR InstName R2 -SYMATTR Value 10K -SYMBOL sw -304 288 R270 -SYMATTR InstName S1 -SYMBOL sw 496 496 R270 -SYMATTR InstName S2 -SYMBOL cap -80 320 R0 -SYMATTR InstName C1 -SYMATTR Value 100pF -SYMBOL res 48 688 R0 -SYMATTR InstName R3 -SYMATTR Value 10K -SYMBOL cap 688 528 R0 -SYMATTR InstName C2 -SYMATTR Value 100pF -SYMBOL voltage 272 -48 R0 -WINDOW 123 0 0 Left 2 -WINDOW 39 0 0 Left 2 -SYMATTR InstName V1 -SYMATTR Value PULSE(0 5 1u 1n 1n 2u 4u) -SYMBOL voltage 784 -32 R0 -WINDOW 123 0 0 Left 2 -WINDOW 39 0 0 Left 2 -SYMATTR InstName V2 -SYMATTR Value 5 -SYMBOL res 160 656 R270 -WINDOW 0 32 56 VTop 2 -WINDOW 3 0 56 VBottom 2 -SYMATTR InstName R4 -SYMATTR Value 10K -SYMBOL res 960 656 R0 -SYMATTR InstName R7 -SYMATTR Value 47 -SYMBOL res 688 768 R0 -SYMATTR InstName R5 -SYMATTR Value 10K -SYMBOL res 672 960 R0 -SYMATTR InstName R6 -SYMATTR Value 10K -TEXT 480 144 Left 2 !.tran 1m diff --git a/infnoise_small/fullsim.png b/infnoise_small/fullsim.png deleted file mode 100644 index a4a6eb7..0000000 Binary files a/infnoise_small/fullsim.png and /dev/null differ diff --git a/infnoise_small/infnoise_small.tsc b/infnoise_small/infnoise_small.tsc new file mode 100644 index 0000000..8ad12f8 Binary files /dev/null and b/infnoise_small/infnoise_small.tsc differ diff --git a/infnoise_small/longsim.png b/infnoise_small/longsim.png new file mode 100644 index 0000000..11c0fb5 Binary files /dev/null and b/infnoise_small/longsim.png differ diff --git a/infnoise_small/schematic.png b/infnoise_small/schematic.png index adfb67b..265e556 100644 Binary files a/infnoise_small/schematic.png and b/infnoise_small/schematic.png differ diff --git a/infnoise_small/shortsim.png b/infnoise_small/shortsim.png index a605b39..89aeecb 100644 Binary files a/infnoise_small/shortsim.png and b/infnoise_small/shortsim.png differ diff --git a/Makefile b/software/Makefile similarity index 100% rename from Makefile rename to software/Makefile diff --git a/infnoise.c b/software/infnoise.c similarity index 100% rename from infnoise.c rename to software/infnoise.c diff --git a/infnoise.py b/software/infnoise.py similarity index 100% rename from infnoise.py rename to software/infnoise.py