|
Методика применения I/O_Designer |
|
|
|
Sep 15 2009, 12:26
|

Гуру
     
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512

|
Т.к. судя по всему многие до сих пор не понимают, что такое IOD и зачем он нужен, попытаюсь популярно объяснить это в приложении к ПЛИС:
1. Предположим мы начинаем новый проект платы в которой будет стоять ПЛИС(ы). 2. Проработали функционально наш проект и определили какие сигналы (цепи) будут подключены к ПЛИС. 3. Можно начинать определение ПЛИС, используя проект в IOD, сделать это можно несколькими путями: а) Написали VHDL(Verilog) файл в котором есть "шапка", т.е. определены порты - соответственно его можно: - прочитать в IOD и таким образом список сигналов окажется в IOD. - передать разработчику ПЛИС (естественно если не он сам его сделал) для дальнейшего формирования функционально\структурного описания внутренности ПЛИС б) Ввели сигналы непосредственно внутри IOD: - можем сгенерить VHDL(Verilog) файл и передать разработчику ПЛИС. 4. Выбрали изготовителя ПЛИС, конкретный device и маршрут ПЛИС. 5. Сделали предварительное присвоение выводов внутри IOD. 6. Генерировали\нарисовали символ(ы) внутри IOD. 7. Экспортировали символы\PDB в DxDesigner. 8. Нарисовали схему платы в DxD. 9. Создали проект платы и сделали размещение. 10. Обратно аннотировали размещение в IOD. 11. Сделали перераспределение выводов для улучшения длин соединений и распутывания их. 12. Теперь надо связаться с разработчиком внутренности ПЛИС на предмет передачи ему информации о текущем распределении выводов. Передать ему можно любой файл из трех типов: - P&R_Constraints_File (Actel (.pin, .gcf or .pdc), Altera (.csf or .qsf), Xilinx (.ucf), Lattice (.lpf) - Pin Report File (Actel (.rpt), Altera (.pin), Xilinx (.pad or .csv), Lattice (.pad) - FPGA Xchange File Как правило любой из этих файлов могут прочитать (а также генерировать) системы разработки ПЛИС и таким образом ему не нужно будет в ручную определять выводы. 13. После того как разработчик ПЛИС одобрил это размещение или предложил свое (переделанное через такой же файл), вы решаете задачу трассировки платы. Походу этого естественно могут возникать вопросы дальнейших итерации по перераспределению выводов ибо как у разработчика платы может возникнуть потребность в этом, так и у разработчика ПЛИС - все это решается через процесс аннотаций и генерирования указанных выше обменных файлов. Процесс контролирует "Синхронизатор" - если изменились какие-либо подключенные к проекту IOD файлы, он это увидит и предложит соответствующие действия.
Естественно последовательность процесса и составные части каждый из вас сможет выбирать на свое усмотрение.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
Sep 15 2009, 13:06
|
Частый гость
 
Группа: Свой
Сообщений: 114
Регистрация: 29-11-07
Из: Россия
Пользователь №: 32 816

|
Александр, спасибо за описание, действительно - кратко, толково, без лишней воды. Но, несмотря на безмерное уважение к Вам с моей стороны, по поводу продукта возникают некоторые вопросы:
Пока, я вижу в этом только один плюс: "Как правило любой из этих файлов могут прочитать системы разработки ПЛИС и таким образом ему не нужно будет в ручную определять выводы." Т.е. я убью 2 дня времени, пройду через кучу гемора с IOD, наловлю косяков и все это только для того, чтобы душечка программист не мучался с назначением портов вручную ? Я, конечно, не махровый гуру, еще только учусь, но у нас все просто: 1. Сформировать перечень сигналов, которые пойдут в/на плис. Из них лишь небольшое кол-во является предопределенным, остальные свободные, поэтому это Я буду в декларативном порядке сообщать программисту какие сигналы на каких ножках будут, а не ОН мне. Т.к. ему это фиолетово, а мне на плате - нет. Случай с DDR модулем немного другой, но там тоже от программиста немного зависит. 2. Выслушать от программиста пожелания - какие бы он особые сигналы хотел видеть на спец. ножках, типа глобальных клоков. 3. Спокойно разводить плату. 4. Сообщить программисту где будут какие сигналы. И он за полчаса вручную их назначит.
В результате мне не нужно мучаться с IOD, писать там всякие описания и прочее. Как-то так, уж извините.
Может быть, конечно, если делать плату с 100 плисами, причем разными, через IOD это будет и удобнее. Я таких не делал. Но, если почитать, большинство народа, пройдя через кучу создания разных описаний, символов и наловив кучу глюков, остаются с недовольным осадком.
Случай, когда разводчик и программист в разных странах - не рассматриваю. Там - возможно.
--------------------
Гибрид мастерской и гостинной с уклоном в музей и гараж - вот мой дом :)
|
|
|
|
|
Sep 15 2009, 15:01
|

Неиодный дизайнер
    
Группа: Свой
Сообщений: 1 240
Регистрация: 1-12-04
Из: Минск
Пользователь №: 1 273

|
Цитата 1. Предположим мы начинаем новый проект платы в которой будет стоять ПЛИС(ы). Предположим  Цитата 2. Проработали функционально наш проект и определили какие сигналы (цепи) будут подключены к ПЛИС. Ну, допустим  Цитата 3. Можно начинать определение ПЛИС, используя проект в IOD, сделать это можно несколькими путями: а) Написали VHDL(Verilog) файл в котором есть "шапка", т.е. определены порты - соответственно его можно: - прочитать в IOD и таким образом список сигналов окажется в IOD. - передать разработчику ПЛИС (естественно если не он сам его сделал) для дальнейшего формирования функционально\структурного описания внутренности ПЛИС б) Ввели сигналы непосредственно внутри IOD: - можем сгенерить VHDL(Verilog) файл и передать разработчику ПЛИС. Я извиняюсь, но чтобы начинать определение ПЛИС, не нужно ничего, кроме Вашего любимого текстового редактора  И если уж так хочется сгенерить hdl-файл, а не набрать его ручками, никакие иоды не нужны. Достаточно скриптов Цитата 4. Выбрали изготовителя ПЛИС, конкретный device и маршрут ПЛИС. Для этого иод не нужен  Цитата 5. Сделали предварительное присвоение выводов внутри IOD. Зачем? Предварительное присвоение выводов делается в схемном редакторе путем рисования схемы  Для этого нам понадобятся библиотечные символы, схемный редактор и руки. Возможно даже голова, но никак не иод  Цитата 6. Генерировали\нарисовали символ(ы) внутри IOD. 7. Экспортировали символы\PDB в DxDesigner. Это ключевой момент. Если ПЛИС многоногая, и ее символ получается слишком большой, чтобы разместить ее на схеме, этот самый символ необходимо разбить на части. Причем я не верю, что существует ПЛИС, символ которой физически невозможно разместить на схеме. Это всегда можно сделать, но такой символ не будет удовлетворять гостам. Существует и другая причина побить символ на более мелкие - удобочитаемость. Во всех остальных случаях необходим один символ на одну ПЛИС, который рисуется штатными средствами используемого вами пакета разработки печатных плат. Таким образом, IOD предназначен лишь для разбиения символа ПЛИС на более мелкие, все остальное притянуто за уши. Имхо на всякий случай  Цитата 8. Нарисовали схему платы в DxD. Существует жизнь и вне DxD  Цитата 9. Создали проект платы и сделали размещение. Ну сделали  Цитата 10. Обратно аннотировали размещение в IOD. Это еще зачем? Цитата 11. Сделали перераспределение выводов для улучшения длин соединений и распутывания их. Причем штатными средствами, без иодов  Цитата 12. Теперь надо связаться с разработчиком внутренности ПЛИС на предмет передачи ему информации о текущем распределении выводов. Передать ему можно любой файл из трех типов: - P&R_Constraints_File (Actel (.pin, .gcf or .pdc), Altera (.csf or .qsf), Xilinx (.ucf), Lattice (.lpf) - Pin Report File (Actel (.rpt), Altera (.pin), Xilinx (.pad or .csv), Lattice (.pad) - FPGA Xchange File Как правило любой из этих файлов могут прочитать системы разработки ПЛИС и таким образом ему не нужно будет в ручную определять выводы. Очень мило  Ну если лень разработчику вручную определить выводы согласно имеющейся схеме, так и быть, я ему определю вручную. Затрачу я на это, ну, допустим, час. И что? А если очень хочется погенерить текстовые файлы, в моем распоряжении всегда есть всевозможные скриптовые языки  Цитата 13. После того как разработчик ПЛИС одобрил это размещение или предложил свое переделанное (через такой же файл), вы решаете задачу трассировки платы. Походу этого естественно могут возникать вопросы дальнейших итерации по перераспределению выводов ибо как у разработчика платы может возникнуть потребность в этом, так и у разработчика ПЛИС - все это решается через процесс аннотаций и генерирования указанных выше обменных файлов. Процесс контролирует "Синхронизатор" - если изменились какие-либо подключенные к проекту IOD файлы, он это увидит и предложит соответствующие действия. Перераспределение выводов делается путем правки схемы и прямой аннотации в плату без участия каких-либо посредников, которые непонятно что синхронизируют. И какие такие действия может предложить таинственный синхронизатор? Как у Жванецкого: "Продолжать движение!!!"?
--------------------
SPECCTRA forever! IO/Designer forever!
|
|
|
|
|
Sep 15 2009, 18:04
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(Vadim @ Sep 15 2009, 19:01)  На создание компонета с ~700 ногами в ИОДе уходит час-два, это если не спешить. Это при том, что несколько групп свапирования, разные стандарты ввода-вывода, разные клоки, МГТ и т.д. И даже мысли не приходит что возможна ошибка с нумерацией, перепутыванием ног и прочими косяками. Изменения в сигналах делаются еще быстрее. ОДно из основных достоинств - это база по всем ПЛИС. Даже думать не хочу сколько человеко-месяцев нужно чтобы без ошибки создать такой компонент без ИОД, а потом его править при изменении количества сигналов\банков и т.д. Поэтому можно забить на все глюки ИОД, коих ни чуть не меньше чем в ДхД.
|
|
|
|
|
Sep 15 2009, 19:08
|

Неиодный дизайнер
    
Группа: Свой
Сообщений: 1 240
Регистрация: 1-12-04
Из: Минск
Пользователь №: 1 273

|
Цитата(disel @ Sep 15 2009, 21:04)  На создание компонета с ~700 ногами в ИОДе уходит час-два, это если не спешить. Допустим. Цитата(disel @ Sep 15 2009, 21:04)  Это при том, что несколько групп свапирования, разные стандарты ввода-вывода, разные клоки, МГТ и т.д. И даже мысли не приходит что возможна ошибка с нумерацией, перепутыванием ног и прочими косяками. Имхо, несерьезно. На этапе создания символа задача библиотекаря - тупо повторить даташит. Цитата(disel @ Sep 15 2009, 21:04)  Изменения в сигналах делаются еще быстрее. Извините, не понял, в каких таких сигналах? Цитата(disel @ Sep 15 2009, 21:04)  ОДно из основных достоинств - это база по всем ПЛИС. Сомнительное достоинство. Заходим на сайт производителя и скачиваем даташит. Цитата(disel @ Sep 15 2009, 21:04)  Даже думать не хочу сколько человеко-месяцев нужно чтобы без ошибки создать такой компонент без ИОД, а потом его править при изменении количества сигналов\банков и т.д. Т.е на создание компонента с 700 ногами без ошибок у Вас уйдет несколько человеко-месяцев? Не сочтите за наезд, но теперь я понимаю, что ИОД иногда полезен  И не понимаю, зачем править созданный без ошибок компонент. Как в компоненте, серийно выпускаемой славной капиталистической промышленностью, может измениться количество сигналов (каких сигналов?) и банков? Это же не трансформер какой нибудь, а FPGA!!!
--------------------
SPECCTRA forever! IO/Designer forever!
|
|
|
|
|
Sep 15 2009, 19:28
|
Знающий
   
Группа: Свой
Сообщений: 791
Регистрация: 14-05-05
Из: Минск
Пользователь №: 5 035

|
Цитата(Vadim @ Sep 15 2009, 22:08)  Имхо, несерьезно. На этапе создания символа задача библиотекаря - тупо повторить даташит. интересно как ты в базе пропишишь ногу с функционалом Diff/Clock/IO/DiffClock ??? и через день придется поменять Clock на IO чтобы сделать своп Цитата Сомнительное достоинство. Заходим на сайт производителя и скачиваем даташит. надо скачивать не даташит, а ээээ как правильно выразится файл распиновки для IOD хотя даташин нужен, чтобы нарисовать Cell Цитата Это же не трансформер какой нибудь, а FPGA!!! в яблочко и этим подведен итог дискусии.  в четверг я вправлю тебе мозги
--------------------
Будь ты рабочий, будь ты профессор, а DxD-IOD-Exp должен знать каждый, чтобы не стать пособником империализма.
|
|
|
|
|
Sep 15 2009, 20:10
|

Неиодный дизайнер
    
Группа: Свой
Сообщений: 1 240
Регистрация: 1-12-04
Из: Минск
Пользователь №: 1 273

|
Цитата(Frederic @ Sep 15 2009, 22:28)  интересно как ты в базе пропишишь ногу с функционалом Diff/Clock/IO/DiffClock ??? Не поверишь, с помощью клавиатуры  Цитата(Frederic @ Sep 15 2009, 22:28)  и через день придется поменять Clock на IO чтобы сделать своп Стесняюсь сказать, но мне не нужно менять "Clock на IO", чтобы сделать своп  Цитата(Frederic @ Sep 15 2009, 22:28)  надо скачивать не даташит, а ээээ как правильно выразится файл распиновки для IOD хотя даташин нужен, чтобы нарисовать Cell Ну если даташит не нужен, не скачивай. Медитируй над "файлом распиновки для IOD". Там информации больше
--------------------
SPECCTRA forever! IO/Designer forever!
|
|
|
|
|
Sep 16 2009, 03:43
|
Знающий
   
Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410

|
Цитата(Vadim @ Sep 15 2009, 23:08)  Имхо, несерьезно. На этапе создания символа задача библиотекаря - тупо повторить даташит. Исключение человеческого фактора. Вероятность ошибки при вводе м\сх с 1000 ногами далека от нулевой, а ее цена очень высока. Создать универсальный символ для ПЛИС невозможно, поскольку в каждом проекте свои сигналы, разные питания. И соответственно разные группы свапа. Цитата(Vadim @ Sep 15 2009, 23:08)  Извините, не понял, в каких таких сигналах? Например есть группа ног для ЦАПа, они 3,3В, им заданы банки 1-2 где они могут свапиться, есть ноги АЦП, они ЛВДС, т.е.2,5В им заданы банки 3-4. И нужно поменять местами. Или для ЦАП отдать 1,3. А еще есть клоки которые должны попадать на клоковые ноги, МГТ с его питанием, и т.д. В ИОД все это делается элементарно, в нем уже вся информация о плис. Без него все вручную, долго, непроизводительно, и при этом есть вероятность ошибки. Цитата(Vadim @ Sep 15 2009, 23:08)  Т.е на создание компонента с 700 ногами без ошибок у Вас уйдет несколько человеко-месяцев? Не сочтите за наезд, но теперь я понимаю, что ИОД иногда полезен  И не понимаю, зачем править созданный без ошибок компонент. Как в компоненте, серийно выпускаемой славной капиталистической промышленностью, может измениться количество сигналов (каких сигналов?) и банков? Это же не трансформер какой нибудь, а FPGA!!! см. выше. Цитата(Vadim @ Sep 15 2009, 23:08)  Стесняюсь сказать, но мне не нужно менять "Clock на IO", чтобы сделать своп Каждый волен расставлять вокруг себя любые грабли. Удачи.
|
|
|
|
|
Sep 16 2009, 06:45
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 7-02-08
Из: Ростовская обл.
Пользователь №: 34 835

|
Цитата(Vadim @ Sep 15 2009, 23:08)  Сомнительное достоинство. Заходим на сайт производителя и скачиваем даташит. А в случае использования IOD даже не обязательно его качать, большинство ПЛИС уже в базе, надо только выбрать производителя, модель и корпус. Цитата(Vadim @ Sep 15 2009, 23:08)  Имхо, несерьезно. На этапе создания символа задача библиотекаря - тупо повторить даташит. Сколько времени надо для того чтобы "тупо повторить даташит"? В IOD тупо генерация символов проделывается минут за 5-10, плюс полчаса-час на подгонку под ГОСТ, и это речь о корпусе FF1760 например. А сколько времени нужно для создания компонента? Создание групп свопирования, сверка с даташитом каждого пина банка, питания и т.д... В IOD же просто надо по фильтру выделить все пины банка и пачкой определить в одну группу свопирования. И, как говорилось выше, исключение пресловутого человеческого фактора, ошибиться при ручном создании компонента элементарно.
|
|
|
|
|
Sep 16 2009, 11:29
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 7-02-08
Из: Ростовская обл.
Пользователь №: 34 835

|
Цитата(SM @ Sep 16 2009, 11:28)  Группы свопирования для ФПГА вещь совершенно бездарная, так как можно или нельзя свопнуть два пина определяется не только даташитом на ПЛИС, но и доп.функциями пинов и назначением соответствующих цепей, и особенностями разводки схемы внутри ПЛИС. Так что нет смысла вообще определять свопируемые пины в pdb на плисину. А кто мешает создавать отдельный pdb для каждого нового проекта учитывая все эти особенности? Или вы хотите сказать что проще редактировать схематик? В IOD можно быстренько набросать несколько вариантов pdb для разных плис проекта. А если использовать его по уму - с синхронизацией и прочим, то в теории всё вообще должно быть замечательно но внедрить что-то новое довольно сложно... вот и делается многое по-старинке
Сообщение отредактировал Inpharhus - Sep 16 2009, 11:30
|
|
|
|
|
Sep 16 2009, 12:36
|
Знающий
   
Группа: Свой
Сообщений: 791
Регистрация: 14-05-05
Из: Минск
Пользователь №: 5 035

|
Цитата(SM @ Sep 16 2009, 10:28)  Группы свопирования для ФПГА вещь совершенно бездарная, так как можно или нельзя свопнуть два пина определяется не только даташитом на ПЛИС, но и доп.функциями пинов и назначением соответствующих цепей, и особенностями разводки схемы внутри ПЛИС. Так что нет смысла вообще определять свопируемые пины в pdb на плисину. в ЦБ вообще можно не делать компанент. работать локально и как сказал Inpharhus для каждого проекта своя индивидульная плисина
--------------------
Будь ты рабочий, будь ты профессор, а DxD-IOD-Exp должен знать каждый, чтобы не стать пособником империализма.
|
|
|
|
|
Sep 16 2009, 12:42
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Inpharhus @ Sep 16 2009, 15:29)  А кто мешает создавать отдельный pdb для каждого нового проекта учитывая все эти особенности? Или вы хотите сказать что проще редактировать схематик? Да вот я пока ничего не хочу сказать  Еще не вник в суть. Но точно могу сказать - что в pdb нет механизма учета "всех этих особенностей", поэтому однозначно делать это не в pdb. А значит именно IOD и генерация каждый раз всего заново для каждого проекта. PS. Хотя, как по мне, лучше бы один универсальный символ по даташиту и разветвленная и продвинутая система констрейнов по части того, что с чем можно свопить и по каким правилам. И никакого IOD не надо бы, все необходимое было бы в Exp.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|