DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Аналіз програмної моделі процесу роботи арифметичного конвеєра, ч.2

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

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

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

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

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” / Звіт До Лабораторної роботи №4 З дисципліни: «Комп'ютерні системи» на тему: «Аналіз програмної моделі процесу роботи арифметичного конвеєра, ч.2» Мета роботи: Навчитись здійснювати аналіз програмних моделей комп’ютерних систем, виконаних на мові System C. Хід роботи Завдання Здійснити модернізацію функцій або параметрів арифметичного конвеєра (див. лабораторну роботу № 3), шляхом під’єднання розроблених модулів S1 та S2 (див. лабораторну роботу № 2). Порядок та тип з’єднання мають бути обгрунтовані, можливо розробка буферних або додаткових модулів з метою надавання нових властивостей тестувальній моделі. Лістинг змінених файлів тестової програми #include "systemc.h" #include "stage1.h" #include "stage2.h" #include "stage3.h" #include "s1.h" #include "s2.h" #include "display.h" #include "numgen.h" int sc_main(int, char *[]) { //Signals sc_signal<double> in1; sc_signal<double> in2; sc_signal<double> sum; sc_signal<double> diff; sc_signal<double> prod; sc_signal<double> o1; sc_signal<double> r1; sc_signal<double> r2; sc_signal<double> o2; sc_signal<double> quot; sc_signal<double> powr; //Clock sc_signal<bool> clk; numgen N("numgen"); //instance of `numgen' module N(in1, in2, clk); //Positional port binding S1 s_1("s1"); s_1(in1, in2, power, o1, clk); S2 s_2("s2"); s_2(o1, o2, r1, r2, clk); stage1 S_1("stage1"); //instance of `stage1' module //Named port binding S_1.in1(r1); S_1.in2(r2); S_1.sum(sum); S_1.diff(diff); S_1.clk(clk); stage2 S_2("stage2"); //instance of `stage2' module S_2(sum, diff, prod, quot, clk); //Positional port binding stage3 S_3("stage3"); //instance of `stage3' module S_3(prod, quot, powr, clk); //Positional port binding display D("display"); //instance of `display' module D(powr, clk); //Positional port binding sc_start(0, SC_NS); //Initialize simulation for (int i = 0; i < 50; i++) { clk.write(1); sc_start(10, SC_NS); clk.write(0); sc_start(10, SC_NS); } return 0; } #ifndef TEST_SYSTEMC_S1_H #define TEST_SYSTEMC_S1_H #include "systemc.h" #include "cmath" #include "s2.h" SC_MODULE (S1) { sc_in<double> x; sc_in<double> y; sc_out<double> o1; sc_out<double> o2; sc_in<bool> clk; SC_CTOR(S1) { SC_METHOD(calc_o1); sensitive << x << y << clk.pos(); SC_METHOD(calc_o2); sensitive << x << y << clk.pos(); } void calc_o2() { double x_val = x.read(); double y_val = y.read(); double acc = 0; acc += ((x_val + y_val) / 2.0) & (2 >> x_val); f1.write(acc); } void calc_o1() { double x_val = x.read(); double y_val = y.read(); o1.write(x_val - y_val); } }; #endif //TEST_SYSTEMC_S1_H #ifndef TEST_SYSTEMC_S2_H #define TEST_SYSTEMC_S2_H #include "systemc.h" SC_MODULE(S2) { sc_in<double> a; sc_in<double> b; sc_out<double> r1; sc_out<double> r2; sc_in<bool> clk; SC_CTOR(S2) { SC_METHOD(calc_r1); sensitive << a << b << clk.pos(); SC_METHOD(calc_r2) sensitive << a << b << clk.pos(); } void calc_r1() { double a_val = a.read(); double b_val = b.read(); r1.write(a_val * b_val); } void calc_r2() { r2.write(16); } }; #endif //TEST_SYSTEMC_S2_H Модель арифметичного конвеєра з внесеними змінами / Висновок: на даній лабораторній роботі я навчитився здійснювати аналіз програмних моделей комп’ютерних систем, виконаних на мові System C.
Антиботан аватар за замовчуванням

24.11.2018 16:26

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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