Download presentation
Presentation is loading. Please wait.
1
M3: The Pro-Diver 525 Kavita Arora (M3-1) Lisa Gentry (M3-2) Steven Wasik (M3-3) Karolina Werner (M3-4) Design Manager: Steven Beigelmacher Final Presentation 12 April 2004
2
Outline Project description Project description Marketing appeal Marketing appeal Design Description & Flow Design Description & Flow Design process Design process Floorplan evolution Floorplan evolution Road to verification Road to verification Issues encountered Issues encountered Specifications Specifications Layout Layout Conclusions Conclusions Emulations Emulations
3
Project Description
4
Our Project Description Objective Objective –To design a chip for a SCUBA diver that does real-time calculations to warn the diver of safety concerns including decompressions sickness and lung overexpansion Goals Goals –small, dense design –good aspect ratio –low power –transistor minimization
5
Marketing Appeal
6
The SCUBA Market 5-7 million active divers in the world 5-7 million active divers in the world Diving is a huge commercial industry Diving is a huge commercial industry Divers range from tourists on vacation to regular recreational divers to professionals (such as in the Navy) Divers range from tourists on vacation to regular recreational divers to professionals (such as in the Navy)
7
What is SCUBA diving? SCUBA = Self Contained Underwater Breathing Apparatus SCUBA = Self Contained Underwater Breathing Apparatus Generally considered safe, as long as one follows certain parameters Generally considered safe, as long as one follows certain parameters Every 33 feet down, the air compresses one atmosphere (pressure increases) Every 33 feet down, the air compresses one atmosphere (pressure increases) Nitrogen intake also increases and becomes dangerous at certain levels Nitrogen intake also increases and becomes dangerous at certain levels Can cause Decompression Sickness, also known as “the bends” Can cause Decompression Sickness, also known as “the bends” Proper use of tables tells the diver how long he or she can safely stay at certain depths Proper use of tables tells the diver how long he or she can safely stay at certain depths
8
Dive Tables
9
Why use a SCUBA computer? Safer – decreased risk for decompression sickness because information is more accurate Safer – decreased risk for decompression sickness because information is more accurate Many divers forget how to use dive tables and/or use them improperly – the consequences can be severe Many divers forget how to use dive tables and/or use them improperly – the consequences can be severe More fun – enjoy your dive without having to constantly re-check the tables More fun – enjoy your dive without having to constantly re-check the tables More time to dive – tables count on the worst case scenario More time to dive – tables count on the worst case scenario Records accurate information for your dive log book Records accurate information for your dive log book
10
Why use the Pro-Diver 525? Customized to body type, circumstances of dive Customized to body type, circumstances of dive Easy to Use Easy to Use –Digital display –All information at the touch of a button –Can be easily integrated into a watch Makes Diving More Fun Makes Diving More Fun –Alerts you of safety concerns, so you can enjoy your dive –Tells you how long before you can fly, helping for planning the return trip after a fabulous weekend diving in South America –Allows for extended dives past the extremely conservative dive tables for most teens and adults Not going to break your wallet Not going to break your wallet –100% customized and.34 density fabrication is cheaper –Porosity is to metal 4 in 86% of the circuit reducing the number of masks needed for production. –Customization also allows for minimal transistor usages, lowering the minimum core voltage to 1.6V longer battery life
11
Pro-Diver 525 Features Records stats for your dive log Records stats for your dive log –Water Temp –Bottom Time –Max Depth Gives important safety information Gives important safety information –Do I need a safety stop or decompression stop? –Am I ascending too fast? –How long can I safely remain at my present depth? –How long before I can safely fly on a commercial flight?
12
The Algorithm & Design Flow
13
Nitrogen Absorption The level of nitrogen absorption is proportional to the difference between the body’s internal pressure and the external pressure The level of nitrogen absorption is proportional to the difference between the body’s internal pressure and the external pressure dP t (t)/dt = k*(P(t)-P t (t)) dP t (t)/dt = k*(P(t)-P t (t)) Can be modeled as a difference equation Can be modeled as a difference equation –P t (t) = P t (t-1) + k*(P(i)- P t (t-1)) Our design takes in a depth value (feet) every second Our design takes in a depth value (feet) every second Nitrogen level is OK until the body’s tissue pressure reaches 33 feet Nitrogen level is OK until the body’s tissue pressure reaches 33 feet
14
Our Design Flow: Overall (1) Get K (2) Pressure Calculator (3) Safety Watch (4) Max Depth (8) Ascension Watch (5) Bottom Time (7) Time Left (6) Time to Flight Body Water temp age k depth pres
15
(1) Get K inverter AND OR inverter OR AND Comp 7 bit Body Type Age Water Temp 1b’1000001 1b’1110000 1b’1000101 7 7 Out[0] 1 AND OR Out[1] 1 Body Type inverter
16
(2) Pressure Calculator 9 bit Subtractor 25 bit Reg 25 bit adder 9 bit SM converter 25 bit SM converter 11 bit Multiplier Depth 9 9 Internal Pressure [20:16] [24:0] User Inputs 2 25 Gnd! 25 [7:0] [11:0] [23:12] [24] 9 Clk Rst
17
(3) Safety Watch 5 bit comparator OR Inverter AND Out 21 1 1 1 1 Pressure 1b’11110 5 1b’11011 1b’11000 1
18
(4) Max Depth 8 bit Register8 bit Get Max Depth Max Depth 8 Clock Reset 8 8
19
(5) Bottom Time 17 bit add one 8 bit Comp. 8 bit Register Inverter AND 8 bit Comp.8 bit Register Depth Clock Reset Bottom Time [16:8] 8 1 8 1 8 8b’00001111 1 1 17
20
(6) Time to Flight Rom/Demux 17 bit Register 17 bit get maxMinus 117 bit mux Pressure 5 Clock Reset 17 11 Time To Flight 17 11 17
21
(7) Time Left NOR 7 bit INV 8 bit Subtractor 1 bit Reg 9 bit Reg 5 bit Mux ROM Demux 9 bit Reg9 bit Subtractor Depth 1b’11111 Pressure 5 5 [7:0] [6:0] [7:0] 7 479 9 9 9 Time Left Clock 1
22
(8) Ascension Watch 8 bit reg 9 bit Subtractor 8 bit SM conversion AND 8 bit comparator 1 1 Depth 8 8 1 Gnd! 1 9 9 out[8] 8 1 1b’11111000 out[7:0] Ascension Watch
23
The Design Process
24
Design Process: Initial Design Problem: The equations for equivalent body pressure were not available online, except general theory Problem: The equations for equivalent body pressure were not available online, except general theory Solution: We used the standard dive tables along with the differential equation to come up with formulas. This involved a great deal of experimentation with Matlab to find the proper constants. Solution: We used the standard dive tables along with the differential equation to come up with formulas. This involved a great deal of experimentation with Matlab to find the proper constants.
25
Design Process: Initial Design For our design, we choose a real time application with a clock speed of 1 Hz For our design, we choose a real time application with a clock speed of 1 Hz This is due to the fact that a diver’s pressure changes so gradually that data more frequently than every second would be superfluous and a waste of power This is due to the fact that a diver’s pressure changes so gradually that data more frequently than every second would be superfluous and a waste of power
26
Design Process: Architecture Problem: the pressure calculator difference equation required a 8x4 multiplication Problem: the pressure calculator difference equation required a 8x4 multiplication Solution: Multiplier takes in one of a given set of constants so Multiplier was designed to be fixed point Solution: Multiplier takes in one of a given set of constants so Multiplier was designed to be fixed point
27
Design Process: Architecture Problem: Logarithms were needed for calculating time left and time to flight Problem: Logarithms were needed for calculating time left and time to flight Solution: We used static precharged ROMS to approximate the logarithmic outputs Solution: We used static precharged ROMS to approximate the logarithmic outputs
28
Design Process: Architecture Problem: Two simultaneous log values are needed to calculate timeleft output. Problem: Two simultaneous log values are needed to calculate timeleft output. Solution: Instead of using two identical ROMS, a slow clock operating at half the clock frequency was employed. Solution: Instead of using two identical ROMS, a slow clock operating at half the clock frequency was employed.
29
Design Process: Layout Problem: Wiring became impossible (literally) for more complex modules, caused by a great deal of wide wires (up to 25 bits) and feedback Problem: Wiring became impossible (literally) for more complex modules, caused by a great deal of wide wires (up to 25 bits) and feedback Solution: the bit slice! Solution: the bit slice!
30
Examples… Pressure Calculator– loops, loops, more loops! Time to Flight – new and improved with bitslice! Time to Flight – our first attempt…
31
Design Process: Simulation Problem: Minor glitches in the outputs of several modules Problem: Minor glitches in the outputs of several modules Solution: Added registers to the outputs of the modules Solution: Added registers to the outputs of the modules Problem: Still had glitches Problem: Still had glitches Solution: Resized those registers Solution: Resized those registers
32
Floorplan Evolution
33
Floorplan Evolution (milestone 3) Ascension Watch Pressure Calculator Bottom Time Max Depth Get K Safety Watch Time to Flight Time Left
34
Floorplan Evolution (milestone 5) Ascension Watch Pressure Calculator Bottom Time Max Depth Get K Safety Watch Time to Flight Time Left
35
Our Final Layout Ascension Watch Pressure Calculator Bottom Time Max Depth Get K Safety Watch Time to Flight Time Left
36
The Road to Verification
37
Verilog Verification - PressureCalc MATLAB: depthvector = [80*ones(1,60*35) 40*ones(1,60*20) 0*ones(1,60*40)]; [bodyvector,out]=pressurecalculator(depthvector); bodyvector(60*35): ans = 25.5304 bodyvector(60*55): ans = 28.3850 bodyvector(60*95): ans = 18.2900 SCENERIO: diver goes 80 feet for 35 min, 40 feet for 20 min, 0 feet for 40 min VERILOG: time= 2,safetywatch = 0 Test where the user will go down to 80 feet for 35 minutes, then 40 feet for 20 minutes, then 0 feet 40 minutes time= 6090,safetywatch = 1 time = 6305,pres=25,depth= 80 time= 9054,safetywatch = 2 time = 9908,pres=28,depth= 40 time= 10272,safetywatch = 1 time= 12165,safetywatch = 0 time = 17110, pres=18,depth= 0
38
Verification – Spice
39
Verification – Rise Time and Propagation delay RiseTime = 32p seconds RiseTime = 32p seconds Propagation Delay = 1.5n seconds Propagation Delay = 1.5n seconds
40
Issues Encountered
41
Issues Encountered Nature of our design as very custom Nature of our design as very custom –Uniqueness of layout Floorplan Floorplan –Independence of modules meant they could fit anywhere, but where will minimize space –Had to re-layout some submodules to fit the overall design well Submodules’ internal routing Submodules’ internal routing –We love the bitslice!!! Difficulty of Verification Difficulty of Verification –Lots of feedback –Realtime means long time to fully test SPICE, signal degradation for vdd! and gnd! rails SPICE, signal degradation for vdd! and gnd! rails
42
Design Specifications
43
Pin Specs Clock 1 bit Internal Reset Internal Body type 1 bit User input Water temp (F) 7 bits User input Diver’s age (years) 7 bits User input Depth (feet) 8 bits From sensor Internal Pressure (feet) 5 bits The body’s equivalent pressure Max Depth (feet) 8 bits The maximum depth for this trip Time to Flight (minutes) 9 bits Time until the diver can safely fly a commercial flight Ascension Watch 1 bit Flashes a warning if diver ascends too quickly (1=danger, 0=safe) Bottom Time (minutes) 11 bits Time spent underwater this trip Time Left (minutes) 8 bits The amount of time the diver can safely remain at current depth Safety Level 2 bits The diver’s current safety level based on internal pressure (0=ok, 1=safety stop, 2=decompression stop, 3=terminate!) Inputs (25 bits) Outputs (44 bits)
44
Part Specs MODULE NUM. TRANSISTORS SIZE (sq. microns) DENSITY (trans/sq. micron) Get K 4941401.230.35 Max Depth 4041189.000.34 Pressure Calculator 346010616.470.33 Ascension Watch 15945215.410.31 Bottom Time 9642906.060.33 Time Left 15264057.230.38 Time to Flight 14604028.640.36 Safety Watch 320929.280.34 OVERALL DESIGN 1022230351 0.34 !
45
Chip Specs Transistor Count: 10222 Transistor Count: 10222 Size: 201.87 microns x 151.02 microns Size: 201.87 microns x 151.02 microns Area: 30351 sq. microns Area: 30351 sq. microns Aspect Ratio: 1.33:1 Aspect Ratio: 1.33:1 Density: 0.34 transistors/sq. micron Density: 0.34 transistors/sq. micron Core Voltage: 1.6 Core Voltage: 1.6
46
Layout
47
Our Final Layout Ascension Watch Pressure Calculator Bottom Time Max Depth Get K Safety Watch Time to Flight Time Left
48
Our Final Layout Ascension Watch Pressure Calculator Bottom Time Max Depth Get K Safety Watch Time to Flight Time Left body age Water temp k (2 bits) Depth (8 bits) Pres (5 bits)
49
Ascension Watch depth Asc watch
50
Time Left pres depth Time left
51
Pressure Calculator depth pres
52
Time to Flight pres ttf
53
Bottom Time depth Bottom time
54
Max Depth depth Max depth
55
Safety Watch & Get K age temp body k pres safety
56
Top Level (poly mask)
57
Top Level (metal 1)
58
Top Level (metal 2)
59
Top Level (metal 3)
60
Top Level (metal 4)
61
Conclusions
62
Conclusions Pros Pros –Interesting application –Unique for this class –Real world application –An architecture and design challenge We couldn’t just find code (or even an algorithm) on the web, we had to come up with all of the equations and features ourselves We couldn’t just find code (or even an algorithm) on the web, we had to come up with all of the equations and features ourselves Mixed feeling about our choice of design Mixed feeling about our choice of design Cons Cons –Class was not structured to our type of design Not enough time to develop our architecture before schematic was due Not enough time to develop our architecture before schematic was due Confusion about milestones – “all subcomponents must LVS” Confusion about milestones – “all subcomponents must LVS” –Amount of custom design no subcomponent was reused, except basic gates no subcomponent was reused, except basic gates
63
Conclusions This class isn’t just layout This class isn’t just layout –We underestimated verification and spice huge time consumers Cadence Spice is a poor tool for debugging Cadence Spice is a poor tool for debugging –“No convergence in operating point” really means “somewhere in your design a signal failed but I don’t want to tell you where”
64
Conclusions We are most proud of We are most proud of –Our compact layout –Our unique design –Our modular approach made LVSing the whole circuit fairly trivial after the main 8 LVSed made LVSing the whole circuit fairly trivial after the main 8 LVSed Made debugging easier Made debugging easier –Our efficient design that minimized transistors Our original transistor count was ~15,000 and we reduced it to 10,222 through logic minimization without compromising our accuracy Our original transistor count was ~15,000 and we reduced it to 10,222 through logic minimization without compromising our accuracy –We did it! We are going to happy hour on Wednesday to celebrate! We are going to happy hour on Wednesday to celebrate!
65
Matlab Demo.
66
Emulations Matlab demo Matlab demo
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.