Skip to Content

ПЛИС

Автоматизация задания номеров пинов ПЛИС Altera для плат разведенных в PCAD

Последние 4 года я специализируюсь только на разработке систем на ПЛИС, процами и разводкой ПП уже давно не занимался. Поэтому когда приходит новая железка, для создания top файла системы на ПЛИС мне нужно перебить пины из sch файла PCAD в qsf файл Quartus а, для того что бы начать работать.

Заниматься этим вручную достаточно занудное и чреватое ошибками занятие. Мой бывший коллега разработал скрипт на языке Python для автоматизации этого процесса, а я потом немного его подрихтовал для удобства пользования, в частности добавил фильтр игнорируемых цепей.

Скрипт вытаскивает из файла цепей PCAD (*.net) информацию о пинах конкретной микросхемы, заданной в параметрах через её позиционное обозначение. Команда запуска скрипта следующая

TimeQuest для чайников. Приложение 3 (Добрый и злобный Multicycle)

Добрый день уважаемый читатель.

В предыдущих блогах я рассказывал о том, что есть волшебный констрейн set_false_path с помощью которого можно творить прямо таки "чудеса" укладывания проекта в констрейны. У этого констрейна есть своеобразный друг. Добрый, но в то же время злобный, констрейн описания мультициклового пути set_multicycle_path.

Подход к автоматизации разработки HDL проектов

Добрый день уважаемые коллеги!!

Часто начинающие плисоводы, начав изучать какой либо из HDL языков, задаются вопросом почему в них громоздко и не оптимально описываются соединения блоков между собой. Рассмотрим это на примере языка Verilog.

Действительно, при создании любого компонента, нужно объявить его интерфейс, т.е. описать его порты(имена, типы, направления). Для синтеза, только эти порты и будут видны компонентам более высокого уровня. Дальше этих интерфейсов прыгнуть нельзя. Почему так?

TimeQuest для чайников. Приложение 2 (Хак для System Synchronus Ouput на cycloneIII)

Решал недавно одну непростую задачу, танцевал с бубном достаточно долго. Итак имеем 3 асинхронных потока данных на частоте 180 МГц и нужно было выдать их на внешний DAC включенный в режиме System Synchronus Ouput.

Что сложного скажет кто-то, берем еще один клок на PLL, немного двигаем его по фазе и вуаля. Но в том-то и дело что PLL у меня не было. А не было ее потому, что два клока шли с других PLL, а еще один клок шел с обычного порта. ПЛИС cycloneIII, как известно не поддерживает подачу на PLL абы какого сигнала, поэтому пришлось выкручиваться без нее.

TimeQuest для чайников. Приложение 1 (Внешняя обратная связь по клоку).

Вопрос возник на форуме electronix.ru и его правильное решение предложили пользователи des333 и SM. Я в этом вопросе целиком и полностью опростоволосился %).

Задача такая, как правильно описать констрены для такой системы

TimeQuest для чайников. Часть 5 (Заключение)

Мы рассмотрели основные вопросы по заданию констрейнов для различных проектов.

За границами рассмотрения остались такие виды задания ограничений как : мультицикловые пути в проекте (мы рассмотрели их использование только в интерфейсах), интерфейсы с работой по обеим фронтам.

Цель охватить все возможные ситуации не ставилась, предоставленной информации достаточно для начала использования TimeQuest.  То что будет не понятно можно найти в документации на TimeQuest и в хендбуке на квартус. Все это доступно на сайте альтеры. 

TimeQuest для чайников. Часть 4 (Как много интерфейсов разных)

Вот мы и подошли к основному таинству TimeQuesta. Это таинство задания временных ограничений для интерфейсов ввода/вывода. Интерфейсов существует великое множество, но относительно методов их обработки и задания констрейнов их можно разделить на 2 основные группы : асинхронные и синхронные интерфейсы.

Под синхронностью я понимаю метод обработки интерфейса в ПЛИС. Если для обработки потока данных используется логика, тактируемая от частоты этого интерфейса, то такой интерфейс я называю синхронным. В противном случае интерфейс асинхронный.

Асинхронные я делю на истинно асинхронные (т.е. обрабатываемые полностью на  комбинационной логике) и асинхронные с обработкой на системном клоке. Синхронные же в свою очередь делятся по признаку местоположения источника тактовой частоты на system-synchonus и source-synchronus интерфейсы.

Есть еще самосинхронные интерфейсы работающие с Clock Data Recovery (CDR), но их мы рассматривать не будем. Также не будем рассматривать подробно вопросы реализации интерфейсов, нас интересует только задание временных ограничений в TimeQuest. 

TimeQuest для чайников. Часть 3 (Клоки как вас много)

Продолжаем наше погружение в мир TimeQuest-а. Как вы уже поняли, эта часть посвящена проектам, в которых клоков больше чем один. Задание ограничений для таких проектов не намного сложнее, чем для рассмотренного нами ранее одночастотного проекта. Рассмотрим основные случаи многочастотных проектов.

Внимание  рассматриваем только вопросы задания частот. Задание констрейнов ввода/вывода будем рассматривать в следующих частях.

TimeQuest для чайников. Часть 2 (TimeQuest лицом к лицу)

В предыдущей части мы рассмотрели самый простой проект для  ПЛИС, который только может быть. Перед тем как перейти к более сложным проектам надо освоить инструмент, о котором идет речь. Эта часть посвящена основам временного анализа с помощью TimeQuest.

TimeQuest это программа для проверки выполнения временных ограничений, заданных в sdc файле констрейнов. Вот тут возникает первое правило TimeQuest а:

Если TimeQuest рапортует вам об отсутствии ошибок, то не надо обольщаться что все хорошо. Может быть, вы просто не задали часть временных ограничений.

Совместное моделирование проектов в Modelsim (Qusestasim) и Simulink

Некоторое время назад мне пришлось много заниматся разработкой систем ЦОС на ПЛИС. В часности разроботкой и отладкой модемов. Хорошим инструментов для "обкатки" алгоритмов, и самое главное динамической визуализации поведения, является Simulink, который входит в состав Matlab. Simulink позволяет создать модель системы высокого уровня и настроить ее параметры согласно предпологаемым режимам работы. После переноса системы на какойнибуть из языков HDL, встает вопрос соответствия эталонной модели. И вот сдесь очень удобным является совместное моделирование системы реализованой в Simulink и в ПЛИС. В данной заметке я раскажу как это можно сделать.

Итак эксперементы будем проводить над такими версиями ПО:

RSS-материал