E-Voting Machine - Design Presentation

37
E-Voting Machine - Design Presentation Group M1 Bohyun Jessica Kim Jonathan Chiang Chi Ho Yoon Donald Cober Monday Oct 20 th Gate level Schematics CommsBlock Update and Schematics SRAM cell schematic and layout Updated Transistor Count Secure Electronic Voting Terminal

description

E-Voting Machine - Design Presentation. Group M1 Bohyun Jessica Kim Jonathan Chiang Chi Ho Yoon Donald Cober. Monday Oct 20 th Gate level Schematics CommsBlock Update and Schematics SRAM cell schematic and layout Updated Transistor Count. Secure Electronic Voting Terminal. - PowerPoint PPT Presentation

Transcript of E-Voting Machine - Design Presentation

Page 1: E-Voting Machine - Design Presentation

E-Voting Machine - Design Presentation

• Group M1• Bohyun Jessica Kim• Jonathan Chiang• Chi Ho Yoon• Donald Cober

Monday Oct 20th

Gate level SchematicsCommsBlock Update and SchematicsSRAM cell schematic and layoutUpdated Transistor Count

Secure Electronic Voting Terminal

Page 2: E-Voting Machine - Design Presentation

• Updated Transistor Counts• Structural Verilog Entire System• Gate-level Schematics (Comms + SRAM)• Simulation of Individual Blocks and Whole System• Gate-level Layout• Refining Floorplan

Status Update

Immediate Issues

• Issue with Analog Simulation

Page 3: E-Voting Machine - Design Presentation

Data B

us

Machine Init FSM

User ID FSM

Selection FSM

ConfirmationFSM

Display

User ID SRAM

Message ROM

Card Reader

Fingerprint Scanner

Encryption Key SRAM

User Input

Write-in SRAM

Choice SRAM

TX_Check

Selection Counter

Key Register

XOR

8 bit Full Adder

8 bit Full Adder

8 bit Full Adder

8 bit Full Adder

XOR

8 bit MUX0 1

8 bit MUX0 1

8 bit MUX0 1

8 bit Add/Sub

0 18 bit MUX

T: 128

8-bitREG

T: 88

8-bitREG

COMMS Register

Shift Register In

Shift Register Out

constant init

Page 4: E-Voting Machine - Design Presentation

SRAMResized Schematics

Redone Layout32 bit by 8 bit Array Layout

Next time: Simulation

Page 5: E-Voting Machine - Design Presentation

SRAM Single Cell Resized Schematic

Page 6: E-Voting Machine - Design Presentation

SRAM Single Cell Layout

Last Time Updated Layout (4.095 X 2.97)

Page 7: E-Voting Machine - Design Presentation

SRAM 32 by 8 Bit Cell Layout

Dimensions:131.76 by 18.72

Dimensions:131.76 by 18.72

Page 8: E-Voting Machine - Design Presentation

SRAM cont’d (decoder)

Full Adder 1bit

Page 9: E-Voting Machine - Design Presentation

COMMSRedesigned Implementation Walkthrough

Full schematics and gate level blocksBasic adder and xor layouts

Next time: Simulation

Page 10: E-Voting Machine - Design Presentation

COMMS BLOCK Hardware Implementation 1States inA[7:0] inB[7:0] sel_out sel_shift[1:0] sel_sum v_out[7:0] (1) delta sum[7:0] 0 00 0 v_out0 = sum[7:0] (2) v1 sum[7:0] 0 01 1 v_out1= (C+D) (3) v1 << 4 k0 1 10 0 v_out2= (A+B) ^ (C+D) (4) v1 >> 5 k1 1 11 0 v_out3 = (A+B) ^ (C+D) ^ (E+F) (5) v0 out3 0 1 1 v_outx = V0 + (A+B) ^ (C+D) ^ (E+F)

States (6)-(9) same as above except using k2, k3, and flip v1, v0

Implementation goes through 9 states/clk cycles each iteration to update output function v_outx.

Reusing of:(1x) 8 bit Full adder/sub (Ripple carry) [16*8 = 128](2x) 2:1 8 bit MUX for output pass-through [4*8*2 = 64](8x) 2-input XORS [6*8 = 48](1x) 8 bit REG [11*8 = 88](1x) 4:1 8 bit MUX for shifting selection [12*8 = 96]

In addition, logic will to iterate 8 times and be controlled via FSM machine that uses:(2x) 3:1 8 bit MUX for state input selection [8*8*2 = 128](2x) 1 bit Counter adder for updating cycle [16*2 = 32](2x) 1 bit REG for storing updated cycle [11*2 = 22]Total: 606

Advantages:Saves transistors and area for Comms Block

Disadvantages:Very heavy pass-logic from MUX layers and XORHigh clk frequency required since reusing same components for calculating outx by stages. This translates to higher power consumption since we are trying to do more with less hardware.

Tradeoff:Every 8-bit MUX uses 4*8 = 32 transistors compared to 8-bit Full Adder 16*8 = 128 transistors. However MUXES have high pass-logic so area vs. power tradeoff is concerned here.

sum += delta; v0 += ((v1<<4)+k0) ^ (v1+sum) ^ ((v1>>5)+k1); v1 += ((v0<<4)+k2) ^ (v0+sum) ^ ((v0>>5)+k3);

sel_out

3:1 8 bit MUX

1-bitREGclk

1 bit Full Adder

8 bit Full Adder/Sub 8 bit MUX

8-bitREG

8’h00

inA[7:0] inB[7:0]

sel_sum

0 1

clk

T: 128

T: 48

T: 88

v_outx

4:1 8 bit MUX

00 01 10 11

sel_shift[1:0]

T: 64

8 bit MUX0 1

T: 32

T: 32

inA[7:0] sel_shift[1:0] delta 00 v1 01 v1 << 4 10 v1 >> 5 11

3:1 8 bit MUX

Logical Shifter Code

XOR

Page 11: E-Voting Machine - Design Presentation

COMMS BLOCK Hardware Implementation 2

Implementation 2 does concurrent calculations for all 3 parts of function, completes full iteration of calculations in 2 clk cycles.

Uses:(1x) 8 bit Full adder/sub (Ripple carry) [16*8 = 128](3x) 8 bit Full adder (Ripple carry) [12*8*4 = 384] (4x) 2:1 8 bit MUX for output pass-through [4*8*4 = 128](16x) 2-input XORS [6*16 = 96](2x) 8 bit REG [11*8*2 = 176](1x) 1 bit Counter adder for updating cycle [16](1x) 1 bit REG for storing updated cycle [11]Total: 939

In addition, logic will not need complex FSM, just needs to do 8 iterations using 16 cycles.

Advantages:Low pass logic, speed performance, low power, MUX logic transistor count essentially halved.

Disadvantages:More Transistor Count and larger area.

Tradeoff:Larger area but low pass logic from reduced MUX and complex FSM simplifies design, increases speed and minimizes power.

sum += delta; v0 += ((v1<<4)+k0) ^ (v1+sum) ^ ((v1>>5)+k1); v1 += ((v0<<4)+k2) ^ (v0+sum) ^ ((v0>>5)+k3);

XOR

clk

T: 128

T: 88

v_outx

8 bit Full Adder

K0V1

sum

K1

T: 128 T: 128

8 bit Full Adder

8 bit Full Adder

8 bit Full Adder

V0

T: 128

XOR

sel_out

8 bit MUX0 1

T: 32

8 bit MUX0 1

8 bit MUX0 1

T: 32 T: 32

{V1[3:0], 4’b0}

{5’b0, V1[7:5]}

V1 V1

16 bit Add/Sub

delta

sel_out output 0 pass sum, V1 1 pass new sum, V0

0 116 bit MUX

T: 128

16-bitREG

clk

T: 88

8-bitREG

1-bitREGclk

1 bit Full Adder

Page 12: E-Voting Machine - Design Presentation

COMMS BLOCK Hardware Implementation 3

K3K2K1K0

V0_in V1_in

V0_out V1_out

FFC

V0_inV1_in

Components

FF 8 bit (2)

FF 16 bit (1)

XOR 8 bit (4)

Inv (1)

FA 8bit (4)

FA 16 bit (1)

FA shift 4/5 bit (4)

8 bit muxes (4)

1 cycle for calculating: sum += delta; v0 += ((v1<<4)+k0) ^ (v1+sum) ^ ((v1>>5)+k1); v1 += ((v0<<4)+k2) ^ (v0+sum) ^ ((v0>>5)+k3);

Advantages:Lowest pass logic, speed performance, low power, MUX logic transistor count halved.

Disadvantages:Double Transistor Count and larger area.

Tradeoff:Larger area but low pass logic from reduced MUX, no FSM simplifies design, and 1 cycle per computation increases speed and minimizes power by factor of 2.

Page 13: E-Voting Machine - Design Presentation

COMMS Full Schematic Components

FF 8 bit (2)

FF 16 bit (1)

XOR 8 bit (4)

Inv (1)

FA 8bit (4)

FA 16 bit (1)

FA shift 4/5 bit (4)

8 bit muxes (4)

Advantages:Low pass logic, speed performance, low power, MUX logic transistor count essentially halved.

Disadvantages:More Transistor Count and larger area.

Tradeoff:Larger area but low pass logic from reduced MUX and complex FSM simplifies design, increases speed and minimizes power.

Page 14: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)

Full Adder 1bit Full Adder 8bit

Page 15: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)

Full Adder 16 bit FF 8 bit

Page 16: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)

Full Adder << 4 bits Full Adder >> 5 bits

Page 17: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)

FF 16 bit XOR 8 bit

Page 18: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)

FF 16 bit XOR 8 bit

Page 19: E-Voting Machine - Design Presentation

COMMS cont’d (smaller blocks)XOR 1 bit

Page 20: E-Voting Machine - Design Presentation

Full adder 1-bit layout

Page 21: E-Voting Machine - Design Presentation

XOR 1-bit layout

Page 22: E-Voting Machine - Design Presentation

Comms Block Structural Verilog

Page 23: E-Voting Machine - Design Presentation

Comms Block Structural Verilog

Page 24: E-Voting Machine - Design Presentation

Comms Block Structural Verilog

Page 25: E-Voting Machine - Design Presentation

Behavioral Simulation

Page 26: E-Voting Machine - Design Presentation

Structural Simulation0 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=xxxx, a1_in=xxxx, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 3 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=xxxx, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 7 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=xxxX, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 8 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=xxx0, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 9 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=XX00, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 10 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=XX00, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 11 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=0a00, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=1, clk=0 80 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=0a00, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=0, clk=1 160 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0000, a1_in=0a00, arr_V=0000, arr_K=00000000, V0_sel=x, V1_sel=x, sum_clr=0, clk=0 163 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=0a00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 167 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=0000, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 168 V0_out=xx, V1_out=xx, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 178 V0_out=xx, V1_out=xX, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 179 V0_out=xX, V1_out=xX, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 180 V0_out=xX, V1_out=xX, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 181 V0_out=xX, V1_out=x8, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 182 V0_out=XX, V1_out=X8, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 183 V0_out=XX, V1_out=X8, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 184 V0_out=X0, V1_out=18, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 186 V0_out=X0, V1_out=18, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 189 V0_out=20, V1_out=18, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 240 V0_out=20, V1_out=18, V0_reg=xx, V1_reg=xx, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=1 243 V0_out=20, V1_out=18, V0_reg=xx, V1_reg=18, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=1 320 V0_out=20, V1_out=18, V0_reg=xx, V1_reg=18, a1_out=0a00, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=0, sum_clr=0, clk=0 323 V0_out=20, V1_out=18, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1400, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 329 V0_out=20, V1_out=18, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 339 V0_out=20, V1_out=48, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 340 V0_out=20, V1_out=68, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 341 V0_out=20, V1_out=e9, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 342 V0_out=20, V1_out=eb, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=0 400 V0_out=20, V1_out=eb, V0_reg=20, V1_reg=18, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=0, V1_sel=1, sum_clr=0, clk=1 403 V0_out=20, V1_out=eb, V0_reg=20, V1_reg=eb, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 410 V0_out=20, V1_out=4a, V0_reg=20, V1_reg=eb, a1_out=1400, a1_in=1e00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

560 V0_out=de, V1_out=c5, V0_reg=7f, V1_reg=eb, a1_out=1e00, a1_in=2800, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 563 V0_out=de, V1_out=c5, V0_reg=7f, V1_reg=c5, a1_out=1e00, a1_in=2800, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 571 V0_out=de, V1_out=d5, V0_reg=7f, V1_reg=c5, a1_out=1e00, a1_in=2800, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

720 V0_out=9f, V1_out=6e, V0_reg=0f, V1_reg=c5, a1_out=2800, a1_in=3200, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 723 V0_out=9f, V1_out=6e, V0_reg=0f, V1_reg=6e, a1_out=2800, a1_in=3200, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 730 V0_out=9f, V1_out=06, V0_reg=0f, V1_reg=6e, a1_out=2800, a1_in=3200, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

Page 27: E-Voting Machine - Design Presentation

Structural Simulation 880 V0_out=7b, V1_out=73, V0_reg=c5, V1_reg=6e, a1_out=3200, a1_in=3c00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

883 V0_out=7b, V1_out=73, V0_reg=c5, V1_reg=73, a1_out=3200, a1_in=3c00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 890 V0_out=7b, V1_out=70, V0_reg=c5, V1_reg=73, a1_out=3200, a1_in=3c00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

1040 V0_out=7b, V1_out=2a, V0_reg=20, V1_reg=73, a1_out=3c00, a1_in=4600, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1043 V0_out=7b, V1_out=2a, V0_reg=20, V1_reg=2a, a1_out=3c00, a1_in=4600, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1050 V0_out=7b, V1_out=08, V0_reg=20, V1_reg=2a, a1_out=3c00, a1_in=4600, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

1200 V0_out=80, V1_out=6a, V0_reg=d0, V1_reg=2a, a1_out=4600, a1_in=5000, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1203 V0_out=80, V1_out=6a, V0_reg=d0, V1_reg=6a, a1_out=4600, a1_in=5000, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1210 V0_out=80, V1_out=2a, V0_reg=d0, V1_reg=6a, a1_out=4600, a1_in=5000, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

1360 V0_out=b4, V1_out=9c, V0_reg=c2, V1_reg=6a, a1_out=5000, a1_in=5a00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1363 V0_out=b4, V1_out=9c, V0_reg=c2, V1_reg=9c, a1_out=5000, a1_in=5a00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1370 V0_out=b4, V1_out=8c, V0_reg=c2, V1_reg=9c, a1_out=5000, a1_in=5a00, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

1520 V0_out=38, V1_out=58, V0_reg=fd, V1_reg=9c, a1_out=5a00, a1_in=6400, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1523 V0_out=38, V1_out=58, V0_reg=fd, V1_reg=58, a1_out=5a00, a1_in=6400, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1 1530 V0_out=38, V1_out=50, V0_reg=fd, V1_reg=58, a1_out=5a00, a1_in=6400, arr_V=1234, arr_K=778cae38, V0_sel=1, V1_sel=1, sum_clr=0, clk=1

Structural simulation terminates after 8 iterations, bolded in red, at 0xfd58 like behavioral. Decryption works in the reverse fashion with adders doing subtraction instead.

Page 28: E-Voting Machine - Design Presentation

FSMMachine Initialization FSM Schematics

Next time: Remaining FSM Schematics

Simulation

Page 29: E-Voting Machine - Design Presentation

Machine Initialization FSM Schematic #1

Page 30: E-Voting Machine - Design Presentation

Machine Initialization FSM Schematic #2

Page 31: E-Voting Machine - Design Presentation

Changes during structural

● FSM Encoding:

– FSMs with 6, 12, 7 and 9 states– Binary encoding has about the same transistor count as

One-hot encoding– One-hot is much easier to layout

• Address Counter– SRAM data is accessed sequentially– Address registers are linked as counters– Counters can increment, decrement, and reset– Requires an additional type of register

Page 32: E-Voting Machine - Design Presentation

Total counts 1826

FF 8 bit (2) 10*8*2 = 160

FF 16 bit (1) 160*1 = 160

XOR 8 bit (4) 6*8*4 = 192

Inv (1) 2

FA 8bit (4) 16*8*4 = 512

FA 16 bit (1) 256*1 = 256

FA shift 4/5 bit (4) 128*4 = 512

8 bit muxes (4) 4*8*4 = 32

COMMS Optimized Gate Schematics Transistor Counts

Page 33: E-Voting Machine - Design Presentation

FSM Verilog Transistor Counts

Block States Address Registers Distinct Outputs

Random Transistors

Machine Init FSM 6 2 bits 5 5 50 105

User ID FSM 12 3 bits 7 13 130 207

Selection FSM 7 2 bits 5 9 90 145

Confirmation FSM 9 6 bits 10 8 80 170

FSM Optimized Gate Schematics Transistor Counts

Block State Register T Address Counter T Random Total

Machine Init FSM 54 46 38 138

User ID FSM 108 70 102 280

Selection FSM 63 46 68 177

Confirmation FSM 81 92 62 235

Page 34: E-Voting Machine - Design Presentation

SRAM & Peripheral Blocks Transistor Counts

Block Old Total

Message ROM 280 80

Selection Counter 33 58

TX_Check 33 86

User Input 244 422

COMMs 1826 2363

Block Old Total

Key SRAM 228 228

Write-in SRAM 3 596 3 596

User ID SRAM 454 454

Choice SRAM 228 228

TOTAL 8345

Page 35: E-Voting Machine - Design Presentation

Updated Floorplan

● The aspect ratio still about 2:1

● Doubled size in COMMS Block

● The interconnects travel heavily over the FSM

● These are mostly 1 bit enable signals and some are address lines

● The address lines and data bus are buffered

Page 36: E-Voting Machine - Design Presentation

Issues

Simulation Results All Individual Functional BlocksFSM Gate-level Schematics and Layout UpdateGlobal Schematic Routing

Next Time

Persisting problem with Analog Simulation using SCMOS18 library

Page 37: E-Voting Machine - Design Presentation

Questions?

Thank you!