25

EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take
Page 2: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

This project I have chosen to design an automotive safety chip. It will take inputs from a SONAR sensor to control an auto-brake feature. It will also take inputs to determine where an impact happened and which airbags to deploy in a collision. I will be using the digital design tools we previously used in lab to create an electronic circuit from a Verilog file.

The first thing to do is develop a truth table with all of the possible inputs, and outputs . This will help troubleshoot if there is an error during design. It is also useful to have while setting up logical statements. (truth table attached).

Once the truth table was complete, setting up the Verilog file was next. I chose to set up my braking by setting an output to every possible input. I then used nested if loops to set up my air bag sensors. The nested if loops were easier to get confused, but I did not have to type as much.

//Verilog HDL for "lablib", "FinalProject" "behavioral"

module FinalProject (sonar,brakes,clk,airbags,f_right,f_left,l_door,r_door,accel,pass_detect);input [7:0] sonar;input clk,accel,f_right,f_left,l_door,r_door,pass_detect;output [2:0] airbags;output [3:0] brakes;reg [3:0] brakes;reg [2:0] airbags;always @ (posedge clk)case (sonar)8'b00000000 : brakes = 4'b0000;8'b00000001 : brakes = 4'b0000;8'b00000010 : brakes = 4'b0000; 8'b00000011 : brakes = 4'b0000;8'b00000100 : brakes = 4'b0000;8'b00000101 : brakes = 4'b0000;8'b00000110 : brakes = 4'b0000;8'b00000111 : brakes = 4'b0000;8'b00001000 : brakes = 4'b0000;8'b00001001 : brakes = 4'b0001;8'b00001010 : brakes = 4'b0001;8'b00001011 : brakes = 4'b0001;8'b00001100 : brakes = 4'b0001;8'b00001101 : brakes = 4'b0001;8'b00001110 : brakes = 4'b0001;8'b00001111 : brakes = 4'b0001;8'b00010000 : brakes = 4'b0001;8'b00010001 : brakes = 4'b0001;8'b00010010 : brakes = 4'b0010;8'b00010011 : brakes = 4'b0010;8'b00010100 : brakes = 4'b0010;8'b00010101 : brakes = 4'b0010;8'b00010110 : brakes = 4'b0010;8'b00010111 : brakes = 4'b0010;8'b00011000 : brakes = 4'b0010;8'b00011001 : brakes = 4'b0010;8'b00011010 : brakes = 4'b0010;8'b00011011 : brakes = 4'b0011;8'b00011100 : brakes = 4'b0011;

Page 3: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

8'b00011101 : brakes = 4'b0011;8'b00011110 : brakes = 4'b0011;8'b00011111: brakes = 4'b0011;8'b00100000: brakes = 4'b0011;8'b00100001: brakes = 4'b0011;8'b00100010: brakes = 4'b0011;8'b00100011: brakes = 4'b0011;8'b00100100: brakes = 4'b0100;8'b00100101: brakes = 4'b0100;8'b00100110: brakes = 4'b0100;8'b00100111: brakes = 4'b0100;8'b00101000: brakes = 4'b0100;8'b00101001: brakes = 4'b0100;8'b00101010: brakes = 4'b0100;8'b00101011: brakes = 4'b0100;8'b00101100: brakes = 4'b0100;8'b00101101: brakes = 4'b0101;8'b00101110: brakes = 4'b0101;8'b00101111: brakes = 4'b0101;8'b00110000: brakes = 4'b0101;8'b00110001: brakes = 4'b0101;8'b00110010: brakes = 4'b0101;8'b00110011: brakes = 4'b0101;8'b00110100: brakes = 4'b0101;8'b00110101: brakes = 4'b0101;8'b00110110: brakes = 4'b0111;8'b00110111: brakes = 4'b0111;8'b00111000: brakes = 4'b0111;8'b00111001: brakes = 4'b0111;8'b00111010: brakes = 4'b0111;8'b00111011: brakes = 4'b0111;8'b00111100: brakes = 4'b0111;8'b00111101: brakes = 4'b0111;8'b00111110: brakes = 4'b0111;8'b00111111: brakes = 4'b1000;8'b01000000: brakes = 4'b1000;8'b01000000: brakes = 4'b1000;8'b01000001: brakes = 4'b1000;8'b01000010: brakes = 4'b1000;8'b01000011: brakes = 4'b1000;8'b01000100: brakes = 4'b1000;8'b01000101: brakes = 4'b1000;8'b01000110: brakes = 4'b1000;8'b01000111: brakes = 4'b1001;8'b01001000: brakes = 4'b1001;8'b01001001: brakes = 4'b1001;8'b01001010: brakes = 4'b1001;8'b01001011: brakes = 4'b1001;8'b01001100: brakes = 4'b1001;8'b01001101: brakes = 4'b1001;8'b01001110: brakes = 4'b1001;8'b01001111: brakes = 4'b1001;8'b01010000: brakes = 4'b1010;8'b01010001: brakes = 4'b1010;8'b01010010: brakes = 4'b1010;8'b01010011: brakes = 4'b1010;8'b01010100: brakes = 4'b1010;8'b01010101: brakes = 4'b1010;8'b01010110: brakes = 4'b1010;8'b01010111: brakes = 4'b1010;

Page 4: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

8'b01011000: brakes = 4'b1010;8'b01011001: brakes = 4'b1011;8'b01011010: brakes = 4'b1011;8'b01011011: brakes = 4'b1011;8'b01011100: brakes = 4'b1011;8'b01011101: brakes = 4'b1011;8'b01011110: brakes = 4'b1011;8'b01011111: brakes = 4'b1011;8'b01100000: brakes = 4'b1011;8'b01100001: brakes = 4'b1011;8'b01100010: brakes = 4'b1100;8'b01100011: brakes = 4'b1100;8'b01100100: brakes = 4'b1100;8'b01100101: brakes = 4'b1100;8'b01100110: brakes = 4'b1100;8'b01100111: brakes = 4'b1100;8'b01101000: brakes = 4'b1100;8'b01101001: brakes = 4'b1100;8'b01101010: brakes = 4'b1100;8'b01101011: brakes = 4'b1101;8'b01101100: brakes = 4'b1101;8'b01101101: brakes = 4'b1101;8'b01101110: brakes = 4'b1101;8'b01101111: brakes = 4'b1101;8'b01110000: brakes = 4'b1101;8'b01110001: brakes = 4'b1101;8'b01110010: brakes = 4'b1101;8'b01110011: brakes = 4'b1101;8'b01110100: brakes = 4'b1110;8'b01110101: brakes = 4'b1110;8'b01110110: brakes = 4'b1110;8'b01110111: brakes = 4'b1110;8'b01111000: brakes = 4'b1110;8'b01111001: brakes = 4'b1110;8'b01111010: brakes = 4'b1110;8'b01111011: brakes = 4'b1110;8'b01111100: brakes = 4'b1110;8'b01111101: brakes = 4'b1111;8'b01111110: brakes = 4'b1111;8'b01111111: brakes = 4'b1111;8'b10000000: brakes = 4'b1111;8'b10000001: brakes = 4'b1111;8'b10000010: brakes = 4'b1111;8'b10000011: brakes = 4'b1111;8'b10000100: brakes = 4'b1111;8'b10000101: brakes = 4'b1111;8'b10000110: brakes = 4'b1111;8'b10000111: brakes = 4'b1111;8'b10001000: brakes = 4'b1111;8'b10001001: brakes = 4'b1111;8'b10001010: brakes = 4'b1111;8'b10001011: brakes = 4'b1111;8'b10001100: brakes = 4'b1111;8'b10001101: brakes = 4'b1111;8'b10001110: brakes = 4'b1111;8'b10001111: brakes = 4'b1111;8'b10010000: brakes = 4'b1111;8'b10010001: brakes = 4'b1111;8'b10010010: brakes = 4'b1111;8'b10010011: brakes = 4'b1111;

Page 5: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

8'b10010100: brakes = 4'b1111;8'b10010101: brakes = 4'b1111;8'b10010110: brakes = 4'b1111;8'b10010111: brakes = 4'b1111;8'b10011000: brakes = 4'b1111;8'b10011001: brakes = 4'b1111;8'b10011010: brakes = 4'b1111;8'b10011011: brakes = 4'b1111;8'b10011100: brakes = 4'b1111;8'b10011101: brakes = 4'b1111;8'b10011110: brakes = 4'b1111;8'b10011111: brakes = 4'b1111;8'b10100000: brakes = 4'b1111;8'b10100001: brakes = 4'b1111;8'b10100010: brakes = 4'b1111;8'b10100011: brakes = 4'b1111;8'b10100100: brakes = 4'b1111;8'b10100101: brakes = 4'b1111;8'b10100110: brakes = 4'b1111;8'b10100111: brakes = 4'b1111;8'b10101000: brakes = 4'b1111;8'b10101001: brakes = 4'b1111;8'b10101010: brakes = 4'b1111;8'b10101011: brakes = 4'b1111;8'b10101100: brakes = 4'b1111;8'b10101101: brakes = 4'b1111;8'b10101110: brakes = 4'b1111;8'b10101111: brakes = 4'b1111;8'b10110000: brakes = 4'b1111;8'b10110001: brakes = 4'b1111;8'b10110010: brakes = 4'b1111;8'b10110011: brakes = 4'b1111;8'b10110100: brakes = 4'b1111;8'b10110101: brakes = 4'b1111;8'b10110110: brakes = 4'b1111;8'b10110111: brakes = 4'b1111;8'b10111000: brakes = 4'b1111;8'b10111001: brakes = 4'b1111;8'b10111010: brakes = 4'b1111;8'b10111011: brakes = 4'b1111;8'b10111100: brakes = 4'b1111;8'b10111101: brakes = 4'b1111;8'b10111110: brakes = 4'b1111;8'b10111111: brakes = 4'b1111;8'b11000000: brakes = 4'b1111;8'b11000001: brakes = 4'b1111;8'b11000010: brakes = 4'b1111;8'b11000011: brakes = 4'b1111;8'b11000100: brakes = 4'b1111;8'b11000101: brakes = 4'b1111;8'b11000110: brakes = 4'b1111;8'b11000111: brakes = 4'b1111;8'b11001000: brakes = 4'b1111;8'b11001001: brakes = 4'b1111;8'b11001010: brakes = 4'b1111;8'b11001011: brakes = 4'b1111;8'b11001100: brakes = 4'b1111;8'b11001101: brakes = 4'b1111;8'b11001110: brakes = 4'b1111;8'b11001111: brakes = 4'b1111;

Page 6: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

8'b11010000: brakes = 4'b1111;8'b11010001: brakes = 4'b1111;8'b11010010: brakes = 4'b1111;8'b11010011: brakes = 4'b1111;8'b11010100: brakes = 4'b1111;8'b11010101: brakes = 4'b1111;8'b11010110: brakes = 4'b1111;8'b11010111: brakes = 4'b1111;8'b11011000: brakes = 4'b1111;8'b11011001: brakes = 4'b1111;8'b11011010: brakes = 4'b1111;8'b11011011: brakes = 4'b1111;8'b11011100: brakes = 4'b1111;8'b11011101: brakes = 4'b1111;8'b11011110: brakes = 4'b1111;8'b11011111: brakes = 4'b1111;8'b11100000: brakes = 4'b1111;8'b11100001: brakes = 4'b1111;8'b11100010: brakes = 4'b1111;8'b11100011: brakes = 4'b1111;8'b11100100: brakes = 4'b1111;8'b11100101: brakes = 4'b1111;8'b11100110: brakes = 4'b1111;8'b11100111: brakes = 4'b1111;8'b11101000: brakes = 4'b1111;8'b11101001: brakes = 4'b1111;8'b11101010: brakes = 4'b1111;8'b11101011: brakes = 4'b1111;8'b11101100: brakes = 4'b1111;8'b11101101: brakes = 4'b1111;8'b11101110: brakes = 4'b1111;8'b11101111: brakes = 4'b1111;8'b11110000: brakes = 4'b1111;8'b11110001: brakes = 4'b1111;8'b11110010: brakes = 4'b1111;8'b11110011: brakes = 4'b1111;8'b11110100: brakes = 4'b1111;8'b11110101: brakes = 4'b1111;8'b11110110: brakes = 4'b1111;8'b11110111: brakes = 4'b1111;8'b11111000 : brakes = 4'b1111;8'b11111001 : brakes = 4'b1111;8'b11111010 : brakes = 4'b1111;8'b11111011 : brakes = 4'b1111;8'b11111100 : brakes = 4'b1111;8'b11111101 : brakes = 4'b1111;8'b11111110 : brakes = 4'b1111;8'b11111111 : brakes = 4'b1111;default : $display("Error");endcasealways @ (posedge clk)beginairbags = 3'b000;if (accel==1)

if(f_right==1)if(f_left==1)

if(l_door==1)airbags = 3'b100; //if r_door sensor, and pass_detect are 1.

It will still deploy only driver sideelse

Page 7: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

if(r_door==1) //if everything but left door go offif(pass_detect==1)airbags = 3'b101;else //no passenger only front driverairbags = 3'b001;

elseif(pass_detect==1)airbags = 3'b010;elseairbags = 3'b001;

elseif(l_door==1)

airbags = 3'b100; // another don't care whether passenger is present or door sensor trips because only protecting driver side with l_door going off

elseif(r_door==1)

if(pass_detect==1)airbags = 3'b101;elseairbags = 3'b001;

elseif(pass_detect==1)airbags = 3'b010;elseairbags = 3'b001;

elseif(f_left==1)

if(l_door==1)airbags = 3'b100; // again don't care whether passenger is

present, or door sensor for passenger trips only protect driverelseif(r_door==1)

if(pass_detect==1)airbags = 3'b101;//side curtain for passenger onlyelseairbags = 3'b001;// if get hit in right door but no passenger,

and front impact. only drivers front airbagelseif(pass_detect==1)airbags = 3'b010;elseairbags = 3'b001;

elseif(l_door==1)

if(r_door==1)airbags = 3'b110;//no front only side impacts. only protects

drivers side.elseif(r_door==1)

if(pass_detect==1)airbags = 3'b111;elseairbags = 3'b000;//only passenger impact with no passenger, no

airbags at allelseairbags = 3'b000;endendmodule

Page 8: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

Once the Verilog file was complete, I needed to use the simulation software to verify my logic. I made a test fixture file to simulate the inputs. The file i used I set clock to start at high, this prevents a condition where the first outputs are "don't cares". I also set the clock to be 13000ns (the parameter period = 1000; go cut off my screenshot below)

The waveform generated from the test bench.

After verifying the correct outputs for various models I continued on to the RTL Compiler. Using compiler I created a schematic from the Verilog file.

Page 9: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

After Synthesis the schematic looks like:

Once exported back to cadence the schematic looks like:

Page 10: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

The Symbol View looks like:

The schematic and symbol are finished, now I want to use encounter to create my layout view.

Page 11: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

Once encounter was started, I imported the synthesized Verilog file, and used the floor plan settings, and power settings that were recommended in the previous labs.

Page 12: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

The next step was to place the cells and blocks, and route the power.

Page 13: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take
Page 14: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

Once I had everything laid out, I added filler, verified my connectivity and geometry and exported back to cadence.

Page 15: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take
Page 16: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take
Page 17: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

When the layout is imported to cadence, the pins are incorrectly placed causing DRC errors. I had to delete all the Encounter created pins, and manually connect them.

Page 18: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

Once there are no DRC errors, the layout can be extracted and checked with LVS.

Page 19: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

@(#)$CDS: LVS.exe version 5.1.0 06/17/2008 00:59 (cicln04) $

Command line: /usr/local/cadence/IC5141/tools.lnx86/dfII/bin/32bit/LVS.exe -dir /home/rsemler/ee330/ee330finalproject/LVS -l -s -t /home/rsemler/ee330/ee330finalproject/LVS/layout /home/rsemler/ee330/ee330finalproject/LVS/schematicLike matching is enabled.Net swapping is enabled.Using terminal names as correspondence points.

Net-list summary for /home/rsemler/ee330/ee330finalproject/LVS/layout/netlist count

286 nets22 terminals255 pmos255 nmos

Net-list summary for /home/rsemler/ee330/ee330finalproject/LVS/schematic/netlist count

286 nets24 terminals255 pmos

Page 20: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

255 nmos

Terminal correspondence points N252 N65 accel N178 N57 airbags<0> N279 N95 airbags<1> N227 N17 airbags<2> N210 N6 brakes<0> N165 N34 brakes<1> N281 N96 brakes<2> N257 N69 brakes<3> N234 N31 clk N106 N52 f_left N38 N39 f_right N52 N67 l_door N174 N48 pass_detect N172 N45 r_door N29 N28 sonar<0> N145 N7 sonar<1> N5 N8 sonar<2> N171 N41 sonar<3> N159 N20 sonar<4> N1 N5 sonar<5> N107 N53 sonar<6> N57 N75 sonar<7>

Devices in the rules but not in the netlist: res cap nfet pfet nmos4 pmos4

The net-lists match.

layout schematicinstances

un-matched 0 0rewired 0 0size errors 0 0pruned 0 0active 510 510total 510 510

netsun-matched 0 0merged 0 0pruned 0 0active 286 286total 286 286

terminalsun-matched 0 0matched butdifferent type 0 0total 22 24

Probe files from /home/rsemler/ee330/ee330finalproject/LVS/schematic

Page 21: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take

devbad.out:

netbad.out:

mergenet.out:

termbad.out:

prunenet.out:

prunedev.out:

audit.out:

Probe files from /home/rsemler/ee330/ee330finalproject/LVS/layout

devbad.out:

netbad.out:

mergenet.out:

termbad.out:

prunenet.out:

prunedev.out:

audit.out:

The layout and schematic match, our process is complete for this project.

This project was difficult in many ways and easier in many ways. Using computer tools the process is much faster, and RTL Compiler/ Encounter save a lot of time over creating the schematic and layout by hand. The addition of buses and a clock changed the way I had to start the project. I originally thought I needed to take the individual inputs from the bus as separate connections. This could have been explained better since we did not use buses in our previous experiments. The first project was easier to understand the input and output requirements than the other two projects, but some extra inputs or requirements could have made it equally difficult.

Page 22: EE330 Design Project - EE494 Portfolioee494portfolioryansemler.weebly.com/uploads/5/4/0/0/... · Web viewThis project I have chosen to design an automotive safety chip. It will take