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

Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST

89 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Cấu trúc

  • Chương 1: MỞ ĐẦU (12)
    • 1.1 Lý do chọn đề tài (12)
    • 1.2 Mục đích nghiên cứu (13)
    • 1.3 Đối tượng và phạm vi nghiên cứu (13)
    • 1.4 Phương pháp nghiên cứu (14)
  • Chương 2: TỔNG QUAN (16)
    • 2.1. Tổng quan (16)
    • 2.2. Khảo sát thuật toán (20)
    • 2.3. Đánh giá về tình hình nghiên cứu trong và ngoài nước (21)
  • Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST (25)
    • 3.1 Lịch sử phát triển bộ nhớ (25)
    • 3.2 Các loại bộ nhớ bán dẫn và tốc độ sử dụng (26)
    • 3.3 Kiến trúc cơ bản bên trong bộ nhớ bán dẫn (27)
    • 3.4 Các lỗi trong bộ nhớ bán dẫn (28)
      • 3.4.1 Stuck-at faults (SA) (29)
      • 3.4.2 Stuck-open faults (SOF) (30)
      • 3.4.3 Transition faults (TF) (30)
      • 3.4.4 Coupling faults (CF) (30)
      • 3.4.5 Address decoder Faults (AFs) (33)
      • 3.4.6 Neighborhood Pattern Sensitive faults (NPSF) (33)
    • 3.5 Kiến trúc cơ bản của MBIST (36)
    • 3.6 Các thuật toán cơ bản tích hợp trong khối MBIST (39)
      • 3.6.1 Thuật toán MARCH-C (40)
      • 3.6.2 Thuật toán NPSF (41)
  • CHƯƠNG 4: THIẾT KẾ (49)
    • 4.1 Tính năng (49)
    • 4.2 Kiến trúc MBIST (50)
      • 4.2.1 Bộ MBIST controller (51)
      • 4.2.2 Bộ MBIST_Algorithm_Decoder (54)
      • 4.2.3. Bộ MBIST error detector (62)
  • Chương 5: Mô phỏng (65)
    • 5.1 Sơ đồ kết nối mô phỏng (65)
    • 5.2 Kết quả mô phỏng toán MARCHC (66)
    • 5.3 Kết quả mô phỏng thuật toán APNPSFs (71)
    • 5.4 Kết quả đánh giá tài nguyên kiến trúc MBIST (0)
  • Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (85)
    • 6.1 Kết luận (85)
    • 6.2 Hướng phát triển của đề tài (86)

Nội dung

Chương 1: Mở đầu GVHD: PGS.TS Hoàng Trang Hình 1.1: Quy trình thiết kế chip số ASIC trước và sau khi có MBIST 1.2 Mục đích nghiên cứu  Thiết kế thành công kiến trúc MBIST thích nghi vớ

TỔNG QUAN

Tổng quan

Trích dẫn lời của Ad J van de Goor, giáo sư trường đại học Delft-Phần Lan, như sau:

“Những tiến bộ trong bộ nhớ bán dẫn là rất ấn tượng Mật độ ngày càng tăng, các thuật toán với thời gian kiểm tra n 2 , trong đó n là số bit trong bộ nhớ, điều này không còn được chấp nhận ở thời điểm hiện tại khi bộ nhớ lên đến Mega-bit” cho thấy khi tăng mật độ tích hợp trong các chip, các phương pháp kiểm tra truyền thống còn gọi là Build Out Self Test (BOST) dần trở nên không còn hiệu quả (phương pháp này được thực hiện bằng cách xây dựng các trường hợp kiểm tra rồi dựa trên đó kích thích các tín hiệu đầu vào tương ứng) (hình 1.1) Các chip có mật độ tích hợp lớn ngày nay đòi hỏi các mô hình kiểm tra lớn hơn, đòi hỏi tính tự động cao hơn cũng như sự tiện lợi nhất có thể

Hình 2.1: Mô hình kiểm tra bộ nhớ sử dụng kỹ thuật Build Out Self Test (BOST)

(Trích dẫn từ bằng sáng chế số: US 7,107,504 B2 - Sep 12, 2006)

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 17 HVTH: Hồ Tấn Thiện

Khi mật độ tích hợp trên chip ngày càng cao, số lượng bộ nhớ nội cũng như dung lượng của chúng cũng tăng mạnh Hình 1.2 và 1.3 cho thấy mật độ tích hợp các bộ nhớ nội ngày càng lớn không chỉ đối với các dòng FPGA mà còn các dòng ASIC khác Do đó, việc sử dụng các phương thức kiểm tra bên ngoài chíp trở nên bất khả kháng đối với việc kiểm tra toàn bộ số bộ nhớ nội tích hợp bên trong Nhóm nghiên cứu của tác giả Sabir Hussain thuộc trường đại học Osmania-Ấn Độ cho biết một số thống kê cho thấy diện tích bộ nhớ nội trong một hệ thống (System on Chip – SOC) có thể lên đến 94% Một ví dụ tiêu biểu là sản phẩm “StrongArmSA110” với tỷ lệ diện tích bộ nhớ nội so với tổng diện tích là 90% Để xử lý vấn đề này, kỹ thuật BIST (Built-In Self-Test) được phát triển để thích nghi công nghệ cho hầu hết các cấu hình chip hiện nay Bản chất kỹ thuật BIST chính là việc xây dựng lên những kiến trúc vi mạch (kiến trúc BIST) mà bản thân những kiến trúc này được tích hợp và liên kết bên với các kiến trúc cần kiểm tra khác ngay bên trong chip

Việc cấu hình và tích cực kiến trúc BIST này cho phép kiểm tra và sửa lỗi một cách tự động nội tại bên trong chip trước và sau sản xuất một cách tự động và cực kỳ tiện lợi

Hình 2.2: Kiến trúc Actel’s 3200DX FPGA

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 18 HVTH: Hồ Tấn Thiện

Hình 2.3: TI’s 1-V DSP for wireless communication

Hiện nay có hai kỹ thuật BIST chính luôn được sử dụng cho các chip là LBIST và MBIST LBIST nhằm mục đích sử dụng kiểm tra các mạch logic bên trong chip Việc sử dụng LBIST trước và sau khi sản xuất cần sự hỗ trợ nhiều bởi các công cụ và máy đo đắt tiền LBIST không có khả năng sửa lỗi mà chỉ có khả năng chỉ ra lỗi sai ở vùng kiến trúc của mạch logic bị lỗi bên trong chip MBIST (Hình 1.4) nhằm mục đích kiểm tra và có thể sửa lỗi tự động cho các lỗi xảy ra ở các bộ nhớ nội tích hợp bên trong chip

Chính nhờ đặc tính tích hợp luôn bên trong chip làm cho các mạch MBIST hay LBIST trở nên tiện lợi và mang tính tự động hoá cao

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 19 HVTH: Hồ Tấn Thiện

Hình 2.4: Kiến trúc MBIST đi cùng bộ nhớ nội bên trong chip

Có thể nói MBIST được xem như là giải pháp tốt nhất dựa trên các thuật toán thử nghiệm khác nhau để phát hiện lỗi bộ nhớ trong quá trình thiết kế cũng như sau khi hoàn tất quá trình chế tạo Trong hệ thống hoàn chỉnh bao gồm nhiều cấu hình bộ nhớ khác nhau, chỉ cần một kiến trúc MBIST có thể phát hiện tất cả các lỗi bộ nhớ một cách hiệu quả Một số kiến trúc MBIST linh hoạt có thể lập trình để giúp các bộ nhớ tự sửa chữa các lỗi bằng phần cứng dự phòng của chính bộ nhớ đó Khả năng phát hiện lỗi của MBIST được bao phủ bằng các thuật toán đã được cứng hoá bên trong kiến trúc MBIST

Các thuật toán này sẽ tự động tạo ra các mẫu kiểm tra bộ nhớ một cách tự động mà không cần phải lập trình hay tương tác từ bên ngoài chip

Tuy nhiên do tính tích hợp bên trong thiết kế nên một số vấn đề cần quan tâm đối với các mạch MBIST nói chung [Trích dẫn từ: Abhilash Kaushal & Kartik Kathuria “MBIST verification: Best Practice & chanllenge”-www.edn.com]

 Sự hao tốn công suất

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 20 HVTH: Hồ Tấn Thiện

 Cách thức tích hợp vào hệ thống trong quá trình thiết kế

 Việc thay đổi nguồn clock để kiểm tra

 Chi tiết các bài toán khoa học này dần làm rõ khi phân tích các mục tiếp theo sau Đề tài này đề xuất một kiến trúc MBIST hiệu quả tích hợp nhiều thuật toán có khả năng bao phủ hết tất cả các lỗi bộ nhớ hiện nay Kiến trúc MBIST đề nghị được thiết kế theo đúng quy trình thiết kế vi mạch số ASIC trên nền công nghệ 90nm.

Khảo sát thuật toán

Một khảo sát về độ bao phủ của các thuật toán được sử dụng trong kiến trúc MBIST

Bảng 2.1: Khảo sát độ bao phủ của các thuật toán

Thuật toán Lỗi bộ nhớ

SAF TF CFin CFid CFdyn NPSF

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 21 HVTH: Hồ Tấn Thiện

Bảng khảo sát độ bao phủ các thuật toán cho thấy việc kết hợp nhiều giải thuật làm tăng khả năng độ bảo phủ lỗi của bộ nhớ nội

Có thể nhận ra rằng kết hợp hai giải thuật TLAPNPSFIG và MARCH C cho phép bao phủ gần như toàn bộ các lỗi của bộ nhớ bán dẫn được tích hợp trong chip Hai giải thuật này cũng chính là những tiếp cận của đề tài nhằm thực hiện một kiến trúc MBIST có khả năng bao phủ lỗi cao nhất có thể.

Đánh giá về tình hình nghiên cứu trong và ngoài nước

Các khảo sát cho thấy MBIST trở thành một trong những kiến trúc thiết yếu của hầu hết các chip có mật độ tích hợp cao ngày nay Hầu hết các công ty thiết kế cũng như các công ty cung cấp phần mềm trong lĩnh vực vi mạch đều có những giải pháp cho riêng mình và chào bán các giải pháp này như một thành quả Đầu tiên các nghiên cứu tiêu biểu trong những năm gần đây (2011-2014) được thống kê cho thấy kiến trúc MBIST được cộng đồng thế giới rất quan tâm vì tính thiết yếu của nó trong hầu hết các sản phẩm chíp hiện nay Đơn giản có thể hiểu những nhu cầu từ khách hàng về thị trường chíp trong những năm gần đây là các dòng chip có mật độ tích hợp cao Tương ứng những dòng chíp này, mật độ bộ nhớ nội chiếm 80%-90% diện tích tổng thể Do đó MBIST tồn tại như một thiết yếu tăng cường độ tin cậy và hiệu quả sản xuất (chỉ số yeild trong sản xuất)

Bảng 2.2: Các công trình nghiên cứu về MBIST trên thế giới

Năm Hội nghị/Tạp chí (ISSN) Tác giả Thực hiện trên thiết bị

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 22 HVTH: Hồ Tấn Thiện

Advanced Research in Computer and Communication Engineering

[2] 2014 IOSR Journal of Electronics and

Chỉ mô phỏng với ModelSim

Chỉ mô phỏng với Xinlinx 14.2

MARCH C MATS MARCH A MARCH Y MARCH B

Soumya Agrawal Chỉ mô phỏng MARCH C

Computer Science and Information Technologies

MARCH C MATS MARCH Y MARCH A MARCH B

Sonal Sharma Chỉ mô phỏng bằng Xilinx

MATS MARCH X MARCH C MARCH A MARCH B MARCH U

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 23 HVTH: Hồ Tấn Thiện

Innovative Research In Electriacal, Electronics, Instrumentation and Control Engineering

Ali, "Memory Debug Using BIST

Computer Science and Mobile Computing

D K P Priya Chỉ mô phỏng bằng Xilinx ISE 9.2

C Padmini Chỉ mô phỏng MARCH C

Ashwini Kumar Chỉ mô phỏng bằng System Verilog

[13] 2013 International Jorunal of VLSI and Embedded Systems

B P SAHU Chỉ mô phỏng bằng Cadence

MATS MARCH C MARCH X MARCH A MARCH Y

[14] 2012 IJAIR Vijetha Gowd S Chỉ mô phỏng MARCH C

Advanced Research in Computer Engineering & Technology

Chương 2: Tổng quan GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 24 HVTH: Hồ Tấn Thiện

Sonal Sharma Chỉ mô phỏng bằng Xilinx

Er.Manoj Arora Xilinx Kit:

[19] 2011 IRNet Transactions on Electrical and Electronics Engineering

Xét về khía cạnh nghiên cứu trong nước, hiện nay chưa có một công trình nào thảo luận chi tiết về đề tài này cho thấy tính cấp thiết của đề tài đề ra Có thể xem đề tài xây dựng kiến trúc MBIST là một trong những đề tài thiết kế vi mạch đầu tiên tiên phong cho chuyên ngành hẹp DFT (Design for test) trong lĩnh vực thiết kế vi mạch

Tổng kết đánh giá về những nghiên cứu trong và ngoài nước cho thấy sự phát triển mạnh mẽ về MBIST nói riêng và lĩnh vực DFT nói chung trong lĩnh vực vi mạch Tuy nhiên vì điều kiện khách quan mà chưa thể có một nghiên cứu hoàn chỉnh về kiến trúc này trong nước Do đó viêc xây dựng một kiến trúc MBIST bắt kịp sự phát triển trong lĩnh vực DFT cho thấy tính thiết yếu của đề tài.

Tổng quan về bộ nhớ và kiến trúc MBIST

Lịch sử phát triển bộ nhớ

Một kỹ sư tham gia ngành công nghiệp điện tử trong những năm 70 đã phát minh ra bộ nhớ RAM động đầu tiên (DRAM), bộ nhớ Intel 1103 DRAM với 1024 bit Tiếp sau đó trong những năm 1993 bộ nhớ 256 Mega-bit DRAM được sản xuất rồi mẫu thử đầu tiên được giới thiệu vào năm 1997 Trong khoảng thời gian này, giá thành của bộ nhớ máy tính giảm từ 1 cent/bit to 120x10 -6 cents/bit Giới sản xuất bộ nhớ dự đoán rằng đến năm 2021 dung lượng bộ nhớ DRAM sẽ lên đến 275 Giga-bit, với giá thành 0.66x10 -

Tỷ lệ tăng trưởng hàng năm trong thế giới bán hàng bộ nhớ bán dẫn đã được trung bình ở mức 7% Bộ nhớ bán dẫn chiếm khoảng 35% của toàn bộ thị trường bán dẫn

Năm 1975, DRAM giá $8.000 / Mbyte, nhưng đến năm 1985 nó có giá $500 / Mbyte

Bây giờ phải trả giữa $1,56 / Mbyte và 1,88 $ / Mbyte năm 2000

Tỷ lệ với giá thành là mật độ tích hợp các cell nhớ và sự đa dạng hoá các chủng loại bộ nhớ khác nhau Hình vẽ 3.1 mô tả mật độ tích hợp cell nhớ trên một bộ nhớ tăng theo hàng năm cho thấy sự phát triển không ngừng của lĩnh vực bộ nhớ nội

Hình 3.1: Mật độ Cell nhớ trong bộ nhớ DRAM

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 26 HVTH: Hồ Tấn Thiện

Các loại bộ nhớ bán dẫn và tốc độ sử dụng

 Bộ nhớ truy cập ngẫu nhiên động (DRAM): Mật độ cao nhất, nhưng thời gian truy cập chậm khoảng 20ns Các bit nhớ được lưu trữ như là trên một tụ điện duy nhất, nên bộ nhớ phải được làm mới (nạp lại điện tích trên tụ) thông thường mỗi 2, 4, hoặc 6ms, nếu không thông tin trên bộ nhớ (giá trị điện tích trên tụ lưu trữ) sẽ bị mất

 Bộ nhớ truy cập ngẫu nhiên tĩnh (SRAM): Tốc độ nhanh nhất, với một thời gian truy cập khoảng 2ns Bit được lưu trữ trong chốt cross-coupled, và bộ nhớ không cần phải được làm mới

 Cache DRAM (CDRAM-SDRAM): Kết hợp cả hai SRAM và DRAM trên cùng một chip, để đẩy nhanh chuyển giao giữa khối bộ nhớ cache nhanh SRAM và chậm DRAM

 Bộ nhớ chỉ đọc (ROM): Nội dung mỗi bit được lập trình bởi sự hiện diện hay vắng mặt của một bóng bán dẫn vào thời điểm sản xuất, và không bị mất thông tin khi nguồn nuôi tắt đi

 Bộ nhớ lập trình và xóa được (EPROMs): ROM có thể được lập trình trong lĩnh vực này Toàn bộ nội dung được xóa bằng cách áp dụng ánh sáng cực tím, và sau đó các EPROM có thể được lập trình lại

 Bộ nhớ lập trình và xóa bằng điện (EEPROM): ROM lập trình được lập trình trong nhiều lĩnh vực khác nhau, và từ trong chúng có thể được lựa chọn xóa bằng điện tử

Các loại bộ nhớ khác nhau đảm nhận các vai trò cũng như đáp ứng các tốc độ khác nhau Mô hình tháp như hình 2.2 cho thấy sự khác biệt trong các ứng dụng cũng như tốc độ của bộ nhớ nội

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 27 HVTH: Hồ Tấn Thiện

Hình 3.2: Tốc độ tương ứng các bộ nhớ nội

Kiến trúc cơ bản bên trong bộ nhớ bán dẫn

Kiến trúc cơ bản của một bộ nhớ gồm hai thành phần chính là khối giải mã và khối nhớ trung tâm Khối giải mã bao gồm các mạch logic là chủ yếu nhằm giải mã các đường địa chỉ cũng như các đường dữ liệu ra hoặc vào đúng với các vị trí nhớ tương ứng cho từng cột và từng hàng Tương ứng như trong hình 2.3 đó lả các khối “Row Address Selection” và “Column Address Selection” nhằm giải mã các đường bit line và write line

Khối nhớ trung tâm chính là tập hợp các cell nhớ Các cell nhớ lưu trữ một bít nhớ tương ứng Mặt khác các cell nhớ này được sắp xếp theo một thứ tự hàng/cột nhất định tương ứng với việc giải mã bởi các thành phần logic kể trên Tuỳ thuộc vào từng loại bộ nhớ mà các kiến trúc cell nhớ sẽ khác nhau

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 28 HVTH: Hồ Tấn Thiện

Hình 3.3: Kiến trúc tổng quát bên trong bộ nhớ RAM động Đồng nghĩa với việc tăng kích thước bộ nhớ nội là sự khó khăn trong việc kiểm soát sự chính xác các cell nhớ bên trong bộ nhớ Việc sai lệch giá trị bất cứ một cell nhớ nào bên trong bộ nhớ đều sẽ ảnh hưởng đến toàn bộ giá trị của phần dữ liệu đọc ra vì thông thường ở cấp độ người sử dụng thì mỗi lần truy xuất bộ nhớ tương ứng từng hàng hoặc từng cột chứ không đơn lẽ một cell nhớ nào Lỗi truy xuất bộ nhớ thường là lỗi xảy ra do một cell nhớ nào đó gây ra Lỗi này xảy ra là do quá trình thiết kế hoặc sản xuất nhưng chủ yếu là do sản xuất Hầu hết các lỗi được phân tích chi tiết ở mục tiếp theo sau đây.

Các lỗi trong bộ nhớ bán dẫn

Xét đến lỗi trong bộ nhớ bán dẫn là các lỗi vĩnh viễn Có nghĩa là các lỗi xảy ra do phần cứng bị sai Một ví dụ tiêu biểu là khi ghi vào một cell nhớ với giá trị là 1 nhưng khi đọc ra lại là 0 Những lỗi được gây ra bởi các cơ chế sau đây:

 Kết nối tệ về điện (thiếu hoặc thừa)

 Hỏng linh kiện (khiếm khuyết mặt nạ khi chế tọa IC hoặc silicon)

 Cháy dây dẫn trong chip

 Kết nối bị ăn mòn

 Lỗi logic trong quá trình thiết kế

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 29 HVTH: Hồ Tấn Thiện

Stuck-at faults xảy ra khi nội dung tại một ô nhớ hay các ô nhớ trên một hàng bị giữ một giá trị cố định 0 (SA0) hoặc 1 (SA1) Điều này có nghĩa là nội dung ô nhớ đó không thể thay đổi được

Hình 3.4: Mô hình cell nhớ hoạt động tốt

Hình 3.5: Mô hình lỗi Stuck-at-fault Đây được xem là lỗi phổ biến nhất của quá trình sản xuất bộ nhớ Nguyên có thể đến từ khâu thiết kế layout ban đầu Việc đặt các cell cũng như cách đi dây trong mạch đang gặp vấn đề Bên cạnh đó, sự sai sót trong quá trình sản xuất cũng mang đến hệ quả tương tự

Hình 3.6: Cell nhớ của SRAM

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 30 HVTH: Hồ Tấn Thiện

Cho ví dụ Cell nhớ SRAM ở hình 3.6, Stuck-at fault xảy ra trên cell nhớ này là khi giá trị lấy ra từ BL và BL luôn luôn là 1 hoặc là 0 Điều đó có nghĩa là hai tín hiệu này bị ngắn mạch lên nguồn hoặc ngắn mạch xuống đất Nói cách khác là MOSFET M1 và MOSFET M3 không được xả dòng điện tích xuống đất hay MOSFET M2 và MOSFET M4 luôn bị nối tắt lên nguồn Điều này khiến hai kiến trúc inverter giữ trạng thái nhớ không thể nào thay đổi được giá trị khi được yêu cầu đọc ra hay ghi vào

Lỗi stuck-open xảy ra khi một cell không thể được truy cập do đường word bị đứt hay một switch mở liên tục Khi đọc cell này thì sẽ cho ra giá trị đã đọc trước đó

Transition faults là một trường hợp đặc biệt của SA Khi một ô nhớ có sự chuyển nội dung 0  1 hoặc 1  0 trong quá trình ghi lên các cell nhớ Giả sử có sự chuyển nội dung ô nhớ 0  1 thì nội dung ô nhớ được giữ cố định là 1 sau đó, hoặc có sự chuyển nội dung ô nhớ từ 1 0 thì nội dung ô nhớ đó được giữ cố định là 0 sau đó

Hình 3.7: Mô hình lỗi transition

Coupling faults xảy ra khi một ô nhớ i nào đó có sự chuyển trạng thái 0  1 hoặc 1

0 dẫn đến giá trị ô nhớ j bị thay đổi theo Lỗi này được chia làm ba lỗi nhỏ với mô tả chi tiết như sau

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 31 HVTH: Hồ Tấn Thiện a/ Inversion Coupling faults (CFin)

Inversion Coupling faults làm nội dung ô nhớ j bị đảo ngược khi có sự chuyển nội dung của ô nhớ i từ 0  1 hoặc từ 1  0

Hình 3.8: Mô hình 2 cell nhớ hoạt động bình thường

Hình 3.9: Mô hình lỗi CFin

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 32 HVTH: Hồ Tấn Thiện

Giả sử việc ghi 1/0 lên các cell i/j được mô tả qua các trạng thái ở hình 2.9 Khi đó, sự chuyển trạng thái từ S00 sang S11và S10 sang S01 trong quá trình ghi 1 vào cell j thì nội dung cell i bị thay đổi b/ Idempotent Coupling faults (CFid)

Idempotent Coupling faults làm nội dung ô nhớ i bị đặt ở giá trị cố định 0 hoặc 1 nếu có sự chuyển nội dung ô nhớ j từ 0  1 hoặc từ 1 0

Hình 3.10: Mô hình lỗi CFin

Như hình 3.10, giả sử khi ở trạng thái S00 ta ghi giá trị 1 vào ô nhớ j, thay vì chuyển sang trạng thái S01 nhưng do có lỗi idempotent coupling nên chuyển sang trạng thái S11, đặt i ở giá trị cố định là 1 c/ Dynamic Coupling faults (CFdyn)

Dynamic Coupling faults xảy ra giữa hai dòng khác nhau của ô nhớ Hoạt động đọc hoặc ghi ở một ô nhớ trên dòng này làm thay đổi nội dung ô nhớ trên dòng khác Lỗi này tổng quát hơn lỗi CFid do nó có thể được phát hiện bằng quá trình đọc hoặc ghi, trong khi lỗi CFid chỉ được xác định khi ghi một thay đổi vào một ô nhớ

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 33 HVTH: Hồ Tấn Thiện

Hình 3.11: Mô hình lỗi CFdyn

Lỗi giải mã địa chỉ có thể được phân loại theo hành vi chức năng của chúng như sau

 Không có cell nào có thể được truy cập bởi một địa chỉ nhất định

 Nhiều cell có thể được truy cập đồng thời bởi một địa chỉ nhất định

 Một cell nào đó không thể được truy cập với bất kỳ địa chỉ nào

 Một cell nào đó có thể được truy cập bởi nhiều địa chỉ

3.4.6 Neighborhood Pattern Sensitive faults (NPSF)

NPSF là lỗi xảy ra tại một ô nhớ bị ảnh hưởng bởi các ô nhớ kế cận Có thể là bị thiết lập giá trị nội dung là 0 hoặc 1 hoặc là sự chuyển giá trị 0  1 hoặc 1  0 Gọi ô nhớ bị ảnh hưởng là base cell còn các ô nhớ xung quanh là neighborhood cell (hình 3.13) ta có chi tiết các kiểu lỗi này được trình bày ở các mục sau

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 34 HVTH: Hồ Tấn Thiện

Hình 3.12: Hai dạng ô nhớ neighborhood a/ Active NPSF (ANPSF)

Nội dụng ô nhớ base bị thay đổi khi một trong các ô nhớ neighborhood xung quanh có sự chuyển giá tri 0  1 hoặc 1  0

Hình 3.13: Mô hình trạng thái lỗi Active NPSFNội dung ô nhớ A chuyển từ 0  1 hoặc 1  0 làm nội dung của ô nhớ nền “b” bị thay đổi theo như trên hình 2.14

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 35 HVTH: Hồ Tấn Thiện b/ Passive NPSF (PNPSF)

Nội dung ô nhớ base không thay đổi khi các ô nhớ neighborhood xung quanh ở những nội dung nhất định

Hình 3.14: Mô hình trạng thái lỗi Passive NPSF

Như minh họa trong hình 3.15, giả sử nội dung 4 ô nhớ xung quanh ô nhớ nền ABCD

= 1110, tiến hành ghi giá trị vào ô nhớ base, nhưng không thể thực hiện được Ô nhớ base vẫn giữ nguyên giá trị b khi được đọc ra sau đó c/ Static NPSF (SNPSF)

Nội dung ô nhớ base bị thiết lập ở một giá trị khi các ô nhớ neighborhood xung quanh chứa một nội dung nào đó Lỗi này khác với ANPSF vì không cần ô nhớ neighborhood có một sự chuyển trạng thái nào hết

Hình 3.15: Mô hình trạng thái lỗi Static NPSF

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 36 HVTH: Hồ Tấn Thiện

Hình vẽ 3.16 cho thấy nội dung 4 ô nhớ xung quanh ô nhớ nền ABCD = 1100, tiến hành ghi giá bị 1 vào ô nhớ nền, nhưng nội dung bị đặt cố định 0.

Kiến trúc cơ bản của MBIST

Để hiểu rõ được tại sao kiến trúc MBIST có thể làm việc, hình 2.17 cho thấy khi tích cực trạng thái kiểm tra cho chip, bộ nhớ nội ví dụ SRAM không nhận dữ liệu từ các khối kiến trúc khác mà nhận dữ liệu từ khối MBIST

Việc điều khiển được thực hiện thông qua bit xác lập trạng thái kiểm tra và tác dụng của bộ phân kênh từ bên ngoài

Bất cứ một kiến trúc vi mạch phần cứng nào cũng bao gồm hai thành phần chính là:

Kiến trúc MBIST không nằm ngoài quy luật thiết kế phần cứng này Khối điều khiển mang tính chất khái quát hoá việc điều khiển của toàn bộ hệ thống Đối với các hệ thống phức tạp hình thành nhiều tầng điều khiển chồng lấn lên nhau Có nghĩa là trong một máy trạng thái điều khiển có từng trạng thái con Tại mỗi trạng thái con tương ứng lại kích thích cho một máy trạng thái khác Nói cách khác, các máy trạng thái đại diện cho các luồng điều khiển trong thiết kế kiến trúc vi mạch lồng vào nhau tạo một hệ thống điều khiển hoàn chỉnh và phức tạp tuỳ vào mức độ điều khiển và phạm vi ứng dụng của hệ thống

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 37 HVTH: Hồ Tấn Thiện

Hình 3.16: Kết nối cơ bản khối MBIST_MEMORY và các khối khác bên trong chip

Chi tiết về các máy trạng thái cho kiến trúc MBIST không được đề cập ở thuyết minh

Chi tiết rõ ràng sẽ được báo cáo khi mô hình hoạt động của MBIST đã được nghiên cứu hoàn chỉnh

Khối luồng dữ liệu làm nhiệm vụ thực thi các tác vụ chính của MBIST như sau

 Tạo ra dữ liệu ghi vào bộ nhớ

 Tạo ra địa chỉ truyền đến bộ nhớ

 Tạo ra dữ liệu so sánh với dữ liệu đọc ra từ bộ nhớ

 Tạo các tín hiệu điều khiển đọc/ghi đối với bộ nhớ

 Kiểm tra giá trị đọc về

 Khối sửa lỗi nếu có

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 38 HVTH: Hồ Tấn Thiện

Hình 3.17: Kiến trúc cơ bản của khối MBIST

Phân tích sơ đồ khối hình 3.18 với kiến trúc MBIST cơ bản bao gồm hai thành phần chính là điều khiển và luồng dữ liệu như đã đề cập Chủ yếu khối quan trong nhất trong kiến trúc MBIST chính là khối tạo giải thuật kiểm tra

Với chức năng tạo giải thuật (Pattern generator unit), khối này đảm nhận việc tạo các giá trị về địa chỉ, dữ liệu truyền đi và dữ liệu so sánh tương ứng Dựa trên các giải thuật

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 39 HVTH: Hồ Tấn Thiện chọn lựa, các khối phụ trợ khác như khối kiểm tra lỗi, khối giải mã địa chỉ được thiết kế để hỗ trợ hệ thống hoàn chỉnh.

Các thuật toán cơ bản tích hợp trong khối MBIST

Bộ nhớ cần kiểm tra phải được thực hiện với một mô hình lỗi nhất định Bộ MBIST có chức năng kiểm tra các mảng bộ nhớ, kiểm tra các logic làm mới, phát hiện lỗi và logic điều chỉnh Việc lựa chọn thuật toán phù hợp với yêu cầu thiết kế được đặt lên hàng đầu trong việc thiết kế MBIST Số lượng lỗi có thể kiểm tra được, thời gian kiểm tra, tần số hoạt động của MBIST và số lượng bộ nhớ có thể được kết nối để tiến hành kiểm tra là những vấn đề được quan tâm trong thiết kế MBIST Để có thể làm quen và hiểu được các thuật toán, một số ký hiệu của thuật toán được giới thiệu chi tiết như sau:

 r0: Đọc 0 từ vị trí bộ nhớ

 r1: Đọc 1 từ vị trí bộ nhớ

 w0: Ghi một 0 đến vị trí nhớ

 w1: Ghi 1 đến vị trí nhớ

 : Ghi 1 vào ô nhớ có nội dung 0 hoặc ô nhớ có sự chuyển trạng thái 0 1

 : Ghi 0 vào ô nhớ có nội dung 1 hoặc ô nhớ có sự chuyển trạng thái 1 0

 : Tăng/Giảm địa chỉ ô nhớ

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 40 HVTH: Hồ Tấn Thiện

MARCH-C được xây dựng để kiểm tra các trường hợp lỗi xảy ra trên bộ nhớ Cụ thể các lỗi mà thuật toán này có thể phát hiện được: SAF, TF, CFin, CFid, CFdyn Điểm nổi bật của thuật toán này là phát hiện được số lỗi nhiều nhất nhưng với một giới hạn thời gian không quá lớn Điều này được so sánh với các thuật toán khác như MATS, MATS++, MARCH-X

Bên cạnh đó thời gian thực hiện được giới hạn ở 10N Do vậy, MARCH-C là lựa chọn tối ưu cho cách mạch kiểm tra bộ nhớ Thuật toán này là lựa chọn hàng đầu cho các thiết kế mạch MBIST, nó có mặt trong hầu hết các thiết kế MBIST hiện nay [1-15] Mặt khác MARCH-C với một quy trình thuật toán không quá phức tạp nên kích thước của mạch rất nhỏ so với nhiều thuật toán khác khi thực hiện

Quy trình kiểm tra mà thuật toán đưa ra là dựa vào việc ghi vào rồi đọc nội dụng ô nhớ Chúng sẽ tiến hành kiểm tra giá trị đọc ra với giá trị mong muốn đạt được Giá trị so sánh được tạo ra cũng bởi chính thuật toán này Bảng 3.1 cho thấy một quy trình của thuật toán MARCH-C được tiến hành

Bảng 3.1: Quy trình thực hiện thuật toán MARCHC

Giải mã Mô tả hoạt động

1 (w0) w0 0000 Ghi giá trị 0 vào tất cả các ô nhớ từ địa chỉ thấp nhất đến địa chỉ ô nhớ cao nhất của bộ nhớ

2 (r0, w1) r0 0001 Đọc từ địa chỉ ô nhớ thấp nhất (mong chờ đọc ra giá trị 0) Sau đó, ghi giá trị 1 tại địa chỉ này và được lặp lại cho đến địa chỉ cao nhất của bộ nhớ w1 0010

3 (r1, w0) r1 0011 Đọc từ địa chỉ ô nhớ thấp nhất (mong chờ đọc ra giá trị 1) Sau đó, ghi giá trị 0 tại địa chỉ này và được lặp w0 0100

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 41 HVTH: Hồ Tấn Thiện lại cho đến địa chỉ cao nhất của bộ nhớ

4 (r0, w1) r0 0111 Đọc từ địa chỉ ô nhớ cao nhất (mong chờ giá trị đọc ra là 0) Sau đó, ghi giá trị 1 tại địa chỉ này và cho đến địa chỉ ô nhớ thấp nhất của bộ nhớ w1 1100

5 (r1, w0) r1 1101 Đọc từ địa chỉ ô nhớ cao nhất (mong chờ đọc ra giá trị 1) Sau đó, ghi giá trị 0 tại địa chỉ này và cho đến địa chỉ ô nhớ thấp nhất của bộ nhớ w0 1110

6 (r0) r0 1111 Đọc ra từ tất cả các ô nhớ từ địa chỉ thấp nhất đến cao nhất của bộ nhớ (mong chờ giá trị đọc ra là 0)

3.6.2 Thuật toán NPSF Điều kiện cần để thiết để phát hiện và xác định vị trí lỗi: “Mỗi ô nhớ phải được đọc ở trạng thái 0 và 1, cho tất cả các quá trình chuyển đổi có thể có trong các mô hình phát hiện lỗi” Đối với lỗi “Active neighborhood pattern sensitive” (ANPSF), mỗi ô nhớ nền (base cell) có thể có hai giá trị khác nhau là 0 và 1, và có k-1 cách lựa chọn các ô nhớ lân cận để phát hiện lỗi khi có sự chuyển trạng thái 0  1 () hoặc 1  0 () và khả năng cho các nội dung ô nhớ còn lại Do đó tổng số các trường hợp để phát hiện lỗi ANPSF là

( ) = ( ) Điều kiện cần thiết để phát hiện và xác định vị trí lỗi “Passive neighborhood pattern sensitive” (PNPSF) là ô nhớ lân cận phải có hai sự chuyển trạng thái đó là từ 0  1 () và 1  0 () Do đó tổng số trường hợp để phát hiện lỗi PNPSF là =

Vậy tổng số trường hợp cho việc phát hiện lỗi APNPSFs là( ) + Điều kiện cần thiết để phát hiện và xác định vị trí lỗi “Static neighborhood pattern sensitive” (PNPSF) là ………

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 42 HVTH: Hồ Tấn Thiện

Với số lượng lớn nội dung cần ghi vào bộ nhớ để kiểm tra, cần tìm cách để giảm nhưng vẫn đảm bảo chất lượng kiểm tra, đồng thời giảm đáng kể thời gian kiểm tra Có nhiều phương pháp được đưa ra để thực hiện yêu cầu trên. a/ Phương pháp Hamiltonian tuần tự

Phương pháp Hamiltonian tuần tự thường được dùng để ghi trong quá trình kiểm tra lỗi SNPSF Nội dung trong một chuỗi k-bit Hamiltonian tuần tự khác nhau chỉ bởi 1 bit so với nội dung trước đó Như vậy sẽ tối thiểu hóa số lượng các ô nhớ cần được ghi vào để tạo ra các mẫu Mã Gray là một Hamiltonian tuần tự

Bảng 3.2: Các mẫu dữ liệu của phương pháp Hamiltonian

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 43 HVTH: Hồ Tấn Thiện

10 0111 011 26 0100 01 0 42 1101 1 01 58 0001 001 11 1111 111 27 0101 010 43 0101 101 59 0101 0 01 12 1101 11 1 28 0111 01 1 44 0001 0 01 60 1101 101 13 1100 110 29 0011 0 11 45 1001 001 61 1001 1 01 14 0100 100 30 0001 00 1 46 1011 10 1 62 1000 100 15 0000 0 00 31 0000 000 47 1010 101 63 0000 000 b/ Phương pháp giản đồ Euler

Giản đồ Euler có một nút cho mỗi mẫu k-bit của các số 0 và 1 và hai nút được nối với nhau bằng mũi tên nếu và chỉ nếu chúng khác nhau bởi đúng một bit Khi hai nút được kết nối, chúng chỉ được kết nối bằng hai mũi tên Các mũi tên trong giản đồ này tương ứng với ANPs, PNPs và APNPs của một ô nhớ kế cận k-bit

Giản đồ Euler tuần tự đi qua mỗi vòng cung trong đồ thị đúng một lần, trong khi chuỗi Hamiltonian đi qua mỗi nút trong giản đồ chỉ đúng một lần Việc sử dụng những trình tự để có được số lượng tối thiểu của các mẫu cần được ghi vào

Một chuỗi Hamiltonian cho phép áp dụng tất cả 2 SNPs đến các ô nhớ kế cận với k giá trị ghi khởi động cho nội dung đầu tiên, tiếp theo là 2 – 1 lần ghi cho 2 – 1 nội dung còn lại Giản đồ Euler cho phép áp dụng cho tất cả 2 APNPs đến các ô nhớ kế cận với k lần ghi để khởi tạo nội dung các ô nhớ kế cận, và thêm một lần ghi cho mỗi

Chương 3: Tổng quan về bộ nhớ và kiến trúc MBIST GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 44 HVTH: Hồ Tấn Thiện

Hình 3.18: Sơ đồ Eulerrian c/ Phương pháp Tiling

THIẾT KẾ

Tính năng

Bộ MBIST gồm các tính năng như sau:

 Hỗ trợ kiểm tra 02 thuật toán MARCHC và APNPSFs độc lập hoặc kết hợp

 Cho phép kiểm tra toàn bộ bộ nhớ hoặc dừng kiểm tra sau một số lượng lỗi nhất định

 Báo địa chỉ lỗi và thuật toán đang thực hiện kiểm tra

 Có khả năng giới hạn số lượng lỗi cho phép của mỗi bộ nhớ

 Có khả năng hỗ trợ kiểm tra bộ nhớ tối đa lên đến 64 bits data và 16 bits địa chỉ

Bảng 4.1: Giá trị lựa chọn thuật toán trong MBIST

OPERATION Chức năng Ý nghĩa hoạt động

00 IDLE Mbist không thực thi - quá trình đọc ghi bộ nhớ như hoạt động bình thường

01 MARCHC MBIST được thực thi với thuật toán

10 APNPSFs MBIST được thực thi với thuật toán

APNPSFs 11 MARCHC – APNPSFs MBIST được thực thi với cả 2 thuật toán MARCHC và APNPSFs

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 50 HVTH: Hồ Tấn Thiện

Kiến trúc MBIST

Bộ MBIST được thiết kế gồm 3 module chính như sau:

Hình 4.1: Sơ đồ khối MBIST

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 51 HVTH: Hồ Tấn Thiện

ERROR DETECTOR UNIT MBIST_ALGORITHM

Hình 4.2: Sơ đồ nguyên lý MBIST

Bộ MBIST controller có nhiệm vụ tạo ra các tín hiệu lựa chọn dữ liệu, lựa chọn giữa trạng thái kiểm tra bộ nhớ hay trạng thái đọc ghi bộ nhớ bình thường, cho phép bộ mbist decoder lựa chọn thuật toán cần kiểm tra, báo cho hệ thống về trạng thái kiểm tra (loại thuật toán, quá trình kiểm tra hoàn thành hay chưa) hoặc dừng quá trình kiểm tra khi số lượng lỗi vượt quá giá trị cho phép

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 52 HVTH: Hồ Tấn Thiện

Hình 4.3: Khối MBIST_Controller Bảng 4.2: Định nghĩa các tín hiệu khối MBIST_Controller

Tên tín hiệu Độ rộng bit Ý nghĩa

1 Input CLK 1 Tín hiệu xung clock nhận từ hệ thống

2 Input RESET 1 Tín hiệu reset khi bắt đầu kiểm tra bộ nhớ

3 Input OPERATION 2 Tín hiệu từ hệ thống để lựa chọn thuật toán hoạt động

4 Input COMPLETE_MARCHC 1 Tín hiệu báo hoàn thành thuật toán MARCHC từ bộ tạo mẫu mbist

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 53 HVTH: Hồ Tấn Thiện

5 Input COMPLETE_APNPSFs 1 Tín hiệu báo hoàn thành thuật toán APNPSFs từ bộ tạo mẫu mbist

6 Input ERROR_EXCEED 1 Tín hiệu từ bộ phát hiện lỗi báo lỗi vượt quá số lượng cho phép

7 Input ERROR_EXCEDD_IGNORE 1 Tín hiệu từ hệ thống cho phép đếm lỗi [Active=0]

8 Output ENABLE_MARCHC 1 Tín hiệu cho phép bộ

9 Output ENABLE_APNPSFs 1 Tín hiệu cho phép bộ

10 Output ADDER_RESET 1 Tín hiệu reset các thanh ghi trong mbist

11 Output PATTERN_MUX 1 Tín hiệu lựa chọn thuật toán kiểm tra

12 Output ACTIVE_NOT_IDLE 1 Tín hiệu báo có test bộ nhớ hay không

13 Output TEST_TYPE 1 Tín hiệu báo loại thuật toán đang được sử dụng 0:Marchc 1:APNPSFs

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 54 HVTH: Hồ Tấn Thiện

14 Output FORCE_TERMINATE 1 Tín hiệu báo tạm dừng hệ thống khi số lượng vượt quá giá trị cho phép [Active=1]

Bộ mbist algorithm decoder có nhiệm vụ tạo ra các mẫu dữ liệu tương ứng với các bước kiểm tra trong mỗi thuật toán Trong thiết kế này, bộ mbist algorithm decoder đóng vai trò như bộ decoder 2, mục đích chính của nó là bộ ghép kênh dữ liệu: lựa chọn dữ liệu từ bộ decoder nào sẽ được sử dụng cho ngõ ra

NEXT_ADDRESS NEXT_ADDER_ENCODE

Hình 4.4: Khối MBIST_Algorithm_Decoder

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 55 HVTH: Hồ Tấn Thiện

Bảng 4.3: Định nghĩa các tín hiệu khối MBIST_Algorithm_Decoder

Tên tín hiệu Độ rộng bit Ý nghĩa

1 Input CLK 1 Tín hiệu xung clock nhận từ hệ thống

2 Input RESET 1 Tín hiệu reset khi bắt đầu kiểm tra bộ nhớ

3 Input ADDRESS 16 Tín hiệu từ hệ thống để lựa chọn thuật toán hoạt động

4 Input PATTERN_MUX 1 Tín hiệu lựa chọn bộ decoder

5 Input ADDER_ENCODE 16 Thanh ghi điều khiển thuật toán

6 Output MEM_TST_DATA 64 Thanh ghi chứa dữ liệu mong muốn ghi vào bộ nhớ

7 Output MEM_CMP_DATA 64 Thanh ghi chứa giá trị mong muốn đọc ra từ bộ nhớ

8 Output UP_DOWN_ENCODE 16 Tín hiệu điều khiển giá trị thanh ghi ADDER_ENCODE

9 Output UP_DOWN_ADDR 16 Tín hiệu điều khiển giá trị

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 56 HVTH: Hồ Tấn Thiện thanh ghi ADDRESS

10 Output NEXT_ADDER_ENCODE 16 Giá trị kế tiếp của thanh ghi

11 Output NEXT_ADDRESS 16 Giá trị kế tiếp của thanh ghi

12 Output WRITE_NOT_READ 1 Tín hiệu đọc/ghi bộ nhớ được tạo ra từ bộ mbist_encoder

13 Output COMPLETE 1 Tín hiệu hoàn thành quá trình kiểm tra bộ nhớ

W: hoạt động đọc dữ liệu R: hoạt động ghi dữ liệu

↑: thứ tự địa chỉ từ thấp lên cao

↓: thứ tự địa chỉ từ cao xuống thấp

Chức năng các bit trong thanh ghi ADDER_ENCODE[15:0]

Phương pháp thiết kế FSM:

Các bước thực hiện trong thuật toán MARCHC được xác định dựa vào giá trị của 4 bit từ [3:0] trong thanh ghi ADDER_ENCODE Được trình bày cụ thể trong như trong bảng sau:

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 57 HVTH: Hồ Tấn Thiện

Do thiết kế được hỗ trợ với bộ nhớ dữ liệu lên đến 64 bits nên để xác định vị trí bit cần kiểm tra ta sử dụng 6 bits trong thanh ghi ADDER_ENCODE[10:4] để mã hóa Lưu đồ thiết kế thuật toán MARCHC được thực hiện theo mô hình máy trạng thái như sau:

LA S T_ AD D R E SS LA ST

_AD DR ES S CO MP LE TE

Hình 4.5: Lưu đồ máy trạng thái trong thuật toán MARCHC Trạng thái STATE_0:

Thuật toán MARCHC được khởi tạo ở state_0 với nhiệm vụ ghi giá trị 0 vào tất cả các ô nhớ của bộ nhớ Sau mỗi chu kỳ xung clock, địa chỉ cần ghi được tăng lên 1 đơn vị Khi địa chỉ thanh ghi ADDRESS chứa giá trị địa chỉ lớn nhất Xung clock tiếp theo máy trạng thái sẽ chuyển sang state_1

Thực hiện quá trình đọc kiểm tra bộ nhớ sau quá trình ghi ở state_0 với mong muốn ngõ ra là 0 Sau một xung clock máy trạng thái sẽ chuyển sang state_2

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 58 HVTH: Hồ Tấn Thiện

Thực hiện ghi giá trị 1 vào cùng địa chỉ đã được thực hiện trong state_1 Nếu địa chỉ đang thực thi là địa chỉ đầu tiên thì xung clock tiếp theo máy trạng thái sẽ chuyển sang state_3 và thanh ghi ADDRESS lưu giá trị của địa chỉ cuối cùng Nếu địa chỉ đang thực thi không phải là địa chỉ đầu tiên thì máy trạng thái sẽ chuyển sang state_1 và địa chỉ sẽ giảm đi 1 đơn vị sau xung clock tiếp theo

Xuất phát từ địa chỉ lớn nhất, chương trình sẽ thực hiện đọc kiểm tra bộ nhớ với ngõ ra mong muốn là 1 Sau một xung clock máy trạng thái sẽ chuyển sang state_4

Thực hiện ghi giá trị 1 vào cùng địa chỉ đã được thực hiện trong state_5 Nếu địa chỉ đang thực thi là địa chỉ đầu tiên thì xung clock tiếp theo máy trạng thái sẽ chuyển sang state_5 và thanh ghi ADDRESS lưu giá trị của địa chỉ đầu tiên Nếu địa chỉ đang thực thi không phải là địa chỉ đầu tiên thì máy trạng thái sẽ chuyển sang state_3 và địa chỉ sẽ giảm đi 1 đơn vị sau xung clock tiếp theo

Thực hiện quá trình đọc kiểm tra bộ nhớ sau quá trình ghi ở state_4 với mong muốn ngõ ra là 0 Sau một xung clock máy trạng thái sẽ chuyển sang state_6

Thực hiện ghi giá trị 1 vào cùng địa chỉ đã được thực hiện trong state_5 Nếu địa chỉ đang thực thi là địa chỉ cuối cùng thì xung clock tiếp theo máy trạng thái sẽ chuyển sang state_7 và thanh ghi ADDRESS lưu giá trị của địa chỉ đầu tiên Nếu địa chỉ đang thực thi không phải là địa chỉ cuối cùng thì máy trạng thái sẽ chuyển sang state_5 và địa chỉ sẽ tăng đi 1 đơn vị sau xung clock tiếp theo

Thực hiện quá trình đọc kiểm tra bộ nhớ sau quá trình ghi ở state_6 với mong muốn ngõ ra là 1 Sau một xung clock máy trạng thái sẽ chuyển sang state_8

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 59 HVTH: Hồ Tấn Thiện

Thực hiện ghi giá trị 0 vào cùng địa chỉ đã được thực hiện trong state_7 Nếu địa chỉ đang thực thi là địa chỉ cuối cùng thì xung clock tiếp theo máy trạng thái sẽ chuyển sang state_9 và thanh ghi ADDRESS lưu giá trị của địa chỉ đầu tiên Nếu địa chỉ đang thực thi không phải là địa chỉ cuối cùng thì máy trạng thái sẽ chuyển sang state_7 và địa chỉ sẽ tăng đi 1 đơn vị sau xung clock tiếp theo

Thực hiện quá trình đọc kiểm tra bộ nhớ sau quá trình ghi ở state_8 với mong muốn ngõ ra là 0 Địa chỉ tăng 1 đơn vị sau mỗi xung clock Khi địa chỉ thực thi là địa chỉ cuối cùng Nếu vị trí bit cần kiểm tra cũng là bit cuối cùng trong độ rộng data thì máy trạng thái báo complete sau chu kỳ tiếp theo Nếu vị trí bit không phải là bit cuối cùng trong độ rộng data thì máy trạng thái sẽ chuyển sang state_0 và vị trí bit cần kiểm tra sẽ dịch sang phải 1 bit

Bộ APNPSFs decoder sử dụng phương pháp two-group kết hợp với bảng mẫu dữ liệu trong phương pháp Hamiltonian để tối đa hiệu suất kiểm tra của thuật toán Phương pháp two-group chia các cells nhớ thành từng loại rồi áp dụng thuật toán cho từng cells đã được đánh dấu

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 60 HVTH: Hồ Tấn Thiện

/* Phần 1 NPSFs được khởi tạo với các giá trị nền như sau: các ô nhớ nhóm 1 bằng 1, các ô nhớ nhóm 2 bằng 0

Step 0: Ghi tất cả các ô nhớ nhóm 1 bằng 1 và nhóm 2 bằng 0 Step 1: Đọc tất cả các ô nhớ p = 0, q = 0

Từ I = 0 đến 63 : // I được sắp xếp theo bảng trên Nếu I = 12 thì p = 1, q= 0;

Step 2: Ghi pattern I vào trong các ô nhớ kế cận của nhóm 1

Step 3:Đọc tất cả các ô nhớ đã ghi vào // Kiểm tra nhóm 2 cho ANPSFs Step 4:Đọc tất cả các ô nhớ nhóm 1 // Kiểm tra nhóm 1 cho ANPSFs J = (I + 52 + 33p + 58q) mod 65;

Step 5: Ghi pattern J vào trong các ô nhớ kế cận của nhóm 2

Step 6: Đọc tất cả các ô nhớ đã ghi vào // Kiểm tra nhóm 1 cho ANPSFs Step 7: Đọc tất cả các ô nhớ nhóm 2 // Kiểm tra nhóm 2 cho ANPSFs

/* Phần 2 NPSFs được khởi tạo với các giá trị nền như sau: các ô nhớ nhóm 1 bằng 0, các ô nhớ nhóm 2 bằng 0

Step 8: Ghi 0 cho tất cả các ô nhớ nhóm 1

Chương 4: Thiết kế GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 61 HVTH: Hồ Tấn Thiện

Step 9: Đọc tất cả các ô nhớ

Từ I = 0 đến 63 Step 10: Ghi pattern I vào trong các ô nhớ kế cận của nhóm 1

Mô phỏng

Sơ đồ kết nối mô phỏng

Sơ đồ kết nối mô phỏng mbist gồm có các khối như sau:

Khối Testbench: có nhiệm vụ tạo môi trường và thiết lập các điều kiện ban đầu cho mbist hoạt động Bao gồm việc tạo xung clock, tạo tín hiệu reset hay lựa chọn thuật toán cần sử dụng trong mbist, cũng như các tín hiệu kiểm soát lỗi trong mbist

Khối mbist: từ các thiết lập trong testbench, mbist sẽ hoạt động theo các lưu đồ giải thuật đã được thiết kế ở trên

Khối memory: đây chính là mô hình bộ nhớ giả lập để được kiểm tra

Hình 5.1: Sơ đồ kết nối MBIST với môi trường

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 66 HVTH: Hồ Tấn Thiện

Kết quả mô phỏng toán MARCHC

Hình 5.2: Trạng thái khởi tạo thuật toán MARCHC

Với các thiết lập ban đầu ACTIVE_NOT_IDLE = 1 và OPERATION = 0x01, thuật toán MARCHC sẽ được lựa chọn để thực hiện kiểm tra bộ nhớ với các ngõ ra như sau ENABLE_MARCHC = 1, TEST_TYPE = 0x01

Hình 5.3: Trạng thái thuật toán MARCHC chuyển từ step 0 sang step 1

Thuật toán MARCHC được khởi tạo với state 0 (ADDER_ENCODE = 0x0000), thanh ghi chứa giá trị địa chỉ ADDRESS tăng từ 0x0000 đến 0xFFFF Khi giá trị địa chỉ chỉ giá trị cuối cùng, xung clock tiếp theo state sẽ chuyển sang state 1 (ADDER_ENCODE = 0x0001) và địa chỉ vẫn ở địa chỉ lớn nhất Sau 1 xung clock nữa, state chuyển sang state 2 (ADDER_ENCODE 0x0002), địa chỉ vẫn giữ nguyên không thay đổi Xung clock tiếp theo địa chỉ giảm đi 1 đơn vị và state quay trở về state 1 Quá trình này lặp lại cho tới khi địa chỉ giảm tới giá trị nhỏ nhất

State 1 là hoạt động ghi giá trị 1 vào bộ nhớ, state 2 là quá trình đọc bộ nhớ với mong muốn ngõ ra là 1

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 67 HVTH: Hồ Tấn Thiện

Hình 5.4: Trạng thái thuật toán MARCHC chuyển từ step 1 sang step 2

Khi ở state 2 (ADDER_ENCODE = 0x0002) và địa chỉ ở giá trị đầu tiên (ADDRESS 0x000), thì state sẽ chuyển sang state 3 (ADDER_ENCODE = 0x0003) và địa chỉ trỏ đến giá trị cuối cùng (ADDRESS = 0xFFFF) ở xung clock tiếp theo

Hình 5.5: Trạng thái thuật toán MARCHC chuyển từ step 2 sang step 3 Tương tự như trong hình 5.4, thuật toán MARCHC lần lượt chuyển từ step 2 sang step 5 khi địa chỉ đang kiểm tra đạt đến giá trị cuối cùng tương ứng được trình bày từ hình 5.5 đến hình 5.7

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 68 HVTH: Hồ Tấn Thiện

Hình 5.6: Trạng thái thuật toán MARCHC chuyển từ step 3 sang step 4

Hình 5.7: Trạng thái thuật toán MARCHC chuyển từ step 4 sang step 5

Hình 5.8: Trạng thái thuật toán MARCHC chuyển từ step 5 bit thứ nhất sang step 0 bit thứ hai

Hình 5.8 cho thấy thuật toán MARCHC chuyển từ step 5 sang step 0 với vị trí bit kiểm tra dịch trái 1 bit và địa chỉ sẽ chuyển từ giá trị cuối cùng sang giá trị địa chỉ đầu tiên Quá trình chuyển đổi trạng thái này được thực hiện cho đến khi bit đang kiểm tra là bit cuối cùng trong độ dài data của bộ nhớ

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 69 HVTH: Hồ Tấn Thiện

Hình 5.9: Trạng thái thuật toán MARCHC chuyển từ step 5 bit thứ 31 sang step 0 bit thứ 32

Tương tự như trong hình 5.8, hình 5.9 cho thấy thuật toán MARCHC chuyển từ step 5 với vị trí bit kiểm tra là bit 31 (ADDER_ENCODE = 0x01EF) sang step 0 với vị trí bit kiểm tra dịch trái 1 bit tức là bit 32 (ADDER_ENCODE = 0x01F0) và đồng thời địa chỉ cũng chuyển từ giá trị cuối cùng sang giá trị địa chỉ đầu tiên

Hình 5.10: Trạng thái hoàn thành thuật toán MARCHC

Khi máy trạng thái ở step 5 với vị trí bit kiểm tra là bit cuối cùng (ADDER_ENCODE 0x01FF), đồng thời địa chỉ đang kiểm tra là địa chỉ cuối cùng (ADDRESS = 0xFFFF) thì sau xung clock tiếp theo thuật toán MARCHC sẽ được báo hoàn thành (COMPLETE_MARCHC 1)

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 70 HVTH: Hồ Tấn Thiện

Hình 5.11: Trạng thái lỗi trong thuật toán MARCHC tại địa chỉ 0x4000

Hình 5.11, mô phỏng quá trình phát hiện lỗi stuck at 0 (SA0) tại bit 0 của địa chỉ 0x4000 Do tồn tại lỗi SA0 nên bit đầu tiên của địa chỉ 0x4000 luôn luôn bằng 0, chính vì thế khi ta thực hiện việc ghi giá trị 1 vào chính địa chỉ này thì sau đó quá trình đọc ra ta sẽ thấy sự khác biệt giữa dữ liệu thực thế (RD = 0x0000_0000) và giá trị mong muốn (BUFF_MEM_CMP_DATA 0x0000_0001) Lúc đó tín hiệu báo lỗi sẽ chuyển trạng thái từ 0 lên 1 (ERROR = 1)

Hình 5.12: Trạng thái lỗi trong thuật toán MARCHC tại địa chỉ 0x5000

Hình 5.12, thể hiện lỗi stuck at 1 (SA1) tại bit 0 của địa chỉ 0x5000 Khi đó ta ghi giá trị 0 vào bộ nhớ nhưng quá trình đọc ra thì lại là giá trị 1 (BUFF_MEM_CMP_DATA 0x0000_0020 và RD = 0x0000_0030) Chính vì thế lỗi sẽ được báo lên cho hệ thống (ERROR 1)

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 71 HVTH: Hồ Tấn Thiện

Hình 5.13: Trạng thái dừng thuật toán MARCHC khi số lượng lỗi vượt giá trị cho phép

Trong quá trình hoạt động của MBIST, có trường hợp yêu cầu dừng việc kiểm tra bộ nhớ khi số lượng lỗi vượt quá giá trị cho phép Hình 5.13, thể hiện quá trình dừng kiểm tra thuật toán MARCHC khi số lượng lỗi vượt quá giá trị cho phép (ALLOWABLE_FAULTY = 0x0008) Để tính năng này hoạt động thì tín hiệu ERROR_EXCEED IGNORE = 0 Khi phát hiện số lỗi vượt quá giá trị cho phép thì hệ thống sẽ bật các tín hiệu COMPLETE = 1 và FORCE_TERMINATE

Kết quả mô phỏng thuật toán APNPSFs

Hình 5.14: Trạng thái khởi tạo thuật toán APNPSFs

Với thiết lập ban đầu như trong hình 5.14, OPERATION = 0x10 thì thuật toán APNPSFs sẽ được sử dụng để tạo mẫu cho quá trình kiểm tra bộ nhớ (ENABLE_APNPSFs = 1) Bộ nhớ được sử dụng trong quá trình mô phỏng thuật toán APNPSFs có dung lượng 9 bit address và 32 bit data

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 72 HVTH: Hồ Tấn Thiện

Hình 5.15: Trạng thái thuật toán APNPSFs chuyển từ step 0 sang step 1 Ở step 0 (ADDER_ENCODE = 0x0000) là quá trình ghi vào bộ nhớ từ địa chỉ thấp nhất đến địa chỉ cao nhất với nội dung là giá trị của thanh ghi MEM_TST_DATA [31:0]

Khi giá trị địa chỉ là số chẵn thì MEM_TST_DATA = 0x5555_5555, còn ngược lại nếu địa chỉ là số lẻ thì MEM_TST_DATA = 0xFFFF_FFFF (giá trị này tương ứng với việc khởi tạo các base cell nhóm 1 bằng 1 và các base cell nhóm 2 bằng 0)

Khi địa chỉ trỏ đến giá trị cuối cùng, thuật toán sẽ chuyển sang step 1 (ADDER_ENCODE 0x0001) – quá trình đọc bộ nhớ từ địa chỉ thấp nhất đến địa chỉ cao nhất với nội dung mong muốn là giá trị thanh ghi MEM_CMP_DATA = 0x5555_5555 khi địa chỉ là số chẵn và MEM_CMP_DATA = 0xFFFF_FFFF khi địa chỉ là số lẻ

Hình 5.16: Trạng thái thuật toán APNPSFs chuyển từ step 1 sang step 2

Cũng tương tự như quá trình chuyển trạng thái từ step 0 sang step 1, hình 5.16 thể hiện quá trình thuật toán APNPSFs chuyển từ step 1 sang step 2 (ADDER_ENCODE = 0x0002) khi ADDRESS = 0x01FF Step 2 là quá trình ghi vào bộ nhớ (WRITE_NOT_READ = 1) với nội dung là giá trị của thanh ghi MEM_TST_DATA

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 73 HVTH: Hồ Tấn Thiện

Giá trị của thanh ghi MEM_TST_DATA sẽ thay đổi tùy theo thứ tự mẫu được chọn để kiểm tra Các mẫu được chọn từ mẫu 0 đến mẫu 63 Ở đây, mẫu 0 được chọn là mẫu 0 nên giá trị của MEM_TST_DATA = 0x5555_5555 khi địa chỉ ghi vào là số chẵn và MEM_TST_DATA 0xEEEE_EEEE hoặc 0xBBBB_BBBB khi địa chỉ là số lẻ

Hình 5.17: Trạng thái thuật toán APNPSFs chuyển từ step 2 sang step 3

Hình 5.18: Trạng thái thuật toán APNPSFs chuyển từ step 3 sang step 4

Hình 5.19: Trạng thái thuật toán APNPSFs chuyển từ step 4 sang step 5

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 74 HVTH: Hồ Tấn Thiện

Hình 5.20: Trạng thái thuật toán APNPSFs chuyển từ step 5 sang step 6

Hình 5.21: Trạng thái thuật toán APNPSFs chuyển từ step 6 sang step 7

Hình 5.22: Trạng thái thuật toán APNPSFs chuyển từ step 7 mẫu 0 sang step 2 mẫu 1

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 75 HVTH: Hồ Tấn Thiện

Hình 5.23: Trạng thái thuật toán APNPSFs chuyển từ step 7 mẫu 63 sang step 8 mẫu 0

Từ step 7 và vị trí mẫu được sử dụng là mẫu 63 (ADDER_ENCODE = 0x03F7) thì sau xung clock tiếp theo thuật toán sẽ chuyển sang step 8 và mẫu 0 (ADDER_ENCODE = 0x0008)

Các hình từ 5.24 đến 5.30 lần lượt thể hiện quá trình chuyển từ step 8 sang step 15 khi địa chỉ ô nhớ tiến đến giá trị cuối cùng

Hình 5.24: Trạng thái thuật toán APNPSFs chuyển từ step 8 sang step 9

Hình 5.25: Trạng thái thuật toán APNPSFs chuyển từ step 9 sang step 10

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 76 HVTH: Hồ Tấn Thiện

Hình 5.26: Trạng thái thuật toán APNPSFs chuyển từ step 10 sang step 11

Hình 5.27: Trạng thái thuật toán APNPSFs chuyển từ step 11 sang step 12

Hình 5.28: Trạng thái thuật toán APNPSFs chuyển từ step 12 sang step 13

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 77 HVTH: Hồ Tấn Thiện

Hình 5.29: Trạng thái thuật toán APNPSFs chuyển từ step 13 sang step 14

Hình 5.30: Trạng thái thuật toán APNPSFs chuyển từ step 14 sang step 15

Hình 5.31: Trạng thái thuật toán APNPSFs chuyển từ step 15 mẫu 0 sang step 10 mẫu 1

Trong hình 5.31, khi thuật toán APNPSFs đang ở step 15 (ADDER_ENCODE = 0x000F)S và địa chỉ trỏ đến giá trị cuối cùng (ADDRESS = 0x01FF), nếu mẫu được sử dụng không phải là mẫu cuối cùng (mẫu 63) thì thuật toán sẽ quay trở về step 10 và tăng vị trí mẫu lên 1 đơn vị (ADDER_ENCODE = 0x001A)

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 78 HVTH: Hồ Tấn Thiện

Hình 5.32: Trạng thái hoàn thành thuật toán APNPSFs

Khi thuật toán APNPSFs ở step 15 và số mẫu đang sử dụng là mẫu 63 (ADDER_ENCODE 0x03FF), đồng thời địa chỉ thực thi là địa chỉ cuối cùng (ADDRESS = 0x01FF) thì ở xung clock tiếp theo tín hiệu COMPLETE_APNPSFs sẽ chuyển sang trạng thái 1 báo thuật toán APNPSFs đã hoàn thành

Hình 5.33: Trạng thái thuật toán APNPSFs phát hiện lỗi tại địa chỉ 0x42

Hình 5.33 thể hiện trạng thái phát hiện lỗi trong thuật toán APNPSFs khi giá trị khác nhau giữa hai thanh ghi RD = 0x3333_3313 và BUFF_MEM_CMP_DATA 0x3333_3333 trong quá trình đọc bộ nhớ tại địa chỉ 0x042 Khi có lỗi xảy ra tín hiệu ERROR sẽ được bật lên 1

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 79 HVTH: Hồ Tấn Thiện

5.4 Kết quả đánh giá tài nguyên kiến trúc MBIST

Report : area Design : vr Version: D-2010.03-SP4 Date : Sun Jun 19 16:17:47 2016

Library(s) Used: saed90nm_typ (File:

/home/hieunguyen/TOOL/Library/02_Synopsys_90nm/SAED90_EDK/SAED_EDK90nm_REF/ references/ChipTop/ref/models/saed90nm_typ.db)

Combinational area: 7602.119070 Noncombinational area: 2804.492939 Net Interconnect area: undefined (No wire load specified)

Total cell area: 10406.612009 Total area: undefined Information: This design contains black box (unknown) components (RPT-8)

Report : power -analysis_effort low Design : vr

Version: D-2010.03-SP4 Date : Sun Jun 19 16:17:48 2016

Library(s) Used: saed90nm_typ (File:

/home/hieunguyen/TOOL/Library/02_Synopsys_90nm/SAED90_EDK/SAED_EDK90nm_REF/ references/ChipTop/ref/models/saed90nm_typ.db)

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 80 HVTH: Hồ Tấn Thiện

Operating Conditions: TYPICAL Library: saed90nm_typ Wire Load Model Mode: top

Global Operating Voltage = 1.2 Power-specific unit information : Voltage Units = 1V

Capacitance Units = 1.000000pf Time Units = 1ns

Dynamic Power Units = 1mW (derived from V,C,T units) Leakage Power Units = 1pW

Cell Internal Power = 2.7015 mW (73%) Net Switching Power = 986.1810 uW (27%) -

Total Dynamic Power = 3.6877 mW (100%) Cell Leakage Power = 38.2352 uW

Report : timing -path full -delay max -nets -max_paths 1 -transition_time Design : vr

Version: D-2010.03-SP4 Date : Sun Jun 19 16:17:47 2016

Operating Conditions: TYPICAL Library: saed90nm_typ Wire Load Model Mode: top

BUFF_MEM_CMP_DATA_reg_63_ (rising edge-triggered flip-flop clocked by clk) Endpoint:

ERROR (output port clocked by clk) Path Group: REGOUT

Path Type: max Attributes: d - dont_touch

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 81 HVTH: Hồ Tấn Thiện u - dont_use mo - map_only so - size_only i - ideal_net or ideal_network

Point Fanout Trans Incr Path Attributes - clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.10 0.10 BUFF_MEM_CMP_DATA_reg_63_/CLK (DFFX1) 0.10 0.00 0.10 r BUFF_MEM_CMP_DATA_reg_63_/Q (DFFX1) 0.03 0.23 0.33 f BUFF_MEM_CMP_DATA[63] (net) 1 0.00 0.33 f mbist_error_detector/MEM_CMP_DATA[63] (mbist_error_detector_BITS64) 0.00 0.33 f mbist_error_detector/MEM_CMP_DATA[63] (net) 0.00 0.33 f mbist_error_detector/U22/QN (NOR4X0) 0.11 0.09 0.42 r mbist_error_detector/n13 (net) 1 0.00 0.42 r mbist_error_detector/U23/QN (NAND4X0) 0.07 0.06 0.48 f mbist_error_detector/n17 (net) 1 0.00 0.48 f mbist_error_detector/U24/QN (NOR4X0) 0.11 0.09 0.57 r mbist_error_detector/n21 (net) 1 0.00 0.57 r mbist_error_detector/U25/QN (NOR2X0) 0.05 0.05 0.63 f mbist_error_detector/ERROR (net) 2 0.00 0.63 f mbist_error_detector/ERROR (mbist_error_detector_BITS64) 0.00 0.63 f ERROR (net) 0.00 0.63 f

ERROR (out) 0.05 0.00 0.63 f data arrival time 0.63 clock clk (rise edge) 5.00 5.00 clock network delay (ideal) 0.10 5.10 clock uncertainty -0.10 5.00 output external delay -0.05 4.95 data required time 4.95 - data required time 4.95 data arrival time -0.63 - slack (MET) 4.32

Startpoint: mbist_encoder_2/ADDER_ENCODE_reg_4(rising edge-triggered flip-flop clocked by clk) Endpoint: mbist_encoder_2/ADDER_ENCODE_reg_15(rising edge-triggered flip-flop clocked by clk) Path Group: clk

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 82 HVTH: Hồ Tấn Thiện d - dont_touch u - dont_use mo - map_only so - size_only i - ideal_net or ideal_network

Point Fanout Trans Incr Path Attributes - clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.10 0.10 mbist_encoder_2/ADDER_ENCODE_reg_4_/CLK (DFFX1) 0.10 0.00 0.10 r mbist_encoder_2/ADDER_ENCODE_reg_4_/Q (DFFX1) 0.04 0.24 0.34 f mbist_encoder_2/ADDER_ENCODE[4] (net) 5 0.00 0.34 f mbist_encoder_2/ADDER_ENCODE[4] (mbist_encoder_BITS16_1) 0.00 0.34 f TEST_ADDR[4] (net) 0.00 0.34 f mbist_pattern_generator/ADDRESS[4]

(mbist_pattern_generator_DATA_WIDTH64_ADDR_WIDTH16) 0.00 0.34 f mbist_pattern_generator/ADDRESS[4] (net) 0.00 0.34 f mbist_pattern_generator/mbist_MARCHC_decoder/ADDRESS[4]

(mbist_MARCHC_decoder_DATA_WIDTH64_ADDR_WIDTH16) 0.00 0.34 f mbist_pattern_generator/mbist_MARCHC_decoder/ADDRESS[4] (net) 0.00 0.34 f mbist_pattern_generator/mbist_MARCHC_decoder/U51/QN (NAND4X0) 0.07 0.05 0.39 r mbist_pattern_generator/mbist_MARCHC_decoder/n13 (net) 1 0.00 0.39 r mbist_pattern_generator/mbist_MARCHC_decoder/U41/QN (NOR4X1) 0.04 0.12 0.52 f mbist_pattern_generator/mbist_MARCHC_decoder/n129 (net) 2 0.00 0.52 f mbist_pattern_generator/mbist_MARCHC_decoder/U31/QN (AOINVX2) 0.04 0.03 0.54 r mbist_pattern_generator/mbist_MARCHC_decoder/n121 (net) 3 0.00 0.54 r mbist_pattern_generator/mbist_MARCHC_decoder/U13/QN (NAND2X2) 0.03 0.03 0.57 f mbist_pattern_generator/mbist_MARCHC_decoder/n9 (net) 1 0.00 0.57 f mbist_pattern_generator/mbist_MARCHC_decoder/U49/QN (NAND2X2) 0.03 0.02 0.58 r mbist_pattern_generator/mbist_MARCHC_decoder/n10 (net) 1 0.00 0.58 r mbist_pattern_generator/mbist_MARCHC_decoder/U11/QN (NOR2X0) 0.05 0.04 0.62 f mbist_pattern_generator/mbist_MARCHC_decoder/n11 (net) 1 0.00 0.62 f mbist_pattern_generator/mbist_MARCHC_decoder/U29/QN (AOINVX2) 0.02 0.02 0.64 r mbist_pattern_generator/mbist_MARCHC_decoder/UP_DOWN_ADDR[0] (net) 1 0.00 0.64 r mbist_pattern_generator/mbist_MARCHC_decoder/UP_DOWN_ADDR[0]

(mbist_MARCHC_decoder_DATA_WIDTH64_ADDR_WIDTH16) 0.00 0.64 r mbist_pattern_generator/UP_DOWN_ADDR_MARCHC[0] (net) 0.00 0.64 r mbist_pattern_generator/U76/Q (MUX21X1) 0.05 0.07 0.71 r mbist_pattern_generator/n7 (net) 1 0.00 0.71 r mbist_pattern_generator/U77/Q (NBUFFX32) 0.27 0.30 1.01 r mbist_pattern_generator/n11 (net) 1 0.00 1.01 r mbist_pattern_generator/UP_DOWN_ADDR_tri_0_/Q (TNBUFFHX4) 6.81 3.24 4.25 r mbist_pattern_generator/UP_DOWN_ADDR[0] (net) 1 0.00 4.25 r mbist_pattern_generator/UP_DOWN_ADDR[0]

(mbist_pattern_generator_DATA_WIDTH64_ADDR_WIDTH16) 0.00 4.25 r UP_DOWN_ADDR[0] (net) 0.00 4.25 r

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Trường ĐHBK TPHCM 83 HVTH: Hồ Tấn Thiện mbist_encoder_2/A[0] (mbist_encoder_BITS16_1) 0.00 4.25 r mbist_encoder_2/A[0] (net) 0.00 4.25 r mbist_encoder_2/U6/QN (INVX16) 0.89 0.18 4.43 f mbist_encoder_2/n17 (net) 1 0.00 4.43 f mbist_encoder_2/U5/QN (AOINVX2) 0.14 0.04 4.47 r mbist_encoder_2/n18 (net) 2 0.00 4.47 r mbist_encoder_2/ADDER/a[0] (KGP_BITS16_1) 0.00 4.47 r mbist_encoder_2/ADDER/a[0] (net) 0.00 4.47 r mbist_encoder_2/ADDER/first_layer_0 ha/a (halfadder_206) 0.00 4.47 r mbist_encoder_2/ADDER/first_layer_0 ha/a (net) 0.00 4.47 r mbist_encoder_2/ADDER/first_layer_0 ha/U1/Q (AND2X2) 0.05 0.10 4.58 r mbist_encoder_2/ADDER/first_layer_0 ha/co (net) 6 0.00 4.58 r mbist_encoder_2/ADDER/first_layer_0 ha/co (halfadder_206) 0.00 4.58 r mbist_encoder_2/ADDER/g_1 0_ (net) 0.00 4.58 r mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx/gl (gp_34) 0.00 4.58 r mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx/gl (net) 0.00 4.58 r mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx (NAND2X2)0.03 0.02 4.60 f mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx/n1 (net) 1 0.00 4.60 f mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx (NAND2X2)0.04 0.02 4.62 r mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx/ghl (net)3 0.00 4.62 r mbist_encoder_2/ADDER/mid_layer_2 mid_layer_body_2 gpx/ghl (gp_34) 0.00 4.62 r mbist_encoder_2/ADDER/g_2 2_ (net) 0.00 4.62 r mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx/gl (gp_18) 0.00 4.62 r mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx/gl (net) 0.00 4.62 r mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx (NAND2X2)0.02 0.02 4.64 f mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx/n2 (net) 1 0.00 4.64 f mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx (NAND2X2)0.03 0.02 4.66 r mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx/ghl (net)2 0.00 4.66 r mbist_encoder_2/ADDER/mid_layer_3 mid_layer_body_6 gpx/ghl (gp_18) 0.00 4.66 r mbist_encoder_2/ADDER/g_3 6_ (net) 0.00 4.66 r mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx/gl (gp_2) 0.00 4.66 r mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx/gl (net) 0.00 4.66 r mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx(NOR2X2) 0.04 0.02 4.68 f mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx/n2 (net)1 0.00 4.68 f mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx(NOR2X0) 0.05 0.03 4.71 r mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx/ghl (net)1 0.00 4.71 r mbist_encoder_2/ADDER/mid_layer_4 mid_layer_body_14 gpx/ghl (gp_2) 0.00 4.71 r mbist_encoder_2/ADDER/g_4 14_ (net) 0.00 4.71 r mbist_encoder_2/ADDER/final_layer_15 aoi_finy/o0[0] (aoi21_1) 0.00 4.71 r mbist_encoder_2/ADDER/final_layer_15 aoi_finy/o0[0] (net) 0.00 4.71 r mbist_encoder_2/ADDER/final_layer_15 aoi_finy/U1/Q (NBUFFX2) 0.02 0.06 4.77 r mbist_encoder_2/ADDER/final_layer_15 aoi_finy/z[0] (net) 1 0.00 4.77 r mbist_encoder_2/ADDER/final_layer_15 aoi_finy/z[0] (aoi21_1) 0.00 4.77 r mbist_encoder_2/ADDER/ci[15] (net) 0.00 4.77 r mbist_encoder_2/ADDER/U10/Q (XOR2X1) 0.04 0.11 4.88 r mbist_encoder_2/ADDER/s[15] (net) 1 0.00 4.88 r mbist_encoder_2/ADDER/s[15] (KGP_BITS16_1) 0.00 4.88 r mbist_encoder_2/S[15] (net) 0.00 4.88 r

Chương 5: Mô phỏng GVHD: PGS.TS Hoàng Trang

Kết quả đánh giá tài nguyên kiến trúc MBIST

Trường ĐHBK TPHCM 85 HVTH: Hồ Tấn Thiện

Ngày đăng: 09/09/2024, 07:06

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Quy trình thiết kế chip số ASIC trước và sau khi có MBIST - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 1.1 Quy trình thiết kế chip số ASIC trước và sau khi có MBIST (Trang 13)
Hình 2.1: Mô hình kiểm tra bộ nhớ sử dụng kỹ thuật Build Out Self Test (BOST) - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 2.1 Mô hình kiểm tra bộ nhớ sử dụng kỹ thuật Build Out Self Test (BOST) (Trang 16)
Hình 2.2: Kiến trúc Actel’s 3200DX FPGA - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 2.2 Kiến trúc Actel’s 3200DX FPGA (Trang 17)
Hình 2.3: TI’s 1-V DSP for wireless communication - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 2.3 TI’s 1-V DSP for wireless communication (Trang 18)
Hình 2.4: Kiến trúc MBIST đi cùng bộ nhớ nội bên trong chip - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 2.4 Kiến trúc MBIST đi cùng bộ nhớ nội bên trong chip (Trang 19)
Bảng 2.1: Khảo sát độ bao phủ của các thuật toán - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Bảng 2.1 Khảo sát độ bao phủ của các thuật toán (Trang 20)
Hình 3.1: Mật độ Cell nhớ trong bộ nhớ DRAM - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.1 Mật độ Cell nhớ trong bộ nhớ DRAM (Trang 25)
Hình 3.2: Tốc độ tương ứng các bộ nhớ nội - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.2 Tốc độ tương ứng các bộ nhớ nội (Trang 27)
Hình 3.3: Kiến trúc tổng quát bên trong bộ nhớ RAM động - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.3 Kiến trúc tổng quát bên trong bộ nhớ RAM động (Trang 28)
Hình 3.10: Mô hình lỗi CFin - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.10 Mô hình lỗi CFin (Trang 32)
Hình 3.12: Hai dạng ô nhớ neighborhood - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.12 Hai dạng ô nhớ neighborhood (Trang 34)
Hình 3.14: Mô hình trạng thái lỗi Passive NPSF - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.14 Mô hình trạng thái lỗi Passive NPSF (Trang 35)
Hình 3.16: Kết nối cơ bản khối MBIST_MEMORY và các khối khác bên trong chip - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.16 Kết nối cơ bản khối MBIST_MEMORY và các khối khác bên trong chip (Trang 37)
Hình 3.17: Kiến trúc cơ bản của khối MBIST - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.17 Kiến trúc cơ bản của khối MBIST (Trang 38)
Hình 3.18: Sơ đồ Eulerrian - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.18 Sơ đồ Eulerrian (Trang 44)
Hình 3.19: Ô nhớ nền 0,1,2,3 và 4 loại 1 tiling neighborhood - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 3.19 Ô nhớ nền 0,1,2,3 và 4 loại 1 tiling neighborhood (Trang 45)
Hình 4.2: Sơ đồ nguyên lý MBIST - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 4.2 Sơ đồ nguyên lý MBIST (Trang 51)
Hình 4.3: Khối MBIST_Controller  Bảng 4.2: Định nghĩa các tín hiệu khối MBIST_Controller - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 4.3 Khối MBIST_Controller Bảng 4.2: Định nghĩa các tín hiệu khối MBIST_Controller (Trang 52)
Hình 4.5: Lưu đồ máy trạng thái trong thuật toán MARCHC  Trạng thái STATE_0: - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 4.5 Lưu đồ máy trạng thái trong thuật toán MARCHC Trạng thái STATE_0: (Trang 57)
Hình 4.6: Khối MBIST_Error_Detector  Bảng 4.5: Định nghĩa các tín hiệu khối MBIST_Error_Detector - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 4.6 Khối MBIST_Error_Detector Bảng 4.5: Định nghĩa các tín hiệu khối MBIST_Error_Detector (Trang 63)
Sơ đồ kết nối mô phỏng mbist gồm có các khối như sau: - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Sơ đồ k ết nối mô phỏng mbist gồm có các khối như sau: (Trang 65)
Hình 5.4: Trạng thái thuật toán MARCHC chuyển từ step 1 sang step 2 - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 5.4 Trạng thái thuật toán MARCHC chuyển từ step 1 sang step 2 (Trang 67)
Hình 5.11: Trạng thái lỗi trong thuật toán MARCHC tại địa chỉ 0x4000 - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 5.11 Trạng thái lỗi trong thuật toán MARCHC tại địa chỉ 0x4000 (Trang 70)
Hình 5.13: Trạng thái dừng thuật toán MARCHC khi số lượng lỗi vượt giá trị cho phép - Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế kiến trúc MBIST
Hình 5.13 Trạng thái dừng thuật toán MARCHC khi số lượng lỗi vượt giá trị cho phép (Trang 71)