CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Đồng kiểm tra hình thức hệ thống phần cứng/phần mềm 1.1 Tổng quan về hệ thống phần cứng/phần mềm 1.1 Lý thuyết về hệ thống phần cứng/phần mềm Hệ thống phần cứng / phần mềm là một hệ thống trong đó sử dụng một sự kết hợp của phần cứng và phần mềm để thực hiện nhiệm vụ tùy thuộc vào lĩnh vực ứng dụng khác nhau. Trong danh mục của hệ thống phần cứng / phần mềm, thông thường chúng ta có máy tính mục đích chung và hệ thống nhúng. Máy tính thông thường, chẳng hạn như máy tính cá nhân, thực hiện nhiều nhiệm vụ khác nhau tùy thuộc vào chương trình, trong khi hệ thống nhúng là một hệ thống máy tính chuyên dụng được thiết kế để thực hiện một hoặc một vài chức năng chuyên dụng. Hệ thống phần cứng / phần mềm là một sự kết hợp giữa phần cứng và phần mềm.
Một hệ thống hoàn toàn thực hiện trong phần cứng có tốc độ và hiệu quả năng lượng tốt hơn so với một hệ thống hoàn toàn thực hiện trong phần mềm. Tuy nhiên hệ thống phần mềm cần ít tài nguyên và có nhiều linh hoạt hơn và dễ dàng bảo trì. Trong thị trường hiện nay, chúng ta yêu cầu một sản phẩm có lợi thế của cả mặt phần cứng và phần mềm. Nói cách khác, một hệ thống phần cứng / phần mềm có thể được xem như là một kết hợp của các thành phần phần cứng và phần mềm, có khả năng cung cấp một tập hợp rộng lớn hơn và dễ thích nghi hơn các chức năng phức tạp liên quan đến các hệ thống phần cứng thuần túy , và trong khi đó không làm mất hiệu quả năng lượng và tốc độ trong trường hợp của các hệ thống phần mềm thuần túy.
Do những ưu điểm của hệ thống phần cứng / phần mềm, nhu cầu về hệ thống HW / SW đã tăng đều kể từ khi xuất hiện, cả về phạm vi của các ứng dụng và tính phức tạp của chức năng thực hiện. Hệ thống nhúng đặc biệt phổ biến trong ngành công nghiệp và cuộc sống hàng ngày. Nó được ứng dụng từ máy nghe nhạc di động MP-3 đến đơn vị điều khiển định hướng của máy bay chiến đấu. Trong thiết bị điện tử ô tô, hệ thống nhúng cũng được sử dụng rộng rãi để đáp ứng nhu cầu về chất Nguyễn Khắc Thành – CB110908 – KTTT2 Page 1 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông lượng và độ tin cậy cao, chi phí và nhu cầu bảo trì thấp, và thời gian đưa ra thị trường ngắn.
Trong luận văn này, hệ thống HW / SW của chúng tôi là một hệ thống thực hiện của một giao thức truyền thông bus (Local Interconnect Network) trong điện tử ô tô.2 Luồng thiết kế hệ thống HW/SW Để hiểu rõ hệ thống HW / SW hơn, luồng thiết kế được giới thiệu đầu tiên trước khi giới thiệu về kiểm tra hệ thống HW / SW. Thiết kế của các hệ thống HW/SW, còn được gọi là đồng thiết kế hệ thống phần cứng/phần mềm, là một nhiệm vụ thách thức, cái mà bao gồm không chỉ thiết kế phần cứng và phần mềm mà còn thiết kế truyền thông giữa HW và SW.1 cho thấy một loại luồng thiết kế hệ thống HW/SW bao gồm các bước sau[1]: • Mô hình hệ thống: đặc điểm kỹ thuật và các điều kiện ràng buộc hệ thống được phân tích để cung cấp một mô hình cấp hệ thống của thiết kế. Hệ thống tại cấp độ này là mô hình kết nối các khối chức năng giao tiếp với nhau bằng các bản tin hoặc chia sẻ bộ nhớ. Các máy trạng thái hữu hạn, như mô hình Kripke vv, có thể được sử dụng để mô hình hình thức hệ thống.
Đối với mục đích mô phỏng, SystemC là một ngôn ngữ rất phù hợp ở cấp độ này. • Phân vùng HW/SW và ánh xạ kiến trúc: Mô tả mức hệ thống được ánh xạ vào một kiến trúc để đạt được mô hình mức thực hiện, trong đó quyết định những gì công việc sẽ được thực hiện bởi phần cứng và những gì công việc sẽ được thực hiện bằng phần mềm. SystemC cũng là phù hợp với cấp độ này. • Thiết kế phần mềm: Bước này bao gồm mã hóa và biên dịch SW, và sau đó SW sẽ được nạp vào thiết bị lập trình được giống như các tập tin đối tượng.
Ngôn ngữ lập trình điển hình là C hoặc C++. • Thiết kế phần cứng: Bước này bao gồm mô hình hóa HDL và phân vùng HW, tổng hợp hành vi và tái sử dụng IP và tổng hợp logic. Ngôn ngữ mô hình HDL điển hình là VHDL hoặc Verilog VDL. • Định nghĩa giao diện: Tách thiết kế thành các thành phần HW và phần SW đưa ra sự cần thiết phải giao tiếp giữa chúng.
Giao diện cần để xác định mô Nguyễn Khắc Thành – CB110908 – KTTT2 Page 2 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông hình bus, giao thức bus và driver thiết bị. Driver thiết bị để ẩn các thành phần HW bằng cách cung cấp một tập hợp các chức năng kiểm soát các thành phần ngoại vi. Mô hình bus cùng với một số giao thức bus nhất định đảm bảo thông tin liên lạc giữa HW và SW. System specification and constraints System modeling System level design HW/SW partitioning Architecture mapping Transactional level SW model HW model HDL modeling and SW coding Interface definition HW partitioning SW source Behavioral Device driver Bus model code level design Behavioral Synthesis and IP resuse SW Compilation RT-level design Logic Synthesis Object code Gate-level design Hardware/Software System Hình 1.1 Luồng thiết kế hệ thống phần cứng/phần mềm Nguyễn Khắc Thành – CB110908 – KTTT2 Page 3 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông 1.3 Kiến trúc hệ thống Hardware/Software Kiến trúc điển hình của hệ thống Hardware/Software biểu diễn trong hình 1.2 bao gồm các khối sau: Hardware/Software System Memory Programmable Hardware Device Software Device Driver Hình 1.2 Sơ đồ khối hệ thống Hardware/Software • Thiết bị lập trình được: Thiết bị lập trình được sẽ thực hiện SW được lưu trong bộ nhớ.
Nó có thể là MCU (micro-control-unit) hoặc CPU … • Mô hình bộ nhớ. Bộ nhớ bao gồm hai phần: SW và điều khiển thiết bị. SW có thể là các chương trình thực thi nhị phân thu được bằng cách tổng hợp và liên kết các chương trình trong ngôn ngữ lập trình bậc cao, chẳng hạn như C, C + + hay Java … Phần điều khiển thiết bị đóng vai trò như một giao diện giữa phần mềm và phần cứng, giúp phần mềm truy cập phần cứng. • Kiến trúc truyền thông HW / SW và giao thức bus.
Thông tin liên lạc giữa các khối trong một hệ thống HW / SW là thông qua một số bus nội bộ. Nó phải phù hợp với giao thức bus nhất định. • Thành phần phần cứng. Các nhiệm vụ HW sẽ được ánh xạ tới các thành phần phần cứng khác nhau mà có thể được thực hiện trong ASIC, FPGA … 1.2 Tổng quan về các kỹ thuật kiểm tra hardware, software và các kỹ thuật đồng kiểm tra Nói chung, tất cả các kỹ thuật kiểm tra hình thức bao gồm ba phần (Hình 1.3): đặc tả hình thức, mô hình hình thức, và một phương pháp hình thức cụ thể.
Một đặc tả hình thức là một mô tả toán học được sử dụng để phát triển thực hiện Nguyễn Khắc Thành – CB110908 – KTTT2 Page 4 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông của nó. Một mô hình hình thức là một mô hình trừu tượng của việc thực thi. Các phương pháp hình thức thể hiện quy tắc chính xác để chứng minh rằng các hành vi của mô hình hình thức phù hợp với tính chất bắt nguồn từ đặc tả. Mỗi phương pháp xác minh hình thức thảo luận trong phần sau đây sẽ được mô tả từ ba phần này.3 Kiểm tra hình thức 1.1 Kiểm tra phần cứng: Các kỹ thuật kiểm tra khác nhau được liệt kê trong bảng 1.1 và được giải thích bên dưới: Hệ thống Phương pháp Phương pháp hình thức không hình thức Hardware Mô phỏng Kiểm tra mô hình, Kiểm tra mô hình ký hiệu Kiểm tra mô hình giới hạn, chứng minh cảm ứng, Giả lập kiểm tra đặc tính khoảng cách, kiểm tra đặc tính khoảng cách với các bất biến Các phương pháp trừu tượng dựa trên SAT Software Kiểm tra Phân tích tĩnh Counterexample Guided Abstraction Refinement Framework Phân tích động Giảm thứ tự phần động Nguyễn Khắc Thành – CB110908 – KTTT2 Page 5 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông Các hệ thống Mô hình hóa và kiểm tra HW/SW miêu tả UML Hardware/ trong các ngôn Kiểm tra hình thức của Software Đồng mô phỏng ngữ mức hệ thống SystemC bằng phân vùng (giống như UML, HW/SW tự động systemC) Các hệ thống HW/SW được miêu tả ở các mức ? trừu tượng khác nhau (e.
HW miêu tả trong HDL; SW trong C or C++) Bảng 1.1: Các kỹ thuật kiểm tra cho HW, SW, HW/SW 1.1 Simulation và Emulation Simulation và emulation là 2 phương pháp kiểm tra cho việc kiểm nghiệm chất lượng phần cứng trước khi xuất hiện kiểm tra hình thức. Ngay cả trong phương pháp thiết kế hardware và software ngày nay, giả lập vẫn đóng vai trò quan trọng. Nó khảo sát đặc tính của thiết kế bằng cách áp dụng kích thích, cái được chọn để kiểm nghiệm một đặc tính nhất định hoặc sinh ra ngẫu nhiên. Mô phỏng là chạy thử trước khi xây dựng nguyên mẫu thiết kế bằng cách sử dụng chương trình logic, vd FPGA.
Mặc dù simulation và emulation có thể hiệu quả trong tìm lỗi, nhưng chúng vẫn có những trở ngại lớn và không bao giờ thay thế được kiểm tra hình thức. Một trong những lý do đó là simulation và emulation không bao giờ có thể kiểm tra tất cả các đặc tính có thể của toàn bộ thiết kế. Điều đó khá tồi tệ cho hiệu suất thiết kế nếu chúng ta cần tạo ra một nhóm thử xấp xỉ toàn diện hoặc tồi cho chất lượng thiết kế nếu chúng ta cho phép nhiều trường hợp không được check. Như vậy, simulation Nguyễn Khắc Thành – CB110908 – KTTT2 Page 6 Luận văn thạc sĩ kỹ thuật Kỹ thuật truyền thông và emulation được phân loại vào nhóm các phương pháp không chính thức.
Tuy nhiên, giả lập bổ sung tốt cho kiểm tra hình thức vì nó vẫn có tác dụng phát hiện lỗi.2 Kiểm tra mô hình và kiểm tra mô hình tượng trưng Khác với các phương pháp không chính thức, kỹ thuật kiểm tra hình thức sử dụng các phương pháp chứng minh toán học chính xác. Kiểm nghiệm mô hình (model checking) với logic thời gian, được đề xuất đầu tiên như một kỹ thuật kiểm tra hình thức vào đầu những năm 80, là một trong những kỹ thuật kiểm tra hình thức được sử dụng phổ biến nhất trong thương mại. Ví dụ một vài thiết kế logic tuần tự.