Tải bản đầy đủ (.pdf) (81 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.75 MB, 81 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

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

ĐỒ ÁN

TỐT NGHIỆP CAO HỌC
ĐỀ TÀI:

KIỂM ĐỊNH HÌNH THỨC THIẾT KẾ PHẦN CỨNG
Học viên thực hiện

: Nguyễn Thái Bình

Mã số học viên

: CB110811

Lớp

: 11BKTTT2 – Khóa 2011B

Giảng viên hướng dẫn : TS. NGUYỄN ĐỨC MINH
Cán bộ phản biện

:

Hà Nội, 08 - 2013



Kiểm định hình thức phần cứng

M
M

............................................................................................................................ 1

LỜI AM ĐOAN ................................................................................................................. 3
DANH SÁCH HÌNH VẼ ..................................................................................................... 4
AN

S

T U TN

ẢN

IỂU ................................................................................................ 6

V T

VIẾT T T ..................................................................................... 7

PHẦN MỞ ĐẦU................................................................................................................... 9
CHƢƠN
11

T N

QUAN VỀ KIỂM ĐỊNH HÌNH THỨC PHẦN CỨNG ............. 10


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
3.1. Gói phần mềm FCK............................................................................................ 56

1


Kiểm định hình thức phần cứng


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

2


Kiểm định hình thức phần cứng

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

3



Kiểm định hình thức phần cứng

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
4


Kiểm định hình thức phần cứng

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

5



Kiểm định hình thức phần cứng

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

6


Kiểm định hình thức phần cứng


T U TN

V T

ASICs

Application-Specific Integrated Circuit

AST

Abstract Syntax Tree

BDD

Binary Decision Diagram

VIẾT T T
Vi mạch t ch hợp chu ên dụng
â c pháp trừu tượng
iểu đồ qu ết định nhị phân

Breath First Search

T m kiếm theo chiều rộng

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

DFS

Depth First Search

T m kiếm theo chiều sâu

FSM

Finite-State Machine

á trạng thái hữu hạn

FV

Formal Verification

iểm chứng h nh thức

FF

Flip-Flop

ạch lật


Field Programable Gate Array

ảng cổng logic lập tr nh

BFS

FPGA

đượ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

Integrated Circuit

Vi mạch t ch hợp

Institute of Electrical and Electronics

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


IC
IEEE

Engineers
ROBDD Reduce order binary decision diagram

Cây quyết định nhị phân có
thứ tự rút gọn
ức dịch chu ển thanh ghi

RTL

Register Transfer Level

SAT

Satisfiability

Thỏa mãn

SCC

Strongly Connected Components

Thành phần kết nối ch t ch

7


Kiểm định hình thức phần cứng


VLSI
STG

Very-large-scale Integration

Vi mạch t ch hợp rất lớn

State Transition Graph

Đồ thị chu ển trạng thái

8


Kiểm định hình thức phần cứng

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.
9


Kiểm định hình thức thiết kế phần cứng

ƢƠ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ể.

10


Kiểm định hình thức thiết kế phần cứng

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.

11


Kiểm định hình thức thiết kế phần cứng

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.

12


Kiểm định hình thức thiết kế phần cứng

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

13



Kiểm định hình thức thiết kế phần cứng

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

14


Kiểm định hình thức thiết kế phần cứng

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:


15


Kiểm định hình thức thiết kế phần cứng

 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

16


Kiểm định hình thức thiết kế phần cứng

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

17


Kiểm định hình thức thiết kế phần cứng

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

18

hẳng hạn, nó có thể cho phép các


Kiểm định hình thức thiết kế phần cứng

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


19


Kiểm định hình thức thiết kế phần cứng

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

20


Kiểm định hình thức thiết kế phần cứng

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.

21


Kiểm định hình thức thiết kế phần cứng

ƢƠ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à
off-set
Một vector hàm Boolean F: Bm

Bm bao gồm m hàm con F = {f1, …, fm}.

Cho 2 hàm Boolean f, g, và hàm h mới có thể được tạo ra bằng cách áp dụng các
toán tử Boolean lên f và g. Những toán tử này có thể là AND, OR, NOT và XOR
được ký hiệu tương ứng là h = AND(f,g) = f ˄ g, h = OR(f,g) = f ˅ g, h = NOT(f)
= f, h = XOR(f, g) = f +g
Định nghĩa 2-1
Cho trước 2 hàm f, g, toán tử suy ra được ký hiệu là f
=f

g = NOT(f) OR g
Định lý 2-1
22


g được định nghĩa bởi h


Kiểm định hình thức thiết kế phần cứng

f, g, h là các hàm Boolean. Nếu f g = 1 và g

h = 1 thì f

h = 1.

Định lý 2-2
f, g, h là các hàm Boolean. Nếu f

g = 1 thì f ˄ g

g ˄ h = 1.

Định lý 2-3
f, g, h là các hàm Boolean. Nếu f ˄ g = 0 và h f = 1 thì h ˄ g = 0
Định nghĩa 2-2
Cho trước một hàm n biến f(x1, x2, …,xn), “cofactor dương” fxj và “cofactor âm”
fxj- của f tính theo biến xj 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 xj 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}

Định lý 2-4

23

V như sau:


Kiểm định hình thức thiết kế phần cứng

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: Bn

Bn và g: Bn

Bn. Giả sử khoảng cách giữa 2 điểm A1

và A2 thuộc Bn đượ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:

xạ mỗi điểm A1 thuộc Bn đến điểm lân


Trong đ ánh

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: Bn

Bn 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)

24


×