lectures/l1_course_info

TFE4152 - Lecture 1

Design of Integrated Circuits

Source

Goal for today

Who

Carsten Wulff carstenw@ntnu.no

Teaching assistants

Course

Description

Time schedule

Curriculum

Tentative lecture plan

Week Book Monday Book Friday
34 Introduction, what are we going to do in this course. Why do you need it? WH 1 , WH 15 Manufacturing of integrated circuits
35 CJM 1.1 pn Junctions CJM 1.2 WH 1.3, 2.1-2.4 Mosfet transistors
36 CJM 1.2 WH 1.3, 2.1-2.4 Mosfet transistors CJM 1.3 - 1.6 Modeling and passive devices
37 Guest Lecture - Sony CJM 3.1, 3.5, 3.6 Current mirrors
38 CJM 3.2, 3.3,3.4 3.7 Amplifiers CJM, CJM 2 WH 1.5 SPICE simulation and layout
39 Verilog Verilog
40 WH 1.4 WH 2.5 CMOS Logic WH 3 Speed
41 WH 4 Power WH 5 Wires
42 WH 6 Scaling Reliability and Variability WH 8 Gates
43 WH 9 Sequencing WH 10 Datapaths - Adders
44 WH 10 Datapaths - Multipliers, Counters WH 11 Memories
45 WH 12 Packaging WH 14 Test
46 Guest lecture - Nordic Semiconductor
47 CJM Recap of CJM WH Recap of WH

Exam

Exercise

Facts

Exercise 6: Maze in SystemVerilog

Exercise 6: Maze

  1. Explain how the mazeEscaper.v works
  2. Make a solution that is better
  3. Upload PDF with explanation and verilog to Blackboard
  4. Send mazeEscaper.v as attachment to carstenw@ntnu.no with subject TFE4152-Comp-Maze

Plan

Date Week Topic
2021-09-10 36 PN Junctions
2021-09-24 38 Transistors
2021-10-08 40 Current Mirrors and Amplifiers
2021-10-22 42 CMOS logic
2021-11-05 44 Logic circuits
2021-11-19 46 Maze

Project

A 10 000 Frames/s CMOS Digital Pixel Sensor

Goal

Be inspired by the paper, and design a similar system.

Design analog circuits in SPICE and digital circuits in SystemVerilog.

Minimum implementation

Things it’s OK to ignore

What you get

github.com/wulffern/dicex

project/
├── spice/
│   ├── Makefile                # See https://www.gnu.org/software/make/manual/html_node/Introduction.html
│   ├── pixelSensor.cir         # Empty circuit for pixelSensor
│   └── pixelSensor_tb.cir      # SPICE testbench for pixelSensor, emulates verilog
└── verilog/
    ├── Makefile                
    ├── pixelSensor.fl          # Verilog file list
    ├── pixelSensor_tb.gtkw     # Save file for GTKWave
    ├── pixelSensor_tb.v        # Verilog testbench for pixelSensor
    └── pixelSensor.v           # Verilog model of analog pixelSensor circuit

Report 1/2

Report 2/2

You need to start now to be able to complete the project with a good grade

Proposed plan

Week Plan
34 Register group
35 Read and understand paper
36 Sketch what you want to do
37 Write theory chapter in report
38 Design & simulation
39 Design & simulation
40 Design & simulation
41 Design & simulation
42 Verification
43 Verification
44 Write report
45 Write report
46 Deadline

Software

You may use what ever you want, but exercises and project have been developed using AIM-Spice, ngspice, iverilog, and GKTwave on Ubuntu linux 20.10

SPICE - AIM-Spice aimspice.com (Used for exercises) - NGSpice ngspice , version 34 (Recommended for project)

SystemVerilog - iverilog Icarus Verilog, version v11_0 - gtkwave GTKWave, version 3.3.104 - ( yosys Yosys, version 0.9 )

Option 1 : Install everything on your computer

The software can be installed on Windows, Mac, and Linux

Pros Cons
Once it’s running, then it’s easy Take time to install
Compile from source
No support from us on installing

Option 2 : Use login.stud.ntnu.no

Pros Cons
I’ve tested with login.ansatt.ntnu.no GUI windows require a bit of work
Similar to real world (desktop + server) Online

Option 2: Quickstart for login.stud.ntnu.no

ssh to login.stud.ntnu.no, run

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/wulffern/dicex/main/ubuntu_install.sh)"

Connect to login from a mac/linux so you get GUI also

ssh -c aes128-ctr -YC -o "ForwardX11Timeout 4W" <username>@login.stud.ntnu.no

Option 3: Ubuntu on docker image with VNC frontend

Run Ubuntu linux on your PC via docker and use a VNC client to connect

Pros Cons
If it works, it’s easy Complex, so maybe there are issues
I’ve tested it Large ( > 3 GB)
Offline (not for first run though)

dicex and ciceda

Design of Integrated Circuits exercises (dicex) are the testbenches and model files you’ll need https://github.com/wulffern/dicex

Custom IC Creator Electronic Design Automation (ciceda) is a docker image of a ubuntu linux with the necessary tools installed https://github.com/wulffern/ciceda

dicex - Requirements

dicex - Getting started

In a terminal or powershell

git clone https://github.com/wulffern/dicex
cd dicex
./ciceda_mac.sh

See demo video

Lower your expectations on EDA software

Expect that you will spend at least 2π times more time than planned (mostly due to software issues)

Questions?

Memo time

https://github.com/wulffern/dic2021/tree/main/2021-06-13_why_integrated_circuits

Purpose

1947: First transistor. Invented by Brattain, Bardeen and Shockley, Bell labs

1961: First Monolithic Silicon IC Chip. Invented by Robert Noyce, Fairchild

https://www.statista.com/statistics/802632/world-semiconductor-shipments/

Virtex UltraScale+ VU19P (35 billion transistors)

Why would anyone buy a 1 M NOK FPGA?

https://cerebras.net/chip/

nRF51, nRF52, nRF53 series devices from Nordic Semiconductor are all the same type of tool.

Skills

Find a problem that you really want to solve, and learn a programming language to solve it. There is absolutely no point in saying “I want to learn programming”, then sitting down with a book to read about programming, and expect that you will learn programming that way. It will not happen. The only way to learn programming is to program, a lot. – Carsten Wulff

How

If you have questions on the course content (exercise, project, lectures)

Do

If none of the above works, we’ll use first few minutes in each lectures for questions on the previous content (but not future content).

Don’t

There are approx 130 students. Email, teams, f2f does not scale.

Lecture 2: Manufacturing of integrated circuits

Homework => Sam Zeloof Home Chip Fab

Thanks!