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

Nghiên ứu và thiết kế mạh tự kiểm tra và phân tíh lỗi ho bộ nhớ

96 2 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Thiết Kế Mạch Tự Kiểm Tra Và Phân Tích Lỗi Cho Bộ Nhớ
Tác giả Lê Hải Anh
Người hướng dẫn TS. Nguyễn Vũ Thắng
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 96
Dung lượng 1,87 MB

Nội dung

Do đó, một vấn đề rất quan trọng đã được nghiên cứu và triển khai từ rất sớm là làm thế nào để kiểm tra, phân tích được lỗi trong các bộ nhớ nhúng của chip SoC.. Một hệ thống SoC với các

Trang 1

NGHIÊN CỨU VÀ THIẾT KẾ MẠCH TỰ KIỂM TRA VÀ

PHÂN TÍCH LỖI CHO BỘ NHỚ

LUẬN VĂN THẠC SĨ KỸ THUẬT

Trang 2

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

-

LÊ HẢI ANH

NGHIÊN CỨU VÀ THIẾT KẾ MẠCH TỰ KIỂM TRA VÀ PHÂN

TÍCH LỖI CHO BỘ 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 : TS NGUYỄN VŨ THẮNG

Hà Nội – Năm 2013

Trang 3

MỤC LỤC

MỤC LỤC I LỜI CAM ĐOAN III DANH MỤC CÁC HÌNH VẼ IV DANH MỤC CÁC BẢNG BIỂU VII DANH MỤC CÁC TỪ VIẾT TẮT VIII

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ớ 2

1.1 Giới thiệu 3

1.2 Bộ nhớ SRAM 6

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

1.3.1 Các lỗi ô nhớ Memory Cell 9

1.3.2 Các lỗi giải mã địa chỉ Address Decoder 10

1.3.3 Các lỗi Dynamic 10

1.4 Các thuật toán kiểm tra 11

1.4.1 Các thuật toán truyền thống 11

1.4.2 Các thuật toán March 12

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

1.5.1 Kiểm tra chức năng 17

1.5.2 Kỹ thuật quét đường biên Boundary Scan 18

1.5.3 Kỹ thuật ghép cách li Multiplexor Isolation 19

1.5.4 Mạch logic tự kiểm tra Build-in self-test 20

Trang 4

1.6 Kết luận 21

Chương 2 Triển khai thiết kế 23

2.1 Thiết kế phần cứng mạch BIST 23

2.1.1 Sơ đồ khối tổng quát 23

2.1.2 Tín hiệu vào ra 26

2.1.3 Các khối chính 26

2.2 Thiết kế phần mềm mô hình hóa hoạt động mạch BIST và mô hình lỗi SRAM 61 2.2.1 Các khối mô hình hóa 62

2.2.2 Input files 63

2.2.3 Output Files 63

Chương 3 Kết quả mô phỏng, tổng hợp mạch BIST và hướng phát triển 65

3.1 Kết quả mô phỏng 65

3.1.1 Kết quả mô phỏng mạch BIST trên QuestaSim 67

3.1.2 Kết quả mô phỏng trên phần mềm mô hình hóa 68

3.1.3 Đối chiếu kết quả 69

3.1.4 Code coverage 70

3.2 Kết quả tổng hợp 71

3.3 Kết luận 72

3.4 Hướng phát triển 73

KẾT LUẬN 75

TÀI LIỆU THAM KHẢO 77

PHỤ LỤC 78

Trang 5

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 TS Nguyễn Vũ Thắng, đã 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ả

Lê Hải Anh

Trang 6

DANH MỤC CÁC HÌNH VẼ

Hình 1–1 Ứng dụng bộ nhớ nhúng trong thiết kế SoC 3

Hình 1–2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC 4

Hình 1–3 Một ô nhớ SRAM 6

Hình 1–4 Sơ đồ khối chức năng SRAM của Micron 7

Hình 1–5 Mô hình lỗi 8

Hình 1–6 So sánh độ phức tạp tính toán và thời gian kiểm tra 13

Hình 1–7 Khả năng phát hiện lỗi của một số thuật toán 16

Hình 1–8 Memory boundary scan 18

Hình 1–9 Multiplexor Isolation 19

Hình 1–10 Build-in self-test 20

Hình 2–1 Thiết kế chip SoC 24

Hình 2–2 Sơ đồ khối mạch BIST 25

Hình 2–3 Sơ đồ khối TIG 27

Hình 2–4 Sơ đồ khối SAG 29

Hình 2–5 Giản đồ thời gian khối SAG 31

Hình 2–6 Giản đồ thời gian SAG chi tiết 31

Hình 2–7 Sơ đồ khối Offset Decoder 32

Hình 2–8 Giản đồ thời gian Offset Decoder 32

Hình 2–9 Sơ đồ khối Step Decoder 32

Hình 2–10 Giản đồ thời gian khối Step Decoder 33

Hình 2–11 Khối SA Step Counter 33

Hình 2–12 Giản đồ thời gian khối SA Step Counter 33

Trang 7

Hình 2–13 Sơ đồ khối Full Adder 34

Hình 2–14 Giản đồ thời gian khối Full Adder 34

Hình 2–15 Sơ đồ khối P_ROM 35

Hình 2–16 Giản đồ thời gian khối P_ROM 35

Hình 2–17 Sơ đồ khối S_ROM 35

Hình 2–18 Giản đồ thời gian của khối S_ROM 36

Hình 2–19 Sơ đồ khối PAG 37

Hình 2–20 Giản đồ thời gian khối PAG 38

Hình 2–21 Khung dữ liệu chuẩn 39

Hình 2–22 Ví dụ khung dữ liệu cho thuật toán MATS 39

Hình 2–23 Sơ đồ khối Shift Register 39

Hình 2–24 Giản đồ thời gian Shift Register 40

Hình 2–25 Sơ đồ khối Counter16 40

Hình 2–26 Giản đồ thời gian Counter16 40

Hình 2–27 Sơ đồ khối Data Controller 41

Hình 2–28 Giản đồ thời gian Data Controller 41

Hình 2–29 Sơ đồ khối Register File 42

Hình 2–30 Giản đồ thời gian khối Register File 42

Hình 2–31 Sơ đồ khối PAG Step Counter 43

Hình 2–32 Giản đồ thời gian khối PAG Step Counter 43

Hình 2–33 Giản đồ thời gian đọc ghi Dolphin SP SRAM 44

Hình 2–34 Sơ đồ khối Physical Signal Generator 45

Hình 2–35 Thiết kế khối Physical Signal Generator 45

Trang 8

Hình 2–36 Giản đồ thời gian khối Physical Signal Generator 47

Hình 2–37 Sơ đồ khối Physical Counter 47

Hình 2–38 Thuật toán khối Physical Counter 48

Hình 2–39 Bảng dữ liệu không đảo chuẩn và dữ liệu đảo chuẩn 49

Hình 2–40 Sơ đồ khối Data Background Generator 52

Hình 2–41 Thuật toán trong khối Data Background Generator 53

Hình 2–42 Giản đồ thời gian khối Data Background Generator 54

Hình 2–43 Sơ đồ khối Comparator 55

Hình 2–44 Giản đồ thời gian khối Comparator 56

Hình 2–45 Sơ đồ khối FSM BIST 57

Hình 2–46 Các trạng thái của FSM BIST 58

Hình 2–47 Giản đồ thời gian của khối FSM BIST 61

Hình 2–48 Thiết kế của phần mềm mô hình hóa 62

Hình 3–1 Mô hình kiểm tra từng khối 65

Hình 3–2 Mô hình kiểm tra toàn bộ mạch BIST 66

Hình 3–3 Kịch bản fsm_bist_tb_failed_ram_fullAgorithm_fullData 67

Hình 3–4 Kịch bản fsm_bist_tb_failed_ram_fullAgorithm_randomData 67 Hình 3–5 Kịch bản fsm_bist_tb_failed_ram_MarchC_fullData 68

Hình 3–6 Phần mềm mô hình hóa 68

Hình 3–7 Mô hình đối chiếu kết quả 69

Trang 9

DANH MỤC CÁC BẢNG BIỂU

Bảng 1–1 Tổng kết mô hình lỗi 16

Bảng 1–2 Tổng kết 42 thuật toán March 17

Bảng 2–1 I/O mạch BIST 26

Bảng 2–2 I/O khối TIG 27

Bảng 2–3 I/O khối SAG 30

Bảng 2–4 Địa chỉ offset của S_ROM 36

Bảng 2–5 I/O khối PAG 37

Bảng 2–6 I/O khối Physical Signal Generator 45

Bảng 2–7 I/O khối Physical Counter 48

Bảng 2–8 Dữ liệu không đảo chuẩn 51

Bảng 2–9 Bảng dữ liệu cho độ rộng bus 32 bit 52

Bảng 2–10 I/O khối Data Background Generator 53

Bảng 2–11 I/O khối Comparator 55

Bảng 2–12 I/O khối FSM BIST 57

Bảng 3–1 Các kịch bản kiểm tra 66

Bảng 3–2 Kết quả file Log.txt 69

Bảng 3–3 Code coverage kịch bản 1 70

Bảng 3–4 Code coverage kịch bản 2 71

Bảng 3–5 Kết quả tổng hợp 71

Trang 10

DANH MỤC CÁC TỪ VIẾT TẮT

ATPG Automatic test pattern generation

NPSF Neighborhood Pattern Sensitive Fault

Trang 11

TIG Test Instruction Generator

Trang 12

PHẦN MỞ ĐẦU

Với sự phát triển nhanh chóng của nền công nghiệp bán dẫn, các thiết bị điện tử ngày càng sử dụng nhiều các hệ thống System-on-chip (SoC) Một thành phần quan trọng không thể thiếu trong chip SoC là các bộ nhớ nhúng Quy trình công nghệ càng tiến tiến; bộ nhớ nhúng càng được thu nhỏ, có mật độ tích hợp và kích thước càng lớn Đi cùng với những ưu điểm đó, một nhược điểm lớn là bộ nhớ nhúng có thể chứa rất nhiều lỗi Điều này dẫn đến hoạt động của hệ thống SoC không ổn định, chất lượng chip không đảm bảo và không thể sử dụng được trong thực tế

Do đó, một vấn đề rất quan trọng đã được nghiên cứu và triển khai từ rất sớm là làm thế nào để kiểm tra, phân tích được lỗi trong các bộ nhớ nhúng của chip SoC Từ đó các kĩ sư thiết kế có thể sớm xác định đượ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 và không có lỗi là một hệ thố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

Hiện nay có rất nhiều phương pháp để kiểm tra bộ nhớ Tuy nhiên, 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ớ Đề tài luận văn này nghiên cứu và đưa ra

1 thiết kế mạch logic tự kiểm tra và phân tích lỗi cho bộ nhớ với một số cải tiến mới Thiết kế 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 Thông tin về các thuật toán được lưu trữ bằng một cách nén dữ liệu mới do đó tiết kiệm mạch logic BIST nhưng vẫn có hiệu suất hoạt động 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 BIST phù hợp với nhiều loại bộ nhớ nhúng Tuy nhiên trong khuôn khổ luận văn, tôi chọn thiết kế mạch BIST phù hợp để kiểm tra SRAM, bộ nhớ nhúng phổ biến nhất trong các chip SoC

Trang 13

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ớ

Các nghiên cứu về kiểm tra bộ nhớ bán dẫn có lịch sử rất sớm từ đầu những năm 1960, cùng với sự phát triển của nền công nghiệp vi mạch bán dẫn Mặc dù 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, giới công nghiệp về cơ bản luôn ưu chuộng các kỹ thuật đã hoàn thiện và các công cụ kiểm tra công nghiệp các sản phẩm bộ nhớ Sự ra đời của các hệ thống chip đã mang lại những vấn đề mới cho các nhà nghiên cứu Số lượng các

bộ nhớ nhúng và diện tích các bộ nhớ này đã tăng lên rất nhanh chóng trong các

hệ thống chip Sản lượng của các bộ nhớ trên chip do đó 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 các bộ vi mạch tích hợp SoC (system-on-chip) Ngoài ra, 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 Chẩn đoán lỗi hiệu quả và các phương pháp phân tích lỗi 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

Trong chương này, tôi 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 trong chương này, tôi cũng sẽ trình bày về mạch tự kiểm tra bộ nhớ Memory Built-in Self-test (BIST) 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

Trang 14

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 đã dịch chuyển sự quan tâm đến các giải pháp SoC Đó là một xu hướng mới của tích hợp Với một thiết kế hàng triệu phần tử cổng logic

và số lượng chân (pad) hạn chế, chúng ta có thể thấy tại sao bộ nhớ nhúng lại là một giải pháp hấp dẫn như vậy Hầu hết các hệ thống SoC đều chứa một vài loại

bộ nhớ nhúng, nên bộ nhớ được coi là một thành phần phổ biến nhất Các sản phẩm như điện thoại di động, thiết bị điện tử cá nhân, hệ thống tổng đài, máy ảnh

kỹ thuật số, đầu đĩa DVD,… đều yêu cầu sử dụng hệ thống SoC với kiến trúc chứa nhiều bộ nhớ nhúng Ứng dụng của bộ nhớ nhúng được thể hiện như hình 1-1 [4]

Hình 1–1 Ứng dụng bộ nhớ nhúng trong thiết kế SoC

Thông thường bộ nhớ nhúng chiếm từ 30% đến 50% diện tích chip 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 (Semiconductor Industry Association - 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-2 [4]

Trang 15

Hình 1–2 Dự báo về diện tích bộ nhớ nhúng trên chip SoC

Do xu hướng như vậ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 Để 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ả; nó đò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 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 [3] 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

Trang 16

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

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ự độ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ộ

Trang 17

1.2 Bộ nhớ SRAM

Bộ nhớ RAM tĩnh (SRAM - Statis RAM) được sử dụng rộng rãi trong nhiều ứng dụng Một chip SRAM thường bao gồm các bộ giải mã địa chỉ, logic đọc/ghi, các bộ khuếch đại và một mảng phần tử nhớ Ví dụ về SRAM đồng bộ dưới đây mô tả họ SRAM đồng bộ Micron Tất cả đầu vào đồng bộ đi qua các thanh ghi được điều khiển bởi một xung clock đơn lật ở sườn dương(CLK)

 Phần tử nhớ: Phần tử SRAM truyền thống được chỉ ra như trong hình 1-3 bao gồm 6 MOS

Hình 1–3 Một ô nhớ SRAM

 Khối chức năng: Hình 1-4 mô tả một ví dụ về sơ đồ khối chức năng của SRAM đồng bộ Micron [4] Các đầu vào đồng bộ bao gồm tất cả các địa chỉ, tất cả đầu vào dữ liệu, tín hiệu kích hoạt mức thấp (CE#), hai tín hiệu kích hoạt

bổ sung để dễ dàng mở rộng chiều sâu(CE2#,CE2), các đầu vào tín hiệu điều khiển (ADSC#, ADSP#, ADV#), tín hiệu kích hoạt cho phép ghi theo byte(BWx#) và ghi theo toàn bộ (GW#) Các đầu vào không đồng bộ bao gồm tín hiệu kích hoạt đầu ra (OE#), clock(CLK) và kích hoạt cho phép dừng ngắn

Trang 18

(ZZ) Có đầu vào chế độ tín hiệu (MODE) lựa chọn kiểu tín hiệu xen kẽ hay tuyến tính

Hình 1–4 Sơ đồ khối chức năng SRAM của Micron

 Các lệnh chính: Một xung đầu vào điều khiển đơn giản lựa chọn hoạt động đọc hoặc ghi Xung này không bị khóa và có thể lưu bởi một giá trị suốt toàn bộ quá trình hoạt động Dữ liệu đầu ra (Q) được cho phép bởi tín hiệu /OE#

là không đồng bộ Chu kỳ ghi có thể dài 1 đến 2 byte (x18) hoặc từ 1 đến 4 byte (x32/x36), được điều khiển bởi đầu vào điều khiển ghi Tín hiệu hoạt động có thể được khởi tạo với các đầu vào bộ xử lý trạng thái địa chỉ (ADSP#) hoặc bộ điều khiển trạng thái địa chỉ Các tín hiệu địa chỉ tiếp theo có thể được sinh ra bên trong khi được điều khiển bởi tín hiệu đầu vào cho trước (ADV#) Tín hiệu GW#

ở mức thấp cho phép dữ liệu được ghi vào tất cả các byte

Để kiểm tra chức năng của bộ nhớ, chúng ta thường mô tả các đặc điểm của thiết bị 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, chúng 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

Trang 19

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 lỗi chức năng có thể được phân loại như hình 1-5 [2,3]

↓ kí hiệu cho sự chuyển đổi giảm của một ô nhớ

↕ kí hiệu cho sự chuyển đổi tăng hoặc giảm của một ô nhớ

∀ kí hiệu cho một lệnh bất kỳ của một ô nhớ

<S/F> kí hiệu 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, ↑, ↓, ↕}, và F ∈ {0, 1}

<S1, …, Sm-1; Sm/F> kí hiệu 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, và 0 ≤ i ≤ m−1, Si ∈{0, 1, ↑, ↓, ↕}

Memory – Functional Fault Models

Memory Cell Faults

Dynamic faults

Address decoder Faults

Trang 20

1.3.1 Các lỗi ô nhớ Memory Cell

Các lỗi ô nhớ Memory Cell được phân loại thành các nhóm lỗi chính như sau [2,3]:

Lỗi không thay đổi giá trị Stuck-at fault (SAF) – Một ô nhớ có giá trị

không đổi với mọi lệnh áp dụng lên ô nhớ đó, <∀/1> ký hiệu lỗi stuck-at-1 và

<∀/0> ký hiệu lỗi stuck-at-0

Lỗi không truy cập được Stuck-open fault (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ở

Lỗi không chuyển trạng thái Transition fault (TF) – Một ô nhớ gặp lỗi

không chuyển được trạng thái; nó có thể là <↑/0> hoặc <↓/1>

Lỗi mất dữ liệu Data retention fault (DRF) – 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 giữa các ô nhớ Coupling faults(CF)

o Lỗi đảo giá trị Inversion coupling fault (CFin) – Sự chuyển trạng thái

của một ô nhớ làm một ô nhớ khác bị đảo giá trị; đó là <↑/↕> hoặc

<↓/↕>

o Lỗi chuyển trạng thái Idempotent coupling fault (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; đó

là <↑; 1/0>, <↑; 0/1>, <↓; 1/0>, hoặc <↓; 0/1>

o Lỗi trạng thái State coupling fault (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; đó là <0; 0/1>, <1; 0/1>, <0; 1/0>, hoặc

Trang 21

Lỗi ảnh hưởng của các ô nhớ Neighborhood Pattern Sensitive Fault

(NPSF) – 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ớ

o Active (Dynamic) NPSF – khi các ô bên cạnh thay đổi, ô lỗi bị thay đổi

o Passive NPSF – khi các ô bên cạnh thay đổi, ô lỗi không thay đổi được

trạng thái

o Static NPSF – khi các ô bên cạnh thay đổi, ô lỗi có một giá trị xác định

1.3.2 Các lỗi giải mã địa chỉ Address Decoder

 Không có ô nhớ nào được truy cập bởi một địa chỉ xác định

 Có nhiều ô nhớ bị truy cập bởi cùng một địa chỉ xác định

 Một ô nhớ xác định không thể truy cập bởi bất kỳ địa chỉ nào

 Một ô nhớ xác định được truy cập bởi nhiều địa chỉ

1.3.3 Các lỗi Dynamic

Recovery faults: khi một số phần của bộ nhớ không thể khôi phục đủ nhanh

từ trạng thái trước đó

o Sense amplifier recovery: bộ khuếch đại bão hòa sau khi đọc/ghi một

chuỗi dài các bit 0 hoặc 1

o Write recovery: Một lệnh ghi, theo sau đó là một lệnh đọc hoặc ghi ở

một vị trí khác nhưng đem lại kết quả là lệnh đọc hoặc ghi ở cùng vị trí Nguyên nhân là do bộ giải mã địa chỉ bị chậm

Disturb faults: ô nhớ lỗi bị thay đổi giá trị thành 0 hoặc 1 nếu chúng ta đọc

hoặc ghi trên ô nhớ khác có tác động (có thể là cùng một ô nhớ)

Data Retention faults: bộ nhớ bị mất dữ liệu một cách tự nhiên, không do

lệnh đọc hoặc ghi

o DRAM refresh fault: Đường Refresh gặp lỗi stuck-at

o DRAM leakage fault:

 Sleeping sickness – mất dữ liệu trong khoảng thời gian ngắn hơn

giá trị hold time (thông thường vài trăm us cho đến vài chục ms);

Trang 22

gây ra bởi dò điện hoặc môi trường nhiễu, thường tác động đến cả hàng hoặc cả cột bộ nhớ

 Static data losses – thiết bị có khuyết tật pull-up Gồm cả dòng

điện quá mức rò rỉ cho phép và làm thay đổi trạng thái của ô nhớ

Có khá nhiều loại thuật toán được sử dụng để kiểm tra bộ nhớ Chúng có thể được phân loại vào hai nhóm chính là thuật toán truyền thống và thuật toán March [2,3]

1.4.1 Các thuật toán truyền thống

Các thuật toán truyền thống được sử dụng rộng rãi trong quá khứ Chúng được sử dụng vì khả năng phát hiện được các lỗi không chức năng như lỗi thông

số điện Các thuật toán truyền thống cơ bản gồm có: zero-one, Checker board, and GALPAT and Walking1/0 [3]

1.4.1.1 Thuật toán Zero-one

Thuật toán này còn được biết đến với tên MSCAN (Memory Scan) Thuật toán đơn giản chỉ gồm có lệnh ghi dữ liệu toàn 0 hoặc toàn 1 vào bộ nhớ Giả mã của thuật toán như sau:

Bước 1: ghi 0 vào toàn bộ ô nhớ

Bước 2: đọc toàn bộ ô nhớ

Bước 3: ghi 1 vào toàn bộ ô nhớ

Bước 4: đọc toàn bộ ô nhớ

Thuật toán này rất dễ để thiết kế nhưng không đủ mạnh để kiểm tra bộ nhớ

vì nó không phát hiện được hết các lỗi AF và CF

1.4.1.2 Thuật toán Checkerboard

Đây cũng là một thuật toán ngắn và đơn giản Các ô nhớ của mảng ô nhớ được chia thành hai nhóm: nhóm ô nhớ 1 và nhóm ô nhớ 2, từ đó tạo nên đoạn

mã kiểm tra để ghi vào bộ nhớ

Checkerboard có khả năng phát hiện lỗi như sau:

Trang 23

 Không phải tất cả lỗi AF đều được phát hiện Nó chỉ đảm bảo cho hai ô nhớ được truy cập

 Lỗi SAF được phát hiện nếu có điều kiện đảm bảo là chức năng giải mã địa chỉ phải đúng, nếu không cũng chỉ có hai ô nhớ được bảo đảm không có lỗi SAF

 Không phải tất cả lỗi TF và CF đều được phát hiện Nguyên nhân giống với thuật toán Zero-one

1.4.1.3 Thuật toán GALPAT và Walking 1/0

Thuật toán GALPAT (GALloping PATtern) và Walking 1/0 là tương tự nhau Bộ nhớ được làm đầy với dữ liệu là các bit 0 (hoặc 1) ngoại trừ một ô nhớ

cơ sở duy nhất chứa dữ liệu bit 1 (hoặc 0) Trong quá trình kiểm tra, ô nhớ cơ sở này được dịch lần lượt qua từng vị trí của bộ nhớ Điểm khác biệt giữa GALPAT

và Walking 1/0 là khi đọc ô nhớ cơ sở với Walking 1/0, sau mỗi bước các ô nhớ đều được đọc và ô nhớ cơ sở được đọc cuối cùng Với GALPAT, tất cả các ô nhớ được đọc nhưng sau mỗi ô nhớ thì ô nhớ cơ sở cũng được đọc

Khả năng phát hiện lỗi của cả hai thuật toán như sau:

 Tất cả lỗi AF đều được phát hiện và đánh dấu

 Tất cả lỗi SAF sẽ được đánh dấu

 Tất cả lỗi All TF được đánh dấu

 Tất cả lỗi CFid được đánh dấu

1.4.2 Các thuật toán March

Kích thước của bộ nhớ càng ngày lớn và nhiều lỗi phức tạp xuất hiện Các thuật toán truyền thống hoặc là không đủ mạnh để phát hiện lỗi, hoặc là mất quá nhiều thời gian để chạy kiểm tra Có nhiều thuật toán mới được phát triển nhưng nếu chúng có độ phức tạp tính toán cao hơn độ phức tạp tuyến tính theo thời gian thì việc sử dụng sẽ là không khả thi Hình 1-6 thể hiện mối liên hệ giữa độ phức tạp tính toán và thời gian kiểm tra [3]

Trang 24

Hình 1–6 So sánh độ phức tạp tính toán và thời gian kiểm tra

Theo dữ liệu trong hình 1-6, nếu bộ nhớ 1Gigabit được kiểm tra với thuật toán có độ phức tạp tuyến tính n thì thời gian kiểm tra chỉ là 1.75 phút nhưng nếu kiểm tra với thuật toán có độ phức tạp n2 thì sẽ mất 3659 năm

Vì lí do đó, một thuật toán tuyến tính theo thời gian, đủ đơn giản mà vẫn phát hiện được các lỗi SAF, TF, CF được phát triển Chúng ta gọi đó là thuật toán March Hiện nay, thuật toán March đã phát triển rất phổ biến và có rất nhiều thuật toán March biến thể mới Một số thông tin về thuật toán March được giới thiệu dưới đây [3]

1.4.2.1 Kí hiệu cho thuật toán March Test

 ↑ Địa chỉ thay đổi theo thứ tự tăng dần

 ↓ Địa chỉ thay đổi theo thứ tự giảm dần

 ↕ Địa chỉ thay đổi theo thứ tự bất kỳ

 r0 lệnh đọc dữ liệu 0 từ ô nhớ

 r1 lệnh đọc dữ liệu 1 từ ô nhớ

 w0 lệnh ghi dữ liệu 0 từ ô nhớ

 w1 lệnh ghi dữ liệu 1 từ ô nhớ

Trang 25

Độ phức tạp tính toán của thuật toán March phụ thuộc số lượng lệnh có trong thuật toán Ví dụ với thuật toán có 10 lệnh đọc/ghi dữ liệu thì độ phức tạp tính toán là 10n

1.4.2.2 Một số thuật toán March cơ bản

Sau đây là một số thuật toán March cơ bản đã được nghiên cứu và sử dụng [2,3,4,8]

a) MATS+

Thuật toán MATS+ phát hiện được tất cả lỗi SAF và AF, nó thường được

sử dụng thay cho thuật toán MATS khi kiểm tra bộ nhớ với công nghệ được sử dụng chưa rõ Độ phức tạp tính toán là 5n Kí hiệu cho MATS+ như sau

{↕(w0);↑(r0,w1);↓(r1,w0)}

b) MATS++

Thuật toán MATS++ là một thuật toán hoàn chỉnh, không dư thừa và đã được tối ưu Nó khá giống MATS+ test nhưng có thể phát hiện lỗi TF Độ phức tạp tính toán là 6n và thuật toán này được đề cử cho việc kiểm tra các lỗi unlinked SAF và TF

March C thường được dùng để phát hiện các lỗi unlinked CFid; tất nhiên

nó cũng phát hiện được các lỗi AF, SAF, unlinked TF, CFst, and unlinked CFin

Độ phức tạp tính toán của March C là 11n

{↕(w0);↑(r0,w1);↑(r1,w0);↕(r0);↓(r0,w1);↓(r1,w0);↕(r0)}

March C− phát hiện được các lỗi SAF and unlinked TF bởi vì các ô nhớ được đọc theo trạng thái 0,1,0, Do đó cả chiều chuyển trạng thái ↑ và ↓, và lệnh

Trang 26

đọc sau đó đều được diễn ra March C− cũng phát hiện các lỗi CFid, CFin and CFst với sự giới hạn là các lỗi CF là không kết nối Độ phức tạp tính toán là 10n

{↕(w0);↑(r0,w1);↑(r1,w0);↓(r0,w1);↓(r1,w0);↕(r0)}

e) March A

March A là thuật toán ngắn nhất để phát hiện lỗi linked CFids; tất nhiên

nó kiểm tra được các lỗi AF, SAF, linked CFid, TF không liên kết với CFid, và lỗi CFin liên kết với CFid Chứng minh cho March A đã được hoàn thiện Độ phức tạp của nó là 15n

Trang 27

Hình 1–7 Khả năng phát hiện lỗi của một số thuật toán

Và bảng 1-1 tóm tắt mô hình lỗi mà một số thuật toán phát hiện được [2]

N=‟No‟, L=‟locate‟, D=‟detect‟, LS= „locate some‟, DS=„detect some‟, TC=‟Test complexity‟

Các thuật toán được mô tả bên trên là các thuật toán tiêu biểu và được sử dụng rộng rãi Thực tế, càng nhiều thuật toán được triển khai, càng nhiều lỗi bộ

Trang 28

nhớ được phát hiện Tôi đã thống kê và tìm được 42 thuật toán March Do đó trong luận văn này, tôi đề xuất kiến trúc kiểm tra bộ nhớ sử dụng đủ thông tin từ

42 thuật toán March Với số lượng thuật toán lớn như vậy, kiến trúc kiểm tra bộ nhớ này có thể phát hiện được nhiều lỗi cho nhiều loại bộ nhớ khác nhau Kiến trúc này đồng thời cũng rất linh hoạt, chúng ta có thể chọn thuật toán tốt nhất để kiểm tra cho một loại bộ nhớ nhất định

Danh sách 42 thuật toán March được sử dụng trong việc thiết kế thuật toán kiểm tra như bảng 1-2 [1,3,4,9]:

Check board March FT

Có hai vấn đề chính đối với việc kiểm tra bộ nhớ nhúng là làm thế nào để kiểm tra được các logic xung quanh bộ nhớ nhúng và chính bản thân bộ nhớ đó

Có 4 kỹ thuật cơ bản được sử dụng hiện nay gồm: kiểm tra chức năng, kỹ thuật quét đường biên bộ nhớ (boundary scan), ghép cách li (multiplexor isolation) và mạch logic tự kiểm tra (build-in self-test)

1.5.1 Kiểm tra chức năng

Các bộ nhớ nhúng có thể được kiểm tra bằng cách kiểm tra chức năng Đây là phương pháp hiệu quả nếu hoạt động của chip truy cập trực tiếp vào các

bộ nhớ Một ví dụ là chip vi điều khiển với các chỉ thị lệnh đặc biệt để truy cập vào bộ nhớ đệm, do đó việc kiểm tra chức năng cho bộ nhớ đệm này rất đơn giản

Trang 29

Ưu điểm của kỹ thuật này gồm có:

 Không có thêm mạch logic và độ trễ nào đối với việc kiểm tra

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ at-speed-testing

Các nhược điểm của kỹ thuật này gồm có:

 Không hiệu quả cho bộ nhớ mà việc truy cập trực tiếp không đơn giản trong chế độ hoạt động chức năng của chip

 Cần nhiều nguồn lực để thực hiện việc kiểm tra

 Các logic xung quanh bộ nhớ không dễ để kiểm tra

 Dữ liệu quá trình kiểm tra có thể lớn

1.5.2 Kỹ thuật quét đường biên Boundary Scan

Kỹ thuật này sử dụng một vòng quét (scan chain) đặt tại đường biên của

bộ nhớ Một bộ ghép được sử dụng để chọn giữa các chân chức năng của bộ nhớ

và chân vòng quét Mục đích của việc này là bắt được nội dung của toàn bộ dữ liệu đầu vào và đầu ra của bộ nhớ mà không gây ảnh hưởng đến nội dung của bộ nhớ Một kiến trúc cơ bản của kỹ thuật quét đường biên như sau:

Hình 1–8 Memory boundary scan

Dữ liệu đầu vào của vòng quét là chân SDI và dữ liệu đầu ra là chân SDO Việc truy cập dữ liệu tại đầu vào và đầu ra của bộ nhớ được thực hiện theo cách dịch tuần tự

Trang 30

Ưu điểm của kỹ thuật này gồm có:

 Khả năng phát hiện lỗi cao bên trong bộ nhớ

 Khả năng phát hiện lỗi cao cho logic xung quanh bộ nhớ nếu sử dụng quét ATPG

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Diện tích mạch logic tăng thêm ít bởi có thêm một số thanh ghi quét ở đầu vào và đầu ra của bộ nhớ

Nhược điểm của kỹ thuật này gồm có:

 Thời gian kiểm tra rất lâu vì cách dịch tuần tự của dữ liệu

 Không thể chạy cùng tần số của bộ nhớ at-speed-testing

 Dữ liệu quá trình kiểm tra rất lớn

 Hiện không có công cụ thương mại nào có thể tạo đoạn mã quét cho bộ nhớ

1.5.3 Kỹ thuật ghép cách li Multiplexor Isolation

Trong kỹ thuật này, một bộ ghép được sử dụng ở đầu vào của bộ nhớ, vài tín hiệu đầu vào chính được nối trực tiếp tới đầu vào kiểm tra của bộ ghép đầu vào Tương tự thế, một bộ ghép được sử dụng ở đầu ra của bộ nhớ và đầu ra của

bộ nhớ được nối trực tiếp tới đầu vào kiểm tra của bộ ghép đầu ra Một kiến trúc

cơ bản của kỹ thuật ghép cách li như sau:

Hình 1–9 Multiplexor Isolation

Trang 31

Kỹ thuật này cung cấp một đường kết nối trực tiếp từ các tín hiệu đầu vào chính đến đầu vào bộ nhớ, và từ đầu ra bộ nhớ đến các tín hiệu đầu ra chính Nó

có nghĩa là các logic xung quanh đầu vào và đầu ra bộ nhớ được bỏ qua và chúng

ta có thể truy cập trực tiếp vào bộ nhớ thông qua các tín hiệu đầu vào chính và đầu ra chính

Ưu điểm của kỹ thuật này gồm có:

 Bất kỳ thuật toán nào cũng có thể sử dụng để kiểm tra

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ at-speed-testing

Nhược điểm của kỹ thuật này gồm có:

 Diện tích tăng thêm do quá trình định tuyến các kết nối là rất lớn

 Dữ liệu quá trình kiểm tra có thể lớn

 Logic xung quanh bộ nhớ khó kiểm tra

1.5.4 Mạch logic tự kiểm tra Build-in self-test

Mạch logic tự kiểm tra là giải pháp tốt nhất cho việc kiểm tra bộ nhớ nhúng Bộ nhớ thường được kiểm tra bằng một đoạn mã do thuật toán kiểm tra tạo ra Việc thiết kế khối tạo dữ liệu đầu vào và khối phân tích đáp ứng dữ liệu đầu ra được gọi là mạch logic tự kiểm tra Build-in self-test (BIST) Khối tạo dữ liệu và khối phân tích đáp ứng được điều chỉnh để phù hợp với từng bộ nhớ cần kiểm tra Một kiến trúc cơ bản của mạch logic tự kiểm tra như sau [3,5,9]:

Hình 1–10 Build-in self-test

Trang 32

Với kiến trúc BIST như trên, việc kiểm tra từ bên ngoài không cần được

sử dụng Kỹ thuật này xuất phát từ ý tưởng xây dựng một thuật toán kiểm tra có khả năng phát hiện lỗi cao nhưng lại dễ dàng thiết kế ở mức mạch logic phần cứng

Ưu điểm của kỹ thuật này gồm có:

 Không cần nhiều nguồn lực cho việc kiểm tra

 Sử dụng được các thiết bị kiểm tra không đắt tiền

 Việc kiểm tra có thể thực hiện ở tần số hoạt động của bộ nhớ at-speed-testing

 Dữ liệu quá trình kiểm tra thấp

 Việc kiểm tra được thực hiện tại các tầng khác nhau như: chip, bo mạch, và

hệ thống

Nhược điểm của kỹ thuật này gồm có:

 Cần dành một phần diện tích cho mạch logic BIST

 Các thuật toán kiểm tra có thể không phát hiện được tất cả các loại lỗi

Qua chương giới thiệu tổng quan này, chúng ta đã biết được sự phát triển của nền công nghiệp bán dẫn, sự phức tạp của các hệ thống chip SoC và các bộ nhớ nhúng trong đó Chúng ta cũng thấy được yêu cầu bắt buộc phải có một giải pháp kiểm tra bộ nhớ để đảm bảo sự hoạt động chính xác, không có lỗi, cũng như

độ tin cậy của bộ nhớ nhúng Đồng thời chương này cũng cung cấp một số khái niệm cơ bản về bộ nhớ nhúng được sử dụng nhiều nhất hiện nay là bộ nhớ SRAM, các mô hình lỗi đã được nghiên cứu trong bộ nhớ, các thuật toán đã được xây dựng để phát hiện lỗi Đây là những khái niệm nền tảng trong lĩnh vực thiết

kế và kiểm tra bộ nhớ

Quan trọng nhất, chương này đã giới thiệu những kỹ thuật kiểm tra bộ nhớ đang được sử dụng trong giới công nghiệp bán dẫn hiện nay cùng với ưu nhược điểm của từng kỹ thuật Trong đó có kỹ thuật kiểm tra được sử dụng nhiều nhất

và phổ biến nhất hiện nay là mạch logic tự kiểm tra BIST Các ưu điểm nổi bật của BIST là không yêu cầu thiết bị kiểm tra phức tạp, giảm chi phí kiểm tra, hạn

Trang 33

chế việc phát triển các phần mềm kiểm tra thủ công, thời gian kiểm tra được rút ngắn nhiều lần

Vì vậy, trong luận văn này tôi đã chọn nghiên cứu và triển khai một thiết

kế mạch tự kiểm tra và phân tích lỗi cho bộ nhớ Thiết kế này có một số cải tiến nổi bật như:

 Thiết kế 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 Các thuật toán được sử dụng là 42 thuật toán March đã được trình bày trong phần trên Ngoài ra, các thuật toán March tùy biến mới cũng

có thể được đưa vào mạch để kiểm tra Đây là một thiết kế rất linh hoạt

 Thông tin về các thuật toán được lưu trữ bằng một cách nén dữ liệu mới do đó tiết kiệm mạch logic BIST nhưng vẫn có hiệu suất hoạt động cao Thông tin

về 42 thuật toán được nén bằng 8 đoạn mã điển hình và lưu trữ bằng hai khối ROM

 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 Phần mềm mô hình hóa còn giúp cho việc kiểm tra lại thiết kế mạch BIST là chính xác

 Mỗi loại bộ nhớ nhúng có một chuẩn giao tiếp riêng để thực hiện việc đọc ghi

dữ liệu Do thiết kế có thể mở rộng khối giao tiếp nên nó có khả năng làm việc, kiểm tra với các bộ nhớ khác nhau Trong luận văn này, tôi chọn bộ nhớ nhúng SRAM để triển khai thiết kế cho khối giao tiếp

Trang 34

Chương 2 Triển khai thiết kế

Mạch logic tự kiểm tra lỗi bộ nhớ BIST được xem là giải pháp tốt nhất để kiểm tra các bộ nhớ nhúng trên chip Trong khuôn khổ luận văn này, tôi xin đề xuất một kiến trúc BIST tổng quát được sử dụng để kiểm tra bộ nhớ nhúng SRAM đồng bộ một cổng (synchronous single port) trên chip SoC Kiến trúc này cũng có thể được áp dụng với bất kỳ loại bộ nhớ nhúng khác như SRAM 2 cổng, DRAM, flash, …

Một kỹ thuật mới được áp dụng để nén thông tin về thuật toán March, do

đó tiết kiệm được mạch logic và không gian lưu trữ trên ROM đối với mạch BIST Thông tin về 42 thuật toán March được rút gọn và mã hóa thông qua 8 đoạn mã điển hình

Kiến trúc BIST này chứa nhiều thuật toán March, do đó có khả năng kiểm tra và phát hiện được nhiều loại lỗi như Stuck-at fault, stuck-open fault, transition fault, coupling faults, …

Hơn thế nữa, kiến trúc này cũng hỗ trợ để kiểm tra với những thuật toán mới Một thuật toán mới có thể được chạy bằng cách đưa các lệnh kiểm tra của

nó vào các thanh ghi chỉ dẫn thông qua các cổng đầu vào, sau đó các lệnh này được thực thi trên bộ nhớ nhúng cần kiểm tra Do đó kiến trúc BIST này rất linh hoạt

2.1.1 Sơ đồ khối tổng quát

Một chip SoC có khả năng kiểm tra bộ nhớ bởi giải pháp BIST sẽ có thiết

kế cơ bản như hình 2-1 Chip SoC sẽ gồm 1 khối điều khiển TAP Controller, khối mạch BIST và mạch giao tiếp giữa TAP Controller và BIST logic

Trang 35

AMS BISTen_n

failed_pass address_failed BIST_finished

CHIP

Test Instruction Generator

Physical Signal Generator

Data Background Top

Comparator …

FSM BIST

Hình 2–1 Thiết kế chip SoC

Có rất nhiều chuẩn giao tiếp với chip SoC như RS232, USB, PCI Tuy nhiên các kĩ sư thiết kế thường chọn chuẩn giao tiếp JTAG 1149.1 vì kiến trúc này đơn giản, được chuẩn hóa, thiết kế tốn ít tài nguyên, phù hợp với việc kiểm tra Chuẩn này gồm có 5 tín hiệu trong đó có 3 tín hiệu điều khiển chip SoC là TMS, TCK và TRST, 1 đường dữ liệu vào TDI và 1đường dữ liệu ra TDO Các tín hiệu này có nhiệm vụ gửi dữ liệu, lệnh điều khiển và chọn chế độ hoạt động cho chip SoC khi người kĩ sư thực hiện việc kiểm tra hoạt động của một con chip Để thực hiện được việc này chip SoC cần có phần cứng tương ứng là khối điều khiển Tap Controller Khối này chịu trách nhiệm giao tiếp với các phần mềm điều khiển thông qua 5 chân tiêu chuẩn trên

Các kĩ sư kiểm tra bộ nhớ cần phải làm việc với mạch BIST như điều khiển chế độ kiểm tra, thay đổi thuật toán kiểm tra, gửi thông tin cần kiểm tra vào chip và lấy dữ liệu đã kiểm tra ra ngoài để phân tích Từ đó, một khối phục

vụ cho việc giao tiếp giữa mạch BIST và khối giao tiếp Tap Controller là khối Mem BIST interface Khối này có nhiệm vụ chuyển đổi dữ liệu được gửi từ phần mềm xuống chip SoC qua khối giao tiếp Tap Controller thành các dữ liệu phù hợp với đầu vào của mạch BIST Sau khi mạch BIST kiểm tra xong bộ nhớ, dữ liệu lại được mạch BIST gửi ra Khối này sẽ đóng gói dữ liệu theo chuẩn, đưa vào khối Tap Controller và gửi ra ngoài Phần mềm kiểm tra sẽ nhận các dữ liệu này và các kĩ sư sẽ phân tích quá trình chạy của mạch BIST Từ đó, chúng ta sẽ

Trang 36

biết con chip SoC trên có lỗi trên bộ nhớ hay không, lỗi như thế nào và có thể dự đoán được nguyên nhân gây lỗi

Trong chương này, luận văn chỉ triển khai thiết kế tổng quát cho phần mạch quan trọng nhất là phần mạch BIST Sơ đồ khối tổng quát của mạch BIST như trong hình 2-2:

BIST

Test Instruction Generator

Physical Signal Generator

Data Background Top

 Khối tạo dữ liệu Data Background Generator: tạo dữ liệu chuẩn để ghi vào bộ nhớ trong chu kỳ ghi và tạo dữ liệu chuẩn để so sánh với dữ liệu lấy ra từ bộ nhớ trong chu kỳ đọc

 Khối So sánh Comparator: so sánh dữ liệu chuẩn lấy từ khối Data Background Generator và dữ liệu đưa ra từ bộ nhớ SRAM trong chu kỳ đọc

để phát hiện bộ nhớ có lỗi hay không

 Khối điều khiển hoạt động chính của mạch FSM BIST: là một máy trạng thái được sử dụng để quản lý toàn bộ hoạt động của các khối khác

Trang 37

Trong luận văn này, các thông số của mạch BIST được thiết kế để kiểm tra chạy thử nghiệm trên bộ nhớ SRAM một cổng đồng bộ của công ty Dolphin Technology dti_sp_tm65gplus_144x26_twt4bw1xoe_m Độ rộng bus dữ liệu của

BISTen_n I Tín hiệu khởi tạo hoạt động (mức thấp)

for SAG shift_data I Dữ liệu dịch vào cho thuật toán của

AL_LENGTH: Độ dài thuật toán = 6

ADDR_WIDTH: Độ rộng của bus địa chỉ SRAM = 25

Trang 38

Algorithm Generator) chứa thông tin của 42 thuật toán March trong ROM, và PAG (Programmable Algorithm Generator) gồm các thanh ghi dịch để nhận thông tin về thuật toán March mới được gửi từ ngoài vào Khối PAG không sử dụng ROM nên nó có thể nhận bất kỳ thuật toán khác ngoài 42 thuật toán trong khối SAG Vì vậy bộ tạo chỉ thị lệnh TIG có khả năng xử lý các thuật toán tùy biến được thiết kế mới hay còn gọi là khả năng lập trình được Kiến trúc của khối TIG được mô tả như trong hình 2-3

b) Sơ đồ khối

next_element

shift_data

pattern_len up_down

Shift Register

Counter16

Data Controller

Offset Decoder

Full Adder

Trang 39

shift_data I Dữ liệu dịch vào, sử dụng

trong chế độ PAG

thuật toán pattern_len[PATTERN_LENGTH-

AL_LENGTH: Độ dài thuật toán = 6

PATTERN_LENGTH: Độ dài đoạn mã = 3

 Sơ đồ khối

Trang 40

Offset Decoder Full Adder

Step Decoder

SA Step Counter

BIST_index

SAG_pattern_code

SAG_up_down SAG_pattern_len

Hình 2–4 Sơ đồ khối SAG

Mỗi khối nhỏ trong hình trên được mô tả như sau:

Khối Offset Decoder

Khối này sẽ tạo địa chỉ offset của mỗi thuật toán March tương ứng Đây là địa chỉ đầu tiên của vùng ROM chứa thông tin của thuật toán March đã được chọn

Khối Step Decoder

Khối này đưa ra tổng số bước kiểm tra của thuật toán March đã chọn Giá trị này sẽ cho ta biết thời gian kết thúc khi kiểm tra bộ nhớ bằng thuật toán March này

Khối SA Step Counter

Khối này đếm số bước của thuật toán March, và đưa ra giá trị cho khối Full Adder

Khối Full Adder

Khối Full Adder tính toán tổng giá trị của địa chỉ offset và bước kiểm tra hiện tại của thuật toán đã chọn, sau đó gửi thông tin về địa chỉ của bước tiếp theo đến khối P_ROM

P_ROM

Khối P_ROM là ROM chứa thông tin về mỗi thuật toán March Các thông tin của từng bước kiểm tra trong một thuật toán March bao gồm chiều kiểm tra (tăng hay giảm), độ dài của đoạn mã, và địa chỉ của phần tử tương ứng trong S_ROM

Ngày đăng: 26/01/2024, 15:50