Home / Language / [ SC Tutorial ] 1. Overview of SystemC

[ SC Tutorial ] 1. Overview of SystemC

SystemC Language Architecture

SystemC là ngôn ngữ thiết kế hệ thống dựa trên C ++. Vì C ++ đã giải quyết hầu hết các mối quan tâm phần mềm, nên không có gì ngạc nhiên khi SystemC tập trung chủ yếu vào các vấn đề không phải là phần mềm.
Các thành phần của SystemC bao gồm: Simulation Kernel, Threads & Methods, Events, Sensitive & Notifications, Channels & Interface, Modules & Hierarchy, Data types (Logic, Integers, Fixed point,…), Predefined Primitive Channels(Mutexs, FIFOs, Signals,…)

[1] C++ Mechanics for SystemC

SystemC là thư viện lớp C ++, do đó, để biên dịch và chạy chương trình SystemC, người ta phải có môi trường C ++ và SystemC .
Các thành phần của môi trường này bao gồm :

    • SystemC-supported platform
    • SystemC-supported C++ compiler
    • SystemC library (downloaded and compiled)
    • Compiler command sequence, make file, or equivalent
SystemC Compilation Flow

Compiler và linker cần biết hai thông tin dưới đây.

    • Vị trí lưu trữ file SystemC header (systemc.h).
    • Vị trí lưu trữ file thư viện SystemC (.lib, .so)

[2] A C++ Class for Hardware

SystemC cung cấp các cơ chế quan trọng để mô hình hóa phần cứng trong khi sử dụng môi trường ngôn ngữ tương thích với phát triển phần mềm. SystemC cung cấp một số cấu trúc hướng phần cứng thường không có sẵn trong ngôn ngữ phần mềm nhưng được yêu cầu mô hình hóa phần cứng

Các tính năng hướng phần cứng chính được triển khai trong SystemC bao gồm:

    • Time mode
    • Hardware data types
    • Phân cấp Module để quản lý cấu trúc và kết nối
    • Concurrency model
    • Quản lý truyền thông giữa các concurrency model
[2.1] Time Model

SystemC theo dõi thời gian với độ phân giải 64 bits bằng cách sử dụng một class được gọi là sc_time. Định nghĩa các loại thời gian tự nhiên từ femtoseconds đến seconds (SC_FS, SC_PS, SC_NS, SC_US, SC_MS, SC_SEC)

SystemC cung cấp class sc_clock  cho những models yêu cầu một clock.

[2.2] Hardware Data Types

Bên cạnh các loại dữ liệu gốc C ++ .SystemC cung cấp các loại dữ liệu tương thích phần cứng như four-state logic (0,1,X,Z) (e.g : sc_logic) , integral (e.g : sc_int<>) và fixed-point (e.g : sc_fixed<>) .

[2.3] Hierarchy and Structure

SystemC cung cấp một số cấu trúc để thực hiện hệ thống phân cấp phần cứng. Thiết kế phần cứng theo truyền thống sử dụng các khối được kết nối với wire hoặc signal cho mục đích này. Để mô hình hóa hệ thống phân cấp phần cứng, SystemC sử dụng thực thể module được kết nối với các module khác bằng các channels. Hệ thống phân cấp xuất phát từ việc khởi tạo các module trong các module khác.

[2.4] Communications Management

SystemC channel cung cấp một cơ chế mạnh mẽ để mô hình hóa truyền thông. Về mặt khái niệm, một channel không chỉ đơn giản là signal hay wire. Channels có thể đại diện cho các sơ đồ truyền thông phức tạp mà cuối cùng ánh xạ tới phần cứng quan trọng. SystemC cung cấp một số built-in channels phổ biến cho thiết kế phần mềm và phần cứng ( sc_mutex, sc_fifo, sc_signal<> …) và cuối cùng, modules kết nối tới channels thông qua class port ( sc_port<> …)

[2.5] Concurrency

Mô phỏng thực thi đồng thời được thực hiện bằng cách mô phỏng từng concurrent unit (được định nghĩa bởi SC_METHOD, SC_THREAD, hay SC_CTHREAD). Mỗi unit được phép thực hiện cho đến khi mô phỏng các unit khác được yêu cầu để giữ cho các hành vi được căn chỉnh kịp thời. Trên thực tế, bản thân code mô phỏng xác định khi trình giả lập thực hiện chuyển đổi bằng cách sử dụng các events

                                                                                                  __FreeSourceC.com__

About admin

Check Also

[ SC Tutorial ] 3. SystemC Data types

SystemC has a number of predefined data types to support hardware designs spanning from the …

Leave a Reply

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