DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

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

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

Рік:
2026
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютерні системи
Група:
КН-1
Коротко про документ

Про що ця робота

У лабораторній роботі досліджуються основні конструкції мови моделювання System C та особливості її використання. Наведено приклади реалізації та з'єднання модулів за допомогою інтерфейсів і каналів.

У роботі розглядаються

  • System C
  • Мови моделювання
  • Інтерфейси і канали
  • Адаптери зв'язку
  • Апаратне моделювання
  • Програмна реалізація модулів
  • Синхронізація процесів

Зміст і розділи

  1. Теоретична частина
  2. Завдання
  3. Код програми
  4. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають комп'ютерні системи та моделювання.
Викладачі:Муляревич О. В.

Ключові поняття

System CмодульпортканалінтерфейсFIFOсигнал синхронізаціїSC_MODULEмоделювання

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота № 2 з курсу ”Комп’ютері системи” на тему: “ Ознайомлення з основними конструкціями мови моделювання System C.” Прийняв: Муляревич О. В. Львів -2018 Тема: Ознайомлення з основними конструкціями мови моделювання System C. Мета роботи: Ознайомлення з основними конструкціями мови моделювання System C. Теоретична частина: ІНТЕРФЕЙСИ, ПОРТИ І КАНАЛИ Інтерфейси, порти і канали - блокі формування для синхронізації процесу і покращення комунікації. Інтерфейс визначає сукупність методів, але не виконує їх. Це функціональний об’єкт без будь-яких даних, щоб не передбачувати деталей реалізації. Канал реалізовує один чи більше інтерфейсів. Порт запускає модуль доступаючи до інтерфейсу каналу. Порт визначен в межах типу інтерфейсу,він може викорисовуватися тільки з каналами, які реалізують його тип інтерфейсу. Є примітивні і ієрархічні канали. Примітивні не демонструють ніякої видимої структури, не містять процеси і не можуть напряму мати доступ до інших примітивних каналів. Ієрархічні канали це модулі, які можуть мати структуру, містити інші модулі і процеси і мати доступ прямий до інших каналів. Використання інтерфейсів запускає схему виклику методу інтерфейсу ІМC. ІМC посилається на процес, який викликає метод інтерфейсу каналу. Метод інтерфейсу реалізовується в каналі, але виконується в середовищі процесу, який його викликав. Приклад методу інтерфейсу – поблокове зчитування FIFO. Коли викликається цей метод інтерфейсу, процес, який його викликає, може бути призупинений, якщо не доступно достатньо даних. УДОСКОНАЛЕННЯ З’ЄДНАНЬ. Можливість проектувати визначені користувачем зв’язки з довільним інтерфейсом підтримується інтерфейсним стилем дизайну. Цей вид проектування дозволяє легко та гнучко проводити процес з’єднання, що дозволяє реалізувати абстрактні з’єднувальні канали. Приклад з’єднання двох функціональних моделей через FIFO канал. Найважливіші компоненти коду джерела перелічені в Приклад 1.Видно, що методи read() та write(.) забезпечені інтерфейсом sc_fifo який використовується для ініціалізації read та write компонентів .Тепер ця програма може реалізувати з’єднання так, що використовується реалізація HW буфера FIFO. Для спрощення ми використовуємо компонент з простим (handshaking) інтерфейсом.Тепер, ми покроково перетворюємо звязки. Перетворення каналу Ми заміняємо sc_fifo з hw_fifo. Включення адаптера Ми вставляємо “адаптери” для перетворення інтерфейсів , які використовуються джерелом та приймачем , в HW-інтерфейс , який забезпечений hw_fifo. Перевірка на відповідність Виконання проекту. В процесі виконання поведінка процесу може змінитися, це зумовлене тим, що hw_fifo використовується замість sc_fifo (в більшості випадків read\write проводиться за один цикл). Потрібно переконатися, що система поводить себе задовільно. Покращення інтерфейсу З’єднання джерела та адаптера дозволяє не використовувати абстрактний інтерфейс. Це перетворює інтерфейс моделі джерела з користувача абстрактного інтерфейса, (методи read() та write(.)), в інтерфейс, що базується на виході HW. Те саме відбувається з приймачем. Для більш детального вивчення ми зосередимося на джерелі до кінця розділа. Повторна перевірка на відповідністьПеревиконання дизайну. Процес має проходити так само, як і на третьому кроці. Два ключові кроки: вставка адаптера і вдосконалення інтерфейсу. Використання адаптерів – гнучкий і інтуїтивний підхід. У ІР – центрованому середовищі передбачається, що розробник по вдосконаленні каналів зв’язку також забезпечить адаптери під стандартний інтерфейс на зразок інтерфейсу читання/запису, який використовується sc_fifo. Використання адаптерів робить можливим підхід SystemC на основі інтерфейсу звязку. Модулі не уточнюють, що вони потебують визначеного типу каналу. Замість того вони визначають який інтерфес канал повинен забезпечити. Це передбачає заміну каналу на інший, який реалізує той самий інтерфейс. Завдвння: Вхідні дані: Х = № варіанту за списком в журналі. Y = сума ASCII code першої літери прізвища + першої літери імені. Реалізувати модулі S1 та S2, разом з логікою їх функціонування згідно варіанту, провести послідовне з’єднання S1 та S2 ініціалізувати необхідні порти на S1. На вхід S2 подати вихідні порти модуля S1. До кожного модуля заводиться зовнішній вхідний для всіх сигнал синхронізації CLK. Результати подати на модуль Display для відображення. Завдання по реалізації модуля «S1». Номер варіанту (1 - 5) визначається як остача від ділення на 5 номера в списку журналу: 1) 2 вихідних порта o1, o2 o1 = X – Y; o2 = (X + Y / 2.0) && (X >> 2); 2) 2 вихідних порта sum, f1 sum = X + Y; f1 = (X xor Y) – (X << 1); 3) 2 вихідних порта f1, f2 f1 = Y + X!; f2 = X / Y; (+ check if Y != 0) 4) 2 вихідних порта power, f1 power = Pow(X, Y) ; f1 = X * 1 + X * 2 + X * 3 + …. + X * Y; 5) 2 вихідних порта f1, rep f1 = X < Y ? X - Y : Y - X; rep = Y > 0 ? Y! : X!; 2 вихідні порти з модуля S1 довільно під’єднуються до вхідних портів модуля S2: a та b. Варіанти для реалізації модуля S2: Варіант Завдання  1, 11, 21 Обчислити r1 = a * b, r2 = b – a;  2, 12, 22 Обчислити r1 = 3!, r2 = pow(b, a);  3, 13, 23 Обчислити r1 = a!, r2 = b + a * b;  4, 14, 24 Обчислити r1 = a * a, r2 = b * b;  5, 15, 25 Обчислити r1 = a + b , r2 = Номер варіанту;  6, 16, 26 Обчислити r1 = a * b , r2 = Номер варіанту;  7, 17, 27 Обчислити r1 = XOR (a, b) , r2 = NOT( XOR(a, b)); операції NOT & XOR побітово.  8, 18, 28 Обчислити r1 = AND (a, b) , r2 = NOT( AND (a, b)); операції NOT & AND побітово.  9, 19, 29 Обчислити r1 = OR (a, b) , r2 = NOT( OR (a, b)); операції NOT & OR побітово.  10, 20, 30 Обчислити r1 = b / a , r2 = a / b;   Код програми: #include "pch.h" #include "systemc.h" #include <iostream> #include "stdio.h" SC_MODULE(S1) { sc_int < 4 > x; sc_int < 297 > y; sc_in <bool> clk; sc_signal < sc_uint< 0 >> f1; sc_signal < sc_uint< 0 >> f2; SC_CTOR(S1) { SC_METHOD(F1) SC_METHOD(F2) }; void F1() { int res = 1; for (int i = 1; i <= x; i++) res = res * i; f1 = y + res; } void F2() { f2 = x / y; } }; SC_MODULE(S2) { sc_int < 0 > a; sc_int < 0 > b; sc_in <bool> clk; sc_int < 0 > r1; sc_int < 0 > r2; sc_in<float>f1; sc_in<float>f2; SC_CTOR(S2) { a = f2; b = f1; SC_METHOD(R1) SC_METHOD(R2) } void R1() { int res = 1; for (int i = 1; i <= a; i++) res = res * i; r1 = a; } void R2() { r2 = b + a * b; } }; SC_MODULE(Display) { sc_in<int>r1; sc_in<int>r2; SC_CTOR(Display) { cout << r1 << endl; cout << r2 << endl; } }; Результат виконання програми :  Висновок: На лабораторній роботі ми ознайомились з основними конструкціями мови моделювання System C.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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