l20_adders
- TFE4152 - Lecture 20
- Adders
- Housekeeping
- Want to make your own IC?
- Together with a partner (or alone), figure out the logic circuit for the sum of two 1-bit signals, A + B, with the sum as a 1-bit output (S) and a 1-bit carry (C)
- Together with a partner (or alone), figure out the logic circuit for the sum of three 1-bit signals, A, B, and carry input (Ci) with the sum as a 1-bit output (S) and a 1-bit carry (C)
TFE4152 - Lecture 20
Adders
Source
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 |
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 and FSM | WH 10 | Datapaths - Adders |
44 | WH 10 | Datapaths - Multipliers, Counters | WH 11 | Hacking circuits (Nordic). Memories |
45 | WH 12 | Packaging | WH 14 | Test |
46 | Guest lecture - Nordic Semiconductor | |||
47 | CJM | Recap of CJM | WH | Recap of WH |
Housekeeping
https://folk.ntnu.no/carstenw/TFE4152/scoreboard.html
https://github.com/wulffern/dic2021/blob/main/2021-10-19_project_report/project_report.pdf
Want to make your own IC?
https://github.com/google/skywater-pdk
https://skywater-pdk.readthedocs.io/en/latest/index.html
Honesty: Making integrated circuits is an expensive endeavor. As humans, we will always make mistakes, or fail to imagine how things will fail. The cost of failures increases exponentially the closer we are to a volume product. As such, finding mistakes early is necessary to reduce cost. If people are honest, and acknowledge immediately that something has gone wrong, that can give us time to fix the problem before it costs millions.
Responsibility: Time to market is essential in integrated circuits. We must meet the market window for a particular product. Complex projects will be broken down into pieces, and milestones. We require those milestones to be met, as such, we need people that take responsibility, and ensure that milestones are met. If their milestone depends on a delivery from someone else, they need to follow up, and help to ensure that the overall milestones are met.
Logical thinking: When things go wrong, we need people that will dig into the problem and find the real physical root cause. There is no place for “hand-wavy” arguments, or arguments from authority “I know everything, so you should listen to me”. We deal with physics, and in integrated circuits, how something fails always have a physical reason.
Humility: Realizing that humans are fallible, but we should strive for not doing the same mistake twice.
Diversity: An employee’s brain must have the right skills and the right qualities. We strive for diversity, free from discrimination due to gender, nationality, origin, and religion.
Ability to learn: As an engineer you’re never finished learning. Integrated circuits is a deep skill, and you will need the ability to learn new things.
Curiosity: We want engineers that like to understand how things work. There should be an inherent drive to figure things out.
Be fearless: Don’t be afraid of asking questions. Be forward leaning. Act. Champion your ideas.
+
Together with a partner (or alone), figure out the logic circuit for the sum of two 1-bit signals, A + B, with the sum as a 1-bit output (S) and a 1-bit carry (C)
Half adder
Together with a partner (or alone), figure out the logic circuit for the sum of three 1-bit signals, A, B, and carry input (Ci) with the sum as a 1-bit output (S) and a 1-bit carry (C)
Full adder
Full adder
\[S = A \oplus B \oplus Ci\] \[C = (A \oplus B)Ci + AB\]1-bit adder
module adder (input logic [WIDTH-1:0] A,
input logic [WIDTH-1:0] B,
output logic [WIDTH:0] Y
);
localparam WIDTH=1;
assign Y = A + B;
endmodule
2-bit adder
module adder (input logic [WIDTH-1:0] A,
input logic [WIDTH-1:0] B,
output logic [WIDTH:0] Y
);
localparam WIDTH=2;
assign Y = A + B;
endmodule
4-bit adder
module adder (input logic [WIDTH-1:0] A,
input logic [WIDTH-1:0] B,
output logic [WIDTH:0] Y
);
localparam WIDTH=4;
assign Y = A + B;
endmodule
8-bit adder
module adder (input logic [WIDTH-1:0] A,
input logic [WIDTH-1:0] B,
output logic [WIDTH:0] Y
);
localparam WIDTH=8;
assign Y = A + B;
endmodule
16-bit adder
module adder (input logic [WIDTH-1:0] A,
input logic [WIDTH-1:0] B,
output logic [WIDTH:0] Y
);
localparam WIDTH=16;
assign Y = A + B;
endmodule