Tổng hợp máy trạng thái ẩn Implicit State Machine,... • Tối ưu mã hóa trạng thái của máy trạng thái• Tối ưu các biểu thức luận lý tổ hợp Phát biểu mức RTL Biểu thức boolean tổng hợp đượ
Trang 2• Các bước thiết kế ASIC
• Các khái niệm cơ bản, sử dụng bìa
Karnaugh để thiết kế bằng tay
Trang 36 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 46 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 6 Architectural: datapath elements (register,
memory, adders,…), STG, ASM
Logical: Schematic of gates
• Physical Description
Trang 7Giải thuật Dòng dữ liệu/RTL Đại số boole
Bộ xử lý, bộ nhớ
Thanh ghi, ALU
Netlist
Hình dạng Cell Layout
Trang 8• Sinh ra một mô tả cấu trúc từ mô tả luận lý
• Tối ưu netlist và ánh xạ thành các mạch tương đương dùng các tài nguyên vật lý theo một công nghệ nào đó
Đặc tả Verilog
Công nghệ hiện thực
Hàm luận lý nhiều mức tối ưu
Hàm luận lý hai mức
Thư viện công nghệ
Trang 9• Đọc và chuyển dạng biểu diễn Verilog
Biểu thức Boolean cho các mạch kết hợp
Các dạng biểu diễn khác cho bộ nhớ và tín
hiệu đồng bộ
• Tạo ra các biểu thức POS
Trang 10• Quá trình tối ưu dựa trên quá trình tìm
Loại bỏ dư thừa
Xem xét các giá trị don’t care
Dùng chung các mạch nhỏ hơn
Trang 12• Biến đổi một mạch bằng cách biểu diễn một biểu thức
boolean thành các term (các node trung gian)
F = abc + abd + a’b’c’ + b’c’d’ F = XY + X’Y’
X = ab
Y = c + d
Node trung gian
Trang 17• Tối ưu mã hóa trạng thái của máy trạng thái
• Tối ưu các biểu thức luận lý tổ hợp
Phát biểu mức RTL
Biểu thức boolean tổng hợp được
Trang 196 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 20Những cách biểu diễn mạch tổ hợp khác
Trang 21• Loại bỏ những dư thừa
• Bảo đảm mạch nhỏ nhất
Trang 22puter
Trang 24 Không có vòng hồi tiếp
Không chứa những phát biểu
• Case không hoàn chỉnh
• Điều kiện (if)
• Timing
• Thêm mạch logic trên tín hiệu điều khiển nếu có nhiều tín hiệu điểu khiển
Trang 26 Phần tử đầu tiên có độ ưu tiên cao hơn
Các phần tử loại trừ nhau có độ ưu tiên
ngang nhau tổng hợp thành bộ phân kênh
Nhánh rẻ đầu tiên có độ ưu tiên cao hơn
Nếu các nhánh loại trừ nhau thì tổng hợp
thành các bộ phân kênh
Trang 28• Mô phỏng trước và sau tổng hợp cho kết
• casex và casez được bộ tổng hợp xem
care
tổng hợp thành mạch 3 trạng thái
Trang 31Sử dụng thư viện ASIC có
sẵn hoặc tạo ra mạch mới
Trang 32Phân kênh ngõ vào và chia sẽ bộ cộng hiệu quả hơn là sử dụng 2 bộ cộng và phân kênh ngõ ra
Gom nhóm các toán tử số học trong một hành vi vòng
Trang 336 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 34• Latch được tổng hợp theo 2 cách
Mong muốn
Không mong muốn
• Mạch sau tổng hợp không có latch
Netlist các thành phần cơ bản không hồi tiếp
Tập hợp các phát biểu liên tục không hồi tiếp
• Phát biểu gán liên tục sử dụng toán tử
điều kiện và có hồi tiếp sẽ tổng hợp thành latch
Trang 359 Latch không mong muốn trong hành vi vòng (1)
Không ảnh hưởng bởi x[0]
Tổng hợp không tạo ra latch
Trang 369 Latch không mong muốn trong hành vi vòng (2)
• Không tạo ra latch trong mạch tổng hợp được
khiển hành vi vòng
hiện trong vế phải
Trang 379 Latch không mong muốn trong case và if
Tổng hợp dùng thư viện ASIC
không dùng thư viện
Trang 38• Tín hiệu điều khiển latch làm cho latch giữ
nguyên giá trị ở các nhánh không gán giá trị cho biến
• Trong các phát biểu if/case có sự hồi tiếp sẽ
sinh ra bộ mux
• Trong hành vi vòng nhạy cạnh, phát biểu if/case
không hoàn chỉnh sẽ sinh ra flip-flop
• Hồi tiếp trong phát biểu ?:
Trang 39Phát biểu if không đầy đủ
Trang 42• FFs chỉ được sinh ra khi tổng hợp hành vi vòng nhạy cạnh
Khi nào sinh ra FFs?
Công cụ tổng hợp phân biệt tín hiệu đồng bộ xung nhịp (clock) bằng cách nào?
Bảo đảm các FFs hoạt động đồng thời?
Trang 43 Được tham khảo ngoài hành vi vòng
Được tham khảo trong hành vi vòng trước khi được gán giá trị
Có một hay nhiều trường hợp trong hành vi
vòng biến không được gán giá trị
Cần FFs để lưu trữ giá trị
Trang 44Tham khảo giá trị trước khi gán
Sinh ra FFs
Trang 45Tham khảo ngoài hành vi vòng Empty circuit
Trang 46• Biểu thức điều khiển sự
kiện (event-control) nhạy
cạnh chỉ có 1 tín hiệu
clock
• Biểu thức điều khiển sự
kiện nhạy cạnh có nhiều
hơn 1 tín hiệu phải có
phát biểu if trong thân
hành vòng
Tín hiệu xuất hiện trong
biểu thức điều kiện của if là tín hiệu điều khiển
Tín hiệu không xuất hiện
trong biểu thức điều kiện của if là clock
Clock Control
Trang 476 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 48• Phát biểu các thanh ghi trạng thái tường
minh
• Mạch luận lý điều khiển trạng thái
• Verilog
Hành vi nhạy cạnh: thay đổi trạng thái
Hành vi nhạy mức: mô tả trạng thái tiếp theo
và giá trị ngõ ra
Trang 490/0, 1/1 0/1
0/1
1/0
0/1
0/0 1/1 0/0 1/1
0/1
Trang 53• Thanh ghi trạng thái phải được gán toàn
bộ (không gán bit hay gán từng phần)
• Toàn bộ thanh ghi trạng thái phải có giá trị
• Tín hiệu điều khiển bất đồng bộ phải là vô hướng (scalar)
• Giá trị gán cho thanh ghi trạng thái phải là hằng số hoặc biến có giá trị hằng
Trang 54Mealy-Type
Trang 566 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 57• Biến được gán giá trị đồng bộ với xung
có tín hiệu tích cực của xung clock, ngược lại giữ nguyên giá trị
Trang 616 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 62• Heuristic mã hóa trạng thái bằng tay
Nếu hai trạng thái có cùng trạng thái kế tiếp
dưới cùng một tín hiệu ngõ vào, mã hóa thành hai trạng thái luận lý kế cận
Mã hóa trạng thái kế tiếp là kế cận luận lý của trạng thái hiện tại
Mã hóa kế cận luận lý cho các trạng thái có
cùng ngõ ra dưới một ngõ vào
Trang 636 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State
Machine), thanh ghi và bộ đếm
8 Tổng hợp các tín hiệu
9 Tiên đoán kết quả tổng hợp
10 Tổng hợp các vòng lặp
11 Các bẫy thiết kế cần tránh
Trang 64• Không có thanh ghi chứa trạng thái
• Trạng thái được định nghĩa ngầm bởi hoạt động trong một chu kỳ (always)
• Mỗi trạng thái chỉ có thể được tiếp cận từ một trạng thái khác
Trang 65• Bất kỳ máy tuần tự nào với một luồng hoạt động đồng
nhất trong mỗi chu trình là một máy trạng thái ẩn một
chu trình
• Công cụ tổng hợp dễ dàng tổng hợp các bộ đếm, thanh ghi dịch dạng máy trạng thái ẩn một chu trình
4-bit ripple counter
Trang 66Biến trong biểu thức điều khiển phải là biến đơn giản (không dùng phép toán chọn bit)
Trang 68• Các phần tử lưu trữ có thể được tổng hợp thành các FFs hay các
Latch tùy theo sơ đồ định thời
• Dùng thanh ghi (register) để chỉ cấu trúc bộ nhớ cấu thành từ D FFs với clock chung
Shifter1 Registered output
Shifter1
Trang 70• Các module tuần tự phải có tín hiệu reset
để thiết lập giá trị ban đầu
• Phát biểu đầu tiên trong hành vi phải là
phát biểu điều kiện
Kết hợp với tín hiệu reset
Kết thúc sự thực thi khi tín hiệu reset tích cực
• Reset bất đồng bộ có thể gây ra glitch
Trang 71vào giống nhau 2
chu kỳ liên tiếp
Các thanh ghi dịch
(last_bit, this_bit) giữ
nguyên giá trị khi reset
Các thanh ghi dịch
(last_bit, this_bit) không
giữ giá trị khi reset
Trang 73• Khi các thanh ghi giữ giá trị khi reset cần thêm mạch
logic để hồi tiếp ngõ ra của thanh ghi về ngõ vào để giữ giá trị
Nên xóa giá trị thanh ghi khi reset
Trang 746 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 75• Gated clock có thể gây lệch xung
• Sử dụng gated clock để giảm thiêu hao
năng lượng
Trang 766 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 77• Net giữ nguyên như thiết kế
Internal nets có thể bị lược bỏ
• Integer được lưu trữ như đối tượng
32-bits
Trang 78 Chuyển các toán tử thành tập hợp biểu thức boole nếu không có các phần tử tương ứng
Trang 81hợp
Trang 836 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 84 Số lần lặp biết trước khi tổng hợp
Có thể tổng hợp bằng các cấu trúc repeat, for,
Trang 85puter
Trang 86Static repeat tương tự
như static for
Trang 906 Mã hóa trạng thái (State Encoding)
7 Tổng hợp máy trạng thái ẩn (Implicit State Machine),
Trang 91nhiều hành vi vòng