Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет ,,Львівська політехніка”
Кафедра електронних обчислювальних машин
Звіт до лабораторної роботи№4
з дисципліни:
,,Проектування комп'ютерних
систем та мереж”
виконав
ст.гр.КСМ-5
Львів – 2007
Тема:
SystemC : інсталяція і користування. Елементарна модель Hello World.
Мета:
Ознайомитись з бібліотекою класів SystemC та структурою елемен-тарного проекту Hello world.
Завдання:
Провести інсталяцію SystemC та дослідити виконання елементарного проекту в середовищі SystemC.
Теоретичні відомості:
SystemC – це бібліотека класів С++, яка виникла у відповідь на все більш зростаючі потреби у мові, яка б збільшувала продуктивність роботи розробників електронних систем. Сучасні системи зазвичай містять в своєму складі програмну та апаратну частини, що розробляються у вкрай жорстких часових рамках та вимогах до продуктивності, що вимагає всебічної функціональної перевірки розробленої системи для запобігання виникненню помилок.
SystemC пропонує значний виграш у продуктивності завдяки поєднанню процесів проектування програмної та апаратної частин системи на вищому рівні абстракції. Цей рівень надає розробнику можливість вже на початку проектування побачити структуру системи в цілому, таким чином легше уявляючи процес взаємодії між її окремими частинами, виявити «проблемні місця», провести верифікацію на більш ранніх етапах проектування. Власне кажучи, SystemC не є тією «панацеєю», що обіцяє вирішити усі проблеми розробників. Однак, при появі цієї бібліотеки разом з бібліотекою тестування SystemC Verification Library в них поєдналися багато характеристик, які були повністю відсутні чи слабо представлені в інших мовах проектування.
Характеристики бібліотеки SystemC:
SystemC є засобом сумісного проектування апаратури та програмного забезпечення, а також опису архітектури складних систем завдяки наступним характеристикам:
- Модулі – у SystemC є поняття контейнеру класу, що має назву «модуль». Це є ієрархічна структура, що може містити інші модулі та (чи) процеси.
- Процеси – процеси використовуються для функціонального опису системи. Процеси входять до складу модулів. SystemC підтримує три різні абстракції процесів для використання розробниками ПЗ та апаратури.
- Порти – модулі містять порти, що використовуються для з’єднання з іншими модулями. SystemC підтримує одно – та двонаправлені порти.
- Сигнали – SystemC підтримує як складні, так і прості сигнали. Складні сигнали можуть мати більш ніж одне джерело.
- Великий набір типів даних - SystemC має великий набір типів даних для підтримки багатьох областей проектування та рівнів абстракції. Типи даних з фіксованою точністю використовуються для швидкої симуляції. Типи даних з довільною точністю використовуються для операцій з великими значеннями.
- Сигнали синхронізації – SystemC має спеціальний набір сигналів синхронізації.
Виконання лабораторної роботи:
1.Лістинг проекту:
#include <systemc.h>
#include <iostream.h>
SC_MODULE(hello_systemC)
{ //оголошення класу модуля
sc_in_clk iclk; //оголошення сигналу тактових імпульсів
SC_CTOR(hello_systemC)
{ //створення конструктора модуля
SC_METHOD(main_method) ; //головний процес
sensitive << iclk.neg(); //визначення чутливості процесу
dont_initialize(); //ігнорування ініціалізованого виклику
} //закінчення створення конструктора модуля
//кінець оголошення класу модуля
void main_method(void) //метод класу
{
std::cout << sc_time_stamp()<<" Hello world!" << std::endl;
} //кінець методу класу
};
//тестбенч створеного проекту
int sc_main(int argc, char* argv[])
{
const sc_time t_PERIOD (8,SC_NS) ;
sc_clock clk ("clk", t_PERIOD);
hello_systemC U1 ("iHelloWorld");
U1.iclk(clk) ;
sc_start(45,SC_NS ) ;
return (0);
}
Завантажений в Navigator SystemC проект HELLO:
2.Результати дослідження роботи проекту:
Висновок:
На даній лабораторній роботі я ознайомився з SystemC, порядком інсталяції та використання на прикладі елементарного проекту.