Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти, науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
ЗВІТ
до лабораторної роботи №2
на тему: «Ознайомлення з основними конструкціями мови моделювання System C»
з предмету: «Комп’ютерні системи»
Підготував: ст.гр. КІ-41
Глова Ю.І.
Прийняв:
Муляревич О.В.
Львів 2017
Тема: Ознайомлення з основними конструкціями мови моделювання System C
Мета роботи: Ознайомлення з основними конструкціями мови моделювання System C
Контрольні питання
Поясніть поняття “примітивний канал ”.Примітивні канали не демонструють ніякої видимої структури, не містять процеси і не можуть напряму мати доступ до інших примітивних каналів.
Поясніть поняття “простий канал ”.Одночасні дії вимагають спеціальної обробки як у випадку простих каналів, таких як сигнали, так і у випадку більш спеціалізованих типів простих каналів. Приклади включають одночасні операції читання і запису як у випадку черги, так і у випадку одночасного запиту на шину кількох активних елементів.
Поясніть поняття “ієрархічний канал ”.Ієрархічні канали це модулі, які можуть мати структуру, містити інші модулі і процеси і мати доступ прямий до інших каналів.
Коли використовуються примітивні канали?Примітивні канали використовують:Коли потрібно використовувати схему модифікації запиту.Коли канали базові і їх не можна поділити на дрібініші частини.Коли швидкість критична величина (при примітивних каналах, можно скоротити кількість дельта-циклів )Коли не має змісту намагатись створити канал (наприклад семафор або прапорець стану) поза процесами і іншими каналами.
Коли використовуються ієрархічні канали?Ієрархічні канали використовують:Коли канали є дійсно ієрархічними і користувачі хотіли б мати змогу дослідити внутрішню структуру.Коли канали містять процеси.Коли канали містять інші канали.
Що включають атрибути каналу?Адреси (у випадку, коли модуль не використовує спеціалізовані порти, де адреси були визначені як аргументи методів доступу)Схеми адресації (наприклад базова адреса проти авто-приросту)Підключення модуля як господаря чи раба, або господаря/рабаПріоритетиРозміри буфера
Наведіть правило проектування каналу sc_signal<T>.Може бути під’єднано не більш ніж один драйвер, тобто не більше ніж один вихід (sc_out<T>) або двонаправлений порт (sc_inout<T>). Може під'єднуватися довільне число вхідних портів (sc_in<T>).
Наведіть правило проектування каналу sc_resolved_rv<N> .Довільна кількість вхідних, вихідних, і двонаправлених портів може приєднуватися.
Наведіть правило проектування каналу sc_fifo<T> .Може бути приєднано не більше одного вхідного порту. Може бути приєднано не більше одного вихідного порту. Заборонені двонаправлені порти.
Дайте приклади на SystemC підключення портів до каналу. sc_fifo<int> fifo( 10 );
// з’єднати рорт ‘out’ з модуля ‘mod_a’ до каналу;
// this will register port ‘out’ with channel ‘fifo’
mod_a.out( fifo );
// connect port ‘in’ from module ‘mod_b’ to the channel;
// this will register port ‘in’ with channel ‘fifo’
mod_b.in( fifo );
// канал ‘fifo’ не може мати більше ніж два порти
mod_c.in( fifo );
//Error
Які є типи портів у SystemC? В SystemC 1.0, є три основні типи портів: sc_in<T>, sc_out<T>, і sc_inout<T>. Вони отримані з базового класу sc_port. Кожен з них забезпечує набір методів інтерфейсу: read() і write().
Дайте приклади реалізації інтерфейсів на SystemC.// приклад read інтерфейсу: sc_read_if
// цей інтерфейс забезпечує метод 'read'
template <class T>
class sc_read_if : public sc_interface {
public:
// методи інтерфейсу
virtual const T& read() const = 0;
};
// приклад write інтерфейсу: sc_write_if
// цей інтерфейс забезпечує метод ‘write’
template <class T> class sc_write_if : public sc_interface {
public:
// методи інтерфейсу
virtual void write( const T& ) = 0;
};
// приклад read/write інтерфейсу:sc_read_write_if
template <class T>
class sc_read_write_if : public sc_read_if<T>, public sc_write_if<T>
{};
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!