1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mạng quang chuyển mạch tự động (ason)

81 382 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 2,75 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bởi vì số lượng các giá trị đầu vào yêu cầu s tăng theo cấp số nhân khi k ch thước của thiết kế tăng lên nên việc kiểm chứng thiết kế một cách tổng thể bằng phương pháp mô phỏng là không

Trang 1

VIỆN ĐIỆN TỬ - VIỄN THÔNG

Trang 2

M

M 1

LỜI AM ĐOAN 3

DANH SÁCH HÌNH VẼ 4

AN S ẢN IỂU 6

T U T N V T VIẾT T T 7

PHẦN MỞ ĐẦU 9

CHƯƠN T N QUAN VỀ KIỂM ĐỊNH HÌNH THỨC PHẦN CỨNG 10

1 1 iểm chứng trong qu tr nh thiết kế vi mạch 10

1.2 Kiểm chứng bằng phương pháp mô phỏng 13

1.3 Phương pháp kiểm chứng hình thức 15

1.4 So sánh phương pháp kiểm chứng bằng mô phỏng và kiểm chứng hình thức 19

CHƯƠNG 2 KIỂM CHỨNG HÌNH THỨC 22

2.1 Biểu diễn logic 22

2.1.1 Biểu diễn hàm logic 22

2.1.2 Mạch logic tổ hợp 25

2.1.3 Gate-net-list 29

2.1.4 Mô hình hóa mạch tuần tự 30

2.2 Kiểm chứng tương đương 38

2.2.1 Đồ thị quyết định nhị phân (BDD) 38

2.2.2 Toán tử trên cây quyết định nhị phân BDD 41

2.2.3 Kiểm chứng tương đương dựa trên BDD 44

2.3 Kiểm chứng thuộc tính 49

2.3.1 Thuộc tính và ngôn ngữ mô tả đặc điểm kỹ thuật mạch 49

2.3.2 Kiểm tra công thức CTL 53

CHƯƠNG 3 PHÁT TRIỂN CHƯƠNG TRÌNH TẠO ROBDD T MẠCH LOGIC BIỂU DIỄN BẰNG FCK 56

Trang 3

3.1.1 Sơ đồ thừa kế 56

3.1.2 Các định nghĩa giao tiếp trong mạch (Circuit Builder) 58

3.1.3 Circuit 59

3.1.4 Module trong FCK 61

3.1.5 Component 61

3.1.6 Lớp hàm Function 67

3.2 Gói CUDD (CUDD package) 69

3.2.1 Cấu trúc dữ liệu của CUDD 69

3.2.2 Các thao tác trên với đồ thị quyết định nhị phân BDD trên CUDD 71

3.3 Biến đổi mạch từ mạch mô tả bằng FCK sang dạng ROBDD 72

3.3.1 Chuyển đổi từng Component trong FCK thành Dnode 73

3.3.2 Tạo ROBDD cho các mạch Component 76

CHƯƠNG 4 KẾT LU N 78

TÀI LIỆU THAM KHẢO 79

Trang 4

LỜI AM ĐOAN

Tôi xin cam đoan đâ là công tr nh nghiên cứu của tôi, tôi xin chịu mọi trách nhiệm về các nội dung trình bày trong luận văn của mình

Hà Nội, ngà 15 tháng 8 năm 2013 Sinh viên

Nguyễn Thái Bình

Trang 5

DANH SÁCH HÌNH VẼ

Hình 1-1 Đồ thị mức độ trừu tượng trong thiết kế 11

Hình 1-2 Mối quan hệ giữa thiết kế và kiểm chứng 12

Hình 1-3 Quy trình kiểm chứng bằng mô phỏng 14

Hình 1-4 Nguyên tắc cơ bản của kiểm chứng (A) Phương pháp cơ bản của kiểm chứng bằng cách tạo ra dư thừa, (B) Một biến thể của phương pháp cơ bản, (C) Mô phỏng kết hợp với kiểm chứng 17

Hình 1-5 Quy trình thông thường trong kiểm chứng hình thức 19

Hình 1-6 Không gian trạng thái đầu ra của phương pháp mô phỏng và phương pháp hình thức 21

Hình 2-1 Ví dụ về component netlist 26

Hình 2-2 Một ví dụ về mạch tổ hợp 28

Hình 2-3Ví dụ về gate-netlist 29

Hình 2-4 Mở rộng gate-net-list thành component-net-list 30

Hình 2-5 Ví dụ về một component netlist được biểu diễn bằng 1 đồ thị có hướng bổ sung thêm các phép toán cơ bản 30

Hình 2-6 JK flip-flop 31

nh 2-7 ô h nh mạch tuần tự cơ bản 32

nh 2-8 ô h nh vi mạch tổng quát 36

Hình 2-9 Cấu trúc của mạch tuần tự đồng bộ 37

Hình 2-10 Quá trình trải mạch 38

Hình 2-11Ví dụ về BDD 39

Hình 2-12 Hai BDD (A,B) của cùng một hàm khác nhau về thứ tự các biến 40

Hình 2-13 Hai BDD (A,B) của cùng một hàm 41

Trang 6

Hình 2-14 Sơ đồ kiểm tra tương đương bằng phương pháp sử dụng XOR 45

Hình 2-15 Các mạch cần kiểm tra tương đương (A) là mức gate-level (B) là mức RTL 46

Hình 2-16 So sánh BDD lớn nhất không có và không có node mapping (A) BDD cho node f (B) BDD cho node x (C) BDD cho node y (D) BDD cho node z (E) BDD cho node f 47

Hình 2-17 Tạo các input và output trung gian từ các điểm cắt 47

Hình 2-18 Giới hạn đầu vào để kiểm tra mạch 48

Hình 2-19 Giới hạn bằng cách buộc đầu ra là bằng nhau ở những input không được phép 49

Hình 2-20 Ý nghĩa của toán tử LTL 52

Hình 3-1 Sơ đồ kế thừa lớp Circuit 56

Hình 3-2 Sơ đồ kế thừa lớp TimeFrameExpansion từ lớp Module 56

Hình 3-3 Sơ đồ kế thừa các phần tử trong mạch từ lớp Component 57

Hình 3-4 Mô tả các cổng vào và các biến cơ bản của lớp Component 61

Hình 3-5 Bộ cộng Ripple-carry 76

Hình 3-6 Lưu đồ thuật toán chuyển từ FCK sang ROBDD 77

Trang 7

DANH S ẢN IỂU

Bảng 2.1 Các cổng logic cơ bản và hàm logic tương ứng của chúng 28

Bảng 2.2 Toán tử ITE biểu diễn các toán tử Boolean 43

Bảng 3.1 Bảng liệt kê các component trong FCK 58

Bảng 3.2 Danh sách và mô tả các biến của lớp Circuit 59

Bảng 3 3 Danh sách và ý nghĩa các hàm của lớp circuit 60

Bảng 3.4 Danh sách và mô tả các biến Private trong lớp Module 61

Bảng 3.5 Bảng liệt kê và mô tả các biến Protect của Component 62

Bảng 3.6 Danh sách các hàm cấu hình Component 62

Bảng 3.7 Danh sách các biến protect và biến private của Input 63

Bảng 3.8 Danh sách các biến Private của Pseudo Input 64

Bảng 3.9Các biến của Module Input 65

Bảng 3.10 Hàm Private của LT 66

Bảng 3.11 Các biến protect của lớp Function 68

Bảng 3.12 Các hàm của lớp Function 68

Bảng 3.13 Các hàm chung giữa các lớp con của Function 69

Bảng 3.14 Các hàm thao tác BDD trong gói CUDD 71

Trang 8

T U T N V T VIẾT T T

ASICs Application-Specific Integrated Circuit Vi mạch t ch hợp chu ên dụng

BDD Binary Decision Diagram iểu đồ qu ết định nhị phân

CDFG Control Data Flow Graph Đồ thị d ng dữ liệu điều khiển DAG Directed Acylic Graph Đồ thị không hồi tiếp c hướng

FPGA Field Programable Gate Array ảng cổng logic lập tr nh

được FST Finite State Transition Structure hu ển trạng thái hữu hạn HDL Hardware Description Language Ngôn ngữ mô tả phần cứng

IEEE Institute of Electrical and Electronics

Engineers

Viện k nghệ Điện và Điện tử

ROBDD Reduce order binary decision diagram Cây quyết định nhị phân có

thứ tự rút gọn RTL Register Transfer Level ức dịch chu ển thanh ghi

SCC Strongly Connected Components Thành phần kết nối ch t ch

Trang 9

VLSI Very-large-scale Integration Vi mạch t ch hợp rất lớn STG State Transition Graph Đồ thị chu ển trạng thái

Trang 10

PHẦN MỞ ĐẦU

Để có thể thiết kế được các mạch tích hợp c độ phức tạp lớn một yêu cầu tiên quyết là phải có công nghệ tổng hợp, tối ưu và kiểm tra tự động phần cứng số Ngày nay, khi các mạch tích hợp có hàng triệu cổng logic, chỉ các phần mềm tự động mới

có khả năng tối ưu và kiểm tra chúng Sử dụng các phần mềm thiết kế, kiểm tra tự động như vậy cho phép giải quyết 2 vấn đề cơ bản trong thiết kế chế tạo mạch tích hợp đ là năng suất thiết kế và chất lượng vi mạch

Các mạch tích hợp đ i hỏi phải có chất lượng rất cao Bất cứ lỗi nhỏ nào trong phần cứng của thiết bị cũng dẫn tới các tổn thất to lớn về giá thành cũng như thời gian ra thị trường của sản phẩm Vì vậy, việc kiểm tra thiết kế phần cứng của vi mạch luôn là một vấn đề n ng trong lĩnh vực chế tạo thiết bị điện tử

Mô phỏng logic là một k thuật được sử dụng rộng rãi cho việc kiểm chứng của thiết kế Mô phỏng s tính toán giá trị đầu ra đối với các giá trị được đưa vào đầu vào Tuy nhiên, vì chất lượng của việc kiểm chứng s phụ thuộc nhiều vào việc lựa chọn các giá trị đầu vào nên rất có thể vẫn tồn tại những lỗi thiết kế mà không thể tìm ra bằng phương pháp mô phỏng logic Bởi vì số lượng các giá trị đầu vào yêu cầu s tăng theo cấp số nhân khi k ch thước của thiết kế tăng lên nên việc kiểm chứng thiết kế một cách tổng thể bằng phương pháp mô phỏng là không khả thi Để giải quyết vấn đề này, việc phát triển các k thuật kiểm chứng hình thức (Formal Verification) là rất cần thiết

Đồ án này tập trung vào việc nghiên cứu và tìm hiểu các vấn đề liên quan đến kiểm chứng hình thức như mô h nh h a vi mạch, phương pháp chứng minh; và ngôn ngữ đ c tả, sau đ phát triển chương tr nh minh họa việc mô hình hóa mạch logic theo cây quyết định nhị phân rút gọn (ROBDD)

Em xin chân thành cảm ơn TS Ngu ễn Đức inh, người đ cực k tận tâm gi p đ

em trong quá tr nh nghiên cũng như luôn đưa ra những lời khu ên hữu ch, gia đ nh, bạn bè đ gi p em hoàn thành đồ án này

Trang 11

ƢƠN T N QUAN VỀ KIỂM ĐỊNH HÌNH

THỨC PHẦN CỨNG

hương nà giải th ch sự cần thiết của kiểm chứng, các phương pháp kiểm chứng và sự khác nhau của các phương pháp Sau đ nêu ra những ưu khu ết điểm của phương pháp kiểm chứng hình thức

1.1 ể hiết kế vi mạch

Quá trình thiết kế là biến một tập hợp các chi tiết k thuật đầu vào thành một cách thực hiện các chi tiết k thuật đ V dụ, thiết kế một con chip nén Video bằng Verilog ở mức RTL là biến các mô tả chỉ tiêu k thuật, các thuật toán nén Video thành 1 module phần cứng được mô tả bởi ngôn ngữ Verilog ở mức RTL Ở mức

mô tả đ c điểm k thuật, các Yêu cầu k thuật (Specification) nêu những chức năng

mà các thiết kế thực hiện nhưng không chỉ ra cách thực hiện Một Thực hiện các yêu cầu k thuật (Implementation) nêu rõ các cách thức làm thế nào để có các yêu cầu k thuật đấy Cả Spec và Implement đều là các dạng mô tả chức năng, nhưng chúng có mức độ khác nhau về tính cụ thể và tính trừu tượng Một mô tả có mức độ cao hơn trừu tượng cao hơn th c t chi tiết hơn, do đ , Spec c mức độ trừu tượng cao hơn Implementation Trong thiết kế phần cứng, chúng ta thấy một thứ tự giảm trừu tượng: mô tả chức năng, mô tả thuật toán, mô tả ở mức (RTL), gate netlist, transistor netlist, và layout (Hình 1-1) Mô tả ở cấp độ cao có thể làm phát sinh nhiều hình thức mô tả ở mức thấp hơn V dụ, một số lượng vô hạn của mạch ở mức Gate netlist để thực hiện cùng 1 mô tả RTL Khi chúng ta đi từ trên xuống dưới, một mô tả ít trừu tượng s làm tăng thêm mức độ chi tiết trong khi vẫn giữ các mô

tả ở cấp độ cao hơn Quá tr nh chu ển một mô tả trừu tượng hơn thành một mô tả

cụ thể hơn được gọi là sàng lọc Do đ , một quá trình thiết kế là biến một tập hợp các yêu cầu k thuật thành các triển khai cụ thể

Trang 12

Hình 1-1 Đồ thị mức độ trừu tượng trong thiết kế Kiểm chứng thiết kế là quá tr nh ngược lại của thiết kế.Kiểm chứng thiết kế bắt đầu với mộtThực hiện (Implementation) và xác nhận rằng Thực hiện nà đáp ứng các Yêu cầu k thuật (Spec) của n Do đ , tại mỗi bước thiết kế, có một bước kiểm chứng tương ứng Ví dụ, ở bước thiết kế chuyển mô tả chức năng thành việc thực hiện thuật toán đ i hỏi phải có một bước kiểm chứng để đảm bảo rằng các thuật toán s thực hiện đ ng các chức năng đ được mô tả Tương tự như vậy, một thiết kế vật lý tạo ra layout từ một gate netlist cần phải được kiểm chứng để đảm bảo rằng layout s tương đương với gate netlist Nhìn chung, việc kiểm chứng thiết kế s bao gồm rất nhiều lĩnh vực như kiểm chứng chức năng, kiểm chứng thời gian, kiểm chứng layout, kiểm chứng về nguồn điện.Hình 1-2 mô tả mối quan hệ giữa thiết kế

và kiểm chứng

Trang 13

Hình 1-2 Mối quan hệ giữa thiết kế và kiểm chứng Kiểm chứng thiết kế có thể được tiếp tục chia thành hai loại.Loại thứ nhất kiểm tra rằng hai phiên bản thiết kế có chức năng tương đương với nhau ha không được gọi là kiểm tra tương đương Ứng dụng phổ biến của việc kiểm tra tương đương là

so sánh hai phiên bản của mạch ở cùng một mức độ trừu tượng.Tuy nhiên, hai phiên bản của thiết kế thường khác nhau về mức độ trừu tượng.Ví dụ, một phiên bản của thiết kế là ở mức đ c điểm k thuật và các phiên bản khác là mức gate netlist

Khi hai phiên bản khác nhau đáng kể về mức độ trừu tượng, chúng có thể không tương đương về chức năng, bởi vì việc thực hiện cấp thấp hơn c thể có các thành phần được phép, nhưng không được nói rõ ở mức độ cao hơn V dụ, một sự triển khai có thể có các ràng buộc về thời gian mà không có trong mô tả k thuật Trong tình huống này, thay vì kiểm tra sự tương đương về chức năng của hai phiên bản, chúng ta s kiểm tra rằng sự triển khai có thoả mãn mô tả k thuật ha không Lưu

ý rằng kiểm tra tương đương là sự kiểm chứng hai chiều, nhưng đâ là sự kiểm chứng một chiều vì mô tả k thuật không thể thoả mãn những t nh năng chưa được chỉ ra của sự triển khai Loại kiểm chứng nà được gọi implementation verification, property checking, ho c model checking

Trang 14

1.2 Kiểm ch ng bằ p ƣơ p áp ô p ỏng

Phương pháp kiểm chứng được sử dụng phổ biến nhất là kiểm chứng dùng mô phỏng Trong quá trình kiểm chứng dùng mô phỏng, thiết kế được đ t trong một module kiểm tra test bench, k ch th ch đầu vào s được áp dụng với test bench, và đầu ra của thiết kế s được so sánh với đầu ra tham chiếu Một test bench s bao gồm các mã hỗ trợ các hoạt động của thiết kế, như là tạo ra các k ch th ch đầu vào

và so sánh đầu ra với đầu ra tham chiếu ch th ch đầu vào được tạo ra để mô phỏng có thể được đọc vào từ một cơ sở dữ liệu trong quá trình mô phỏng, ho c nó

có thể được tạo ra trong quá trình chạy mô phỏng.Tương tự như vậ , đầu ra tham chiếu có thể được tạo ra trước ho c khi đang chạy mô phỏng

Trước khi thiết kế được mô phỏng, n được đưa qua một chương tr nh linter để kiểm tra lỗi tĩnh ho c các lỗi tiềm ẩn và các lỗi cú pháp hương tr nh nà không yêu cầu các vector đầu vào, do đ , n s kiểm tra các lỗi độc lập với k ch th ch đầu vào.Lỗi tĩnh c thể là khối module có số lượng cổng không phù hợp, ho c một đầu vào treo của một cổng.Tiếp theo, các vector đầu vào trong kế hoạch thử nghiệm s được tạo ra Vector đầu vào nhắm vào mục tiêu là các chức năng cụ thể được gọi là kiểm tra trực tiếp Bởi vì kiểm tra trực tiếp chỉ kiểm tra không gian đầu vào mà người thiết kế biết, trong khi lỗi thường xảy ra ở những nơi mà người thiết kế không biết, do đ kiểm tra giả ngẫu nhiên được sử dụng cùng với kiểm tra trực tiếp Kiểm tra giả ngẫu nhiên thường tạo ra các vector gần với kiểm tra trực tiếp.Vì vậy, nếu kiểm tra trực tiếp là không gian các điểm thì kiểm tra giả ngẫu nhiên s mở rộng xung quanh các điểm này.Sau khi các thử nghiệm được tạo ra, chương tr nh mô phỏng s được chọn để thực hiện mô phỏng hương tr nh mô phỏng có thể là một phần mềm điều khiển các sự kiện và xung đồng hồ ho c có thể là phần cứng.Chất lượng của việc kiểm chứng bằng mô phỏng được xác định qua độ bao phủ của nó

Độ bao phủ được xác định bằng bao nhiêu phần trăm thiết kế đ được kích thích và kiểm chứng Độ bao phủ về mã là số phần trăm m đ được thực hiện Nó cho biết bao nhiêu dòng code trong thiết kế đ được kiểm tra, bao nhiêu câu lệnh r nhánh

Trang 15

trong thiết kế đ được thực thi, bao nhiêu trạng thái trong máy trạng thái đ được chạ qua Độ bao phủ về chức năng là tỉ lệ phần trăm các chức năng đ được thực hiện Sử dụng thước đovề độ bao phủ, người thiết kế có thể thấ được những phần thiết kế đ không được thực hiện và tiến hành kiểm chứng những phần đ Qu trình kiểm chứng dùng mô phỏng được tóm tắt trongHình 1-3

Hình 1-3 Quy trình kiểm chứng bằng mô phỏng

Mô phỏng logic là một k thuật được sử dụng rộng rãi cho việc kiểm chứng của thiết kế.Mô phỏng s tính toán giá trị đầu ra đối với các giá trị được đưa vào đầu vào.Tuy nhiên, vì chất lượng của việc kiểm chứng s phụ thuộc nhiều vào việc lựa chọn các giá trị đầu vào nên rất có thể vẫn tồn tại những lỗi thiết kế mà không thể tìm ra bằng phương pháp mô phỏng logic Bởi vì số lượng các giá trị đầu vào yêu cầu s tăng theo cấp số nhân khi k ch thước của thiết kế tăng lên nên việc kiểm

Trang 16

chứng thiết kế một cách tổng thể bằng phương pháp mô phỏng là không khả thi Để giải quyết vấn đề này, việc phát triển các k thuật kiểm chứng hình thức (formal verification) là rất cần thiết

1.3 P ƣơ p áp k ểm ch ng hình th c

Phương pháp kiểm chứng hình thức khác với phương pháp mô phỏng ở chỗ, nó không cần phải tạo ra các test vector Kiểm chứng hình thức được chia làm 2 loại: kiểm tra tương đương và kiểm chứng thuộc tính

Kiểm tra tương đương xác định liệu 2 thực hiện c tương đương nhau về m t chức năng ha không iểm tra tương đương bằng mô phỏng là điều không thể bởi

vì số lượng vô hạn các test vector trong không gian các biến đầu vào Trong kiểm chứng hình thức là rõ ràng Tuy nhiên, các công cụ kiểm tra tương đương chưa hoàn thiện và phải yêu cầu người sử dụng phải xác định các node tương đương trong mạch để hạn chế bớt không gian trạng thái các biến đầu vào ác node mà người dùng chỉ ra để kiểm tra tương đương được gọi là “cut point”

2 phương pháp kiểm tra tương đương Phương pháp thứ nhất là tìm kiếm trong không gian các biến đầu vào theo một cách có hệ thống để tìm ra input vector

mà có thể phân biệt được 2 mạch cần kiểm tra Phương pháp nà gọi là SAT (satisfiability) Có thể n i phương pháp nà gần giống phương pháp tự động tạo test vector Phương pháp thứ 2 là biến 2 mạch thành một dạng biểu diễn chuẩn tắc để so sánh chúng với nhau Một biểu diễn được gọi là chuẩn tắc nếu có tính chất 2 hàm logic là tương đương khi và chỉ khi biểu diễn tương ứng của chúng là đẳng cấu, hay nói cách khác 2 biểu diễn s giống hệt nhau chỉ có tên là khác nhau Một ROBDD (reduced ordered binary decision diagram) là một biểu diễn chuẩn tắc

Kiểm tra tương đương được sử dụng rộng rãi trong các tình huống sau:

Trang 17

 So sánh 2 mạch trước và sau khi thêm 1 module debug gọi là Scan để đảm bảo việc thêm các Scan không làm tha đổi chức năng ch nh của mạch

 Đảm bảo tính toàn vẹn giữa Layout và RTL

 Chứng mình rằng việc tha đổi ECO (engineering change order) nằm trong giới hạn cho phép Điều nà được thực hiện bởi xác định những vùng của mạch bị tha đổi

Nếu việc kiểm tra tương đương bị sai, chương tr nh kiểm tra tương đương s tạo

ra test vector mà khi dùng test vector nà để mô phỏng s thấy rõ sự khác nhau giữa

2 mạch Lỗi xảy ra có thể là kết quả của một lỗi thực sự ho c do một điều kiện biên không định trước Một điều kiện biên không chủ định trước có thể xuất hiện khi mạch Scan không được tắt (Disable) Sau đ , chương tr nh s tạo ra 1 chuỗi các vector chạy cho mạch sau khi thêm Scan ở chế độ test, trong khi chạy cho mạch trước khi thêm Scan ở chế độ hoạt động thông thường

Một dạng khác của kiểm chứng hình thức là kiểm tra thuộc tính Kiểm tra thuộc tính lấy các thuộc tính – là một phần của Spec, sau đ chứng minh hay bác bỏ rằng thiết kế có thuộc t nh đ ột thuộc tính về bản chất là 1 mô tả thiết kế, và n đ ng vai trò khẳng định thiết kế thông qua sự dư thừa hương tr nh mà kiểm tra thuộc

t nh được gọi là “model checker”, tham chiếu thiết kế như là một mô hình tính toán của 1 mạch thật sự Vai trò của kiểm tra mô hình trong kiểm chứng được minh họa trong Hình 1-4

Trang 18

Hình 1-4 Nguyên tắc cơ bản của kiểm chứng (A) Phương pháp cơ bản của kiểm chứng bằng cách tạo ra dư thừa, (B) Một biến thể của phương pháp cơ bản, (C) Mô

phỏng kết hợp với kiểm chứng

Ý tưởng của kiểm tra thuộc tính là tìm kiếm toàn bộ không gian trạng thái để chỉ

ra sự không thỏa mãn của các thuộc t nh Trong trường hợp lỗi bị xảy ra, giá trị của không gian trạng thái (gây ra lỗi) s được lấy ra để mô phỏng, người thiết kế s dùng kết quả mô phỏng nà để tìm ra lỗi Kiểm tra thuộc t nh đưa được vào thực tiễn nhờ thuật toán “s mbolic traversal” Thuật toán này không kiểm tra toàn bộ không gian trạng thái mà kiểm tra từng cụm, do đ c hiệu năng rất cao

Một lỗi có thể là kết quả của một lỗi thiết kế thực thụ, ho c một lỗi trong thuộc tính ho c một đầu vào không mong muốn ho c do một cấu hình trạng thái Bởi vì

mô tả thuộc tính là một cách khác để mô tả thiết kế, nó hoàn toàn có thể có lỗi giống như lỗi trong thiết kế Lỗi có thể xả ra do đầu vào không mong muốn ho c do cấu

Trang 19

hình trạng thái Nếu một mạch đang cần được kiểm chứng, input waveform phải được cấu h nh để đồng nhất với input waveform khi mạch đ được nhúng vào hệ thống lớn Những lỗi xảy ra kiểu này xảy ra do mạch không được thiết kế để chạy

đ ng với những input không bao giờ xảy ra trong thực tế nà Để loại bỏ những cấu hình không mong muốn ảnh hưởng đến quá trình kiểm chứng thuộc tính, input hay trạng thái phải được giới hạn để tạo ra những waveform hợp lệ

Trong thực tế kiểm chứng thuộc tính bao gồm cả thời gian dài để giới hạn lại các tham số và thời gian sửa lỗi thuộc tính và sửa lỗi trong thiết kế Bởi vì chỉ một phần của thiết kế dược kiểm chứng thuộc t nh, nên môi trường xung quanh phần đ phải được mô hình hóa một cách chính xác Trong quá trình kiểm chứng, thời gian lớn nhất chiếm đến 70% thời gian trong kiểm chứng là dùng để giới hạn đ ng không gian vector đầu vào Thời gian lớn thứ 2 là dùng để sửa lỗi thuộc tính Mức độ khó của sửa lỗi thuộc tính giống như mức độ khó của việc sửa các loại lỗi khác

Một phương pháp khác để kiểm chứng thuộc t nh là dùng phương pháp chứng minh lý thuyết (theorem-proving) Trong phương pháp nà thuộc t nh được xác định như là một mệnh đề toán học Thiết kế th được mô tả như là một thực thể toán học và được coi như là các tiên đề Mục tiêu của phương pháp nà là chỉ ra các mệnh đề c được suy ra từ các tiên đề này không Nếu có thể su ra được thì các thuộc t nh nà là đ ng, ngược lại là thiết kế không có thuộc t nh nà Phương pháp chứng minh lý thuyết không có mức tự động như phương pháp kiểm tra mô hình và cần nhiều sự gi p đ của con người

Để sử dụng hiệu quả dụng phương pháp chứng minh lý thuyết thì yêu cầu người

sử dụng phải có hiểu biết tốt về các hoạt động bên trong Tool và khá quen thuộc với quá trình chứng minh bằng toán học M c dù mức độ tự động của Tool không cao nhưng bù lại nó có thể kiểm chứng một thiết kế lớn hơn phương pháp kiểm tra mô

h nh và đ i hỏi ít bộ nhớ hơn ơn nữa phương pháp chứng minh lý thuyết còn có thể chấp nhận những thuộc tính phức tạp hơn hẳng hạn, nó có thể cho phép các

Trang 20

thuộc tính có bậc logic cao hơn ( OL higher order logic), trong khi đ phương pháp kiểm tra mô hình chỉ cho phép logic bậc 1 và cây logic tính toán

Một quá trình kiểm chứng hình thức được mô tả trong M c dù kiểm chứng hình thức không cần test vector nhưng v n cần test bench để cấu hình mạch vào đ ng chế

độ hoạt động

Hình 1-5 Qu tr nh thông thường trong kiểm chứng hình thức

1.4 S sá p ƣơ p áp k ểm ch ng bằng mô phỏng và kiểm ch ng hình

th c

Sự khác biệt lớn nhất giữa phương pháp mô phỏng và phương pháp h nh thức là một bên cần input vector còn một bên th không Phương pháp mô phỏng phải dựa vào input vector để đưa ra sự sai khác trong output, trong khi phương pháp kiểm chứng hình thức làm theo cách ngược lại Người thiết kế bắt đầu với mong muốn output như thế nào vào mới để tool formal checker chứng minh hay bác bỏ Người

Trang 21

sử dụng không cần quan tâm đến k ch th ch đầu vào.Có thể n i phương pháp mô phỏng dựa quyết định bởi input (input driven), phương pháp h nh thức quyết định bởi output (output driven)

Một đ c trưng đáng ch nhất của kiểm chứng bằng phương pháp h nh thức là tính bao phủ hoàn toàn, nghĩa là phương pháp nà không bỏ qua bất cứ điểm nào trong không gian biến đầu vào, trong khi phương pháp mô phỏng chỉ kiểm tra một vài điểm trong không gian biến đầu vào

Tuy nhiên, sức mạnh của kiểm chứng hình thức đôi khi bị hiểu nhầm thành một khi thiết kế đ được kiểm chứng bằng phương pháp h nh thức thì chắc chắn không còn lỗi nào nữa

Vector dùng để mô phỏng có thể được hiểu là điểm dùng để kiểm chứng 1 điểm trong không gian vector đầu vào Do đ c thể n i phương pháp mô phỏng như là phương pháp kiểm tra xác suất mẫu Trừ phi tất cả các điểm đầu vào được kiểm tra thì vẫn còn khả năng vẫn còn lỗi mà không được kiểm chứng Ngược lại với phương pháp kiểm chứng hình thức kiểm tra thiết kế thông qua các thuộc tính của thiết kế đó.Với mỗi thuộc t nh, phương pháp h nh thức tìm kiếm tất cả các đầu vào có thể gây ra lỗi Nếu nhìn theo khía cạnh đầu ra, có thể n i phương pháp mô phỏng mỗi lần kiểm tra 1 điểm đầu ra (output), trong khi phương pháp h nh thức kiểm tra một nhóm (group) các điểm đầu ra mà tạo nên 1 thuộc tính Hình 1.5 mô tả sự khác nhau giữa phương pháp h nh thức và phương pháp mô phỏng.Với cách nhìn này, phương pháp hình thức khác với phương pháp mô phỏng ở điểm kiểm chứng cả nh m đầu

ra (ouput) thay vì kiểm chứng tại một điểm Do đ , để kiểm chứng hoàn toàn một thiết kế c đạt như theo Spec ha không th cần phải thêm một bước là chứng minh tập hợp tất cả các thuộc tính s đ ng như Spec êu cầu Trong thực tế bởi v phương pháp hình thức mỗi lần kiểm tra một nh m các điểm đầu ra làm cho các phần mềm kiểm tra hình thức thiếu tính trực quan và rất khó sử dụng

Trang 22

Hình 1-6 Không gian trạng thái đầu ra của phương pháp mô phỏng và phương pháp

hình thức

Một nhược điểm của phương pháp kiểm tra hình thức nữa là các phần mềm kiểm tra hình thức rất tốn bộ nhớ và thời gian chạ lâu, do đ k ch thước của mạch mà có thể kiểm chứng hình thức được là không lớn

Trang 23

ƢƠN 2 KIỂM CHỨNG HÌNH THỨC

2.1 Biểu diễn logic

2.1.1 Biểu diễn hàm logic

Đại số Boolean tạo bởi tập hợp B = {0, 1}, toán tử AND, OR và NOT Các giá trị ), 1 của được gọi là giá trị Boolean hay là các hằng số Boolean Các biến oolean được biểu diễn bởi các chữ cái thường, chẳng hạn như x, , z c thể được gán bằng các giá trị Boolean

Một biến vector n phần tử (trong đ các phần tử đều là các biến oolean) được biểu diễn bởi chữ cái viết hoa X, chẳng hạn như X = {x1, x2, x3, …, xn} có thể được gán bằng một phần tử trong không gian Boolean n chiều Bn

Một điểm trong không gian Bn có thể được gọi một lệnh gán đến 1 Boolean vector X, giá trị của một biến xi thuộc X được gán bởi A(xi) = ai

Một hàm Boolean n-biến f, f : Bn B ánh xạ 1 điểm trong không gian Boolean n chiều sang 1 giá trị Boolean Tập hợp tất cả các điểm trong Bn mà có giá trị bằng 1

được gọi là on-set, tập hợp tất các các điểm trong Bn

có giá trị bằng 0 được gọi là

Trang 24

Cho trước một hàm n biến f(x 1 , x 2, …, x n ), “cofactor dương” f xj và “cofactor âm”

f xj- của f tính theo biến x j là

Dựa vào cofactor của hàm Boolean, chúng ta có thể định nghĩa sự định lượng của n như sau:

Định nghĩa 2-3

Toán tử định lượng tồn tại của hàm f tương ứng với biến x j là:

ho trước một hàm Boolean f(V), chúng ta có thể định nghĩa toán tử định lượng tồn tại của một vector con của V là X = {x1, x2, …, xn} V như sau:

Định lý 2-4

Trang 25

Cho f là một hàm Boolean có biến vector đầu vào là X, thì luôn có f

Định nghĩa 2-4

Cho 2 hàm n biến f: B n B n

và g: B n B n

Giả sử khoảng cách giữa 2 điểm A 1

và A 2 thuộc B n được tính bởi công thức

Cofactor tổng quát của hàm f tương ứng với g được ký hiệu là được định nghĩa như sau:

Trong đ ánh xạ mỗi điểm A1 thuộc Bn đến điểm lân cận gần nhất (tính theo khoảng cách D sao cho g(A2) = 1

Cofactor tổng quát của một hàm f tương ứng với hàm g là một hàm bằng với hàm f khi g = 1

Định nghĩa 2-5(Support set)

Tập hợp hỗ trợ (Support set) của một hàm n biến f: B n B n là

Với mọi x thuộc supp(f) Ta nói rằng f phụ thuộc vào x

Hàm Boolean có thể được biểu diễn bởi mạch tổ hợp (combinational logic), bảng chân lý, chuẩn tắc tuyển (DNF), chuẩn tắc hội (CNF) ho c cây quyết định nhị phân có thứ tự đ được rút gọn (ROBDD)

Trang 26

là một quan hệ nhị phân trong V ỗi một đỉnh e ∈ kết nối với hai đỉnh u, v

∈ V , i e ,e = (u, v) Nếu cạnh bao gồm c p đỉnh không xét thứ tự th ta n i rằng G

là một graph vô hướng, trường hợp ngược lại G là graph c hướng(directed graph)

Trong một graph c hướng, với mỗi một cạnh e= (u,v), đỉnh u được gọi là con trực tiếp của đỉnh v, và đỉnh v được gọi là cha trực tiếp của đỉnh u Tập hợp tất cả

các đỉnh cha trực tiếp của đỉnh u được gọi là Fanout của một node, và được ký hiệu

là anOut(u) Tương tự như vậ , tập hợp các đỉnh con trực tiếp của đỉnh u cũng

được gọi là Fanin và ký hiệu anIn(u)

ột đường (path) c chiều dài k từ một đỉnh u tới một đỉnh u trong đồ thị c

hướng là tập hợp các đỉnh (v1, v2, , vk) sao cho u=v1, u = vk và (vi, vi+1) ∈ với i = 1, 2, , k 1 Nếu như tồn tại một path p từ u tới u , ch ng ta n i rằng u

là reachable từ u trong p , ký hiệu là u u Trong trường hợp nà , u được gọi là

predecessor từ u trong p và u được gọi là successor của u

Trong graph c hướng ,một path (v1…,vk ) tuần hoàn nếu như v1=vk và êu cầu phải bao gồm t nhất một cạnh ột graph c hướngmà không c path nào tuần hoàn được gọi là đồ thị không tuần hoàn c hướng ột đồ thị c hướng được gọi là

kết nối ch t ch nếu tồn tại hai đỉnh đạt được reachable từ nhau Sự kết nối ch t ch

phải hiểu là từ hai bên Thành phần c t nh chất đ gọi là S s của graph a n i một cách khác, S s của đồ thị c hướng G là tập hợp tối đa các đỉnh U ⊂ V mà

Trang 27

mỗi c p u, v ∈ V , ch ng ta đều c u v và v u – mỗi đỉnh u và v đều đạt là

ột mạch tổ hợp (gồm cả mạng tổ hợp, ho c netlist cổng), là một đồ thị c hướng không hồi tiếp ( DAG) (I∪O∪G, , Op), trong đ

Tâp hợp các đỉnh được phân loại như sau

 Tập hợp các đầu vào I ⊆ V là tập hợp các đinh không c predecessors

 Tập hợp các đầu ra (outputs)O⊆V là tập hợp các đỉnh không c successors ỗi một đầu ra chỉ c một fanin anOut(o) = 0 và

 |F anIn(o)| =1

 Tập hợp các gates

 là tập hợp các cạnh mà kết nối hai gates , mỗi cạnh được gọi là signals,

 Op: V7 Ops là hàm của các nh n map giữa các gates với loại của n tương ứng

Ops={P I, P O, AND, NAND, OR, NOR, NOT, XOR, }

àm của các nh n được định nghĩa như sau :

 ọi đầu vào i∈X, Op(i) =P I,

 ọi đầu ra o∈ O, Op(o) =P O,

 ọi gates g ∈ G, Op(g)∈ Ops\ {PI, PO}

Định nghĩa 2-8(nguyên lý của một mạch tổ hợp)

Trang 28

ho trước một mạch logic tổ hợp (V, E, Op) và biến vector X = {x1, x2, …, xn}, trong đ n = |I| ỗi biến g V được liên kết với một hàm fg

: (Bn ) được định nghĩa qu nạp như sau:

 Nếu g I, thì tồn tại duy nhất x X sao cho fg = x,

 Nếu g O và FanIn(g) = g1 thì fg = fg1,

 Nếu g G và FanIn(g) = {g1, g2, …, gk} thì fg = Op(g)(fg1, fg2, …, fgk

} Một mạch tổ hợp được biểu diễn như một đồ thị Graph c hướng trong đ các cổng được biểu diễn khác nhau tùy theo tính chất của cổng đ ảng minh họa một

số loại cổng cơ bản và hàm oolean tương ứng của cổng đ

Một ví dụ của mạch logic tổ hợp được minh họa trong hình Trong ví dụ này, các đầu vào đầu tiên i1, i2, i3 được gắn với các biến x1, x2, x3 tương ứng Đối với cổng g3 với Op(g3) = OR và FanIn(g3) = {g1, g2}, hàm oolean tương ứng là fg3

= g1

g2 Áp dụng định nghĩa kết quả ra của hàm tương ứng với đầu ra nguyên thủy o

fo =

Trang 29

Bảng 2.1 Các cổng logic cơ bản và hàm logic tương ứng của chúng

Hình 2-2 Một ví dụ về mạch tổ hợp

Trang 30

2.1.3 Gate-net-list

Gates-net-list là một đồ thị c hướng, mà các node tương ứng với các phần tửngu ên thủ của mạch, và các cạnh tương ứng với các dây kết nối phần tử Mỗi node được gắn một nhãn với một biến boolean wi a phần tử nguyên thủ của mạchgồm các phần tửvào raX, , chốt R, vàgates Đầu vào không

c fanin Latch có một đầu vào duy nhất, và có một giá trịthiết kế ban đầu Liên kết với mỗi nút là một hàm chức năng boolean với các biến là fanin của n Tập hợp con của các node là đầu ra ác kết quả đầu ra của chốt có thể được coi là đầu vào giả, vàcác phần tử đầu vào của các chốt có thể được xem xét như là kết quả đầu

ra giả của một mạch tổ hợp

TrongHình 2-3, gate-net-list gồm 4 đầu vào 1,2,3,4,một đầu ra và 3 latchs r1,r2

,r-3 ác đầu 24,21,27 c thể được xem là đầu ra giả lập 5,6,7 c thể được coi như là đầu vào giả lập (pseudo input)

Hình 2-3 Ví dụ về gate-netlist

Trang 31

3.5.(component-net-list)

Là một đồ thị c hướng gồm các node và các cạnh ác node là các cổng logic

cơ bản, đầu vào, đầu ra, các phép toán cộng trừ, nhân, dịch

Hình 2-5 Ví dụ về một component netlist được biểu diễn bằng 1 đồ thị c hướng bổ

sung thêm các phép toán cơ bản

2.1.4 Mô hình hóa mạch tuần tự

hác với mạch tổ hợp, đầu ra của mạch tuần tự tu thuộc không những vào các đầu vào mà c n vào cả trạng thái bên trong của mạch hông những thế, trạng thái ngõ ra s không tha đổi nga khi ngõ vào tha đổi mà lại c n phải đợi đến khi c xung lệnh gọi là xung đồng hồ (clock) Như vậ mạch tuần tự vừa c t nh nhớ vừa

c t nh đồng bộ

Trang 32

Phần tổ hợp s nhận t n hiệu logic từ đầu vào bên ngoài và từ đầu ra của các phần tử nhớ, n t nh toán dựa vào các đầu vào nà để cho ra các đầu ra khác nhau, trong đ một phần được đưa vào khối các phần tử nhớ để lưu trữ

Như vậ , các đầu ra của hệ thống số vừa phụ thuộc vào các đầu vào vừa liên quan đến thông tin đ lưu trữ bên trong của phần tử nhớ Phần tử tạo nên khả năng nhớ và đồng bộ cho mạch c tên thông dụng là flip-flop

Như vậ , mạch tuần tự là mạch mà trong n c t nhất một phần từ nhớ

(flip-flop)

2.1.4.1 Mô hình hóa phần tử nhớ Flip-Flop

Flip-Flop( ) là một mạch bao gồm các phần tử cơ bản nhưng c khả năng lưu trữ được giá trị đầu vào là mạch c khả năng tha đổi và lưu trữ trạng thái ngõ ra

tu theo sự tác động th ch hợp của ngõ vào, điều nà c ý nghĩa quan trọng trong việc lưu trữ dữ liệu trong mạch và xuất dữ liệu ra khi cần

nhiều loại flip flop khác nhau, ch ng được sử dụng rộng r i trong nhiều ứng dụng 4 loại flip flop hiện na : D , lip-Flop, T Flip-Flop, RS Flip-Flop

tử nhớ flip-flop phải lưu trữ thêm thông tin về trạng thái trước của n

Trang 33

ch t h p (combinational circuit)

Hình 2-7 ô h nh mạch tuần tự cơ bản

Để c thể mô tả FF, ta tách n thành 2 thành phần Thành phần đầu tiên dùng đề lưu trữ trạng thái t nh toán hiện tại của mạch tổ hợp là đầu ra giả lập (Pseudo Ouput) Thành phần đầu vào giả lập Pseudo Input lưu giữ trạng thái trước của mạch

hi tách ra làm hai thành phần , ch ng ta hoàn toàn c thể mô tả được đầ đủ t nh chất của một flip-flop: lưu giữ được trạng thái trước Đầu vào và đầu ra được tách rời nhau cũng cho phép trong quá tr nh unroll mạch hi đ mạch tuần tự chứa flip-flop c thể được mô tả hoàn toàn bằng mạch tổ hợp

Khái niệ đầu vào giả lập(pseudo-input)

Từ ý tưởng xâ dựng trên ta đưa ra khái niệm đầu vào giả lập (pseudo-input)

Trang 34

u được g i là pseudo-input n u và ch nếu

Khái niệm về đầu ra giả lập (pseudo-output)

t u, v là đ nh thuộc đồ thị bởi , , p) rong đ

Trang 35

2.1.4.2 Mô hình hóa hàm chuyển trạng thái của mạch

Định nghĩa 2-10 (Finite State Machine) Một máy trạng thái hữu hạn (FSM) thuộc loại Mealy là một bộ 6 tập hợp (I , S,

S 0 , δ, , λ), trong đ :

 I là một tập hữu hạn, không rỗng các giá trị đầu vào,

 S là tập (hữu hạn, không rỗng) các trạng thái,

 S0⊆S là tập các trạng thái ban đầu,

Y =<y1,y2,… n> cùng với tập hợp các biến trạng thái oolean V=<v1,v2… vp>

h ng ta định nghĩa S được mã hóa:

Định nghĩa 2-11 (Encoded Finite StateMachine)

áy trạng thái mã hóa là một tuple gồm phần tử (I, S, S 0 , , , ), trong đ

Trang 36

Trong encoded S , trạng thái s ∈ S (một đầu vào i ∈ I, một đầu ra o ∈ O) nhận một giá trị du nhất h ng ta c thể sử dụng ký hiệu s (i, o) cho trạng thái(đầu vào , đầu ra )và giá trị của n Giá trị của biến trạng thái vj∈ V tại trạng thái s ∈ S được ký hiệu là s(vj) Với mỗi các vector con U = <vj , vj+1, , vk> của V và một trạng thái s ∈ S,ch ng ta sử dụng ký hiệu s(U) để ký hiệu vector giá trị của các biến trạng thái v ∈ U Ngoài ra ,với U = (δj , δk) ch ng ta định nghĩa vector hàm oolean của hàm chu ển trạng thái cho các biến trạng thái trong U Tương tự như thế , giá trị của đầu vào xj∈ X (với đầu ra là j∈ ) trong đầu ra (đầu vào ) là i

∈ I (o ∈ O)và được ký hiệu i(xj) (o(yj))

S c thể được thực hiện như một mạch tuần tự mà bao gồm tập hợp các mạch chốt nhớ và một mạch tổ hợp Latches được sử dụng để lưu trữ giá trị của biến trạng thái trước và biến trạng thái tiếp theo vj ∈ V với mỗi biến trạng thái vj∈ V ột mạch tổ hợp thể hiện các vector hàm chu ển trạng thái và vector hàm các đầu ra Vector đầu vào của mạh tổ hợp là X ∪ V, trong đ v ∈ V được gọi là đầu vào giả lập(PSI) Vector đầu ra là ∪ V trong đ v ∈ V được gọi là đầu ra giả lập (PSO) Hình 2-8 chỉ ra S mô h nh eal được thực hiện như một mạch tuần tự

ột S không có đầu ra được thể hiện như một cấu tr c chu ển trạng thái hữu hạn ( ST): (I, S, S0, ) Với ST ch ng ta s tập trung mô h nh cách mà hệ thống tuần tự tha đổi trạng thái của n trong sự tha đổi về đầu vào hu ển trạng thái của ST được thể hiện bởi hàm chu ển trạng thái T được định nghĩa như sau

Trang 37

Hình 2-8 ô h nh vi mạch tổng quát Định nghĩa 2-12(Transition Relation)

uan hệ chuyển trạng thái , , 0 , ) là một tập hợp mà { s, i, s′ )|s′ s, i)}

Trong trường hợp input không ảnh hưởng mối quan hệ trạng thái , ta c thể bỏ đầu qua đầu vào Dẫn tới quan hệ chu ển trạng thái được biểu diễn một cách đơn giản sau :

T = {(s, s )|∃i ∈ I : s = (s, i)}

Trong định nghĩa tiếp theo, T được định nghĩa như là hàm của các c p chu ển trạng thái

Định nghĩa 2-13 (State Transition Graph)

ột c thể được em như đồ thị chuyển trạng thái c hướng , , ),trong

Trang 38

Trong mạch tuần tự đồng bộ tập hợp của các trạng thái, các đầu vào, đầu ra được

mã hóa bởi các biến Boolean.Những biến được định nghĩa là các biến trạng thái, biến đầu vào, biến đầu ra tương ứng Các hàm chuyển trạng thái và hàm đầu ra là các hàm boolean được định nghĩa bằng các biến trạng thái và các biến đầu vào Một mạch tuần tự đồng bộ thường được xem xét ở dạng cấu trúc chuẩn như trong Hình 2-9

Hình 2-9 Cấu trúc của mạch tuần tự đồng bộ Phần mạch tổ hợp c đầu vào là các input x1,…xm và các biến trạng thái r1,…rm.Mỗi trạng thái trong tập các trạng thái s tương ứng với một sự kết hợp khác nhau của các giá trị của các biến trạng thái Những biến trạng thái nà được lưu trữ trong các flip-flop Đầu ra của các flip-flop này psi1, … psin thể hiện các trạng thái hiện tại và được gọi là các đầu vào giả Đầu vào của các flip-flop này pso1, … pson thể hiện các trạng thái kế tiếp và được gọi là các đầu ra giả

Để kiểm tra, một mạch tuần tự đồng bộ có thể được mô hình hóa bởi một dãy các mạch tổ hợp l p đi l p lại như trongHình 2-10.Mạch nà được gọi là mạch trải

Trang 39

Hình 2-10 Quá trình trải mạch Mạch trải được xây dựng như sau Mỗi một phần tử C(t) của dãy là một mạch tổ hợp ác đầu vào và đầu ra tại thời điểm t được ký hiệu là X (t) , Y (t) Các biến trạng thái tại thời điểm t-1 được xem xét như là đầu vào giả của phần tử C(t) Các biến trạng thái ra khỏi phần tử (t) được xem như là các đầu ra giả và được nối với đầu vào giả của phần tử kế tiếp C(t+1) Mạch trải có thể mô hình hoạt động của mạch tuần tự đồng bộ ở hình 2.x với một số lượng không xác định số chu k đồng

hồ Khi có một chỗi các đầu vào X(0),… X(t) được áp dụng lên mạch ở trạng thái ban đầu S(0), mạch ởHình 2-10 s có các chuỗi đầu ra là (0),… (t), và chu ển sang các trạng thái S(1),…S(t + 1) ạch dãy trong hình 2.x s tạo ra các đầu ra Y (i) bằng các phần tử (i) khi c các đầu vào X(i) ở phần tử i

2.2 Kiểm ch ươ đươ

2.2.1 ồ th quyết đ nh nh phân (BDD)

BDD là một đồ thị không tuần hoàn c hướng dùng để đại diện cho một hàm Boolean.Một nốt trong DD được liên kết với một biến Boolean và có hai cạnh đi ra.Một cạnh đại diện cho giá trị (1) TRUE của biến, và cạnh còn lại cho giá trị (0) FALSE.Hai cạnh trỏ đến các nốt BDD khác.Các nốt được trỏ bởi cạnh 0 (0-edge) được gọi là nốt 0 (0-node) và các nốt được trỏ bởi cạnh 1 (1-edge) được gọi là nốt 1 (1-node).Sử dụng qu ước này, cạnh bên trái đại diện cho giá trị 1 của biến và cạnh phải đại diện cho giá trị 0.Nốt mà không có một cạnh đi vào (không được chỉ tới) được gọi là nốt gốc của BDD.Một nốt lá ho c nốt cuối, ký hiệu bởi một hình vuông,

Trang 40

không liên kết với một biến là một nốt hằng số có giá trị là 0 ho c 1 ch thước của BDD, ký hiệu là |BDD|, là số nốt trong DD Để đánh giá một hàm đại diện bởi BDD theo giá trị đầu vào của nó, chúng ta bắt đầu từ nốt gốc và dựa vào các cạnh

để xác định giá trị của biến Ví dụ, tại nốt x, cạnh phải s được chọn nếu x có giá trị

0, ngược lại, cạnh trái s được chọn.Nếu đường đi dẫn đến nốt lá 0, hàm s có giá trị

là 0.Nếu đường đi dẫn nốt lá 1, hàm s có giá trị 1.Hình 2-11là một ví dụ về BDD Hàm biểu diễn của BDD này là

ab c b a bc a d ab

Hình 2-11Ví dụ về BDD Hai BDD trong Hình 2-12 được biểu diễn hai hàm cùng một chức năng m c dù hai đồ thị không giống nhau.Sử dụng kĩ thuật t m đường ta có thể chứng minh hai hàm mà BDD cùng biểu diễn có chức năng giống nhau Xem xét BDD Hình 2-12B, BDD này biểu diễn hàm

Ngày đăng: 24/11/2016, 11:22

HÌNH ẢNH LIÊN QUAN

Hình 1-2 Mối quan hệ giữa thiết kế và kiểm chứng - Mạng quang chuyển mạch tự động (ason)
Hình 1 2 Mối quan hệ giữa thiết kế và kiểm chứng (Trang 13)
Hình 1-3 Quy trình kiểm chứng bằng mô phỏng - Mạng quang chuyển mạch tự động (ason)
Hình 1 3 Quy trình kiểm chứng bằng mô phỏng (Trang 15)
Hình 1-5 Qu  tr nh thông thường trong kiểm chứng hình thức - Mạng quang chuyển mạch tự động (ason)
Hình 1 5 Qu tr nh thông thường trong kiểm chứng hình thức (Trang 20)
Hình 2-3 Ví dụ về gate-netlist - Mạng quang chuyển mạch tự động (ason)
Hình 2 3 Ví dụ về gate-netlist (Trang 30)
Hình 2-7  ô h nh mạch tuần tự cơ bản - Mạng quang chuyển mạch tự động (ason)
Hình 2 7 ô h nh mạch tuần tự cơ bản (Trang 33)
Hình 2-8  ô h nh vi mạch tổng quát  Định nghĩa 2-12(Transition Relation) - Mạng quang chuyển mạch tự động (ason)
Hình 2 8 ô h nh vi mạch tổng quát Định nghĩa 2-12(Transition Relation) (Trang 37)
Hình 2-9 Cấu trúc của mạch tuần tự đồng bộ - Mạng quang chuyển mạch tự động (ason)
Hình 2 9 Cấu trúc của mạch tuần tự đồng bộ (Trang 38)
Hình 2-12 Hai BDD (A,B) của cùng một hàm khác nhau về thứ tự các biến - Mạng quang chuyển mạch tự động (ason)
Hình 2 12 Hai BDD (A,B) của cùng một hàm khác nhau về thứ tự các biến (Trang 41)
Hình 2-15 Các mạch cần kiểm tra tương đương (A) là mức gate-level (B) là mức - Mạng quang chuyển mạch tự động (ason)
Hình 2 15 Các mạch cần kiểm tra tương đương (A) là mức gate-level (B) là mức (Trang 47)
Hình 2-17 Tạo các input và output trung gian từ các điểm cắt - Mạng quang chuyển mạch tự động (ason)
Hình 2 17 Tạo các input và output trung gian từ các điểm cắt (Trang 48)
Hình 2-18 Giới hạn đầu vào để kiểm tra mạch - Mạng quang chuyển mạch tự động (ason)
Hình 2 18 Giới hạn đầu vào để kiểm tra mạch (Trang 49)
Hình 2-19 Giới hạn bằng cách buộc đầu ra là bằng nhau ở những input không được - Mạng quang chuyển mạch tự động (ason)
Hình 2 19 Giới hạn bằng cách buộc đầu ra là bằng nhau ở những input không được (Trang 50)
Hình 2-20 Ý nghĩa của toán tử LTL - Mạng quang chuyển mạch tự động (ason)
Hình 2 20 Ý nghĩa của toán tử LTL (Trang 53)
Bảng 3.2 Danh sách và mô tả các biến của lớp Circuit - Mạng quang chuyển mạch tự động (ason)
Bảng 3.2 Danh sách và mô tả các biến của lớp Circuit (Trang 60)
Hình 3-5 Bộ cộng Ripple-carry - Mạng quang chuyển mạch tự động (ason)
Hình 3 5 Bộ cộng Ripple-carry (Trang 78)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w