Xác minh ASIC Tôi có cần xác minh tất cả các kết hợp có thể không?


7

Tôi hiện đang thực hiện Xác minh hộp đen ASIC.

Giả sử tôi có một mô-đun với 200 cổng đầu vào với chiều rộng 12 bit mỗi cổng và một cổng đầu ra có chiều rộng 64 bit. Hãy nói, bên trong tinh khiết của nó.

                                  [11:0]      +------------+
                 inputport 0   ------/------> |            |
                      .        -------------> |            |       [63:0]
                      .        -------------> |     duv    | --------/----> outputport
                      .        -------------> |            |
                 inputport 200 -------------> |            |
                                              +------------+

Để kiểm tra cổng đầu ra, tôi có cần kiểm tra tất cả các kết hợp có thể có của tất cả 200 cổng đầu vào không?

Nếu không, cách tốt để xác minh mô-đun như vậy là gì?

Có một cách tốt trong việc theo dõi tất cả các trường hợp góc?

Liệu các lỗi cuối cùng sẽ xuất hiện trong quá trình này?


6
Bạn có thể thử, nhưng 22400 là 10722. Không ai có thể tưởng tượng một con số như vậy. Để so sánh, số lượng picoseconds kể từ vụ nổ lớn là 1030.
stevenvh

3
Không thể nói mà không có thêm chi tiết. Bây giờ tất cả những gì chúng ta thấy là một hộp có 2464 I / O, và bạn hỏi làm thế nào để kiểm tra nó. Có gì bên trong?
stevenvh

1
Bạn chắc chắn cần kiến ​​thức bên trong để làm một công việc tốt ở đây. BTW đây là một mạch tổ hợp thuần túy hay nó có trạng thái (bộ nhớ) bên trong? Điều đó sẽ làm phức tạp vấn đề hơn nữa! Và bạn có muốn kiểm tra đầu ra trạng thái ổn định, hoặc thời gian (độ trễ) không? Hoặc có thể bạn thậm chí muốn xác minh sự vắng mặt của trục trặc (đầu ra trung gian không mong muốn)?
Wouter van Ooijen

1
Có phải hộp "đen" có nghĩa là bạn cũng không biết chức năng chính xác của IC sẽ là gì không? Phương thức tạo cho các mẫu thử nghiệm mà tôi biết tất cả đều dựa vào một mô hình chính xác về cách các cổng được kết nối. Sau đó, bạn có thể tạo một tập các mẫu thử nghiệm phát hiện một tỷ lệ lớn lỗi với một bộ mẫu đầu vào khá nhỏ. Đây là điều không thể làm bằng tay cho số lượng đầu vào mà bạn đang nói đến, bạn phải sử dụng phần mềm ở đó. Thuật ngữ để google cho là "tạo mẫu thử nghiệm tự động".
0x6d64

2
Bạn đang thực hiện xác minh vì bạn nghi ngờ lỗi sản xuất hoặc bạn đang xác minh vì bạn nghi ngờ nó không (theo thiết kế) đáp ứng các đặc điểm kỹ thuật? Là mỗi bit đầu ra phụ thuộc vào mỗi đầu vào, hoặc có các chức năng độc lập? Có bất kỳ kết hợp đầu vào không hợp lệ có thể được loại bỏ? Đây có phải là mô-đun độc lập hay đây là mô-đun phụ trong chip của bạn?
W5VO

Câu trả lời:


8

Bạn có một số lượng vô lý các bộ đầu vào có thể có trong không gian đầu vào của bạn. Bạn không thể kiểm tra tất cả chúng, thời gian. Bạn phải kiểm tra một tập hợp con của các bộ đầu vào và sử dụng một số heuristic đáng giá để chọn các bộ bạn thực hiện kiểm tra.

Đây là những gì thử nghiệm của bạn phải làm (điều này được lấy từ các đề xuất thử nghiệm DO-254 mà công ty tôi sử dụng):

  • Mỗi đầu ra phải thay đổi ít nhất một lần
  • Mỗi đầu vào phải thay đổi ít nhất một lần

Đó là mức tối thiểu, không phải mức tối đa. Trong những trường hợp như thế này, chúng tôi thực hiện phân tích Bảo hiểm Quyết định Điều kiện Tối thiểu (MCDC) để xem những bộ đầu vào nào khác mà chúng tôi cần kiểm tra. Tôi đã luôn giải thích nó như thế này:

Giả sử hộp đen của bạn là một cổng AND với 200 đầu vào. Bạn không thể kiểm tra từng bộ đầu vào, vì vậy bạn kiểm tra một tập hợp con của toàn bộ không gian đầu vào. Đầu tiên, bạn làm theo các quy tắc tôi đã đưa ra ở trên - bạn cần kiểm tra ít nhất hai trường hợp: một trường hợp khiến đầu ra là 0 / Sai và một trường hợp khác khiến đầu ra là 1 / Đúng. Đối với cổng AND, điều này thật dễ dàng: tất cả 0 / Sai và tất cả 1 / Đúng. Điều đó chứng tỏ đầu ra của bạn có thể thay đổi. Điều tiếp theo bạn làm là chọn các bộ đầu vào sao cho có một bộ đầu vào mà mỗi đầu vào là yếu tố quyết định trong đầu ra. Đối với 200 cổng đầu vào VÀ, cổng này cung cấp cho bạn 200 bộ đầu vào khác nhau: bộ đầu tiên có tất cả đầu vào True ngoại trừ đầu vào số 1, cổng thứ hai có tất cả các đầu vào True ngoại trừ # 2, v.v. Sử dụng phương pháp này, bạn xác minh rằng mỗi đầu vào có ảnh hưởng độc lập đến đầu ra. Nếu bất kỳ đầu vào là Sai không '

Bạn nói logic của bạn là tất cả kết hợp. Điều này là tốt hơn cho toàn bộ rất nhiều chốt / flip flop nhưng vẫn không hoàn hảo. Bạn phải làm việc ngược từ đầu ra để xác định các bộ đầu vào mà mỗi đầu vào riêng lẻ có ảnh hưởng quyết định đến đầu ra. Nếu logic của bạn phức tạp thì bạn sẽ có rất nhiều công việc trước mắt, nhưng đây là cách nhanh nhất và toàn diện nhất để kiểm tra hộp đen logic của bạn.

Theo như các khía cạnh thực tế, bạn đang ở một mình. Công ty tôi làm việc sử dụng phần cứng tùy chỉnh để thực hiện kiểm tra hộp đen cấp pin trong hệ thống (và về mặt lý thuyết là ASIC nếu bạn có thể cung cấp cho chúng tôi một phần để đặt lên bo mạch) ở tốc độ hoạt động. Nó toàn diện và tự động nhưng mỗi thiết bị thử nghiệm là tùy chỉnh cho dự án nhất định, vì vậy sử dụng phương pháp này đòi hỏi phải có hợp đồng và không chỉ mua các mặt hàng trên kệ và tự kết hợp chúng.

Một trong những vấn đề bạn sẽ giải quyết được bằng cách tiếp cận của chúng tôi chỉ đơn giản là kết nối tất cả các dây. Tôi đoán hầu hết mọi người sẽ đề xuất một bộ phân tích logic lớn khó hiểu nhưng bạn đã có hàng ngàn chân nên bạn phải kiểm tra các tập hợp con của các chân tại một thời điểm. Một trong những khía cạnh tích cực của phương pháp chúng tôi sử dụng là nó luôn giám sát tất cả các chân để nó cho phép bạn thấy rằng các đầu ra mà bạn mong muốn thay đổi sẽ thay đổi, nhưng cũng là các đầu ra không nên thay đổi. Bạn không thể có được điều đó nếu bạn sử dụng một bộ phân tích logic có ít chân hơn số lượng đầu vào / đầu ra bạn có.


10

OK, hộp đen không phải là vấn đề, miễn là bạn biết chức năng. Bạn sẽ cần một cái gì đó như 64 hàm logic trong (tối đa) 2400 biến.

Trường hợp xấu nhất bạn có một sản phẩm không thể kiểm chứng.Chẳng hạn, nếu mỗi trong số 64 đầu ra thực sự phụ thuộc vào tất cả các trạng thái đầu vào. Tôi tưởng tượng các giá trị của các cổng khác nhau được so sánh cho sự bằng nhau hoặc lớn hơn và các kết quả đó được sử dụng trong một kết hợp logic. Trong trường hợp đó, bạn có thể kiểm tra các giá trị xung quanh giá trị so sánh, có thể giảm đáng kể số lượng kết hợp.

Giả sử đầu ra Y phải cao nếu cổng A> cổng B. Bạn có thể áp dụng giá trị 0x25 cho cổng B và kiểm tra xem đầu ra là gì cho các giá trị 0x24, 0x25 và 0x26 của cổng A. Lặp lại cho 0x211 và 0xE5A (Tôi chỉ tạo nên số). Sau đó, bạn đã giảm 224 = 16 777 216 kết hợp thành 9.

Bạn có thể có một vấn đề ở đây. Ngay cả khi đó thực sự là so sánh bạn cần thực hiện, kết quả có thể là nội bộ và chỉ xuất hiện sau một số chức năng logic có kết quả nội bộ tương tự. Đó là cách bạn tạo ra một sản phẩm không thể kiểm chứng.

Tôi đã chia thiết kế thành nhiều ASIC, trong đó kết quả trung gian đi từ ASIC này sang ASIC tiếp theo. Bằng cách này, bạn chỉ có thể phải kiểm traÔi(N) kết hợp, thay vì Ôi(N). 1000 tỷ bài kiểm tra có thể là không thể, nhưng 1 triệu không phải là con số quá lớn. Nó cũng có thể giảm số I / O nếu có các chức năng độc lập lẫn nhau.

Một giải pháp cho chip đơn có thể là có các miếng thử nghiệm cho kết quả trung gian trên khuôn, để chúng có thể được thử nghiệm trên wafer bằng thử nghiệm thăm dò bay .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.