l1_course_info
- TFE4152 - Lecture 1
- Design of Integrated Circuits
- Goal for today
- Carsten Wulff carstenw@ntnu.no
- Teaching assistants
- Description
- Time schedule
- Curriculum
- Tentative lecture plan
- Exam
- Facts
- Exercise 6: Maze in SystemVerilog
- Exercise 6: Maze
- Plan
- A 10 000 Frames/s CMOS Digital Pixel Sensor
- Goal
- Minimum implementation
- Things it’s OK to ignore
- What you get
- Report 1/2
- Report 2/2
- You need to start now to be able to complete the project with a good grade
- Proposed plan
- Option 1 : Install everything on your computer
- Option 2 : Use login.stud.ntnu.no
- Option 2: Quickstart for login.stud.ntnu.no
- Option 3: Ubuntu on docker image with VNC frontend
- dicex and ciceda
- dicex - Requirements
- dicex - Getting started
- Lower your expectations on EDA software
- Expect that you will spend at least \(2\pi\) times more time than planned (mostly due to software issues)
- Questions?
- Memo time
- Virtex UltraScale+ VU19P (35 billion transistors)
- Why would anyone buy a 1 M NOK FPGA?
- If you have questions on the course content (exercise, project, lectures)
- Lecture 2: Manufacturing of integrated circuits
TFE4152 - Lecture 1
Design of Integrated Circuits
Source
Goal for today
- Who
- Course
- Exercises
- Project
- Software
- Why
- Skills
- How
Who
Carsten Wulff carstenw@ntnu.no
Teaching assistants
- Ehsan Lari
- Erlend Kristiansen Berg
- Jonas Gjendem Røysland
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
- December 2021?
- 4 hours
- D aids code - No handwritten or printed aids allowed. Preapproved calculator, in accordance to the exam regulations, allowed
- 70% of the final grade
- A - F grade (F = Fail)
Exercise
Facts
- 4 exercises on blackboard (somewhat modified from last year), 1 more to come, exercise 6 is special
- last years exercise and solutions on blackboard
- must have 4 of 6 exercises approved
- strict deadline (Friday XX 23:59)
- no second chances
Exercise 6: Maze in SystemVerilog
Exercise 6: Maze
- Explain how the mazeEscaper.v works
- Make a solution that is better
- Upload PDF with explanation and verilog to Blackboard
- 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
- 30 % of final grade
- Groups of 2 people. Find a partner soon. Sign up on blackboard.
- Deadline: 19’th November before 12:00 (24 hour format).
- Strict deadline, \(t > 12:00 \equiv fail\). Both members in group must submit report.
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
- 2 x 2 pixel array in SystemVerilog
- state machine to control reset, exposure, analog-to-digital conversion, and readout of the pixel array
- SPICE of pixel sensor (sensor, comparator, memory)
- Report documenting that the circuits (analog and digital) work as designed
Things it’s OK to ignore
- Transistor corners
- Gray counter (ask me why)
- Voltage variation
- Temperature variation
- “nice to have features”, like power optimalization, testability
What you get
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
- Introduction = Why?
- Theory = How?
- As little information as possible. Give references to sources. Assume that the reader has read the paper.
- Implementation = What?
- Describe what you designed
- State diagrams, with explanation
- Circuit diagrams, with explanation
- One sub-chapter per block
Report 2/2
- Verification = Are you sure it works?
- Describe your testbenches, and how you verified your design
- Describe key results
- Discussion and conclusion = Why do you deserve a good grade?
- Appendix
- SPICE netlist
- SystemVerilog netlist
- SystemVerilog testbench
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\pi\) 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.
- Add connectivity (Bluetooth, Zigbee, custom radio protocol) to your product.
- Provide a microcontroller; CPU + peripherals like interfaces (SPI, UART, ADC, COMP, I2C) to process information, and interface with the world.
Skills
- Project flow support: Confluence, JIRA, risk management (DFMEA), failure analysis (8D)
- Language: English, Writing English (Latex, Word, Email)
- Psychology: Personalities, convincing people, presentations (Powerpoint, Deckset), stress management (what makes your brain turn off?)
- DevOps: Linux, bulid systems (CMake, make, ninja), continuous integration (bamboo, jenkins), version control (git), containers (docker), container orchestration (swarm, kubernetes)
- Programming: Python, Go, C, C++, Matlab Since 1999 I’ve programmed in Python, Go, Visual BASIC, PHP, Ruby, Perl, C#, SKILL, Ocean, Verilog-A, C++, BASH, AWK, VHDL, SPICE, MATLAB, ASP, Java, C, SystemC, Verilog, and probably a few I’ve forgotten.
- Firmware: signal processing, algorithms
- Infrastructure: Power management, reset, bias, clocks
- Domains: CPUs, peripherals, memories, bus systems
- Sub-systems: Radio’s, analog-to-digital converters, comparators
- Blocks: Analog Radio, Digital radio baseband
- Modules: Transmitter, receiver, de-modulator, timing recovery, state machines
- Designs: Opamps, amplifiers, current-mirrors, adders, random access memory blocks, standard cells
- Tools: schematic, layout, parasitic extraction, synthesis, place-and-route, simulation, (System)Verilog, netlist
- Physics: transistor, pn junctions, quantum mechanics
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
- ask a someone in your class
- use the “øvingstime and labratorieøvelse” to talk to teaching assistants. Don’t ask about long future (future exercises).
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
- send email with questions on excercise, project, lectures etc. Long response time.
- use Teams. It interrupts the person your contacting.
- come to the office. I’m only at NTNU 20%.
There are approx 130 students. Email, teams, f2f does not scale.