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

Thuật toán tổng hợp mạch khả đảo đa ngõ ra không hoàn chỉnh

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 (1.9 MB, 63 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
------------------

NGUYỄN HẢI ĐĂNG

THUẬT TỐN TỔNG HỢP MẠCH KHẢ ĐẢO ĐA NGÕ
RA KHƠNG HOÀN CHỈNH

Chuyên ngành: Kỹ thuật Điện Tử
Mã số: 60520203

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, THÁNG 1 NĂM 2019


Cơng trình được hồn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM
Cán bộ hướng dẫn khoa học: TS. Trần Hoàng Linh .......................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1: .................................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2: .................................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. HCM
ngày .......... tháng ….... năm ……….
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1.
2.
3.


4.
5.

.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sữa chữa (nếu có).

CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA……………


ĐẠI HỌC QUỐC GIA TP.HCM

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

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

Độc Lập – Tự Do – Hạnh Phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Hải Đăng .................................. MSHV: 1670359 .............
Ngày, tháng, năm sinh: 09/11/1993 .................................. Nơi sinh: Tây Ninh ..........
60520203
Chuyên ngành: Kỹ thuật Điện Tử ..................................... Mã số: ..............................

I. TÊN ĐỀ TÀI: Thuật toán tổng hợp mạch khả đảo đa ngõ ra khơng hồn chỉnh...
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
NHIỆM VỤ VÀ NỘI DUNG: ..................................................................................
–Xây dựng được thuật tốn tổng hợp mạch khả đảo tối ưu hóa về thời gian tổng hợp
–Xây dựng công cụ tổng hợp mạch dựa trên thuật toán trên ......................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
II. NGÀY GIAO NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài) .............................
III. NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài) ...........
IV. CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): ..............................
.....................................................................................................................................
Tp. HCM, ngày … tháng … năm 20…
CÁN BỘ HƯỚNG DẪN
CHỦ NHIỆM BỘ MÔN ĐÀO TẠO
(Họ tên và chữ ký)
(Họ tên và chữ ký)

TRƯỞNG KHOA……………
(Họ tên và chữ ký)


Luận văn thạc sĩ

i


GVHD: TS. Trần Hoàng Linh

LỜI CẢM ƠN
Lời đầu tiên, xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy hướng
dẫn luận văn của tôi, TS. Trần Hồng Linh. Trong suốt q trình thực hiện đề tài này,
Thầy đã nhiệt tình giúp đỡ và hỗ trợ tôi rất nhiều về kiến thức cũng như tinh thần. Là
một kỹ sư điện tử viễn thông chưa từng nghiên cứu về các thuật toán tổng hợp mạch
lượng tử, khi nhận đề tài đã đem lại nhiều khó khăn đối với tôi. Tuy nhiên, qua các
buổi thảo luận cũng như học thêm từ các tài liệu quý giá của Thầy, đã giúp cho tơi có
cái nhìn cụ thể hơn về nhiệm vụ của đề tài và có thêm phần cảm hứng trong lĩnh vực
này.
Ngoài ra, xin được gửi lời cảm ơn đến tất cả các thầy cô trong khoa Điện –
Điện Tử đã truyền thụ kiến thức và kinh nghiệm của mình để giúp tơi có thêm kiến
thức về lĩnh vực điện tử và tự tin để thực hiện đề tài.
Bên cạnh đó tơi cũng xin cảm ơn đến các anh em trong dự án của công ty phần
mềm FPT Software đã hỗ trợ cơng việc để tơi có thêm thời gian hoàn thành đề tài
này.
Cuối cùng, xin dành lời cảm ơn chân thành đến gia đình tơi, những người đã
ở bên cạnh động viên tôi vào những lúc khó khăn nhất.
Tp Hồ Chí Minh, tháng 12 năm 2018

Nguyễn Hải Đăng

Lời cảm ơn

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ


ii

GVHD: TS. Trần Hồng Linh

TĨM TẮT LUẬN VĂN
Trong nhưng năm gần đây, logic khả đảo đã được thúc đẩy phát triển bởi
những nghiên cứu lý thuyết và tính ứng dụng mà nó mang lại. Đặc biệt là trong thiết
kế mạch cơng suất thấp và tính tốn lượng tử. Với động lực đó, các nhà nghiên cứu
đã phát triển ra nhiều thuật toán tổng hợp mạch khả đảo với nhiều cách tiếp cận khác
nhau như Binary Decision Diagram (BDD), transformation-based, cycle-based,….
Một số phương pháp tổng hợp một cách chính xác, một số dựa trên phương pháp suy
nghiệm và một số khác đáp ứng với các hàm ngõ vào.
Trong luận văn này sẽ trình bày một phương pháp tổng hợp mới dựa trên sự
kết hợp tính chất của hai phương pháp cycle-based và phương pháp hốn đổi dựa trên
tính chất hoán đổi của cổng Toffoli. Mục tiêu của sự kết hợp này là làm tăng tốc độ
tổng hợp mạch để trong thời gian ngắn nhất có thể đưa ra một mạch khả đảo đáp ứng
với hàm yêu cầu tổng hợp ở ngõ vào. Các bước tối ưu hóa về chi phí lượng tử hay độ
sâu của mạch có thể thực hiện tiếp tục ở các nghiên cứu thiếp theo.
Ngoài ra luận văn này còn đưa ra phương pháp chuyển đổi hàm khả đảo đa
ngõ ra khơng hồn chỉnh sang hàm khả đảo đa ngõ ra hoàn chỉnh. Lý do phải chuyển
đổi là vì thuật tốn tổng hợp vốn dựa trên phương pháp cycle-based, điều này có
nghĩa là yêu cầu ngõ vào phải là một hàm khả đảo đa ngõ ra hồn chỉnh.

Tóm tắt luận văn

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ


iii

GVHD: TS. Trần Hoàng Linh

ABSTRACT
Recently, the reversible logic has been promoted by research and application
that its brings. Especially in low power circuit design and quantum computing. With
that motivation, researchers have developed many reversible circuit synthesis
algorithms with various approaches such as Binary Decision Diagram (BDD),
transformation-based, cycle-based, and so on. Some methods synthesis are exact,
some base on heuristicc, and some rely on function representations.
This thesis will present a new synthesis method based on the combination of
properties of cycle-based method and the swap property of Toffoli gate. The goal of
this combination is increase the speed of synthesizing the circuit so that in the shortest
time it is possible to give an reversible circuit that meets the input function. Quantum
cost and depth of circuit optimization can be carrid out in follow-up studies.
In addition, this thesis also offers a method of converting incomple multioutput reversible function to complete multi-output reversible function. The reason
for the conversion is because the algorithm is based on cycle-based method, which
means that the input requirement must be a complete multi-output reversible function.

Tóm tắt luận văn

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

iv

GVHD: TS. Trần Hồng Linh


LỜI CAM ĐOAN
Tơi tên Nguyên Hải Đăng, là học viên cao học ngành Kỹ thuật Điện Tử tại
trường Đại học Bách Khoa, thành phố Hồ Chí Minh. Tơi xin cam đoan cơng trình
nghiên cứa ngày là do chính tơi thực hiện trong suốt quá trình thực hiện đề tài này,
các tư liệu tham khảo sử dụng được trích dẫn từ các nguồn thực tế, uy tín và chất
lượng. Kết q.uả thu được đươc thực hiện một cách độc lập và hoàn toàn trung thực.
Tp. Hồ Chí Minh, tháng 12 năm 2018

Nguyễn Hải Đăng

Lời cam đoan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

v

GVHD: TS. Trần Hoàng Linh

MỤC LỤC

LỜI CẢM ƠN ............................................................................................................. i
TÓM TẮT LUẬN VĂN ............................................................................................ ii
ABSTRACT .............................................................................................................. iii
LỜI CAM ĐOAN ..................................................................................................... iv
MỤC LỤC ...................................................................................................................v
DANH SÁCH HÌNH VẼ ......................................................................................... vii

DANH SÁCH BẢNG BIỂU ................................................................................... viii
DANH SÁCH CÁC TỪ VIẾT TẮT ......................................................................... ix
CHƯƠNG 1: MỞ ĐẦU ..............................................................................................1
1.1. Lý do chọn đề tài ..............................................................................................1
1.2. Mục tiêu và nhiệm vụ của luận văn .................................................................1
1.3. Đối tượng và phạm vi nghiên cứu ....................................................................2
1.4. Ý nghĩa khoa học và thực tiễn..........................................................................2
CHƯƠNG 2: TỔNG QUAN .......................................................................................4
2.1. Các khái niệm cơ bản .......................................................................................4
2.1.1. Hàm khả đảo và mạch ...............................................................................4
2.1.2. Cổng khả đảo.............................................................................................5
2.1.3. Đường Ancilla và Garbage .......................................................................6
2.1.4. Chi phí lượng tử ........................................................................................6
2.2. Các phương pháp tổng hợp mạch hiện tại........................................................7
2.2.1. Phương pháp transformation-based ..........................................................7
2.2.2. Phương pháp cycle-based..........................................................................8
2.2.3. Phương pháp graphical [7] ......................................................................10
2.2.4. Phương pháp tối ưu hóa mạch sửu dụng template matching ..................16
2.2.5. Phương pháp giảm chi phí trong mạch khả đảo Toffoli .........................16
CHƯƠNG 3: CHUYỂN ĐỔI HÀM KHẢ ĐẢO KHƠNG HỒN CHỈNH ............17
3.1. Trường hợp số ngõ vào bằng số ngõ ra ..........................................................17

Mục lục

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

vi


GVHD: TS. Trần Hoàng Linh

3.1.1. Phương pháp chuyển đổi .........................................................................17
3.1.2. Ví dụ ........................................................................................................18
3.2. Trường hợp số ngõ vào nhỏ hơn số ngõ ra ....................................................20
3.2.1. Phương pháp chuyển đổi .........................................................................20
3.2.2. Ví dụ ........................................................................................................21
3.3. Trường hợp số ngõ vào lớn hơn số ngõ ra .....................................................23
3.3.1. Phương pháp chuyển đổi .........................................................................23
3.3.2. Ví dụ ........................................................................................................23
CHƯƠNG 4: THUẬT TỐN TỔNG HỢP MẠCH KHẢ ĐẢO .............................27
4.1. Phân tách k-cycles ..........................................................................................27
4.2. Tương quan giữa 2-cycles có hamming bằng 1 với cổng Toffoli ..................28
4.3. Tối ưu hóa mạch bằng template .....................................................................29
4.4. Thuật tốn tổng hợp mạch cycle-swap...........................................................34
4.5. Ví dụ ...............................................................................................................35
4.6. Kết quả thí nghiệm .........................................................................................39
CHƯƠNG 5: KẾT LUẬN ........................................................................................45
5.1. Kết luận ..........................................................................................................45
5.2. Hướng phát triển ............................................................................................45
Tài Liệu Tham Khảo .................................................................................................47
PHỤ LỤC: BẢNG CHÚ THÍCH CÁC MẤU THỬ.................................................49

Mục lục

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ


vii

GVHD: TS. Trần Hồng Linh

DANH SÁCH HÌNH VẼ
Hình 2-1 Mạch khả đảo với cổng NOT, CNOT và Toffoli
Hình 2-2 Cổng NOT
Hình 2-3 a) cổng CNOT, b) cổng CNOT âm
Hình 2-4 a) cổng Toffoli, b) cổng Toffoli bán âm, c) cổng Toffoli âm
Hình 2-5 Cổng multicontrol Toffoli
Hình 2-6 4 cổng Toffoli cho cùng một vị trí XOR
Hình 2-7 Mạch khả đảo của hàm đã cho
Hình 4-1 Ảnh minh họa template 1
Hình 4-2 Ảnh minh họa template 3
Hình 4-3 Ảnh minh họa template 4
Hình 4-4 Ảnh minh họa template 5
Hình 4-5 Ảnh minh họa template 6
Hình 4-6 Ảnh minh họa template 7
Hình 4-7 Ảnh minh họa template 8
Hình 4-8 Ảnh minh họa template 9
Hình 4-9 Ảnh minh họa template 9.1
Hình 4-10 Ảnh minh họa template 9.2
Hình 4-11 Ảnh minh họa template 10
Hình 4-12 Mạch khả đảo sau khi tổng hợp
Hình 4-13 Mạch khả đảo sau khi tối ưu
Hình 4-14 Mạch khả đảo sau khi tổng hợp
Hình 4-15 Mạch khả đảo sau khi tối ưu

Danh sách hình vẽ


5
5
5
5
6
11
15
30
30
30
31
31
32
32
32
32
33
34
36
37
39
39

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

viii


GVHD: TS. Trần Hoàng Linh

DANH SÁCH BẢNG BIỂU
Bảng 2-1 Bảng sự thật của hàm khả đảo 3 biến
Bảng 2-2 Bảng sự thật của hàm khả đảo không hồn chỉnh 2 biến
Bảng 2-3 Chi phí lượng tử của các cổng cơ bản
Bảng 2-4 Ví dụ về phương pháp transformation-based
Bảng 2-5 Ví dụ biểu diễn hàm khả đảo bằng các k-cycle
Bảng 2-6 Bảng sự thật của hàm khả đảo f
Bảng 2-7 s-maps của ngõ vào a,b và c
Bảng 2-8 smap của các ngõ ra x, y và z
Bảng 2-9 Bảng sự thật của cổng Toffoli t0-1p2p
Bảng 2-10 Các cổng Toffoli 3 biến và cặp hoán đổi của chúng
Bảng 2-11 Bảng tính điểm lần 1
Bảng 2-12 smaps sau khi sử dụng cổng T0-1p2p
Bảng 2-13 Bảng tính điểm lần 2
Bảng 2-14 smaps sau khi sử dụng cổng T1-0p2p
Bảng 2-15 Bảng tính điểm lần 3
Bảng 2-16 smaps sau khi sử dụng cổng T0-1p2p
Bảng 3-1 Hàm đa ngõ ra khơng hồn chỉnh 3 ngõ vào và 3 ngõ ra
Bảng 3-2 Kết quả chuyển đổi hàm sau bước 2
Bảng 3-3 Kết quả chuyển đổi hàm sau bước 3
Bảng 3-4 Hàm hoàn chỉnh sau khi chuyển đổi
Bảng 3-5 Hàm đa ngõ ra khơng hồn chỉnh 2 ngõ vào và 4 ngõ ra
Bảng 3-6 Hàm sau khi thêm ancilla
Bảng 3-7 Hàm sau khi gán các tùy định
Bảng 3-8 Hàm hoàn chỉnh sau khi chuyển đổi
Bảng 3-9 Hàm khơng hồn chỉnh với 4 ngõ vào và 2 ngõ ra
Bảng 3-10 Hàm sau khi thêm garbage

Bảng 3-11 Kết quả chuyển đổi sau bước 4
Bảng 3-12 Kết quả chuyển đổi sau bước 5
Bảng 4-1 Các cổng Toffoli 3 ngõ vào
Bảng 4-2 Bảng sự thật của hàm f ví dụ A
Bảng 4-3 Hàm f sau khi tiền xử lí
Bảng 4-4 Bảng sự thật của hàm f ví dụ A
Bảng 4-5 Kết quả thí nghiệm
Bảng 4-6 So sánh với các thuật toán khác bảng 1
Bảng 4-7 So sánh với các thuật toán khác bảng 2

Danh sách bảng biểu

4
4
7
7
9
10
10
11
12
12
13
14
14
14
15
15
18
19

20
20
21
21
22
22
24
24
25
26
28
35
35
37
40
41
43

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

ix

GVHD: TS. Trần Hoàng Linh

DANH SÁCH CÁC TỪ VIẾT TẮT
1) QC: Quantum Cost (Chi phí lượng tử)
2) GC: Gate count (Số cổng lượng tử)


Danh sách bảng biểu

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

1

GVHD: TS. Trần Hoàng Linh

CHƯƠNG 1: MỞ ĐẦU
1.1. Lý do chọn đề tài
Logic khả đảo là một lĩnh vực nghiên cứu cấp thiết. Điểm thú vị trong logic
khả đảo là các ứng dụng của nó trong tính tốn lượng tử, CMOS cơng suất thấp, cơng
nghệ nano, và tính tốn quang. Kiến trúc duy nhất của mạch khả đảo là dạng cascade
của các cổng khả đảo [1].
Với sự phát triển khơng ngừng của khoa học cơng nghệ, tính tốn lượng tử đã
trở thành một cơng cụ hỗ trợ hết sức mạnh mẽ cho các nhà khoa học, một số ứng
dụng tuyệt vời của tính tốn lượng tử như Machine Learning, giải quyết các bài toán
tối ưu vận tải, mơ phỏng y sinh và các dịch vụ tài chính [2].
Tuy đây không phải là một chủ đề mới nhưng do các ứng dụng của nó nên vẫn
ln thu hút được các nhà nghiên cứu. Rất nhiều các giải thuật đã được đưa ra với
nhiều các tiếp cận khác nhau như cycle-base, group-threory base, transformationbase,…Nhưng dù là cách tiếp cận nào đi nữa thì mục đích cuối cùng cũng là để có
được một giải thuật tổng hợp ra mạch khả đảo tối ưu nhất, có thể là về chi phí, kích
thước mạch hay là về thời gian tổng hợp.
Do đó, việc chọn đề tài “Thuật toán tổng hợp mạch khả đảo đa ngỏ ra
khơng hồn chỉnh” nhằm mục đích kế thừa và phát triển các thuật toán tổng hợp
mạch khả đảo đến mức tối ưu nhất có thể, làm tăng thêm sự phong phú về thuật toán

trong lĩnh vực này.

1.2. Mục tiêu và nhiệm vụ của luận văn
Các kiến thức và kết quả cần đạt được ở đề tài này là:
 Tìm hiểu và phân tích một số thuật tốn tổng hợp mạch phổ biến và có liên
quan đến đề tài.
 Đưa ra phương pháp chuyển đổi hàm logic khả đảo đa ngõ ra khơng hồn
chỉnh sang hàm logic khả đảo đa ngõ ra hoàn chỉnh để làm ngõ vào cho thuật
toán tổng hợp.

Chương 1: Mở đầu

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

2

GVHD: TS. Trần Hoàng Linh

 Kết hợp tính chất hốn đổi của cổng Toffoli kết hợp với một số tính chất của
phương pháp cycle-based để tạo nên một phương pháp tổng hợp mạch tối ưu
hóa về thời gian tổng hợp.
 Dựa trên các thuật toán đã nghiên cứu để xây dựng nên công cụ tổng hợp mạch,
nhằm mục đích kiểm chứng và đo lường các thơng số đánh giá thuật toán.

1.3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài: Các nghiên cứu của đề tài nhằm tối ưu hóa
các thuật tốn tổng hợp mạch cho các hàm boolean hoàn chỉnh bằng cách kết hợp

nhiều thuật tốn đã có sẵn lại với nhau. Đưa ra phương thức chuyển đổi hàm logic
khơng hồn chỉnh sang hàm logic hồn chỉnh để cho các thuật tốn có thể tổng hợp
ra mạch với chi phí thấp nhất có thể và thời gian nhanh nhất có thể. Đối tượng nghiên
cứu của đề tài là:
 Chuyển đổi từ hàm boolean khơng hồn chỉnh sang hàm boolean hồn chỉnh
một cách tối ưu nhất để làm ngõ vào cho thuật toán tổng hợp mạch.
 Kết phương pháp tổng hợp cycle-based và tính chất hốn đổi của cổng Toffoli
để tạo ra một thuật toán tổng hợp mạch khả đảo với thời gian tổng hợp nhanh,
ổn định và chi phí hợp lí.
Phạm vi nghiên cứu: Phạm vi nghiên cứu của đề tài sẽ xây dựng được thuật
tốn đã nêu phía trên. Xây dựng công cụ tổng hợp mạch khả đảo dựa trên thuật tốn
đã nghiên cứu thành cơng. Kết quả thí nghiệm đo đạt được sẽ so sánh với các kết quả
ở các thuật tốn cùng loại để đánh giá tính khả dụng của giải thuật.

1.4. Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học:
Chủ đề logic khả đảo tuy đã xuất hiện khá lâu nhưng vẫn còn mới ở trong
nước. Việc tìm hiểu và nghiên cứu về các thuật tốn tổng hợp mạch khả đảo này giúp
người đọc có thêm sự hiểu biết về lĩnh vực này, đặc biệt là các nhà nghiên cứu trong
nước.

Chương 1: Mở đầu

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

3


GVHD: TS. Trần Hoàng Linh

Đưa ra phương pháp giúp tổng hợp mạch khả đảo một cách nhanh nhất có thể.
Ngồi ra, cịn giúp cho người đọc có thêm một hướng nghiên cứu mới về sự kết hợp
giữa các phương pháp tổng hợp mạch đã có sẵn.
Ý nghĩa thực tiễn:
Luận văn đưa ra một thuật toán tổng hợp mới với sự kết hợp của hai phương
pháp cycle-based và tính chất hốn đổi của cổng Toffoli, góp phần tăng thêm sự
phong phú về thuật toán tổng hợp mạch khả đảo. Đồng thời cũng đưa ra thêm một sự
lựa chọn khi tổng hợp mạch. Tuy có thể chi phí lượng tử cao nhưng bù lại thời gian
tổng hợp được mạch nhanh hơn một số phương pháp. Tùy theo yêu cầu của ứng dụng
mà các nhà thiết kế có thể lựa chọn thuật toán tổng hợp mạch phù hợp.

Chương 1: Mở đầu

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

4

GVHD: TS. Trần Hoàng Linh

CHƯƠNG 2: TỔNG QUAN
2.1. Các khái niệm cơ bản
2.1.1. Hàm khả đảo và mạch
Một hàm boolean được gọi là khả đảo nếu có số ngõ ra bằng với số ngõ vào
và ánh xạ giữa ngõ ra và ngõ vào là 1-1. Hàm khả đảo n biến là một hàm khả đảo có
n ngõ vào và n ngõ ra. Ví dụ như hàm F có bảng sự thật như sau:

Bảng 2-1 Bảng sự thật của hàm khả đảo 3 biến
Ngõ vào
X2 X1 X0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

Ngõ ra
Y2 Y1 Y0

1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1

Vì bảng sự thật của các hàm có số biến lớn sẽ rất lớn nên thông thường, các
ngõ ra sẽ được biểu diễn ở dạng chính tắc để dễ dàng quan sát và xử lí. Trong ví dụ
trên có 3 ngõ ra Y2, Y1 và Y0 được biểu diễn như sau:

 Y2 = ∑(𝟎, 𝟏, 𝟐, 𝟓)


Y1 = ∑(𝟐, 𝟓, 𝟔, 𝟕)

Y0 = ∑(𝟏, 𝟑, 𝟓, 𝟕)

Hàm khả đảo hoàn chỉnh là một hàm khả đảo mà ở tất cả các giá trị của ngõ
vào đều có giá trị của ngõ ra tương ứng. Hàm F ở ví dụ trên là một hàm khả đảo hồn
chỉnh.
Hàm khả đảo khơng hồn chỉnh là một hàm khả đảo có các giá trị tùy định
ở ngõ ra. Ví dụ với hàm khả đảo khơng hồn chỉnh 2 ngõ vào, 2 ngõ ra:
Bảng 2-2 Bảng sự thật của hàm khả đảo khơng hồn chỉnh 2 biến
Ngõ vào
X1 X0
0
0
0
1
1
0
1
1
Chương 2: Tổng quan

Ngõ ra
Y1 Y0
x
1
x
0
1

0
0
x
HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

5

 Y1 = ∑(𝟐) + 𝒅(𝟎, 𝟏)

GVHD: TS. Trần Hoàng Linh

Y0 = ∑(𝟎) + 𝒅(𝟑)

Mạch khả đảo là mạch hiện thực của hàm khả đảo. Trong logic khả đảo cổ
điển, mỗi cặp ngõ vào/ ngõ ra thường được gọi là một đường hoặc một dây, trong khi
ở logic lượng tử, nó được gọi là một qubit. Một ví dụ về mạch khả đảo được thể hiện
trong hình 2-1.
𝑥2

𝑥1
𝑥0

𝑥2

𝑥2

𝑥1


𝑥1

𝑥0

𝑥0 ⨁𝑥1

𝑥2
𝑥1
𝑥0 ⨁𝑥1 ⨁𝑥1 𝑥2

Hình 2-1 Mạch khả đảo với cổng NOT, CNOT và Toffoli
2.1.2. Cổng khả đảo
Một số cổng khả đảo cơ bản:

̅)
 NOT: (𝒙) → (𝒙
𝑥

𝑥

Hình 2-2 Cổng NOT

 CNOT: (𝒙; 𝒚) → (𝒙; 𝒚 ⊕ 𝒙)
𝑥1

𝑥1

𝑥1


𝑥1

𝑥0

𝑥0 ⨁𝑥1

𝑥0

𝑥0 ⨁𝑥̅1

a)

b)

Hình 2-3 a) cổng CNOT, b) cổng CNOT âm

 Toffoli: (𝒙, 𝒚; 𝒛) → (𝒙, 𝒚; 𝒛 ⊕ 𝒙𝒚)
𝑥2

𝑥2

𝑥2

𝑥2

𝑥2

𝑥2

𝑥1


𝑥1

𝑥1

𝑥1

𝑥1

𝑥1

𝑥0

𝑥0 ⨁𝑥1 𝑥2

𝑥0

𝑥0 ⨁𝑥̅1 𝑥2

𝑥0

𝑥0 ⨁𝑥̅1 𝑥2

a)

b)

c)

Hình 2-4 a) cổng Toffoli, b) cổng Toffoli bán âm, c) cổng Toffoli âm


Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

6

GVHD: TS. Trần Hoàng Linh

 Multicontrol Toffoli:
𝑥𝑛

𝑥𝑛

𝑥𝑛−1
… …

𝑥 …
1

𝑥0

𝑥𝑛−1


𝑥
1


𝑥0 ⨁𝑥1 … 𝑥𝑛−1 𝑥𝑛

Hình 2-5 Cổng multicontrol Toffoli
2.1.3. Đường Ancilla và Garbage
Có 2𝑛 ! hàm khả đảo phân biệt n biến với các hoán vị của 2𝑛 phần tử. Tuy
𝑖

𝑛

nhiên, cũng tồn tại ∑𝑛𝑖=1(2𝑖 )2 ≃ 2𝑛2 hàm không khả đảo từ 1 đến n ngõ ra. Để
chuyển đổi các hàm đó thành hàm khả đảo cần phải thêm các ngõ vào/ ngõ ra. Các
đường thêm vào ở ngõ vào được gọi là đường ancilla và thường là hằng số 0 hoặc 1.
Các đường ancilla mà giá trị của nó khơng bị đặt lại thành một hằng số ở cuối q
trình tính tốn được gọi là các đường garbage. Ngõ ra của các đường ancilla không
bị ràng buộc trong bảng sự thật được gọi là tùy định (DC). Với một hàm bất khả đảo
có số tổ hợp của mỗi ngõ ra có thể được lặp lại đến M lần, thì cần 𝑔 = ⌈𝑙𝑜𝑔2 𝑀⌉
đường ancilla để xây dựng được mạch khả đảo [3].
2.1.4. Chi phí lượng tử
Chi phí lượng tử là một thơng số đo lường quan trọng trong việc so sánh các
mạch khả đảo. Chi phí lượng tử của một cổng được định nghĩa như là số lượng các
lượng tử cơ bản cần thiết để tạo nên cổng đó [1]. Chi phí lượng tử của một cổng n-bit
Toffoli âm với ít nhất một đường điều khiển dương bằng với chi phí của một cổng nbit Toffoli. Nếu tất cả các đường điều khiển điều là âm thì chi phí lượng tử sẽ phải
cộng thêm 2 [1].
Chi phí lượng tử của một mạch được định nghĩa là tổng chi phí của tất cả các
cổng trong mạch. Trong đó, chi phí các cổng cơ bản được định nghĩa trong bảng 2-3.

Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng



Luận văn thạc sĩ

7

GVHD: TS. Trần Hoàng Linh

Bảng 2-3 Chi phí lượng tử của các cổng cơ bản
Tên cổng

Chi phí

NOT

1

CNOT

1

CNOT âm

3

Toffoli

5

Toffoli bán âm


5

Toffoli âm

7

𝑁𝑥𝑁 Toffoli (bán âm)

2𝑁 − 3

𝑁𝑥𝑁 Toffoli âm

2𝑁 − 1

2.2. Các phương pháp tổng hợp mạch hiện tại
2.2.1. Phương pháp transformation-based
Phương pháp transformation-based lần đầu được đưa ra bởi Miller et al [4]
dựa trên sự tương quan giữa ngõ vào và ngõ ra trong bảng sự thật. Các thuật toán dựa
trên phương pháp này sẽ quét qua tất cả các hàng trong bảng sự thật, tìm kiếm sự
khác biệt giữa các ngõ vào và ngõ ra, và sửa chữa các điểm khác biệt đó bằng cách
áp dụng các cổng multicontrol Toffoli nhưng chỉ với các điều khiển dương [5]. Một
ví dụ về phương pháp này được miêu tả ở bảng 2-4:
Bảng 2-4 Ví dụ về phương pháp transformation-based
Ngõ vào Ngõ ra
stt
abc
xyz
0
000

011
1
001
000
2
010
101
3
011
010
4
100
001
5
101
111
6
110
110
7
111
100

Chương 2: Tổng quan

1
xyz
010
000
101

011
001
110
111
100

2
xyz
000
010
111
001
011
100
101
110

3
xyz
000
011
110
001
010
100
101
111

4
xyz

000
001
110
011
010
100
111
101

5
xyz
000
001
010
111
110
100
011
101

6
xyz
000
001
010
011
110
100
111
101


7
xyz
000
001
010
011
100
110
101
111

8
xyz
000
001
010
011
100
111
101
110

9
xyz
000
001
010
011
100

101
111
110

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

8

GVHD: TS. Trần Hoàng Linh

1) Ở hàng 0, ngõ vào và ngõ ra khác nhau 2 bit, nên sử dụng 1 cổng CNOT (y;z)
để thay đổi bit thấp nhất từ 1 thành 0. Các giá trị in đậm là các giá trị ngõ ra
sẽ bị thay đổi theo. Kết quả sau khi qua cổng CNOT được thể hiện ở cột 1.
2) Lúc này hàng 0 chỉ còn lại bit thứ y là 1 nên sử dụng 1 cổng NOT (y) để
chuyển bit này về 0. Kết quả được thể hiện ở cột 2.
3) Ngõ ra ở hàng 0 đã giống với ngõ vào, nên ở bước này cần chọn cổng mà
không làm ảnh hưởng đến hàng 0. Ở hàng 1, cần chuyển đổi bit z thành 1 trước
nên cổng CNOT (y;z) được chọn. Kết quả được thể hiện ở cột 3.
4) Lúc này cần chuyển bit y ở hàng 1 về 0, cổng CNOT (z;y) được chọn.
5) Tiếp tục lặp lại như các bước trên cho đến cột 5, bit x ở hàng 3 cần phải chuyển
về 0, vì để khơng ảnh hưởng đến các hàng trên nên cổng Toffoli (y,z;x) được
chọn.
6) Như vậy, cứ lặp lại từng hàng cho đến khi ngõ ra giống với ngõ vào. Lúc này
chỉ cần viết lại các cổng từ cột 1 đến cột 9 theo chiều từ phải sang trái. Lý do
phải viết ngược lại là vì thuật tốn này đang biến đổi ngõ ra sao cho giống với
ngõ vào, nên để từ ngõ vào thành ngõ ra, mạch phải được đảo lại.
Thuật toán này được cải tiến bởi Maslov, tác giả tổng hợp mạch một cách trực

tiếp bởi sự phức tạp của phổ Reed-Muller thay vì sử dụng khoảng cách Hamming.
Cổng Toffoli với cả hai điều khiển âm và dương đều được áp dụng. Sau khi tổng hợp
mạch thì có thể tối ưu bởi các template của cổng Toffoli [3].
2.2.2. Phương pháp cycle-based
Một số khái niệm cơ bản trong phương pháp cycle-based:
Cycle là một tâp hoán vị (𝑎1 , 𝑎2 , … , 𝑎𝑘 ) mà trong đó 𝑓 (𝑎1 ) = 𝑎2 , 𝑓 (𝑎2 ) =
𝑎3 , … , 𝑓 (𝑎𝑘 ) = 𝑎1 . Chiều dài của một cycle được tính bằng số phần tử trong tập hốn
vị của cycle đó. Một cycle có chiều dài k được gọi là k-cycle. Với cycle có chiều dài
bằng 2 được gọi là một transposition.
Hai cycle được gọi là phân biệt (disjoint) nếu chúng khơng có chung bất kì
một phần tử nào. Và hai cycle phân biệt có thể hốn đổi vị trí cho nhau. Ví dụ (1,
2)(3, 4) = (3, 4)(1, 2). Tính chất hốn đổi này sẽ khơng cịn đúng nếu hai cycle có ít
nhất một phần tử chung [3].
Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

9

GVHD: TS. Trần Hoàng Linh

Ngoài ra, một cycle có thể được viết theo nhiều cách khác nhau bằng cách thay
đổi vị trí các phần tử trong cycle một cách tuần tự. Ví dụ như cycle (1, 2, 3) cịn có
thể được viết theo cách khác là (2, 3, 1) hay (3, 1, 2) [6].
Biểu diễn hàm bằng các k-cycle: Ngoài cách biểu diễn hàm khả đảo bằng
bảng sự thật thì có thể sử dụng cách biểu diễn bằng k-cycle. Với số biến càng lớn thì
kích thước của bảng sự thật càng lớn nên biểu diễn bằng các k-cycle là một sự lựa

chọn dễ nhìn hơn. Ví dụ như hàm khả đảo f có 3 biến như sau:
Bảng 2-5 Ví dụ biểu diễn hàm khả đảo bằng các k-cycle

0
1
2
3
4
5
6
7

a
0
0
0
0
1
1
1
1

Ngõ vào
b
0
0
1
1
0
0

1
1

c
0
1
0
1
0
1
0
1

x
0
1
1
0
1
0
1
0

Ngõ ra
y
0
0
0
1
1

1
1
0

z
0
0
1
1
1
0
0
1

0
4
5
3
7
2
6
1

 f = (1, 4, 7)(2, 5)
Trong khi phương pháp transformation-based tập trung vào mỗi giá trị riêng
lẻ của ngõ vào so với ngõ ra, thì phương pháp cycle-based tập trung vào các cycles
khi ngõ ra được chuyển về lại thành ngõ vào. Ví dụ như với một cổng Toffoli 3 biến
a, b, c với a là bit cao nhất, T(a,b;c) thì sẽ tạo thành một transposition (6, 7). Điều này
có nghĩa là nếu ngõ vào là 6 thì ngõ ra sẽ là 7 và ngược lại, nếu ngõ vào là 7 thì ngõ
ra tương ứng sẽ là 6.

Các thuật toán của phương pháp cycle-based này tập trung ở việc phân tách
các k-cycle có chiều dài lớn thành các 2-cycles, 3-cycles,…Phần xử lí phía sau phụ
thuộc vào các cơng thức tính tốn của riêng mỗi thuật tốn.
u cầu để sử dụng được phương pháp cycle-based là hàm đưa vào phải là
một hàm khả đảo hoàn chỉnh.

Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

10

GVHD: TS. Trần Hoàng Linh

2.2.3. Phương pháp graphical [7]
Phương pháp này dựa trên tính chất hốn đổi của cổng Toffoli để tổng hợp
mạch. Để chọn là cổng tối ưu nhất, tác giả đã sử dụng s-maps để đo các thơng số tối
ưu, từ đó lựa chọn cổng tối ưu nhất có thể. Các bước thực hiện thuật toán này như
sau:
Xây dựng s-maps: s-map của bit thứ i là một bảng có 2 hàng và có 2𝑛−1 cột
với n là số biến của ngõ vào cũng như ngõ ra. Hàng phía trên là hàng chứa các giá trị
của ngõ ra mà tại đó, bit thứ i của ngõ vào tương ứng bằng 0, và ngược lại hàng phía
dưới chứa các giá trị của ngõ ra mà tại đó, bit thứ i của ngõ vào tương ứng bằng 1. Ví
dụ, cho hàm khả đảo f với bảng sự thật như sau:
Bảng 2-6 Bảng sự thật của hàm khả đảo f
a
0

0
0
0
1
1
1
1

0
1
2
3
4
5
6
7

Ngõ vào
b
0
0
1
1
0
0
1
1

c
0

1
0
1
0
1
0
1

x
0
0
0
0
1
1
1
1

Ngõ ra
y
1
1
0
0
0
1
0
1

z

0
1
0
1
0
0
1
1

2
3
0
1
4
6
5
7

Vẽ s-map cho bit a gồm 2 hàng và 4 cột. Ở hàng trên điền từ trái sang phải các
giá trị thập phân của ngõ vào mà bit a bằng 0, và điền các giá trị còn lại ở hàng dưới.
Tương tự cho các s-map của bit b và c như hình 2-7.
Bảng 2-7 s-maps của ngõ vào a,b và c
a

b

c

0


1

2

3

0

1

4

5

0

2

4

6

4

5

6

7


2

3

6

7

1

3

5

7

l

k

j

i

h

g

f


e

d

c

b

a

Thay các giá trị thập phân trong mỗi bảng bằng giá trị thập phân tương ứng ở
ngõ ra. Ví dụ với ngõ vào là 2 thì ngõ ra là 5, thực hiện thay thế số 2 trong tất cả các
s-map từ 2 thành 5. Thực hiện tương tượng cho các giá trị còn lại để được s-maps của
Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

11

GVHD: TS. Trần Hoàng Linh

ngõ ra như hình 2-8. So sánh với s-maps của ngõ vào, nếu các giá trị nào của ngõ ra
nằm không đúng hàng thì sẽ bị tơ đen. Các ơ đã đúng hàng thì khơng tơ màu.
Bảng 2-8 smap của các ngõ ra x, y và z
x
2
4

l

3
6
k

y
0
5
j

1
7
i

2
0
h

3
1
g

z
4
5
f

6
7

e

2
3
d

0
1
c

4
6
b

5
7
a

Sau khi vẽ được s-maps của ngõ ra, tiến hành lập bảng các cổng Toffoli và
hàng hoán đổi tương ứng. Như đã giới thiệu ở mục 2.1.2, Toffoli có 3 loại: cổng
Toffoli, Toffoli bán âm và Toffoli âm. Như vậy, với k đường điều khiển thì sẽ có k!
cổng Toffoli với các đường điều khiển âm và dương tương ứng cho cùng một vị trí
của XOR. Hình 2-6 mô tả 4 cổng Toffoli cho cùng một vị trí của XOR.
𝑥2

𝑥2

𝑥2

𝑥2


𝑥1

𝑥1

𝑥1

𝑥1

𝑥0

𝑥0 ⨁𝑥1 𝑥2

𝑥0

𝑥0 ⨁𝑥̅1 𝑥2

b) t0-1n2p

a) t0-1p2p
𝑥2
𝑥2

𝑥2

𝑥2

𝑥1

𝑥1


𝑥1

𝑥1

𝑥0

𝑥0 ⨁𝑥1 𝑥2

𝑥0

𝑥0 ⨁𝑥̅1 𝑥2

c) t0-1p2n

d) t0-1n2n

Hình 2-6 4 cổng Toffoli cho cùng một vị trí XOR
Thành lập bảng sự thật cho từng cổng để tìm cặp hốn đổi mà cổng đó gây ra.
Từ bảng 2-9 có thể thấy ở hai hàng in đậm, chỉ có tại giá trị ngõ vào là 6 và 7 là bị
thay đổi ở ngõ ra thành 7, 6.

Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

12


GVHD: TS. Trần Hoàng Linh

Bảng 2-9 Bảng sự thật của cổng Toffoli t0-1p2p

0
1
2
3
4
5
6
7

a
0
0
0
0
1
1
1
1

Ngõ vào
b
0
0
1
1

0
0
1
1

c
0
1
0
1
0
1
0
1

x
0
0
0
0
1
1
1
1

Ngõ ra
y
0
0
1

1
0
0
1
1

z
0
1
0
1
0
1
1
0

0
1
2
3
4
5
7
6

Như vậy cặp hoán đổi của cổng t0-1p2p là (6, 7). Tiếp tục thực hiện tương tự
cho các cổng còn lại và tổng hợp lại như bảng 2-10.
Bảng 2-10 Các cổng Toffoli 3 biến và cặp hoán đổi của chúng
Tên cổng


Cặp hoán đổi

T0-1p2p
T0-1n2p
T0-1p2n
T0-1n2n
T1-0p2p
T1-0n2p
T1-0p2n
T1-0n2n
T2-0p1p
T2-0n1p
T2-0p1n
T2-0n1n

6,7
4,5
2,3
0,1
5,7
4,6
1,3
0,2
3,7
2,6
1,5
0,4

Cột tương ứng
trong bảng 2-7

a
b
c
d
e
f
g
h
i
j
k
l

Để biến đổi s-maps của ngõ ra giống với ngõ vào thì các cổng này sẽ làm
nhiệm vụ hoán đổi hai hàng của cột tương ứng cho nhau. Mục đích là đưa các giá trị
nằm sai hàng về đúng hàng của nó.
Quy tắt để chọn cổng như sau:

 Nếu tạo ra một cột với 2 ô không đúng vị trí thì +1 điểm cho cổng đó. Ví
dụ trong bảng 2-8, cổng T0-1p2p sẽ hoán đổi 2 giá trị ở cột a là 5 và 7

Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


Luận văn thạc sĩ

13


GVHD: TS. Trần Hoàng Linh

cho nhau. Ở smap của y, 5 và 7 đổi vị trị cho nhau làm cho cột e sẽ có 2
ơ khơng đúng vị trí. Vậy cổng T0-1p2p sẽ được +1 điểm ở smap y.
 Nếu hốn đổi 2 ơ khơng đúng vị trí của cùng 1 cột thì +1 điểm cho cổng
đó. Như đã đề cập, mục đich là đưa các giá trị nằm sai hàng về đúng hàng
của nó, nên các cổng làm được việc đó sẽ được ưu tiên hơn.
 Nếu hốn đổi 2 ơ khơng đúng vị trí của cùng 1 cột và tạo ra một cột gồm
2 ô khơng đúng vị trí ở smap khác thì được +2 điểm. Quy tắc này là kết
hợp của 2 quy tắc trên.
 Nếu hốn đổi 2 ơ mà làm hủy đi các cột đang có của smap thì -1 điểm
cho cổng tương ứng.
 Nếu như có hơn 2 cổng có điểm bằng nhau thì sẽ chọn ngẫu nhiên một
cổng bất kì.
Bảng 2-11 Bảng tính điểm lần 1
Cột tương ứng
Điểm
trong bảng 2-7 Smap-x Smap-y Smap-z
T0-1p2p
a
0
1
0
T0-1n2p
b
0
1
0
T0-1p2n
c

0
0
-1
T0-1n2n
d
0
0
-1
T1-0p2p
e
0
0
1
T1-0n2p
f
0
0
1
T1-0p2n
g
0
1
0
T1-0n2n
h
0
1
0
T2-0p1p
i

-1
0
0
T2-0n1p
j
-1
0
0
T2-0p1n
k
-1
0
0
T2-0n1n
l
-1
0
0
Dựa vào bộ quy tắc này, thực hiện tính điểm cho để chọn cổng tối ưu. Trong
Tên cổng

bảng 2-11, có 4 cổng in đậm là cùng điểm, chọn ngẫu nhiên cổng T0-1p2p.

Chương 2: Tổng quan

HVTH: Nguyễn Hải Đăng


×