Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет ,,Львівська політехніка”
Кафедра електронних обчислювальних машин
Звіт до лабораторної роботи№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, порядком інсталяції та використання на прикладі елементарного проекту.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!