Digital System Design: Tutorial-1: Getting Started
Digital System Design: Tutorial-1: Getting Started
Digital System Design: Tutorial-1: Getting Started
Specification: A circuit that can select between two signals and outputs one at a
time based on some select bit value
Implementation:
Specification: A circuit that can select between two signals and outputs one at a
time based on some select bit value.
Logic behavior: Sel (select) Y (output)
1 Signal_B
Signal_A
Cost:
● 2 AND
Signal_B ● 1 NOT
● 1 OR
Sel
What About Complex Logic
CPU design, GPU design, Memory controllers, PCIe-Express, ML accelerators …
We need a way of describing the hardware and a synthesis to translate into the
intended design.
Not all logic can be manually thought of via Truth table, K-Map approaches. We
now design circuits with billions of transistors on a single silicon chip.
Manufactured Chip/Product
(Phone, Laptops)
The Design Flow
Specification/Architecture
(description, idea)
Manufactured Chip/Product
(Phone, Laptops)
The Design Flow
Specification/Architecture
(description, idea)
Manufactured Chip/Product
(Phone, Laptops)
The Design Flow
Specification/Architecture
(description, idea)
Manufactured Chip/Product
(Phone, Laptops)
The Design Flow
Specification/Architecture
(description, idea)
Manufactured Chip/Product
(Phone, Laptops)
The Design Flow: Used in this Tutorial
Specification/Architecture
(description, idea)
Provided by Lab Exercise
Manufactured Chip/Product
(Phone, Laptops)
Hardware Description Languages (HDLs)
always_comb begin
Sel
if (sel) y = signal_b;
else y = signal_a; Circuit description Synthesized circuit from the HDL code
end
endmodule
Design Example #2
Specification: In our CPU, we want to detect if an interrupt is asserted from any of
our 8 sources
intr_source[0]
logic [7:0] intr_source; FPGA
ADD
Operand_A Result_out
SUB
Operand_B
SHIFT
Status_Flag
MULT
Function_Sel
ALU