Дисципліни:
Лабораторна робота №2
На тему:

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

Дисципліна: Комп'ютерні системи
ВНЗ:НУ «ЛП»
Формат: Word Doc

Переглядів: 1081 Додано: 2013-02-05




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

Контрольні питання


1. Поясніть поняття “примітивний канал ”. Примітивні канали не демонструють ніякої видимої структури, не містять процеси і не можуть напряму мати доступ до інших примітивних каналів.
2. Поясніть поняття “простий канал ”. Одночасні дії вимагають спеціальної обробки як у випадку простих каналів, таких як сигнали, так і у випадку більш спеціалізованих типів простих каналів. Приклади включають одночасні операції читання і запису як у випадку черги, так і у випадку одночасного запиту на шину кількох активних елементів.
3. Поясніть поняття “ієрархічний канал ”. Ієрархічні канали це модулі, які можуть мати структуру, містити інші модулі і процеси і мати доступ прямий до інших каналів.
4. Коли використовуються примітивні канали? Примітивні канали використовують: Коли потрібно використовувати схему модифікації запиту. Коли канали базові і їх не можна поділити на дрібініші частини. Коли швидкість критична величина (при примітивних каналах, можно скоротити кількість дельта-циклів ) Коли не має змісту намагатись створити канал (наприклад семафор або прапорець стану) поза процесами і іншими каналами.
5. Коли використовуються ієрархічні канали? Ієрархічні канали використовують: Коли канали є дійсно ієрархічними і користувачі хотіли б мати змогу дослідити внутрішню структуру. Коли канали містять процеси. Коли канали містять інші канали.
6. Що включають атрибути каналу? Адреси (у випадку, коли модуль не використовує спеціалізовані порти, де адреси були визначені як аргументи методів доступу) Схеми адресації (наприклад базова адреса проти авто-приросту) Підключення модуля як господаря чи раба, або господаря/раба Пріоритети Розміри буфера
7. Наведіть правило проектування каналу sc_signal. Може бути під’єднано не більш ніж один драйвер, тобто не більше ніж один вихід (sc_out) або двонаправлений порт (sc_inout). Може під'єднуватися довільне число вхідних портів (sc_in).
8. Наведіть правило проектування каналу sc_resolved_rv . Довільна кількість вхідних, вихідних, і двонаправлених портів може приєднуватися.
9. Наведіть правило проектування каналу sc_fifo . Може бути приєднано не більше одного вхідного порту. Може бути приєднано не більше одного вихідного порту. Заборонені двонаправлені порти.
10. Дайте приклади на SystemC підключення портів до каналу. sc_fifo 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
11. Які є типи портів у SystemC? В SystemC 1.0, є три основні типи портів: sc_in, sc_out, і sc_inout. Вони отримані з базового класу sc_port. Кожен з них забезпечує набір методів інтерфейсу: read() і write().
12. Дайте приклади реалізації інтерфейсів на SystemC. // приклад read інтерфейсу: sc_read_if // цей інтерфейс забезпечує метод 'read' template class sc_read_if : public sc_interface { public: // методи інтерфейсу virtual const T& read() const = 0; }; // приклад write інтерфейсу: sc_write_if // цей інтерфейс забезпечує метод ‘write’ template class sc_write_if : public sc_interface { public: // методи інтерфейсу virtual void write( const T& ) = 0; }; // приклад read/write інтерфейсу:sc_read_write_if template class sc_read_write_if : public sc_read_if, public sc_write_if {};