реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Altera. Правильное назначение портов., Как правильно назначить порты в микросхеме ?
Flip-fl0p
сообщение Feb 14 2017, 08:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 275
Регистрация: 11-06-13
Пользователь №: 77 140



Работая с макетной платой, я столкнулся с затруднениями в назначении входных/выходных портов.
Каждый раз, когда я хочу какой-то порт в проекте вывести на один из множества светодиодов на плате, мне приходиться обращаться к схеме или таблице соединений, чтобы посмотреть, какая ножка в ПЛИС физически связана с нужным мне светодиодом. Это не сложно, когда у меня в проекте используется только один светодиод. Проблемы появляются, когда у меня в проекте используется очень много выводов: подключены семисегментные индикаторы, микросхема SDRAM, светодиоды и пр.
Каждый раз проверять по схеме или таблице соединений, что куда идёт, очень долго, а самое главное - чревато ошибками. Мне кажется, должен быть инструмент/способ, который может существенно облегчить жизнь при назначении пинов.
Попытавшись в этом разобраться, я нашел, что Quartus создает файл с расширением .qsf, который содержит все назначения пинов в проекте. Поигравшись с этим файлом, я пришел к выводу, что можно внутри этого файла создать имя порта и указать на какую ножку микросхемы он подключен. Поскольку в проекте этот порт отсутствует, но в файле .qsf он вручную описан, то этот порт будет виден в Pin Planner'е, где ему будет присвоен статус Unknown, но так-же ему будет присвоено назначение на нужную мне ножку микросхемы. Таким образом я смогу всей периферии на макетной плате описать соответствие ножкам микросхемы. Что приведет к тому, что в HDL описании мне достаточно будет просто выходному\входному порту дать такое же имя, как порту, вручную описанному в файле .qsf. И поскольку имена совпадают, порт в HDL описании подключается к нужным мне ножкам, что и требовалось изначально.
У меня возникло ощущение, что я упустил какой-то инструмент, который позволяет сделать почти то-же самое, но меньшими усилиями, и гораздо проще, чем то, что я сейчас описал.
Уважаемые гуру, подскажите мне, правильно ли я делаю ? Можно ли так вообще поступать ? И можно ли это сделать более правильным способом ?

Сообщение отредактировал Flip-fl0p - Feb 14 2017, 08:02
Go to the top of the page
 
+Quote Post
SemperAnte
сообщение Feb 14 2017, 10:08
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 24-10-10
Из: Санкт-Петербург
Пользователь №: 60 386



Собственно, какую операцию вы хотите упростить?

Вы все верно описываете - один раз для конкретной платы прописываются все связи между физическими пинами и именами портов. Это можно сделать либо с помощью текстового редактора, либо с помощью GUI (того же Pin Planner'а). На выходе имеем готовый .qsf файл (может быть другое расширение). В следующем проекте просто выполняется команда "Import assignments ...". Для готовых отладочных плат такой файл обычно подготавливается производителем.
Go to the top of the page
 
+Quote Post
dima32rus
сообщение Feb 14 2017, 13:37
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 123
Регистрация: 9-11-12
Из: г. Брянск
Пользователь №: 74 311



А почему не сделать назначение прямо в Pin Planner'е? Там автоматически появляются все порты top-level модуля. Так же намного удобнее.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Feb 14 2017, 13:46
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 275
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(dima32rus @ Feb 14 2017, 16:37) *
А почему не сделать назначение прямо в Pin Planner'е? Там автоматически появляются все порты top-level модуля. Так же намного удобнее.

Можно и в Pin Planner'е делать. Просто когда есть готовый файл назначений, то его проще скопировать.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 14 2017, 13:51
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 7 430
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Десять раз показывал. В вериложном файле:
CODE

module Top_m (

/* Test */
(* chip_pin = "1",
altera_attribute = "-name io_maximum_toggle_rate 0" *)
output TEST, // Test output

/* Выводы ?? используются для SignalProbe */

/* Clock 250MHz, инверсные входы LVDS */
(* chip_pin = "91",
altera_attribute = "-name global_signal on; -name io_standard lvds" *)
input PLC_N,

/* ADC1 */
(* chip_pin = "104",
altera_attribute = "-name io_maximum_toggle_rate 0" *)
output PDWN1,

(* chip_pin = "99, 103, 121, 127, 129, 133, 144",
altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
input [7:1] S1D_N,
(* chip_pin = "10",
altera_attribute = "-name io_standard lvds; -name pad_to_input_register_delay 0", useioff = 1 *)
input S1D_P,

/* TRIG */
(* chip_pin = "106",
altera_attribute = "-name io_standard 2.5V; -name auto_open_drain_pins on; -name io_maximum_toggle_rate 0" *)
output TRHYS,

(* chip_pin = "89",
altera_attribute = "-name io_standard lvds" *)
input TRC_N,
...
Go to the top of the page
 
+Quote Post
Vascom
сообщение Feb 15 2017, 07:06
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 2-08-07
Из: Москва
Пользователь №: 29 534



Это и есть самое простое - описать все ножки сразу с понятными именами и затем лишь подключать их в top-файле.
Часто вместе с документацией к evaluation бордам идёт и файл с готовым описанием ножек.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2017 - 22:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016