Bài giảng HDL & FPGA - Chương 3: Thiết kế số. Chương này cung cấp cho sinh viên những nội dung kiến thức gồm: các mức thiết kế; thiết kế hệ thống (system level design); thiết kế mạch số tổ hợp; thiết kế mạch số tuần tự;... Mời các bạn cùng tham khảo!
Nội dung Text: Bài giảng HDL & FPGA - Chương 3: Thiết kế số
Nội dung môn học
1. Giới thiệu chung về công nghệ IC khả trình
2. Thiết kế dùng IC khả trình của Xilinx
3. Thiết kế số
• Các mức thiết kế
• Thiết kế mạch số tổ hợp
• Thiết kế mạch số tuần tự
4. Ngôn ngữ mô tả phần cứng VHDL
5. Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
97
Nội dung môn học
1. Giới thiệu chung về công nghệ IC khả trình
2. Thiết kế dùng IC khả trình của Xilinx
3. Thiết kế số
• Các mức thiết kế
• Thiết kế mạch số tổ hợp
• Thiết kế mạch số tuần tự
4. Ngôn ngữ mô tả phần cứng VHDL
5. Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
98
Các mức thiết kế
• Thiết kế dùng các cổng logic rời rạc (Gate level):
AND, OR, NAND, NOT…, Flip Flops
Dùng cho các bài toán thiết kế đơn giản như thiết kế bộ tổng,
tổng của tích, bộ đếm…
Kết quả: module
• Thiết kế dùng các thanh ghi và các module số (RTL:
register transfer level)
Thanh ghi dịch, decoder, ALU, Mux, bộ cộng, nhân, bộ đếm…
Dùng cho các bài toán thiết kế từ trung bình đến phức tạp như
thiết kế vi xử lý, thiết kế các bộ mã hoá và giải mã âm thanh,
hình ảnh …
Kết quả: vi mạch (IC)
99
Các mức thiết kế
• Thiết kế hệ thống (system level design)
Vi xử lý, bộ nhớ, các bộ mã hoá và giải mã hình ảnh, âm thanh
số, các bộ xử lý tín hiệu số …
Dùng cho thiết kế các hệ thống số phức tạp như máy rút tiền tự
động, các ứng dụng đa phương tiện
Kết quả: PCB
• Trong quá trình thiết kế một hệ thống số, các mức trên có
thể được sử dụng 1 đến nhiều lần
100
Nội dung môn học
1. Giới thiệu chung về công nghệ IC khả trình
2. Thiết kế dùng IC khả trình của Xilinx
3. Thiết kế số
• Các mức thiết kế
• Thiết kế mạch số tổ hợp
• Thiết kế mạch số tuần tự
4. Ngôn ngữ mô tả phần cứng VHDL
5. Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
101
Thiết kế mạch số tổ hợp
Bìa Karnaugh
• Mục đích: dùng để tối thiểu hoá hàm Boole để thực hiện
mạch một cách tối ưu
Ví du: F=xy’z+xy’z’ =xy’(z+z’) =xy’
x y z
x y z
F=xy’z+xy’z’ F
Tối thiểu hoá dùng cách biến đổi hàm boole rất phức tạp và
không có lý thuyết nào chứng minh kết quả tối thiểu hoá lá tối ưu
102
Thiết kế mạch số tổ hợp
Các mạch logic tổ hợp cơ bản
•Ripple-carry adders
•Adder/subtractors
•Multipliers
•Logic units
•Arithmetic-logic units
•Decoders
•Selectors
•Buses
•Magnitude comparators
103
Ripple-carry adders
• Bộ nửa tổng (Half Adder):
ci+1 yi si yi
0 0 0 1
xi 0 1 xi 1 0
xi yi
xi yi
ci+1
HA
ci+1 si
si
104
Ripple-carry adders
• Bộ tổng đầy đủ (Full Adder)
yi yi
ci+1 xi si xi
1 1 1
ci 1 1 1 ci 1 1
xi
yi
ci
xi yi
ci+1 ci
FA
si ci+1 si
105
Ripple-carry adders
• 4-bit ripple-carry adder
x3 y3 x2 y2 x1 y1 x0 y0
c4 c3 c2 c1 c0=0
FA FA FA FA
s3 s2 s1 s0
106
Adder-subtractors
X Y
Cout Adder/ S
subtractor
F
x3 y3 x2 y2 x1 y1 x0 y0
S
c4 c3 c2 c1 c0
FA FA FA FA
f3 f2 f1 f0
overflow
Chỉ dùng cho số bù 2
107
Multipliers
• Bộ nhân 1bit x 1bit C = B • A
b0
a0
a0b0
=> Cổng AND
a 0 b0
c0
108
Multipliers
• Bộ nhân 2bit x 2bit C = B • A
a0
b1 b0 b1 b0
a1 a0
a1 b0
a0b1 a0b0 b1
a1b1 a1b0
c3 c2 c1 c0
HA HA
c3 c2 c1 c0
109
Logic units
xi
yi
S0
S1
S2 xi yi
S3
S0..3 LU
fi
fi
112
Arithmetic-logic units
a4 b4 a3 b3 a2 b 2 a1 b1 a0 b0
S
FA FA FA FA FA
Cout
f4 f3 f2 f1 f0
S selects the function to be executed:
0=addition, 1=subtraction
113
Arithmetic-logic units
a4 b4 a3 b3 a2 b2 a 1 b1 a0 b 0
S01
M
ALE ALE ALE ALE ALE
X Y
FA FA FA FA FA
Cout
f4 f3 f2 f1 f0
M selects the type of operation: 0=logic, 1=arithmetic
S0 and S1 select the operation
114