Симуляция проектов SystemC
Пример смешения SystemC и HDL

        В следующем примере у вас есть тестовый стенд SystemC, в который установлены HDL модули. В порядке организации интерфейса между тестовым стендом SystemC и модулем HDL, вы должны создать модуль-заглушку, декларировать сторонний модуль. Вы можете использовать утилиту scgenmod для создания декларированного стороннего модуля. В завершении вы свяжете созданные файлы объекта С, используя sccom -link.

        1. Создайте новую директорию проекта для этого занятия и скопируйте в неё все файлы из /examples/systemc/sc_vlog.
        Если у вас есть лицензия VHDL, скопируйте все файлы из /examples/systemc/sc_vhdl соответственно.

        2. Запустите ModelSim и измените директорию примера. Если вы закончили предыдущий урок, то ModelSim уже запущен, если нет – запустите его.
        а. Введите vsim в командной строке. Если появится диалог приветствия кликните Close.
        б. Выберите File > Change Directory и смените на директорию, созданную вами в п.1.

        3. Установите рабочую библиотеку.
        а. Введите vlib work в окне ModelSim Transcript для создания рабочей библиотеки.

        4. Скомпилируйте проект.
        а. Verilog:
        Введите vlog *.v в окне ModelSim Transcript для компиляции всех исходных файлов Verilog.
        VHDL:
        Введите vcom -93 *.vhd в окне ModelSim Transcript для компиляции всех исходных файлов VHDL.

        5. Создайте декларируемый сторонний модуль (заглушку SystemC) для модуля Verilog ringbuf.
        а. Verilog:
        Введите scgenmod -map "scalar=bool" ringbuf > ringbuf.h в ModelSim> приглашение на ввод команды.
        Аргументы -map "scalar=bool" используются для генерирования типов булевых скалярных портов внутри декларируемого стороннего модуля. Обратитесь к scgenmod за подробной информацией.
        VHDL:
        Введите scgenmod ringbuf > ringbuf.h в ModelSim> приглашение на ввод команды.
        Результат переадресовывается в файл ringbuf.h (рис. 6-3).

        Файл test_ringbuf.h содержится в файле test_ringbuf.cpp, как показано на рис. 6-4.

        6. Скомпилируйте и свяжите все файлы SystemC, включая сгенерированный ringbuf.h.
        а. Введите sccom -g test_ringbuf.cpp в ModelSim> запрос команды.
        Файл test_ringbuf.cpp содержит операторы включения для test_ringbuf.h и необходимые операторы для SC_MODULE_EXPORT(top), которые информируют ModelSim о том, что модуль верхнего уровня - SystemC.
        б. Введите sccom -link в ModelSim> запрос, чтобы выполнить окончательную связь объектов SystemC.

        7. Оптимизируйте проект для видимости отладчиком.
        а. Введите следующую команду в ModelSim >запрос команды:
        vopt +acc test_ringbuf -o test_ringbuf_opt
        Ключ +acc создаёт видимость проекта средствами отладки.
        Ключ -o позволяет вам придумать имя оптимизированного файла проекта (test_ringbuf_opt).
        Внимание! Вы должны вводить имя оптимизированного файла проекта при использовании команды vopt.

        8. Загрузите проект.
        а. Загрузите проект, используя оптимизированное имя проекта.
        vsim test_ringbuf_opt

        9. Проследите за тем, чтобы окно Objects было открыто, а окно Processes было открыто в "Активном" режиме, как показано на рис. 6-5. Для открытия или закрытия этих окон, используйте меню View.

<< Назад     Оглавление     Далее >>
Хостинг от uCoz