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

Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với giải thuật khả trì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 (2.67 MB, 135 trang )

NGUYỄN MINH DŨNG

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN MINH DŨNG

KỸ THUẬT ĐIỆN TỬ

NGHIÊN CỨU VÀ THIẾT KẾ MẠCH TỰ KIỂM TRA VÀ
PHÂN TÍCH LỖI BỘ NHỚ NHÚNG VỚI GIẢI THUẬT
KHẢ TRÌNH

LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT ĐIỆN TỬ

2012B
Hà Nội – Năm 2014


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGUYỄN MINH DŨNG

NGHIÊN CỨU VÀ THIẾT KẾ MẠCH TỰ KIỂM TRA VÀ PHÂN
TÍCH LỖI BỘ NHỚ NHÚNG VỚI GIẢI THUẬT KHẢ TRÌNH
CHUYÊN NGÀNH KỸ THUẬT ĐIỆN TỬ

LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT ĐIỆN TỬ



NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. PHẠM NGỌC NAM

Hà Nội – Năm 2014


MỤC LỤC

MỤC LỤC .............................................................................................................. I
LỜI CAM ĐOAN ................................................................................................ IV
DANH MỤC CÁC HÌNH VẼ ............................................................................... V
DANH MỤC CÁC BẢNG BIỂU ...................................................................... VIII
DANH MỤC CÁC TỪ VIẾT TẮT ..................................................................... XI
PHẦN MỞ ĐẦU ....................................................................................................1
Chương 1.

Tổng quan về kiểm tra bộ nhớ, các mô hình lỗi và mạch logic tự

kiểm tra bộ nhớ .......................................................................................................3
1.1.

Giới thiệu .........................................................................................4

1.2.

Mô hình lỗi của bộ nhớ ....................................................................7

1.2.1. Các lỗi ô nhớ Memory Cell .......................................................10
1.2.2. Các lỗi giải mã địa chỉ (AFs) .....................................................11

1.2.3. Các lỗi Dynamic ........................................................................12
1.3.

Các thuật toán kiểm tra ..................................................................13

1.3.1. Các thuật toán truyền thống .......................................................13
1.3.2. Các thuật toán March .................................................................14
1.4.

Các kỹ thuật kiểm tra bộ nhớ .........................................................23

1.4.1. Kiểm tra chức năng ....................................................................23
1.4.2. Kỹ thuật quét đường biên Boundary Scan .................................23
1.4.3. Kỹ thuật ghép cách li Multiplexor Isolation ..............................25
1.4.4. Mạch logic tự kiểm tra Build-in self-test...................................26
1.5.

Kết luận ..........................................................................................30

I


Chương 2.

Triển khai thiết kế ..........................................................................32

2.1.

Tổng quan về hệ thống ...................................................................32


2.1.1. Giới thiệu ...................................................................................32
2.1.2. Sơ đồ khối tổng quát ..................................................................32
2.2.

Thiết kế mạch BISD .......................................................................34

2.2.1. Tín hiệu vào ra ...........................................................................36
2.2.2. Khối tạo chỉ thị lệnh Test Instruction Generator .......................37
2.2.3. Khối tạo tín hiệu điều khiển vật lý Physical Signal Generator..46
2.2.4. Khối tạo dữ liệu Data Background Top .....................................53
2.2.5. Khối so sánh Comparator ..........................................................62
2.2.6. Khối điều khiển hoạt động chính của mạch FSM BISD ...........64
2.3.

Thiết kế khối Tap Controller ..........................................................68

2.3.1. Sơ đồ khối ..................................................................................68
2.3.2. Tín hiệu vào ra ...........................................................................69
2.3.3. Mô tả hoạt động .........................................................................70
2.4.

Thiết kế khối RAM BISD Interface ...............................................77

2.4.1. Sơ đồ khối ..................................................................................77
2.4.2. Tín hiệu vào ra ...........................................................................78
2.4.3. Mô tả hoạt động và các khối chính ............................................79
Chương 3.

Phần mềm mô hình hóa hoạt động mạch BISD và mô hình lỗi bộ


nhớ SRAM

84

3.1.

Giới thiệu về phần mềm .................................................................84

3.2.

Các khối mô hình hóa ....................................................................84

II


3.2.1. Các file dữ liệu...........................................................................85
3.2.2. Mô hình lỗi ................................................................................90
3.2.3. Các mô đun chính ......................................................................90
3.2.4. Các File kết quả .........................................................................95
Chương 4.

Kết quả mô phỏng, tổng hợp mạch BISD và hướng phát triển .....97

4.1.

Kết quả mô phỏng ..........................................................................97

4.1.1. Kết quả mô phỏng mạch BISD trên QuestaSim ........................99
4.1.2. Kết quả mô phỏng trên phần mềm mô hình hóa........................99
4.1.3. Đối chiếu kết quả .......................................................................99

4.1.4. Code coverage .........................................................................101
4.2.

Kết quả tổng hợp ..........................................................................105

4.3.

Kết luận ........................................................................................107

4.4.

Hướng phát triển ..........................................................................108

KẾT LUẬN.........................................................................................................110
TÀI LIỆU THAM KHẢO ..................................................................................112
PHỤ LỤC ...........................................................................................................114

III


LỜI CAM ĐOAN
Trước hết, tôi xin gửi lời cảm ơn chân thành tới tập thể các thầy cô trong
Viện Điện tử viễn thông, trường Đại học Bách Khoa Hà Nội đã tạo ra một môi
trường tốt để tôi học tập và nghiên cứu. Tôi cũng xin cảm ơn các thầy cô trong
Viện Đào tạo sau đại học đã quan tâm đến khóa học này, tạo điều kiện cho các
học viên có điều kiện thuận lợi để học tập và nghiên cứu. Và đặc biệt tôi xin gửi
lời cảm ơn sâu sắc đến thầy giáo PGS.TS. PHẠM NGỌC NAM, đã tận tình
hướng dẫn và sửa chữa cho nội dung của luận văn này.
Tôi xin cam đoan rằng nội dung của luận văn này hoàn toàn do tôi tìm
hiểu, nghiên cứu và viết ra. Tất cả đều được tôi thực hiện cẩn thận, có sự góp ý

và sửa chữa của giáo viên hướng dẫn.
Tôi xin chịu trách nhiệm với tất cả nội dung trong luận văn này.

Tác giả

Nguyễn Minh Dũng

IV


DANH MỤC CÁC HÌNH VẼ
Hình 1-1 Kiến trúc chung SoC dựa trên các khối nhúng .............................4
Hình 1-2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC ........................5
Hình 1-3 Mô hình chức năng bộ nhớ SRAM ..............................................8
Hình 1-4 Mô hình chức năng rút gọn của bộ nhớ SRAM ...........................8
Hình 1-5 Mô hình lỗi ...................................................................................9
Hình 1-6 So sánh độ phức tạp tính toán và thời gian kiểm tra .................15
Hình 1-7 Khả năng phát hiện lỗi của một số thuật toán ............................19
Hình 1-8 Đánh giá thời gian kiểm tra của thuật toán March Cocktail ......22
Hình 1-9 Memory boundary scan ..............................................................24
Hình 1-10 Multiplexor Isolation ................................................................25
Hình 1-11 Kiến trúc mạch Build-in self-test .............................................26
Hình 1-12 Kiến trúc mạch BISD ...............................................................27
Hình 1-13 Thanh ghi EOP .........................................................................28
Hình 1-14 Từ điển cấu trúc thông tin lỗi với thuật toán March-17N ........28
Hình 1-15 Sơ đồ khối mạch BISD .............................................................29
Hình 1-16 Sơ đồ khối mạch BISR sử dụng Fuse Macro ...........................30
Hình 2-1 Thiết kế chip SoC hỗ trợ mạch BISD.........................................33
Hình 2-2 Sơ đồ khối mạch BISD ...............................................................34
Hình 2-3 Sơ đồ khối TIG ...........................................................................37

Hình 2-4 Sơ đồ khối SAG..........................................................................39
Hình 2-5 Giản đồ thời gian khối SAG .......................................................40
Hình 2-6 Khối SA Step Counter ................................................................41

V


Hình 2-7 Sơ đồ khối SAG ROM ...............................................................42
Hình 2-8 Sơ đồ khối PAG..........................................................................43
Hình 2-9 Giản đồ thời gian khối PAG .......................................................44
Hình 2-10 Cấu trúc của thanh ghi shift_data .............................................44
Hình 2-11 Cấu trúc FIFO ...........................................................................45
Hình 2-12 Sơ đồ thuật toán khối PAG .......................................................46
Hình 2-13 Giản đồ thời gian đọc ghi Dolphin SP SRAM .........................47
Hình 2-14 Sơ đồ khối Physical Signal Generator ......................................48
Hình 2-15 Giản đồ thời gian khối Physical Signal Generator ...................50
Hình 2-16 Sơ đồ khối Physical Counter ....................................................50
Hình 2-17 Thuật toán khối Physical Counter ............................................52
Hình 2-18 Bảng dữ liệu không đảo chuẩn và dữ liệu đảo chuẩn ...............53
Hình 2-19 Sơ đồ khối Data Background Top ............................................56
Hình 2-20 Sơ đồ khối Data Background Monitor .....................................58
Hình 2-21 Giản đồ thời gian khối Data Background Generator ................59
Hình 2-22 Sơ đồ khối Data Background Generator ..................................61
Hình 2-23 Thuật toán khối Data Background Generator ..........................61
Hình 2-24 Sơ đồ khối Comparator ............................................................62
Hình 2-25 Thuật toán khối Comparator.....................................................63
Hình 2-26 Cấu trúc thông tin lỗi BISD_syndrome ....................................64
Hình 2-27 Giản đồ thời gian khối Comparator ..........................................64
Hình 2-28 Các trạng thái của FSM BISD ..................................................66
Hình 2-29 Sơ đồ khối TAP Controller.......................................................68


VI


Hình 2-30 Sơ đồ khối chi tiết TAP Controller ..........................................70
Hình 2-31 Máy trạng thái FSM TAP Controller .......................................71
Hình 2-32 Sơ đồ khối Instruction Register ................................................72
Hình 2-33 Sơ đồ khối Instruction Decoder ................................................73
Hình 2-34 Sơ đồ khối Bypass Register ......................................................74
Hình 2-35 Sơ đồ khối ID Register .............................................................75
Hình 2-36 Sơ đồ khối BISD_in Register ...................................................75
Hình 2-37 Sơ đồ khối BISD_out Register .................................................76
Hình 2-38 Sơ đồ khối RAM BISD Interface .............................................77
Hình 2-39 Sơ đồ kiến trúc khối RAMBISD Interface ...............................79
Hình 2-40 Sơ đồ khối async_cmp..............................................................80
Hình 2-41 Sơ đồ khối wptr_full .................................................................80
Hình 2-42 Sơ đồ khối rptr_empty ..............................................................81
Hình 2-43 Sơ đồ khối fifomem ..................................................................82
Hình 3-1 Thiết kế của phần mềm mô hình hóa .........................................84
Hình 3-2 Mô hình giải thuật cho BISD .....................................................94
Hình 4-1 Mô hình kiểm tra từng khối ........................................................97
Hình 4-2 Mô hình kiểm tra toàn bộ mạch BISD .......................................98
Hình 4-3 Phần mềm mô hình hóa ..............................................................99
Hình 4-4 Mô hình đối chiếu kết quả ........................................................100

VII


DANH MỤC CÁC BẢNG BIỂU
Bảng 1-1 Ký hiệu các lỗi trong mảng ô nhớ của bộ nhớ nhúng ..................9

Bảng 1-2 Bảng các lỗi giải mã địa chỉ .......................................................12
Bảng 1-3 Bảng các ký hiệu sử dụng trong các thuật toán March ..............16
Bảng 1-4 Bảng danh sách 42 thuật toán March cơ bản .............................18
Bảng 1-5 Khả năng phát hiện lỗi của một số thuật toán March cơ bản kiểm
tra bộ nhớ theo từng bit .........................................................................................18
Bảng 1-6 Kết quả mô phỏng thuật toán MATS++ theo word với nhiều dữ
liệu chuẩn ..............................................................................................................20
Bảng 1-7 Kết quả mô phỏng thuật toán March C- theo word với nhiều dữ
liệu chuẩn ..............................................................................................................20
Bảng 2-1 I/O mạch BISD ..........................................................................36
Bảng 2-2 I/O khối TIG ..............................................................................38
Bảng 2-3 I/O khối SAG .............................................................................40
Bảng 2-4 I/O khối PAG .............................................................................43
Bảng 2-5 I/O khối Physical Signal Generator ...........................................49
Bảng 2-6 I/O khối Physical Counter ..........................................................51
Bảng 2-7 Dữ liệu không đảo chuẩn ...........................................................55
Bảng 2-8 Bảng dữ liệu cho độ rộng bus 32 bit ..........................................56
Bảng 2-9 I/O khối Data Background Top..................................................57
Bảng 2-10 I/O khối Data Background Monitor .........................................59
Bảng 2-11 I/O khối Comparator ................................................................63
Bảng 3-1 Bảng các file dữ liệu trong phần mềm mô hình hóa ..................85
Bảng 3-2 Các thuộc tính của cell ...............................................................87

VIII


Bảng 3-3 Hành vi của cell .........................................................................87
Bảng 3-4 Các thuộc tính của lỗi ................................................................87
Bảng 3-5 Các loại lỗi .................................................................................88
Bảng 3-6 Hành vi của lỗi hàng/cột ............................................................88

Bảng 3-7 Định dạng chuỗi TDO ................................................................89
Bảng 3-8 Các nhóm lỗi ..............................................................................90
Bảng 3-9 Các thuộc tính của cell ...............................................................91
Bảng 3-10 Các thuộc tính lớp cơ sở Fault .................................................92
Bảng 3-11 Các thuộc tính lớp AF (mở rộng từ lớp Fault) .........................92
Bảng 3-12 Các thuộc tính lớp CFid (mở rộng từ lớp Fault) ......................92
Bảng 3-13 Các thuộc tính lớp ColF (mở rộng từ lớp Fault) ......................92
Bảng 3-14 Các thuộc tính lớp RowF (mở rộng từ lớp Fault) ....................92
Bảng 3-15 Các thuộc tính lớp SAF (mở rộng từ lớp Fault).......................92
Bảng 3-16 Các thuộc tính lớp CellInfo ......................................................93
Bảng 4-1 Kết quả file Log.txt ..................................................................101
Bảng 4-2 Code coverage khối CORE BISD ............................................102
Bảng 4-3 Code coverage khối TIG ..........................................................102
Bảng 4-4 Code coverage khối SAG.........................................................102
Bảng 4-5 Code coverage khối SAG Step Counter ..................................102
Bảng 4-6 Code coverage khối SAG Rom ................................................103
Bảng 4-7 Code coverage khối PAG.........................................................103
Bảng 4-8 Code coverage khối Data Background Top .............................103
Bảng 4-9 Code coverage khối Data Background Generator ...................103

IX


Bảng 4-10 Code coverage khối Data Background Monitor ....................104
Bảng 4-11 Code coverage khối Physical Signal Generator .....................104
Bảng 4-12 Code coverage khối Physical Counter ...................................104
Bảng 4-13 Code coverage khối Comparator ...........................................104
Bảng 4-14 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin
dti_sp_tm65gplus_144x26_twt4bw1xoe_m .......................................................105
Bảng 4-15 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin

dti_sp_tm65gplus_512x256_twt4bw1xoe_m .....................................................106
Bảng 4-16 Kết quả tổng hợp mach BISD với bộ nhớ SRAM Dolphin
dti_sp_tm65gplus_1024x288_twt4bw1xoe_m ...................................................106

X


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Từ tiếng anh

ATPG

Automatic test pattern generation

BF

Bridging fault

BIRA

Built-in Redundancy Analysis

BIST

Built-in self-test

BISD


Built-in self-diagnosis

CF

Coupling faults

CFid

Idempotent coupling fault

CFin

Inversion coupling fault

CFst

State coupling fault

CTR

Controller

CUT

Circuit under test

DFT

Design for test


DRF

Data retention fault

EOP

Error Operation Protocol

FSI

Fault Site Indicator

FSM

Finite State Machine

MSCAN

Memory Scan

NPSF

Neighborhood Pattern Sensitive Fault

PAG

Programable Algorithm Generator

PSG


Physical Signal Generator

RA

Redundancy Analysis

RDF

Read disturb fault

SA0

Stuck-at 0

SA1

Stuck-at 1

SAF

Stuck-at fault

SAG

Stored Algorithm Generator

SDI

Scan data in


SDO

Scan data out

XI


SIA

Semiconductor Industry Association

SoC

System on Chip

SOF

Stuck-open fault

TCK

Test clock

TDI

Test data in

TDO

Test data out


TF

Transition fault

TMS

Test mode select

TPG

Test Pattern Generator

TRST

Test reset

TIG

Test Instruction Generator

VLSI

Very large scale integration

XII


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình


PHẦN MỞ ĐẦU
Sự phát triển nhanh chóng về số lượng và chủng loại bộ nhớ nhúng trong
SoC khiến việc kiểm tra bộ nhớ nhúng trở thành một vấn đề quan trọng, không
thể thiếu trong quá trình kiểm tra SoC. Quy trình công nghệ càng hiện đại, mật
độ tích hợp càng cao, kích thước bộ nhớ nhúng trong SoC càng được thu nhỏ, tuy
nhiên số lượng lỗi có thể tăng lên rất lớn. Điều này gây ảnh hưởng rất lớn đến
quá trình sản xuất SoC ở giai đoạn sản xuất ban đầu của một quy trình công nghệ
mới, rất nhiều SoC có bộ nhớ có lỗi và cần phải loại bỏ nếu bị phát hiện trong
quá trình kiểm tra. Điều này khiến hiệu suất giảm, kéo theo đó là giá thành SoC
cao. Bên cạnh đó, nhiều mô hình lỗi mới của bộ nhớ nhúng trong SoC có thể
không bị phát hiện, làm cho hoạt động của SoC sau quá trình kiểm tra truyền
thống không ổn định, thậm chí không thể sử dụng được trong thực tế.
Do đó, một vấn đề rất quan trọng và cần được đẩy mạnh là làm thế nào để
kiểm tra, phân tích và dự đoán được lỗi trong các bộ nhớ nhúng của SoC. Từ đó,
các kĩ sư thiết kế có thể sớm xác định được các nguyên nhân gây ra lỗi và cải tiến
thiết kế của các bộ nhớ nhúng. Một hệ thống SoC với các bộ nhớ đã được kiểm
tra không có lỗi sẽ hoạt động ổn định, đáng tin cậy và sẽ được sử dụng trong các
thiết bị điện tử hiện đại.
Tới thời điểm hiện nay, nhiều phương pháp kiểm tra bộ nhớ đã được đưa
ra. Tuy nhiên, khi cân nhắc đến vấn đề chi phí và khả năng kiểm tra, giải pháp tốt
nhất và được sử dụng rộng rãi trong các công ty thiết kế SoC là mạch logic tự
kiểm tra lỗi BIST cho bộ nhớ. Luận văn này nghiên cứu và đưa ra một thiết kế
mạch logic tự kiểm tra và phân tích lỗi cho bộ nhớ nhúng (BISD) với một số cải
tiến mới. Thiết kế trong luận văn sử dụng nhiều thuật toán March để kiểm tra
giúp phát hiện được nhiều loại lỗi. Mạch BISD hỗ trợ hai cơ chế kiểm tra lỗi
trong bộ nhớ, cơ chế thứ nhất lưu trữ bên trong mạch một thuật toán mặc định và
cơ chế thứ hai là truyển thuật toán vào từ bên ngoài qua chuẩn JTAG 1149.1.
Thông tin về các thuật toán được thống kê và xử lý để có thể truyền vào mạch
BISD một cách hiệu quả nhằm tiết kiệm diện tích mạch logic BISD nhưng vẫn có


1


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

hiệu suất hoạt động và khả năng linh hoạt cao. Ngoài ra, thiết kế còn kết hợp với
phần mềm xử lí dữ liệu giúp phân tích chính xác loại lỗi từ đó xác định được
nguyên nhân gây lỗi. Thiết kế mạch BISD phù hợp với nhiều loại bộ nhớ nhúng.
Tuy nhiên trong khuôn khổ luận văn, thiết kế mạch BISD phù hợp để kiểm tra
SRAM, bộ nhớ nhúng phổ biến nhất trong SoC được lựa chọn để triển khai thiết
kế.

2


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

Chương 1. Tổng quan về kiểm tra bộ nhớ, các mô
hình lỗi và mạch logic tự kiểm tra bộ nhớ
Ngay từ đầu những năm 1960, các nghiên cứu về kiểm tra bộ nhớ bán dẫn
đã xuất hiện, đi cùng với sự phát triển của nền công nghiệp vi mạch bán dẫn.
Thời gian kiểm tra và phạm vi kiểm tra luôn là những điểm quan tâm chính của
các nghiên cứu này. Sự ra đời của SoC đặt ra những vấn đề mới cho các nhà
nghiên cứu. Số lượng và diện tích của các bộ nhớ nhúng trong SoC tăng lên rất
nhanh chóng. Do đó, sản lượng của các bộ nhớ trên chip sẽ xác định sản lượng
của chip. Việc kiểm tra đúng/sai đã không còn đủ cho các bộ nhớ nhúng trong
thời đại của SoC. Bên cạnh đó, bộ nhớ thường được sử dụng như là một chỉ báo

công nghệ, do đó chúng thường được thiết kế với mật độ rất lớn ở mỗi quy trình
công nghệ. Phân tích lỗi bộ nhớ nhanh chóng trở thành vấn đề quan trọng, giống
như vấn đề về sản lượng công nghiệp và thời gian phát triển của các sản phẩm
SoC. Việc chẩn đoán lỗi một cách hiệu quả và các phương pháp phân tích lỗi của
bộ nhớ sẽ giúp cải thiện sản lượng của các sản phẩm SoC, đặc biệt là với sự thay
đổi nhanh chóng của quá trình phát triển các sản phẩm mới và các quy trình công
nghệ tiên tiến.
Chương này của luận văn sẽ trình bày về kiến trúc bộ nhớ SRAM, mô
hình lỗi cho bộ nhớ và các thuật toán kiểm tra. Thuật toán March được sử dụng
rộng rãi và được coi là hiệu quả nhất với mô hình bộ nhớ lỗi truyền thống. Các
thuật toán March khá ngắn và dễ phát triển. Đồng thời, mạch tự kiểm tra bộ nhớ
Memory Built-in self-test (BIST) cũng sẽ được trình bày một cách khái quát
trong chương này. Nó được xem là giải pháp tốt nhất cho việc kiểm tra bộ nhớ
nhúng trên các chip SoC.

3


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

1.1.

Giới thiệu

Cùng với sự ra đời của của công nghệ vi mạch độ tích hợp rất lớn (VLSI),
các công ty bán dẫn đã hướng sự quan tâm đến các giải pháp SoC. Đó là xu
hướng thiết kế các hệ thống điện tử bao gồm các vi xử lý, các mạch giao tiếp,
mạch tương tự, DSP và bộ nhớ vào trong một chip đơn. Các SoC tích hợp một số
lượng rất lớn các khối chức năng đã từng đứng độc lập trước đó trong các bảng

mạch có kích thước lớn hơn cả chục lần so với kích thước của SoC. Việc kết hợp
các chức năng này vào một chip đơn hiển nhiên làm giảm kích thước của chip.
Đây là một ưu điểm quan trọng của các thiết bị điện tử cần phải nhỏ và nhẹ trong
các thiết bị di động. Ngoài ra, các SoC còn có hiệu suất hoạt động cao hơn nhưng
tiêu thụ điện năng ít hơn. Khi tất cả các khối nhỏ được tích hợp vào trong chip
đơn, số lượng giao tiếp giữa các chip cũng giảm đi rất nhiều. Kiến trúc chung của
SoC ngày nay được thiết kế dựa trên các khối chức năng nhúng được biểu diễn
như hình sau [9].

Hình 1-1 Kiến trúc chung SoC dựa trên các khối nhúng
Các bộ nhớ là các thành phần có vai trò ngày càng quan trọng trong các
sản phẩm truyền thông, không dây và trong máy tính. Trước đây, các IC có các
chức năng riêng biệt được hỗ trợ bộ nhớ nằm ngoài. Hiện nay, các bộ nhớ nhúng

4


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

được ứng dụng vào máy tính và các sản phẩm truyền thông (bao gồm cả các thiết
bị cho mạng di động, thiết bị cầm tay và các thiết bị cho phép kết nối mạng
Internet) yêu cầu băng thông lớn hơn, kích thước nhỏ hơn, tiêu thụ ít năng lượng
hơn, hiệu suất hoạt động cao hơn và có nhiều chức năng hơn. Do đó, bộ nhớ
nhúng càng trở nên quan trọng hơn.
Thông thường bộ nhớ nhúng chiếm từ 30% đến 50% diện tích SoC. Con
số này tăng nhanh qua từng thế hệ sản phẩm và hiện nay bộ nhớ nhúng đã có thể
chiếm đến 90% diện tích chip. Hiệp hội công nghiệp bán dẫn SIA đã dự đoán
rằng con số này sẽ tăng lên 94% vào năm 2014 theo hình 1-1 [4].


Hình 1-2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC
Do xu hướng này, việc kiểm tra bộ nhớ nhúng nhận được rất nhiều sự chú
ý của giới công nghiệp cũng giống như cộng đồng nghiên cứu.
Có rất nhiều thử thách trong việc kết hợp bộ nhớ (DRAM, SRAM,
flash,…) với các thành phần logic khác. Bênh cạnh đó, việc xử lý các vấn đề
công nghệ, bảo đảm hiệu suất, chất lượng và độ tin cậy của các bộ nhớ nhúng với
chi phí được sử dụng một cách hiệu quả đòi hỏi những nỗ lực nghiên cứu sâu
hơn. Việc kiểm tra bộ nhớ nhúng lại càng khó hơn kiểm tra bộ nhớ thông thường.
Vấn đề đầu tiên là tính truy cập. Truy cập lõi DRAM từ một thiết bị kiểm tra

5


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

ngoại vi rất tốn kém - cả về vấn đề vượt quá số chân/diện tích, sụt giảm hiệu
năng, và nhiễu – khi mà bộ nhớ DRAM được nhúng trong CPU hoặc ASIC và
bao quanh bởi các khối logic khác [6]. Phương pháp thiết kế cho phép kiểm tra
(DFT – design for test) phải được cung cấp cho việc cách ly lõi và cho phép truy
cập, và cái giá phải trả là việc vượt quá số lượng cổng logic (hardware overhead),
hiệu năng thấp, nhiễu và ảnh hưởng ký sinh. Ngay cả khi đã chấp nhận những
điều trên, thiết bị kiểm tra đáp ứng đủ tiêu chuẩn để kiểm tra bộ nhớ nhúng
DRAM sẽ rất đắt vì tốc độ chạy kiểm tra và độ rộng băng thông I/O. Tổng chi
phí đầu tư sẽ rất cao. Giải pháp triển vọng cho vấn đề trên là mạch logic tự kiểm
tra (BIST). Với BIST, yêu cầu cho thiết bị kiểm tra bộ nhớ nhúng DRAM được
giảm thiểu, thời gian kiểm tra giảm đáng kể trong toàn bộ quy trình kiểm tra đối
với DRAM. Tất nhiên, tổng thời gian kiểm tra có thể được giảm nữa nếu kiểm tra
song song các bộ nhớ ở mức chip bởi vì điều này rất dễ xử lý. Do đó mạch logic
tự kiểm tra được xem như một yêu cầu bắt buộc với bộ nhớ nhúng DRAM. Một

ưu điểm khác của BIST là vấn đề bảo vệ sở hữu trí tuệ. Ví dụ trong trường hợp
này, nhà cung cấp bán dẫn chỉ cần đưa khối DRAM với chuỗi kích hoạt và đáp
ứng BIST cho nhu cầu kiểm tra và chẩn đoán lỗi mà không phải cung cấp chi tiết
thiết kế DRAM IP.
BIST cũng được áp dụng thành công với bộ nhớ nhúng SRAM, flash,
CAM. Tuy nhiên, nó vẫn cần đến thiết bị kiểm tra ngoại vi trừ trường hợp việc
chẩn đoán và sửa lỗi được tự thực hiện bên trong chip. Điều này hiển nhiên
không thể thực hiện bởi kiến trúc BIST hiện tại cho SRAM. Đồng thời, các mô
hình lỗi mới có thể cần được kiểm tra; và thuật toán March được sử dụng cho
SRAM BIST có thể không tích hợp.
Tuy nhiên, nhiều thách thức khác vẫn tồn tại, ví dụ như các thiết bị bộ nhớ
thường yêu cầu sửa chữa cứng bằng cách lập trình các cầu chì điện (burn-in) để
giảm tỉ lệ lỗi, nhưng với các thiết bị logic, IddQ có thể được sử dụng. Sử dụng
IddQ cho bộ nhớ không hề dễ dàng. Vậy nếu chúng ta tích hợp bộ nhớ và logic,
làm thế nào để đạt được yêu cầu về độ tin cậy? Thử thách tiếp theo là thiết kế tự

6


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

động. Thiết kế logic sử dụng các công cụ tổng hợp mạch trong khi thiết kế bộ
nhớ thường sử dụng thiết kế tùy chỉnh hoàn toàn. Việc tích hợp hai luồng khác
nhau đòi hỏi rất nhiều nỗ lực. Những thử thách khác nữa như là tiêu chuẩn thời
gian, hay kiểm tra nguồn điện AC của bộ nhớ không đồng bộ với mạch logic
BIST đồng bộ.

1.2.


Mô hình lỗi của bộ nhớ

Để kiểm tra hoạt động chức năng của mạch, ta thường mô tả các đặc điểm
của mạch trước, từ đó xác định được các mô hình lỗi thường gặp của mạch được
kiểm tra (CUT - circuit under test). Sau khi các lỗi điển hình được định nghĩa, ta
có thể chọn một tập các kịch bản kiểm tra nhằm phát hiện được lỗi này. Để làm
việc dễ dàng với các mô hình lỗi hoặc khuyết tật, chúng ta mô hình hóa chúng
dựa trên biểu hiện gây lỗi. Mặc dù mô hình lỗi chức năng này không được sử
dụng rộng rãi trong giới công nghiệp, đây vẫn là một phương pháp phát triển hiệu
quả để giải quyết nhiều vấn đề trong kiểm tra bộ nhớ.
Mô hình chức năng của bộ nhớ SRAM, thường thấy trong các tài liệu
hướng dẫn của nhà sản xuất, bao gồm nhiều khối. Mô hình chức năng được sử
dụng phổ biến có thể thấy như Hình 1-2 [1]. Mỗi khối trong mô hình này thực
hiện một chức năng riêng và có thể có lỗi, lỗi trong một số khối khác nhau có thể
gây ra cùng một hành vi lỗi.

7


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

Address
A
Address Latch

C
Column Decoder

B


D
E

Row
Decoder

Memory cell array

Write driver

F

G

Sense Amplifiers

Data Register

Data
out

Data
in

Read/write
and chip
enable

Hình 1-3 Mô hình chức năng bộ nhớ SRAM

Với mục đích mô hình lỗi, mô hình chức năng có thể được đơn giản hóa
thành mô hình chức năng rút gọn như Hình 1-3 [1]. Mô hình bao gồm Khối giải
mã địa chỉ Address Decoder (rút gọn từ các khối A, B, C ở Hình 1-2), Khối
Mảng ô nhớ Memory cell array, và Khối logic đọc/ghi (rút gọn từ các khối E, F,
G ở Hình 1-2).
Address

Address decoder

Memory cell array

Read/write logic

Data

Hình 1-4 Mô hình chức năng rút gọn của bộ nhớ SRAM

8


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

Mô hình lỗi chức năng có thể được phân loại như hình 1-4 [2,6].

Mô hình lỗi chức năng bộ nhớ

Lỗi ô nhớ
(Memory Cell)


Lỗi giải mã địa chỉ
(Address Decoder Faults)

Lỗi dynamic
(Dynamic Faults)

Hình 1-5 Mô hình lỗi
Với các lỗi trong mảng ô nhớ của bộ nhớ nhúng, chúng ta sử dụng một số
ký hiệu sau [6]:
Bảng 1-1 Ký hiệu các lỗi trong mảng ô nhớ của bộ nhớ nhúng
Ký hiệu
Mô tả

Sự chuyển đổi tăng của một ô nhớ (liên quan đến lệnh ghi)

Sự chuyển đổi giảm của một ô nhớ

Sự chuyển đổi tăng hoặc giảm của một ô nhớ.
Một lệnh bất kỳ của một ô nhớ

<S/F>

Sm/F>

Một lỗi trong ô nhớ.
Với: - S là giá trị hoặc lệnh kích hoạt lỗi
- F là giá trị ô nhớ bị lỗi
- S ∈ {0, 1, ↑, ↓, ↕}
- F ∈ {0, 1}.

Một lỗi liên quan đến m ô nhớ.
Với: - S1, …Sm-1 là các điều kiện tương ứng của m−1 ô
nhớ được yêu cầu để kích hoạt lỗi trên ô nhớ m (có trạng
thái là Sm)
- F là giá trị lỗi hoặc trạng thái của ô nhớ m
- 0 ≤ i ≤ m−1, Si ∈ {0, 1, ↑, ↓, ↕}.

9


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

Các lỗi ô nhớ Memory Cell

1.2.1.

Nhiều lỗi có thể xảy ra trong mảng ô nhớ. Chúng có thể được phân loại
thành các lỗi chỉ xảy ra ở một ô nhớ (SAF, SOF, TF, DRF, RDF) và các lỗi mà
một ô nhớ hoặc một nhóm các ô nhớ ảnh hưởng tới hành vi của một ô nhớ khác
(CF, BF, NPSF). Các lỗi ô nhớ Memory Cell được phân loại thành các nhóm lỗi
chính như sau [1,2,6]:

1.2.1.1.
a)

Lỗi xảy ra ở một ô nhớ hoặc một hàng

Lỗi không thay đổi giá trị (SAF)
Giá trị của một ô nhớ hoặc một hàng luôn luôn là 0 (SA0) hoặc luôn luôn


là 1 (SA1). Ký hiệu <∀/1> minh họa lỗi SA1 và ký hiệu <∀/0> minh họa lỗi
SA0.
b)

Lỗi không truy cập được (SOF)
Một ô nhớ không thể truy cập được ví dụ nguyên nhân vì đường dữ liệu bị

đứt hoặc một chuyển mạch luôn mở.
c)

Lỗi không chuyển trạng thái (TF)
Một ô nhớ không chuyển được trạng thái 0 → 1 (lỗi <↑/0> TF) hoặc trạng

thái 1 → 0 (lỗi <↓/1>).
d)

Lỗi mất dữ liệu (DRF)
DRF là lỗi một ô nhớ lỗi không giữ được giá trị logic của nó sau một

khoảng thời gian nhất định. Lỗi DRF có thể bị gây ra bởi một phần tử mạch kéo
lên bị hỏng (hoặc mở) trong một ô nhớ. Có hai loại lỗi DRF khác nhau (chúng có
thể xuất hiện đồng thời trong một ô nhớ đơn): <1T/0> và <0T/1>.
e)

Lỗi nhiễu trong quá trình đọc (RDF)
Giá trị một ô nhớ bị đảo khi được đọc (quá trình lặp lại).

1.2.1.2.
a)


Lỗi giữa các ô nhớ

Lỗi một ô nhớ hoặc một hàng ảnh hưởng tới một ô nhớ hoặc một hàng
khác (CF)

10


Nghiên cứu và thiết kế mạch tự kiểm tra và phân tích lỗi bộ nhớ nhúng với
giải thuật khả trình

Lỗi đảo giá trị (CFin) – Sự chuyển trạng thái của một ô nhớ làm một ô nhớ
khác bị đảo giá trị. Có hai loại lỗi CFin: <↑/↕> hoặc <↓/↕>. Giữa một cặp hai
ô nhớ bất kỳ, cả hai loại lỗi có thể tồn tại đồng thời.
Lỗi chuyển trạng thái (CFid) – Sự chuyển trạng thái của một ô nhớ khiến
cho ô nhớ khác có một giá trị xác định (0 hoặc 1). Có 4 loại lỗi CFid khác
nhau: <↑; 1/0>, <↑; 0/1>, <↓; 1/0>, hoặc <↓; 0/1>.
Lỗi trạng thái (CFst) – Một ô nhớ hoặc một hàng bị chuyển thành một giá
trị xác định nếu một ô nhớ hoặc một hàng khác ở trong một trạng thái xác
định. Giữa hai ô nhớ hoặc hai hàng, có 4 loại lỗi CFst khác nhau: <0; 0/1>,
<1; 0/1>, <0; 1/0>, hoặc <1; 1/0>.
Lỗi ngắn mạch (BF)

b)

Ngắn mạch giữa hai ô nhớ (có thể là loại AND hoặc OR)
Lỗi ảnh hưởng của các ô nhớ lân cận nhau (NPSF)

c)


Nội dung của một ô nhớ hoặc khả năng để chuyển nội dung một ô nhớ bị
ảnh hưởng bởi nội dung của một số ô nhớ bên cạnh trong bộ nhớ.
Active (Dynamic) NPSF – khi các ô bên cạnh thay đổi, ô lỗi bị thay đổi.
Passive NPSF – khi các ô bên cạnh thay đổi, ô lỗi không thay đổi được trạng
thái.
Static NPSF – khi các ô bên cạnh thay đổi, ô lỗi có một giá trị xác định.

1.2.2.

Các lỗi giải mã địa chỉ (AFs)

Các lỗi này xuất hiện trong bộ giải mã địa chỉ Address Decoder với giả sử
rằng AFs không thay đổi bộ giải mã trong mạch logic tuần tự và sẽ giữ nguyên
trong các quá trình đọc và ghi.

11


×