You are on page 1of 3

Thiết kế giải pháp

- Dựa trên phương pháp formal verification, là phương pháp sử dụng các kỹ thuật
như logic mô hình hóa, mô hình chuyển trạng thái, ... để kiểm tra các thuộc tính
của hệ thống
- Mục tiêu của phương pháp này là phát hiện những lỗi sai hệ thống bằng cách
cung cấp các kịch bản hoạt động để kiểm tra.
- Thay vì giảm thiểu số lượng tính toán, họ cố gắng giảm thiểu thời gian kiểm tra
bằng cách
đưa ra các trường hợp tiêu biểu. Cách tiếp cận này nhắm vào những trường hợp dư
thừa mà chỉ tập trung vào những trường hợp quan trọng và những trường hợp được
coi là tương tự nhau. Phương pháp này có vai trò như đầu vào của SystemC và đầu
ra là tốc độ của quá trình kiểm chứng
- Đơn vị cơ bản của mô phỏng SystemC là chu kỳ delta và quy trình mô phỏng
hoàn chỉnh là một chuỗi các chu kỳ delta. Trong suốt chu kỳ delta, mô phỏng đi
qua bước đánh giá và các thông báo khác nhau về sự kiện và thời gian. Cơ sở của
đóng góp của chúng tôi bao gồm một chuỗi các thuật toán thông qua đó chúng tôi
tìm kiếm chu kỳ delta tương đương mà chúng tôi đã đặt tên là các kịch bản tương
đương.
- Các chức năng trong mỗi SC MODULE() được gọi là quy trình. Đối với mỗi quy
trình, chúng tôi tạo ra một tự động hóa bao gồm các trạng thái và tương tác. Chúng
tôi kết hợp những tự động hóa đó để tạo ra tự động hóa tổng cộng biểu diễn toàn
bộ hệ thống và là một tập hợp các chu kỳ delta khác nhau.
- Do có một số chu kỳ delta dư thừa giữa các đường dẫn khác nhau và một số
đường dẫn là một tập hợp của các chu kỳ delta rỗng nơi các mệnh đề nguyên tử
của thuộc tính không xuất hiện. Do đó, điều này dẫn chúng tôi đến lựa chọn các
kịch bản mà chúng tôi có thể chắc chắn và có thể xác minh được sự thoả mãn của
các thuộc tính.
- Bằng cách tạo ra các bước delta hợp lệ cho mỗi quy trình từ một ý tưởng
SystemC tuân thủ ý nghĩa của nó. Sau đó, chúng tôi tạo ra tất cả các kết hợp có thể
giữa các bước delta để xây dựng các chu kỳ delta có thể. Đồng thời, để đại diện tốt
nhất cho môi trường mô phỏng, chúng tôi trích xuất từ những chu kỳ delta đó
những chu kỳ hợp lệ. Trong bước cuối cùng, thông qua các thuộc tính được chỉ
định, chúng tôi chọn một mẫu chu kỳ delta đại diện cho tất cả những khác. Chúng
tôi gọi chúng là "chu kỳ delta tương đương". Từ kết quả này, chúng tôi cố gắng tìm
kiếm các đường dẫn tương đương đưa chúng tôi nhanh chóng đến kết quả xác
minh.
- Mã hóa:
Thuộc tính Presence Absence
The property in the interaction 1 0
Wait (event) Event.notify()
Bit Value (Presence) 1 1
Bit Value (Absence) 0 0
𝑏 𝑏
Interaction ≡ 0 1 … 𝑏 𝑏 𝑏
𝑀 − 2 𝑀 − 1 ( 𝑖 € {0,1})

M = M1 + M2 vì vậy
- Bit đầu tiên(M1): 𝑏0 𝑏1 𝑏 𝑗 ≡ 𝑏0 𝑏1 𝑏 𝑀 1
- Bit cuối cùng(M2):𝑏 𝑗+1 𝑏 𝑗 +2 𝑏 𝑀 −1 ≡ 𝑏 𝑀 − 𝑀 2 𝑏 𝑀 1
- Quá trình triển khai nghiên cứu
1) Thuật toán Sinh Các Dãy Được Chọn cho Một Tự động hóa:
vector<vector<vector<int>>> Ensemble_traces(vector<vector<vector<int>>> T,
vector<vector<vector<int>>> Result,
vector<vector<int>> bak, int s,
int SR, int count, int E) {
// ... Thực thi mã nguồn ...
ensemble_DC[B].insert(ensemble_DC[B].end(), iterBeginF, iterEndF);
// ... Thực thi mã nguồn ...
return ensemble_traces;
}

Hàm này, Ensemble_traces, dường như sinh các dãy được chọn cho một tự động
hóa dựa trên các tham số đầu vào nhất định. Nó thực hiện các phép toán trên vector
để xây dựng các dãy kết quả.
2) Thuật toán Sinh Các Kịch bản Được Chọn
vector<vector<int>> ensemble_DCV;
// ... Thực thi mã nguồn ...
ensemble_DCV[c].assign(ensemble_DC[B].begin(), ensemble_DC[B].end());

Đoạn mã này dường như trích xuất các kịch bản được chọn từ tập hợp các chu kỳ
delta và gán chúng cho ensemble_DCV.

C. Thuật toán Tìm kiếm Các Kịch bản Tương Đương


vector<vector<int>> ensemble_DCE;
// ... Thực thi mã nguồn ...
ensemble_DCE[d].assign(ensemble_DCV[c].begin(), ensemble_DCV[c].end());

Phần mã này dường như thực hiện một thuật toán tìm kiếm cho các kịch bản tương
đương. Nó thao tác trên các vector và gán giá trị dựa trên một số điều kiện nhất
định, có thể xác định các kịch bản tương đương.

You might also like