Выпуск #2/2013
А.Сабунин
Работа с ПЛИС в Altium Designer. Функциональное моделирование
Работа с ПЛИС в Altium Designer. Функциональное моделирование
Просмотры: 5958
При программировании ПЛИС необходимо учитывать топологию печатной платы (ПП), так как большое число выводов в современных ПЛИС затрудняет разводку ПП. Кроме этого, в процессе разработки назначения выводов ПЛИС могут меняться. САПР Altium Designer дает возможность создавать проекты ПЛИС в составе проектов ПП, поддерживая связь между ними и позволяя использовать программные средства изготовителя ПЛИС.
Теги: altium designer fpga плис сad сапр
В современной электронике часто применяются программируемые логические интегральные схемы. Если раньше сложное изделие могло состоять из нескольких сотен микросхем и нескольких десятков печатных ячеек, то сегодня схему с аналогичными функциями можно "упаковать" в одну ПЛИС. В этом случае кроме ПЛИС на плате будут размещены лишь периферийные компоненты. Внешняя простота платы обеспечивается за счет сложности внутренней конфигурации ПЛИС.
Некоторые ПЛИС последних поколений могут иметь более тысячи выводов. При размещении их на ПП наибольшую трудность будет представлять разводка печатных проводников от ПЛИС к периферийным элементам. При программировании ПЛИС без учета будущей топологии платы сложность ее разработки может возрасти в несколько раз. Многие САПР ПП позволяют совместить процессы разработки платы и ПЛИС, обеспечивая взаимное сопряжение устройств и упрощение разработки.
В САПР Altium Designer есть возможность создавать проекты ПЛИС в составе проекта платы. Таким образом поддерживается вся необходимая информация о связи программной части ПЛИС и расположении выводов этой ПЛИС на плате. В рамках PCB-проекта определяется периферия ПЛИС, т.е. компоненты, входящие в состав проектируемого функционального узла, но отсутствующие в ПЛИС (кварцевые резонаторы задающих генераторов, резисторы, конденсаторы, микросхемы АЦП, конфигурационные ПЗУ, электрические соединители и т.п.).
Поскольку концепция ПЛИС предполагает программирование внутренней логики кристалла пользователем под свою задачу, библиотечные элементы ПЛИС представляются в виде заготовок, на схемном отображении которых обозначены только номера выводов микросхемы. Информация о наименованиях выводов ПЛИС появится после того, как будет реализован проект ПЛИС с внутренней конфигурацией, использующей лишь некоторые выводы микросхемы. Далее в процессе разработки платы информация о выводах может неоднократно переноситься из платы в схему, из схемы в проект ПЛИС и наоборот. Для компонентов с большим числом выводов (например, 1500) одна такая итерация может занять несколько часов, а подобные действия зачастую приходится выполнять неоднократно. На многих предприятиях России часто бывает так, что разработчики переписывают список соединений платы и редактируют по этому списку файл описания выводов ПЛИС. В этом случае вся ответственность за синхронизацию ПЛИС, схемы, и платы, на которой она установлена, лежит на пользователе! Но человеческий фактор еще никто не отменял; стоимость же современных ПЛИС может составлять несколько тысяч долларов, поэтому вполне логично выполнять эту операцию с помощью применяемой САПР.
В современных микросхемах программируемой логики количество конфигурируемых логических блоков (КЛБ) достигает нескольких десятков тысяч. Каждый КЛБ конфигурируется посредством записи в ПЛИС специальных данных, созданных при помощи соответствующего программного обеспечения (ПО). Проектирование конфигурации ПЛИС начинается с функциональной схемы. Деление на функциональные модули позволяет работать над проектом нескольким разработчикам одновременно. Также существует возможность применить в проекте ранее созданные и отлаженные макросы. Все это значительно ускоряет процесс разработки.
Функциональные модули вводятся в проект в виде электрической схемы или текстового файла с описанием электрической схемы на специальном языке. Можно создавать проекты, совмещающие схемное и описательное представления функциональных модулей. Altium Designer позволяет создавать проекты ПЛИС (File–New–Project–FPGA Project), в состав которых могут входить и схемы, и код на одном из языков описания электронных схем. Реализация проекта методом схемного ввода производится в том же графическом редакторе, в котором выполняется разработка обычных схем. Схема рисуется с применением иерархической вложенной структуры, причем верхним уровнем иерархии обязательно должен быть лист схемы (*.SchDoc). Альтернативой графическому методу является текстовое описание электронных схем на наиболее популярном сегодня языке VHDL.
После этапа создания схемы в графическом редакторе или методом текстового описания модуля проекта на VHDL выполняется функциональное моделирование. Его цель – выявление и устранение возможных логических ошибок. Следующие этапы – синтез проекта, трассировка и временное моделирование с учетом особенностей заданной микросхемы.
В Altium Designer имеются две возможности моделирования. Во-первых, это собственный инструментарий, позволяющий моделировать схему или исходную программу на языке VHDL еще до выбора конечного устройства (функциональное моделирование). Во-вторых, для временного моделирования, а также для последующего синтеза и формирования конечного кода прошивки ПЛИС может быть использовано соответствующее выбранной микросхеме ПО изготовителей ПЛИС (Altera Quartus II, Xilinx ISE Foundation и т.д.). В этом случае моделирование выполняется с помощью отладочной платы NanoBoard, которая приобретается отдельно. В этой статье рассмотрен первый вид моделирования, не требующий дополнительного оборудования, – функциональное моделирование ПЛИС.
В качестве примера возьмем простой RS-триггер, построенный на двух элементах 2И-НЕ. Он может быть реализован в виде схемы либо описан на VHDL (рис.1). Рассмотрим этапы реализации такого проекта на схемном уровне, так как этот подход более прост – для разработки не требуется знания VHDL.
Этап 1. Для формирования логики схемы, впоследствии запрограммированной в ПЛИС, используется проект PrjFpg, который создается командой File–New–Project–FPGA Project. Новый проект сразу необходимо сохранить командой File–Save Project.
Этап 2. Внутри проекта создается новый лист схемы. Для этого на панели Projects нажимаем правой клавишей мыши на название проекта и выполняем команду Add New to Project–Schematic. Схеме присваивается такое же имя, как и проекту (это требование проектов ПЛИС – лист верхнего уровня должен иметь название проекта).
Этап 3. На новом листе формируется схема, приведенная на рис.1. Для этого используются компоненты, описания которых доступны для ПЛИС. Они располагаются в библиотеках папки …Altium Designer…\Library\Fpga. Элементы булевой алгебры находятся в библиотеке FPGA Generic.IntLib.
Этап 4. После формирования схемы создается файл, в котором описываются параметры входных и выходных сигналов для моделирования проекта. Он имеет расширение .VHDTST и создается командой File–New–Other–VHD TestBench. При сохранении файла запрещено использовать имя проекта. Содержание файла приведено во врезке.
В данном случае были описаны входные и выходные порты (R, S, Q, nQ) и на входы были поданы сигналы R (период 10 нс) и S (20 нс).
Этап 5. Имея схему триггера и файл с параметрами теста, можно выполнять компиляцию проекта, предварительно задав настройки проекта – Project–Project Options. На вкладке Simulation нужно выбрать программное средство для моделирования (Tools). Если определена внешняя программа, то при запуске моделирования необходимо указать ее расположение на диске, а в строке Testbench Document – название тестового файла с параметрами входных сигналов. В последующих двух окнах (рис.2) указываются названия элемента верхнего уровня конфигурации (по программе тестового файла, обычно совпадает с названием тестового файла) и элемента верхнего уровня архитектуры.
Создание тестового файла можно выполнить (по шаблону) автоматически: Simulation–Create VHDL Testbench. В нем описание входных воздействий будет сделано по имеющимся портам. Для этого файла необходимо лишь указать абсолютные величины воздействий.
Этап 6. Далее можно начинать процесс моделирования, предварительно выполнив компиляцию. Она запускается автоматически при запуске моделирования, но у начинающих пользователей при компиляции обычно выявляется много ошибок, поэтому здесь очень важна верификация схемы, кода или тестового файла. Об особенностях этого процесса в Altium можно узнать в [2], а описание наиболее часто встречающихся ошибок в VHDL-программах выходит за рамки данной статьи.
Этап 7. После верификации и успешной компиляции проекта на экране появится окно запуска моделирования (рис.3).
Этап 8. Здесь показаны все сигналы, которые могут быть промоделированы в схеме, и предлагается выбрать те, что будут использоваться при моделировании. Выбираем входные и выходные сигналы триггера (R, S, Q, nQ) и нажимаем кнопку Done (продолжить).
Этап 9. Действия двух предыдущих этапов не запускают процесс, а лишь выполняют переход в среду моделирования (рис.4).
Этап 10. На панели управления VHDL Tools собраны стандартные команды, характерные для большинства оболочек моделирования. Процесс запускается нажатием кнопки Run Simulation…, после чего предлагается указать временной интервал. После нажатия кнопки ОК проходит процесс моделирования, и на экране отображаются его результаты (рис.5). Для анализа результатов моделирования удобно использовать бордовый маркер, передвигая который можно оценить значение сигнала в заданный момент времени.
После выполнения функционального моделирования работа с проектом ПЛИС ведется по порядку, о котором было рассказано выше. При этом пользователь, работая в Altium Designer, будет применять средства синтеза и временного моделирования, предоставленные производителем ПЛИС. Этой теме будет посвящена одна из следующих статей.
Литература
Сабунин А.Е. Altium Designer. Новые решения в проектировании электронных устройств. – М.: Солон-Пресс, 2009.
Сабунин А.Е. Altium Designer Summer – разработка и компиляция электрических принципиальных схем. – Современная электроника, 2008, №7, c.50–57.
TU0116 Getting Started with FPGA Design.PDF.
http://wiki.altium.com
Некоторые ПЛИС последних поколений могут иметь более тысячи выводов. При размещении их на ПП наибольшую трудность будет представлять разводка печатных проводников от ПЛИС к периферийным элементам. При программировании ПЛИС без учета будущей топологии платы сложность ее разработки может возрасти в несколько раз. Многие САПР ПП позволяют совместить процессы разработки платы и ПЛИС, обеспечивая взаимное сопряжение устройств и упрощение разработки.
В САПР Altium Designer есть возможность создавать проекты ПЛИС в составе проекта платы. Таким образом поддерживается вся необходимая информация о связи программной части ПЛИС и расположении выводов этой ПЛИС на плате. В рамках PCB-проекта определяется периферия ПЛИС, т.е. компоненты, входящие в состав проектируемого функционального узла, но отсутствующие в ПЛИС (кварцевые резонаторы задающих генераторов, резисторы, конденсаторы, микросхемы АЦП, конфигурационные ПЗУ, электрические соединители и т.п.).
Поскольку концепция ПЛИС предполагает программирование внутренней логики кристалла пользователем под свою задачу, библиотечные элементы ПЛИС представляются в виде заготовок, на схемном отображении которых обозначены только номера выводов микросхемы. Информация о наименованиях выводов ПЛИС появится после того, как будет реализован проект ПЛИС с внутренней конфигурацией, использующей лишь некоторые выводы микросхемы. Далее в процессе разработки платы информация о выводах может неоднократно переноситься из платы в схему, из схемы в проект ПЛИС и наоборот. Для компонентов с большим числом выводов (например, 1500) одна такая итерация может занять несколько часов, а подобные действия зачастую приходится выполнять неоднократно. На многих предприятиях России часто бывает так, что разработчики переписывают список соединений платы и редактируют по этому списку файл описания выводов ПЛИС. В этом случае вся ответственность за синхронизацию ПЛИС, схемы, и платы, на которой она установлена, лежит на пользователе! Но человеческий фактор еще никто не отменял; стоимость же современных ПЛИС может составлять несколько тысяч долларов, поэтому вполне логично выполнять эту операцию с помощью применяемой САПР.
В современных микросхемах программируемой логики количество конфигурируемых логических блоков (КЛБ) достигает нескольких десятков тысяч. Каждый КЛБ конфигурируется посредством записи в ПЛИС специальных данных, созданных при помощи соответствующего программного обеспечения (ПО). Проектирование конфигурации ПЛИС начинается с функциональной схемы. Деление на функциональные модули позволяет работать над проектом нескольким разработчикам одновременно. Также существует возможность применить в проекте ранее созданные и отлаженные макросы. Все это значительно ускоряет процесс разработки.
Функциональные модули вводятся в проект в виде электрической схемы или текстового файла с описанием электрической схемы на специальном языке. Можно создавать проекты, совмещающие схемное и описательное представления функциональных модулей. Altium Designer позволяет создавать проекты ПЛИС (File–New–Project–FPGA Project), в состав которых могут входить и схемы, и код на одном из языков описания электронных схем. Реализация проекта методом схемного ввода производится в том же графическом редакторе, в котором выполняется разработка обычных схем. Схема рисуется с применением иерархической вложенной структуры, причем верхним уровнем иерархии обязательно должен быть лист схемы (*.SchDoc). Альтернативой графическому методу является текстовое описание электронных схем на наиболее популярном сегодня языке VHDL.
После этапа создания схемы в графическом редакторе или методом текстового описания модуля проекта на VHDL выполняется функциональное моделирование. Его цель – выявление и устранение возможных логических ошибок. Следующие этапы – синтез проекта, трассировка и временное моделирование с учетом особенностей заданной микросхемы.
В Altium Designer имеются две возможности моделирования. Во-первых, это собственный инструментарий, позволяющий моделировать схему или исходную программу на языке VHDL еще до выбора конечного устройства (функциональное моделирование). Во-вторых, для временного моделирования, а также для последующего синтеза и формирования конечного кода прошивки ПЛИС может быть использовано соответствующее выбранной микросхеме ПО изготовителей ПЛИС (Altera Quartus II, Xilinx ISE Foundation и т.д.). В этом случае моделирование выполняется с помощью отладочной платы NanoBoard, которая приобретается отдельно. В этой статье рассмотрен первый вид моделирования, не требующий дополнительного оборудования, – функциональное моделирование ПЛИС.
В качестве примера возьмем простой RS-триггер, построенный на двух элементах 2И-НЕ. Он может быть реализован в виде схемы либо описан на VHDL (рис.1). Рассмотрим этапы реализации такого проекта на схемном уровне, так как этот подход более прост – для разработки не требуется знания VHDL.
Этап 1. Для формирования логики схемы, впоследствии запрограммированной в ПЛИС, используется проект PrjFpg, который создается командой File–New–Project–FPGA Project. Новый проект сразу необходимо сохранить командой File–Save Project.
Этап 2. Внутри проекта создается новый лист схемы. Для этого на панели Projects нажимаем правой клавишей мыши на название проекта и выполняем команду Add New to Project–Schematic. Схеме присваивается такое же имя, как и проекту (это требование проектов ПЛИС – лист верхнего уровня должен иметь название проекта).
Этап 3. На новом листе формируется схема, приведенная на рис.1. Для этого используются компоненты, описания которых доступны для ПЛИС. Они располагаются в библиотеках папки …Altium Designer…\Library\Fpga. Элементы булевой алгебры находятся в библиотеке FPGA Generic.IntLib.
Этап 4. После формирования схемы создается файл, в котором описываются параметры входных и выходных сигналов для моделирования проекта. Он имеет расширение .VHDTST и создается командой File–New–Other–VHD TestBench. При сохранении файла запрещено использовать имя проекта. Содержание файла приведено во врезке.
В данном случае были описаны входные и выходные порты (R, S, Q, nQ) и на входы были поданы сигналы R (период 10 нс) и S (20 нс).
Этап 5. Имея схему триггера и файл с параметрами теста, можно выполнять компиляцию проекта, предварительно задав настройки проекта – Project–Project Options. На вкладке Simulation нужно выбрать программное средство для моделирования (Tools). Если определена внешняя программа, то при запуске моделирования необходимо указать ее расположение на диске, а в строке Testbench Document – название тестового файла с параметрами входных сигналов. В последующих двух окнах (рис.2) указываются названия элемента верхнего уровня конфигурации (по программе тестового файла, обычно совпадает с названием тестового файла) и элемента верхнего уровня архитектуры.
Создание тестового файла можно выполнить (по шаблону) автоматически: Simulation–Create VHDL Testbench. В нем описание входных воздействий будет сделано по имеющимся портам. Для этого файла необходимо лишь указать абсолютные величины воздействий.
Этап 6. Далее можно начинать процесс моделирования, предварительно выполнив компиляцию. Она запускается автоматически при запуске моделирования, но у начинающих пользователей при компиляции обычно выявляется много ошибок, поэтому здесь очень важна верификация схемы, кода или тестового файла. Об особенностях этого процесса в Altium можно узнать в [2], а описание наиболее часто встречающихся ошибок в VHDL-программах выходит за рамки данной статьи.
Этап 7. После верификации и успешной компиляции проекта на экране появится окно запуска моделирования (рис.3).
Этап 8. Здесь показаны все сигналы, которые могут быть промоделированы в схеме, и предлагается выбрать те, что будут использоваться при моделировании. Выбираем входные и выходные сигналы триггера (R, S, Q, nQ) и нажимаем кнопку Done (продолжить).
Этап 9. Действия двух предыдущих этапов не запускают процесс, а лишь выполняют переход в среду моделирования (рис.4).
Этап 10. На панели управления VHDL Tools собраны стандартные команды, характерные для большинства оболочек моделирования. Процесс запускается нажатием кнопки Run Simulation…, после чего предлагается указать временной интервал. После нажатия кнопки ОК проходит процесс моделирования, и на экране отображаются его результаты (рис.5). Для анализа результатов моделирования удобно использовать бордовый маркер, передвигая который можно оценить значение сигнала в заданный момент времени.
После выполнения функционального моделирования работа с проектом ПЛИС ведется по порядку, о котором было рассказано выше. При этом пользователь, работая в Altium Designer, будет применять средства синтеза и временного моделирования, предоставленные производителем ПЛИС. Этой теме будет посвящена одна из следующих статей.
Литература
Сабунин А.Е. Altium Designer. Новые решения в проектировании электронных устройств. – М.: Солон-Пресс, 2009.
Сабунин А.Е. Altium Designer Summer – разработка и компиляция электрических принципиальных схем. – Современная электроника, 2008, №7, c.50–57.
TU0116 Getting Started with FPGA Design.PDF.
http://wiki.altium.com
Отзывы читателей