Ознайомлення з основними конструкціями мови моделювання System C

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” / Звіт До лабораторної роботи №2 З дисципліни: «Комп'ютерні системи» на тему: «Ознайомлення з основними конструкціями мови моделювання System C» Мета роботи: Ознайомитися з основними конструкціями мови моделювання System C. Хід роботи Варіант – 6 Х = 6 Y = 167 Реалізувати модулі S1 та S2, разом з логікою їх функціонування згідно варіанту, провести послідовне з’єднання S1 та S2 ініціалізувати необхідні порти на S1. На вхід S2 подати вихідні порти модуля S1. До кожного модуля заводиться зовнішній вхідний для всіх сигнал синхронізації CLK. Результати подати на модуль Display для відображення. S1 2 вихідних порта o1, o2 o1 = X – Y; o2 = (X + Y / 2.0) && (X >> 2); S2 r1 = a * b , r2 = 6; Схема зв’язків модулів Код програми #ifndef TEST_SYSTEMC_S1_H #define TEST_SYSTEMC_S1_H #include "systemc.h" #include "cmath" #include "s2.h" SC_MODULE (S1) { sc_in<int> x; sc_in<int> y; sc_out<int> o1; sc_out<int> o2; sc_in<bool> clk; SC_CTOR(S1) { SC_METHOD(calc_o2); sensitive << x << y; sensitive_pos << clk; SC_METHOD(calc_o1); sensitive << x << y; sensitive_pos << clk; } void calc_o2() { int x_val = x.read(); int y_val = y.read(); double acc = 0; acc += ((x_val + y_val) / 2.0) & (2 >> x_val); o2.write(acc); } void calc_o1() { int x_val = x.read(); int y_val = y.read(); o1.write(x_val - y_val); } }; #endif //TEST_SYSTEMC_S1_H// s2.h #ifndef TEST_SYSTEMC_S2_H #define TEST_SYSTEMC_S2_H #include "systemc.h" SC_MODULE(S2) { sc_in<int> a; sc_in<int> b; sc_out<int> r1; sc_out<int> r2; sc_in<bool> clk; SC_CTOR(S2) { SC_METHOD(calc_r1); sensitive << a << b; sensitive_pos << clk; SC_METHOD(calc_r2) sensitive << a << b; sensitive_pos << clk; } void calc_r1() { int a_val = a.read(); r1.write(a_val * a_val); } void calc_r2() { int b_val = b.read(); r2.write(6); } }; #endif //TEST_SYSTEMC_S2_H // main.cpp #include <iostream> #include <systemc.h> #include "s1.h" #include "s2.h" int sc_main(int argc, char *argv[]) { sc_signal<int> x{"x", 6}; sc_signal<int> y{"y", 167}; sc_signal<int> o2{"o2"}; sc_signal<int> o1{"o1"}; sc_signal<int> r1{"r2"}; sc_signal<int> r2{"r1"}; sc_clock clk("clk", 1, SC_NS, 0.5); S1 s1("s1"); S2 s2("s2"); s1.clk(clk); s2.clk(clk); s1.x(x); s1.y(y); s1.o2(o2); s1.o1(o1); s2.a(o2); s2.b(o1); s2.r1(r1); s2.r2(r2); sc_start(10, SC_NS); std::cout << "x: " << x.read() << std::endl; std::cout << "y: " << y.read() << std::endl; std::cout << "r1: " << r1.read() << std::endl; std::cout << "r2: " << r2.read() << std::endl; return 0; } Результат виконання x: 6 y: 167 r1: 13568067 r2: 6 Висновок: на даній лабораторній роботі я ознайомився з основними конструкціями мови моделювання System C. Створив програму та відлагодив її за допомогою System C .
Антиботан аватар за замовчуванням

24.11.2018 16:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!