Kết quả mô phỏng

Một phần của tài liệ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ớ (Trang 76 - 82)

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

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

Chương này sẽ trình bày các kết quả mô phỏng thu được bao gồm: mô phỏng phần cứng mạch BIST, mô phỏng bằng phần mềm mô hình hóa và cách đối chiếu kiểm tra dữ liệu để đảm bảo mạch BIST hoạt động chính xác theo yêu cầu thiết kế. Đồng thời thiết kế mạch BIST cũng được áp dụng một phương pháp kiểm tra độ bao phủ code coverage để đánh giá mức độ tốt, tối ưu của thiết kế.

Để kiểm tra thiết kế mạch BIST, tôi sử dụng phần mềm QuestaSim để mô phỏng hoạt động của mạch. Đầu tiên, từng khối chức năng trong mạch được kiểm tra độc lập. Mô hình được sử dụng để kiểm tra từng khối như hình 3-1:

Block

Drivers … … Monitors

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

Dữ liệu được đưa vào kiểm tra thông qua sự điều khiển của khối Drivers.

Từng khối thiết kế được chạy với các dữ liệu mẫu này. Kết quả mô phỏng được đưa ra khối Monitors. Khối này được xây dựng để tạo ra các kết quả tương ứng với dữ liệu từ khối Drivers. Do đó nếu kết quả chạy mô phỏng phù hợp với dữ liệu trong khối Monitors, thì khối chức năng đã hoạt động đúng như thiết kế.

Sau khi đã kiểm tra các khối chức năng hoạt động chính xác, thiết kế được chạy mô phỏng toàn bộ với các kịch bản hoạt động khác nhau. Môi trường kiểm tra thiết kế BIST được xây dựng như hình sau.

Memory BIST

Memory

Testbench

address_o data_o ce_n gwe_n bwe_n oe_n t_rwm t_awt_n

failed_pass address_failed BIST_finished

3 bits

next_element

data_ram clk

rst BISTen_n BIST_index

shift_data ASM

Hình 3–2 Mô hình kiểm tra toàn bộ mạch BIST Các kịch bản được sử dụng để kiểm tra gồm có:

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

Kịch bản Mô tả

fsm_bist_tb_failed_ram_fullAgorithm_

fullData

Kiểm tra toàn bộ 42 thuật toán, mỗi thuật toán sử dụng 6 dữ liệu chuẩn fsm_bist_tb_failed_ram_fullAgorithm_

randomData

Kiểm tra toàn bộ 42 thuật toán, mỗi thuật toán sử dụng 1 dữ liệu ngẫu nhiên trong 6 dữ liệu chuẩn

fsm_bist_tb_failed_ram_MarchC_fullD ata

Kiểm tra thuật toán 5 (March C) với 6 dữ liệu chuẩn

fsm_bist_tb_failed_ram_MarchC_oneD ata

Kiểm tra thuật toán 5 (March C) với dữ liệu chuẩn background 0

Sau khi chạy mô phỏng mạch BIST trên phần mềm Questa, chúng ta có 3 file kết quả ghi lại quá trình kiểm tra gồm Log_TIG.txt, Log_Physical.txt, Log_Compare.txt. Cấu trúc của các file này tương tự cấu trúc dữ liệu đầu ra của phần mềm mô phỏng. Nhờ đó chúng ta có thể kiểm tra được độ chính xác của thiết kế mạch BIST bằng cách đối chiếu với phần mềm mô phỏng.

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

Kết quả chạy với kịch bản fsm_bist_tb_failed_ram_fullAgorithm_fullData

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

fsm_bist_tb_failed_ram_fullAgorithm_fullData

Kết quả chạy với kịch bản fsm_bist_tb_failed_ram_fullAgorithm_randomData

Hình 3–4 Kịch bản

fsm_bist_tb_failed_ram_fullAgorithm_randomData

Hình 3–5 Kịch bản fsm_bist_tb_failed_ram_MarchC_fullData

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

Phần mềm mô hình hóa được viết bằng ngôn ngữ C++, biên dịch trên Visual Studio và chạy trên nền hệ điều hành Window.

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

Kết quả chạy mô phỏng phần mềm mô hình hóa được ghi lại trong các log file gồm Log_TIG.txt, Log_Physical.txt, Log_Compare.txt

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

Sau khi thực hiện chạy mô phỏng phần cứng mạch BIST trên QuestaSim và phần mềm mô hình hóa, kết quả chạy được đối chiếu với nhau để đảm bảo mọi chức năng của mạch BIST được thực hiện chính xác, đúng yêu cầu và không xuất hiện lỗi.

Memory BIST

Input

HW Output

… …

… SW Output…Software

Compare

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

Mô hình kiểm tra như hình trên: một kịch bản kiểm tra (ví dụ như kịch bản fsm_bist_tb_failed_ram_fullAgorithm_fullData) được đưa vào chạy mô phỏng mạch BIST trên phần mềm mô phỏng QuestaSim và thu được kết quả là các log file HW_output. Đồng thời kịch bản này cũng được chạy bằng phần mềm mô hình hóa và thu được kết quả là các log file SW_output. Dữ liệu từ HW_output và SW_output được so sánh với nhau bằng script để phát hiện sự khác nhau. File script sử dụng để so sánh là filescompare.pl được viết bằng Perl.

Cách sử dụng script: ./filescompare.pl thư_mục_1 thư_mục_2 Ví dụ: ./filescompare.pl ./SW_Log_file/ ./HW_Log_file/

Kết quả quá trình so sánh được lưu trong file Log.txt. Ví dụ như bảng sau:

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

Ví dụ đúng Comparing Log_Compare.txt OK

Comparing Log_Physical.txt OK

Ví dụ có lỗi Comparing Log_TIG.txt Un-match at line 281 Un-match at line 293

Với kết quả so sánh giống nhau, chúng ta có thể kết luận mạch BIST đã hoạt động chuẩn. Trong trường hợp có sự sai khác, mạch BIST có thể có lỗi và phải được sửa. Chúng ta cần phân tích sự sai khác để tìm ra nguyên nhân, lỗi có thể phát sinh từ dữ liệu thuật toán March không đúng, mô hình lỗi khác nhau hoặc mạch BIST chạy không chính xác.

3.1.4. Code coverage

Để kiểm tra thiết kế mạch BIST không có các logic thừa, các trạng thái FSM không xác định, trong luận văn này tôi có sử dụng một phương pháp kiểm tra thông dụng là kiểm tra độ bao phủ code coverage. Phương pháp này được tích hợp trong hầu hết các công cụ mô phỏng tiên tiến. Nó cho phép chúng ta biết được các khối chức năng trong thiết kế có được sử dụng hết không, có phần mạch thừa hay không, các trạng thái của máy trạng thái FSM có được duyệt hết không. Điều này giúp cho kĩ sư có thế kiểm soát tốt thiết kế, tránh các lỗi ngầm xuất hiện. Việc kiểm tra này cũng chứng tỏ thiết kế tốt và tối ưu hay chưa. Từ đó giúp cho quá trình tổng hợp mạch được nhanh chóng và chính xác hơn.

Các đại lượng được sử dụng trong kiểm tra độ bao phủ code coverage thường dùng gồm: Statement, Branch, Conditions, Fec Conditions, Expressions, Fec Expressions, FSM States, Transitions.

Dưới đây là 1 số trường hợp chạy code coverage với các kịch bản khác nhau.

3.1.4.1. Kịch bản 1

Thuật toán kiểm tra: March C Thời gian chạy: 160 us

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

Coverage Active Hits Misses % Covered

Statement 177 86 91 48.5

Branch 102 57 45 55.8

Conditions 6 5 1 83.3

Fec Conditions 8 7 1 87.5

Expressions 0 0 0 100

Fec Expressions 0 0 0 100

FSM States 5 5 0 100

Transitions 12 9 3 75

Các số liệu cho thấy code coverage đạt tỉ lệ thấp. Lí do là kịch bản kiểm tra này chỉ sử dụng 1 thuật toán trong quá trình chạy và thời gian mô phỏng ngắn do đó rất nhiều phần code logic chưa được hoạt động và bị xem như phần thừa.

Điều này chứng tỏ người kĩ sư thiết kế cần phải chuẩn bị một kịch bản kiểm tra thật đầy đủ và thời gian mô phỏng lớn thì mới đảm bảo

3.1.4.2. Kịch bản 2

Thuật toán kiểm tra: ngẫu nhiên tất cả 42 thuật toán Thời gian chạy: 30 ms

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

Coverage Active Hits Misses % Covered

Statement 177 136 41 76.8

Branch 102 82 20 80.3

Conditions 6 5 1 83.3

Fec Conditions 8 7 1 87.5

Expressions 0 0 0 100

Fec Expressions 0 0 0 100

FSM States 5 5 0 100

Transitions 12 9 3 75

Các số liệu cho thấy code coverage đạt tỉ lệ cao. Lí do là kịch bản kiểm tra này đã sử dụng tất cả các thuật toán trong quá trình chạy và thời gian mô phỏng lâu do đó hầu hết các phần code logic đều có hoạt động. Các trạng thái của máy trạng thái FSM cũng được kiểm tra hết chứng tỏ thiết kế không có trạng thái nào không xác định hoặc dư thừa. Kết luận chung là thiết kế mạch BIST này khá tốt và tối ưu.

Một phần của tài liệ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ớ (Trang 76 - 82)

Tải bản đầy đủ (PDF)

(96 trang)