title: SystemC_Simulation_Kernel category: systemc createdAt: 2024312 lang: 'vi*VN' description: SystemC_Simulation_Kernel meta:

  • name: description content: SystemC_Simulation_Kernel
  • name: keywords content: SystemC_Simulation_Kernel

prev: false next: false


Trình mô phỏng SystemC có 3 giai đoạn (phase) hoạt động chính: elaboration (xây dựng), execution (thực thi) và cleanup.

image_1

Hình: SystemC simulation kernel tham khảo https://raw.githubusercontent.com/SingularityKChen/PicUpload/master/img/20200612215332.png (opens new window)

# Các phase sẽ diễn ra theo trình tự sau:

a. Elaboration — gọi hàm Construction của các module

b. Elaboration — Callbacks đến hàm before_end_of_elaboration

c. Elaboration — Callbacks đến hàm end_of_elaboration

d. Simulation — Callbacks đến hàm start_of_simulation

e. Simulation — Initialization phase

f. Simulation — Evaluation, update, delta notification, and timed notification phases (repeated)

g. Simulation — Callbacks đến hàm end_of_simulation

h. Simulation — gọi hàm Destruction của các module

Chi tiết các phase của trình mô phỏng.

# 1. Elaboration

Các câu lệnh thực thi trước khi chương trình gọi hàm sc_start() được gọi là Elaboration phase (Gia đoạn xây dựng). Mục đích chính của giai đoạn này là tạo ra các cấu trúc dữ liệu nội bộ để hỗ trợ ngữ nghĩa của mô phỏng. Trong giai đoạn elaboration, các phần của cấu trúc module (module, port, primitive channel và process) được tạo ra, và các port và export được liên kết với các channel. Đây được xem là giai đoạn chuẩn bị cho Execution phase.

# 2. Execution

2.1 Initialization

Tạo quy trình (process) và gán giá trị ban đầu cho các biến (value) và tín hiệu (signal).

2.2 Evaluate

  • Thực hiện việc chạy tuần tự các quy trình (process).
  • Trình mô phỏng sẽ tạm dừng (suspends) tại câu lệnh wait() hoặc chấm dứt process khi kết thúc hàm.

2.3 Update

  • Sau khi evaluating process, giai đoạn cập nhật (Update phase) sẽ thực thi việc cập nhật các tính hiệu (signals) dựa trên các process đã thực thi.
  • Nếu có process mới cần được kích hoạt, chúng sẽ được đưa vào hàng đợi queue cho việc thực thi sau này.

2.4 Advance Time

  • Nếu không có process nào được bổ sung hoặc cần được đánh giá tại thời điểm đó (do cập nhật (Update)), trình mô phỏng sẽ chuyển sang giai đoạn tăng thời gian (Advance time).
  • Thời gian mô phỏng sẽ di chuyển đến thời điểm gần nhất với sự kiện đã lên lịch. Các tiến trình chờ đợi thời gian cụ thể đó sẽ có thể được kích hoạt chạy.

2.5 Delta Notification

  • một process thực thi *> đánh giá Evaluate *> và cập nhật Update trong cùng thời gian mô phỏng gọi là một chu trình delta (a delta cycle).

# 3. Cleanup

  • Destroy các object đã được khởi tạo.
  • Giải phóng bộ nhớ.
  • Đóng các file đã được mở ...

# SystemC Home