CÁC DÒNG CHÍNH THỨC TỪ MÔ PHỎNG POINT – OF – VIEW

Ở cuối bước ”Your First Step Into Formal Property Checking”, tôi nói rằng “nỗ lực tôi đã bỏ ra để hiểu về việc Kiểm tra Tài sản Chính thức khiến tôi ước mình có một máy thời gian để xem PropCheck sớm hơn”. Tôi tự hỏi làm thế nào việc kiểm tra tài sản chính thức trước đó trong sự nghiệp của tôi giúp cải thiện năng suất làm việc của tôi.

Bây giờ tôi muốn có máy thời gian vì một lý do khác. Nếu tôi quản lí một nhóm sản phẩm, tôi sẽ triển khai chính thức như thế nào? Không chỉ kiểm tra tài sản chính thức, mà kiểm tra mọi thứ chính thức thì làm thế nào? Tôi phải chọn quy trình nào? Ai là người vận hành công cụ và họ mong đợi đổi lại được giá trị gì?

Sau một hồi trăn trở và thảo luận với đồng nghiệp, tôi quyết định lên danh sách những quy trình hữu ích và phải suy xét chúng thật kĩ càng theo góc nhìn mô phỏng.

Trình độ chuyên môn

Quy trình dựa trên trình độ chuyên môn giúp rà soát các lỗi thiết kế ngoài ý muốn trước khi chúng được đưa vào code base. Nó bao gồm AutoCheck và X-Check để phát hiện những thứ như latches, FSM lock ups, dead code và hanging logic; nó cũng bao gồm cả CDC và RDC để xác nhận thời gian và thiết lập lại các đường giao nhau. Thiết kế vật lý là người thụ hưởng chuyên môn chính mặc dù nó cũng thiết lập một đường cơ sở chức năng để xác minh.

Các kỹ sư thiết kế thúc đẩy quy trình kiểm tra chất lượng bắt đầu với lần nhập mã đầu tiên; lý tưởng nhất là vận hành trước mỗi lần nhập mã. Ưu điểm của việc sử dụng một qiuy trình trình độ nghiêm ngặt sớm giúp tránh được tình trạng bị ép buộc và khó khăn hơn về trình độ.

Điều đáng nói chung bây giờ cho tất cả các quy trình tôi hình dung là giảm chi phí gỡ bỏ lỗi bằng cách rà soát lỗi càng sớm càng tốt với nỗ lực cần thiết tối thiểu!

Tuân thủ chức năng

Quy trình tuân thủ chức năng bổ sung một yếu tố của chất lượng chức năng chứa đặc điểm kỹ thuật vào chất lượng RTL. Điều này liên quan đến việc bổ sung PropCheck để kiểm tra thuộc tính chính thức của hộp đen trên các giao diện bên ngoài. Kiểm tra thuộc tính chính thức cung cấp đường cơ sở chất lượng được cải thiện cho việc kiểm định cấp khối và cấp cao nhất.

Việc tuân thủ chức năng phải là trách nhiệm chung giữa các kỹ sư thiết kế và kĩ sư kiểm định, nơi cả hai nhóm bổ sung và chứng minh các xác nhận hộp đen. IP xác nhận của bên thứ 3 cũng là một tùy chọn, đặc biệt là đối với các giao diện tiêu chuẩn công nghiệp. Ví dụ như thư viện chính thức Questa (QFL) bao gồm IP xác minh chính thức cho AMBA. Một lần nữa, tôi khuyên bạn nên sớm thực hiện các kiểm tra tuân thủ chức năng (tức là khi các giao diện được triển khai) vì các lỗi trên giao diện bên ngoài có xu hướng trở thành hàng rào ngăn cản các nhóm kiểm định.

Chất lượng

Quy trình chất lượng giới thiệu PropCheck với nỗ lực chủ động loại bỏ các lỗi RTL chức năng tại nguồn thông qua việc bổ sung các thuộc tính hộp trắng. Tóm lại, việc kiểm tra thuộc tính chính thức của hộp trắng mang lại cải thiện đáng kể về chất lượng chức năng của RTL nhờ vào việc giảm lỗi đáng kể.

Các kỹ sư thiết kế nên tự chủ việc kiểm tra tài sản chính thức vì (a) các thuộc tính có xu hướng phụ thuộc vào việc triển khai; và (b) chỉ kỹ sư thiết kế mới hiểu rõ nhất việc triển khai, phạm vi và trọng tâm có thể thay đổi. Một mặt đây là cách tiếp cận có mục tiêu nhằm xác minh các phần quan trọng của thiết kế. Mặt khác nó là một cách tiếp cận tính đúng đắn của chức năng toàn diện. Dù bằng cách nào, mục tiêu ở đây vẫn là kiểm soát lỗi trước khi chúng xâm nhập các bước còn lại của nhóm kiểm định.

Cá nhân tôi thấy việc kiểm tra tài sản chính thức là bước quan trọng đầu tiên đối với RTL ngăn lỗi giúp bạn thoát khỏi việc gỡ bỏ lỗi vào thời điểm bẻ khóa. Còn một bước nữa, nếu bạn thực sự chán ngấy với các lỗi RTL, hãy xem xét…

Phát triển hướng thuộc tính

Phát triển hướng thuộc tính (PDD) là một phương pháp kiểm tra thuộc tính chính thức, theo đó các thuộc tính được nắm bắt trước khi thực hiện RTL. Nó dựa trên sự phát triển theo hướng kiểm tra thuộc tính (TDD) – một phương pháp tiếp cận chặt chẽ, có hệ thống và nghiêm ngặt đối với phần mềm mã hóa. Mục tiêu là để RTL không bị lỗi.

Nếu kỹ sư thiết kế sở hữu PDD, đối với những ưu điểm chất lượng mới từ PDD, hãy xem nhận xét trước đây của tôi về RTL ngăn chặn lỗi và nhân nó với 10! Việc ngăn chặn RTL không bị lỗi có thể thực hiện được với công cụ và kỹ thuật phù hợp!

Xác minh trước lỗi

Không phải gỡ lỗi, mà là xử lí trước lỗi. Pre-bug là nỗ lực của nhóm kiểm định để tự bảo vệ khỏi lỗi RTL trước khi mô phỏng. Về cơ bản, đây là AutoCheck và X-Check trong quy trình kiểm tra trước khi mô phỏng.

Xử lí trước lỗi chỉ cần thiết trong các tình huống mà nhóm thiết kế chưa thiết lập một quy trình kiểm tra chất lượng nghiêm ngặt chính của riêng họ. Nếu trường hợp này xảy ra với bạn, nhóm kiểm định có thể xây dựng và tận dụng quy trình xử lý trước lỗi. Lý tưởng nhất là sau đó quy trình này sẽ được chuyển đến nhóm thiết kế để trở thành một trình độ thiết kế phù hợp.

Tích hợp

Tập trung vào các vấn đề quan trọng ở cấp chip, quy trình tích hợp bao gồm Connectivity Check, X-Check và AutoCheck. Connectivity Check and X-Check là bước rất quan trọng để xác nhận kết nối giữa các hệ thống con trong khi AutoCheck tìm ra sự không tương thích về mặt chức năng một cách rõ ràng giữa các hệ thống con; cụ thể là các vấn đề liên quan đến kiểm soát quy trình và lock-ups có thể xảy ra. CDC và RDC trở lại để xác nhận xung nhịp cấp chip và thiết lập lại các đường giao nhau. RegisterCheck là một tùy chọn khác để xác nhận khả năng truy cập thanh ghi cấp chip.

Quy trình tích hợp đặc biệt quan trọng vì lỗi tích hợp có thể là một cơn ác mộng. Phạm vi phủ rộng của chúng khiến ta khó tìm ra nguyên nhân gốc vì vậy chúng thường gây ra các chu kỳ gỡ lỗi trên diện rộng gây khó khăn cho nhóm phát triển. Quy trình tích hợp tạo ra phương tiện để xác định các vấn đề kết nối nhanh chóng và tương thích để tránh được việc gỡ lỗi cho cả nhóm.

Quy trình tích hợp là một trách nhiệm chung khác. Lý tưởng nhất là nhóm thiết kế sẽ kích hoạt thêm việc kiểm tra năng lực chuyên môn. Kỹ sư kiểm định cũng có thể vận hành quy trình tích hợp như một phần của phân tích hồi quy thông thường.

Coverage Closure

Tôi thấy các bộ thử nghiệm có giới hạn ngẫu nhiên tiếp tục là yếu tố chính dẫn đến việc coverage closure. Nhưng CoverCheck là một bổ sung có giá trị để phân tích khả năng tiếp cận trước khi nhắm đến các lỗ hổng bao phủ bằng các thử nghiệm mới.

Quy trình bảo vệ cuối cùng

Kết thúc những gì tôi giả định là quy trình cấp đầu vào điển hình cho nhiều nhóm phát triển. Bởi vì các ứng dụng chính thức dễ vận hành, chúng là một lựa chọn khả thi, sử dụng việc tìm lỗi cuối cùng trước khi loại bỏ chúng. Một nhóm có thể vận hành tất cả các lỗi đó, có thể tiết kiệm cho cả PropCheck như là hàng rào cuối cùng.

Quy trình bảo vệ cuối cùng là thứ bạn nên (a) chỉ sử dụng một lần; và (b) chỉ duy nhất một lần!

Tôi nhận ra rằng cách dễ nhất để quy định khung giá trị của công cụ chính thức là dựa vào các lỗi nghiêm trọng được tìm thấy. Và một chương trình trình chiếu trước khi xuất bản rõ ràng là một lỗi nghiêm trọng. Nhưng để chính thức cung cấp đủ tùy chọn đáng tin cậy thì việc chờ đợi phản hồi đó không còn cần thiết nữa. Chưa kể rằng “điểm dừng cuối cùng” không có tác dụng gì cả để cải thiện năng suất của bạn trong suốt quá trình. Vì vậy, hãy sử dụng nó một lần nếu đây là điều bạn đang cần trong chu trình phát triển của mình. Nhưng hãy theo dõi nó bằng cách tích hợp các quy trình cụ thể để bắt đầu chu trình tiếp theo nhằm tận dụng lợi thế của công cụ.

Tóm lại…

Với sự hiện diện của người khác thay tôi trong lĩnh vực mô phỏng suốt 20 năm qua đã khiến tôi không biết gì về hình thức này trong một thời gian dài. Nhưng với nỗ lực dù ít ỏi của mình, bây giờ tôi đã có một ý tưởng khả quan về cách tôi sẽ chính thức sử dụng nó cho nhóm sản phẩm. Đặc biệt là với các ứng dụng chính thức, có rất nhiều giá trị dành cho nỗ lực ít ỏi.

Lời khuyên của tôi dành cho các kỹ sư khác độc quyền trong lĩnh vực mô hình mô phỏng là ‘’Hãy nhìn vào hình thức!”” Bất kể trách nhiệm của bạn là gì và bạn đang đứng ở đâu trong chu trình dự án của mình thì vẫn sẽ có một số lựa chọn tốt dành cho bạn. Hãy tìm những gì phù hợp với bạn và trao đổi với những người khác về những gì phù hợp với họ. Và hãy nhớ rằng, xác minh chính thức sớm hơn sẽ tốt hơn. Vận hành các công cụ ngay bây giờ và hãy cứ tiếp tục thực hiện điều đó.

Không cần phải sợ bỏ lỡ chúng.

Nguồn: Siemens

Leave a Reply

Your email address will not be published. Required fields are marked *