Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: про реализацию АЛУ
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
AlexHoppus
Привет всем, я абсолютный ламер по части ПЛИС, читаю много книг, но некоторые вопросы все равно остаются непонятными. Я понимаю, что их много и они тупые, но прошу ответить хотя бы на часть ... если возможно. Этим летом я написал 32ух разрядное АЛУ на VHDL (операции + - / * на базисе xor, and, or, not). Собственно вопрос первый - это вообще адекватный код, подойдет ли он к загрузке в ПЛИС? Вопрос второй - какая разница - реализовывать допустим операции (+ - / *) 32ух разрядных чисел в коде через вышеуказанный базис или просто методом a+b, a-b, a*b, a/b ?
Я так понимаю, что этот код на VHDL с помощью каких-то утилит пакета (например) WebPack ISE можно отобразить в реальную логическую схему, т.е. наладить связи между CLB какой-то конкретной ПЛИС, и учитывая имеющиеся у нее в запасе ресурсы, запихать в них устройство описанное на уровне VHDL.
Вопрос 3 . Правильно ли я понимаю, что для того, чтобы грамотно запрограммировать устройство в FPGA нужно четко представлять какие конструкции кода VHDL в какой цифровой эквивалент ПЛИС отображаются на цифровом логическом уровне? И где эту информацию можно почерпнуть?
Вопрос 4 . Есть ли какая - нибудь литература (лучше не книги а статьи), где на примерах конкретных описывается процесс проектирования в среде ISE Design suite полностью? Начиная от VHDL описания и заканчивая внедрением проекта в ПЛИС
Вопрос 5.
Сейчас читаю цикл статей "Микропроцессор своими руками" и в перспективе хочу сделать тоже софт процессор. Интересует - есть ли ещё подобные статьи, где реализуют более полный вариант процессора?
Вопрос 6.
Я в универе учусь и мне интересно - разработка устройств под ПЛИС это вообще перспективное направление, стоит ли это ботать?

Код АЛУ о котором я говорил где-то в начале приложил.
des333
 
Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Собственно вопрос первый - это вообще адекватный код, подойдет ли он к загрузке в ПЛИС?
Код не читал.


Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Вопрос второй - какая разница - реализовывать допустим операции (+ - / *) 32ух разрядных чисел в коде через вышеуказанный базис или просто методом a+b, a-b, a*b, a/b ? 
Если в двух словах - никакой. Синтезатор на сегодняшний день достаточно умный, чтобы оптимально или почти оптимально сделать относительно простые операции. Для более сложных - да, иногда придется пописать на более низком уровне. Но на данном этапе, с текущими знаниями, у Вас это будет получаться не очень хорошо. Но для общего развития можете потренироваться.


Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Вопрос 3 . Правильно ли я понимаю, что для того, чтобы грамотно запрограммировать устройство в FPGA нужно четко представлять какие конструкции кода VHDL в какой цифровой эквивалент ПЛИС отображаются на цифровом логическом уровне? И где эту информацию можно почерпнуть?
Правильно понимаете. Почерпнуть можно некоторую часть из документации на то ПО, которым Вы пользуетесь, но большую часть поймете на экспериментах. Написали код, скомпилили, посмотрели в RTL-viewer'e, поняли, что вышло, и так по кругу. 


Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Вопрос 4 . Есть ли какая - нибудь литература (лучше не книги а статьи), где на примерах конкретных описывается процесс проектирования в среде ISE Design suite полностью? Начиная от VHDL описания и заканчивая внедрением проекта в ПЛИС
Не знаю. А что конкретно Вас интересует?


Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Вопрос 5.
Сейчас читаю цикл статей "Микропроцессор своими руками" и в перспективе хочу сделать тоже софт процессор. Интересует - есть ли ещё подобные статьи, где реализуют более полный вариант процессора?
Более серьезные процессоры реализованы на OpenCores.org - можете скачать, посмотреть код, поизучать.


Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Вопрос 6.
Я в универе учусь и мне интересно - разработка устройств под ПЛИС это вообще перспективное направление, стоит ли это ботать?
У нас в России не особо перспективно. Приборостроение почти нет, следовательно, востребованность не очень большая. Если смотреть по деньгам, то Java-разработчик или 1С-программист в средним будут зарабатывать больше. Недавно обсуждали эту темы более подробно. Пришли к выводы, что работать с ПЛИС можно только "по любви".
bogaev_roman
Цитата
какая разница - реализовывать допустим операции (+ - / *) 32ух разрядных чисел в коде через вышеуказанный базис или просто методом a+b, a-b, a*b, a/b ?

Операции деления вообще нет. Умножители могут быть встроенные, так же как и сумматоры и соответственно с точки зрения ресурсов могут использоваться именно они.
Цитата
Есть ли какая - нибудь литература (лучше не книги а статьи), где на примерах конкретных описывается процесс проектирования в среде ISE Design suite полностью? Начиная от VHDL описания и заканчивая внедрением проекта в ПЛИС

Читайте Зотова (хоть и очень убогая книга). Есть куча лабораторок по данной тематике (диодиками помигать, посмотреть времяник счетчика), поищите в инете.
Цитата
Я в универе учусь и мне интересно - разработка устройств под ПЛИС это вообще перспективное направление, стоит ли это ботать?

Была такая темка, как уже des333 писал biggrin.gif
http://electronix.ru/forum/index.php?showt...A++%EF%EB%E8%F1
des333
Цитата(bogaev_roman @ Sep 13 2010, 21:38) *
Операции деления вообще нет.

Не могли бы пояснить?  smile.gif
bogaev_roman
Цитата(des333 @ Sep 13 2010, 21:56) *
Не могли бы пояснить?  smile.gif

В том смысле, что в старом ISE эта конструкция вообще была несинтезируема (сейчас по идее уже синтезируется т.к. dsp блоки появились). В квартусе деление выливается в мегафункцию с максимальной разрядностью данных - 64 и dsp блоки(если они есть). Т.е. фактически операция деления реализуется посредством умножения, сдвигов и суммирования/вычитания.
AlexHoppus
Цитата
Была такая темка, как уже des333 писал
http://electronix.ru/forum/index.php?showt...A++%EF%EB%E8%F1

Написано форум защищен паролем.

НУ у нас приборостроение в военку упирается, там тоже все плохо?

Цитата
посмотрели в RTL-viewer'e


Он входит в ISE Webpack? что-то не могу его у себя найти.
des333
Цитата(AlexHoppus @ Sep 13 2010, 23:05) *
Написано форум защищен паролем.
Да, оффтоп сейчас в опале.  biggrin.gif

Цитата(AlexHoppus @ Sep 13 2010, 23:05) *
НУ у нас приборостроение в военку упирается, там тоже все плохо?
Вот с этой областью не знаком - не могу сказать.


Цитата(AlexHoppus @ Sep 13 2010, 23:05) *
Он входит в ISE Webpack? что-то не могу его у себя найти.
RTL Viewer входит в Quartus.  biggrin.gif
В ISE это расположено в Tools -> Schematic Viewer -> RTL.
Есть ли он в Webpack - не знаю, проверьте.



P.S. Я тут для себя тоже решил с процами побаловаться. Так что, пишите в аську (она в профиле), будем "мозговой штурм" устраивать. smile.gif
Leka
RTL Viewer в Webpack есть.
vadimuzzz
Цитата(AlexHoppus @ Sep 14 2010, 02:05) *
НУ у нас приборостроение в военку упирается, там тоже все плохо?

если не хуже. насчет RTL - лучше смотреть Technology Map Viewer`ом или как оно там в ISE называется. в квартусе RTL Viewer частенько брешет
des00
Цитата(AlexHoppus @ Sep 13 2010, 11:08) *
Вопрос второй - какая разница - реализовывать допустим операции (+ - / *) 32ух разрядных чисел в коде через вышеуказанный базис или просто методом a+b, a-b, a*b, a/b ?

Все кроме деления будет синтезированно однозначно, а вот реализация операции деления зависит от требований к производительности.
Цитата
Вопрос 3 . И где эту информацию можно почерпнуть?

Опыт + чтение мануалов на используемый софт
Цитата
Вопрос 4 . Есть ли какая - нибудь литература (лучше не книги а статьи), где на примерах конкретных описывается процесс проектирования в среде ISE Design suite полностью? Начиная от VHDL описания и заканчивая внедрением проекта в ПЛИС

Ищите книги зотова
Цитата(bogaev_roman @ Sep 13 2010, 13:21) *
В том смысле, что в старом ISE эта конструкция вообще была несинтезируема (сейчас по идее уже синтезируется т.к. dsp блоки появились).

наличие dsp блоков, суть которых MULT/MAC/MULTADD/и т.д. никак не может влиять на поддержку честной операции деления, суть которой последовательное вычитание и сдвиг. А то что вы имеете в виду это замена деления на константу умножением на ее скалированную инверсию, что дает погрешность операции деления. Если в ISE это не синтезируется, значит разработчики ламеры, мало того что поддержку SV не могут допилить, так еще и синтезируемое подмножество V полностью не поддерживают biggrin.gif
iosifk
Цитата(AlexHoppus @ Sep 13 2010, 20:08) *
Сейчас читаю цикл статей "Микропроцессор своими руками" и в перспективе хочу сделать тоже софт процессор. Интересует - есть ли ещё подобные статьи, где реализуют более полный вариант процессора?
Я в универе учусь и мне интересно - разработка устройств под ПЛИС это вообще перспективное направление, стоит ли это ботать?



Спасибо, что читаете мои статьи.
У меня к Вам пара вопросов, ответите в личную почту?
Как Вы нашли эти статьи?
Что бы Вы еще хотели почитать?
Где учитесь и какой курс?

Теперь ответы. Возьмите книгу В.Зотова. Там написано, что и как делать в ISE. Если не найдете в сети, то у нас на сайте www.kit-e.ru смотрите его же статьи. Еще см. статьи Тарасова. Книгу Полякова...
Или на сайте Ксайлинкса найдите видео-ролик об этом же...
Про сайт опенсорез Вам уже написали. Там к каждому проекту есть описание. хотя и на англ...
Удачи!
Maverick
Дополнительную литературу можно найти здесь
des333
AlexHoppus:
Начал вчера вечером читать книгу:
http://gigapedia.com/items/49383/guide-to-...s-and-engineers

Очень просто и понятно описано, легко читается - рекомендую.
AlexHoppus
Спасибо всем, я не ожидал, что будет так много ответов, мне это очень помогло.

des333
Ваша ссылка почему-то при открытии выдает resource not found , а так было бы интересно посмотреть

iosifk

Отправил письмо Вам на почту.


des333
Цитата(AlexHoppus @ Sep 15 2010, 01:00) *
des333
Ваша ссылка почему-то при открытии выдает resource not found , а так было бы интересно посмотреть

Действительно. Странно.
Вот:
http://gigapedia.com/items:view?eid=VAW7wJ...Y8PAH7e3ga48%3D
des00
Цитата(des333 @ Sep 14 2010, 04:26) *
Очень просто и понятно описано, легко читается - рекомендую.

хмм, это web книга или можно в офлайне читать ?
AlexHoppus
des00
В оффлайне можно читать, мне удалось скачать ее тут http://www.filestube.com/8e4a9b455c0a284e0...-Engineers.html
iosifk
Цитата(AlexHoppus @ Sep 15 2010, 01:00) *
Отправил письмо Вам на почту.

Утром читал в 6-30 по моск., еще не было...
des333
Цитата(des00 @ Sep 15 2010, 05:35) *
хмм, это web книга или можно в офлайне читать ?

Неужели Вы не зарегистрированы на Gigapedia.comsmile.gif
Рекомендую!



Цитата(AlexHoppus @ Sep 15 2010, 09:24) *
des00
В оффлайне можно читать, мне удалось скачать ее тут http://www.filestube.com/8e4a9b455c0a284e0...-Engineers.html

Вам тоже советую зарегистрироваться на Гигапедии.
yes
книжка была такая когда-то, там как раз рассматривался как пример 32х разрядный ЦПУ, ну и АЛУ наверно там есть
http://www.google.ru/#sclient=psy&hl=r...60d3e7a84dcbfb6
AlexHoppus
iosifk
Я ответил примерно следующее -
Цитата
Спасибо, что читаете мои статьи.

Вам спасибо.

Цитата
Как Вы нашли эти статьи?

Нашел ссылку на Вашу страницу на одном из форумов на этом сайте.

Цитата
Что бы Вы еще хотели почитать?

Честно - затрудняюсь ответить пока.

Цитата
Где учитесь и какой курс?

3 курс МГТУ имБаумана

yes
Спасибо большое, буду читать.

Leka
Вопрос процессоростроителям - на чем программировать собираетесь?
des333
Цитата(Leka @ Sep 15 2010, 21:50) *
Вопрос процессоростроителям - на чем программировать собираетесь?

Если это и ко мне вопрос, то отвечу - на V/SV.

А что? smile.gif
Leka
Не процессор описывать, а программу для этого процессора.
des333
Цитата(Leka @ Sep 16 2010, 01:27) *
Не процессор описывать, а программу для этого процессора.

Как мне кажется, не самый первостепенный вопрос. Да пока и не вопрос вовсе. Для начала нужно с процом определиться.
Или я не прав?  smile.gif

Лично я думаю для начала реализовать какую-нибудь существующую ISA, или несколько. А потом уже над своей подумать.
Так для первого вопроса для тестирования асма хватит.
Leka
На ассемблере далеко не уехать, разве что побаловаться.
iosifk
Цитата(Leka @ Sep 16 2010, 01:37) *
На ассемблере далеко не уехать, разве что побаловаться.

на самом деле вопрос не в том, будет ли обязательно язык высокого уровня или нет.
вопрос в том, чем занят данный процессор. Для каких задач он делался...
Если это развитый управляющий автомат и не более, то, как показала моя практика, и ассемблера вполне достаточно. Тем более, что при правильном выборе набора команд, одна команда такого процессора будет заменять 2-4 команды стандартного. А более сложные обработки можно отдать во вспомогательные для данного процессора блоки - сопроцессоры. И там тоже обойтись только ассемблером.
А вот если идет речь о "процессоре общего применения", то действительно, надо начинать с компилятора языка. И уже под него подгонять структуру процессора.


Цитата(AlexHoppus @ Sep 15 2010, 19:29) *
3 курс МГТУ имБаумана


тогда до встречи на Чип-Экспо. Я там буду 26 и 27 на стенде Элтеха... Подробнее напишу в форуме.
Пригласительные билеты, думаю, будут в офисе Элтеха...
iosifk
Цитата(iosifk @ Sep 14 2010, 09:58) *
Про сайт опенсорез Вам уже написали. Там к каждому проекту есть описание. хотя и на англ...

Вот как надо... И все только потому, что есть интерес и готовый софт...
http://chrisfenton.com/homebrew-cray-1a/

И там же пример кода...
yes
Цитата(iosifk @ Sep 16 2010, 08:36) *
А вот если идет речь о "процессоре общего применения", то действительно, надо начинать с компилятора языка. И уже под него подгонять структуру процессора.

это нам, как HDL дизайнерам кажется, что портировать компилер для проца сложно, а специалист по компилерам делает это не напрягаясь. тем более архитектура процев она в большинстве своем одинакова и в md файле надо пару строчек поправить и опаньки smile.gif
вот llvm вроде недавно появился, а его бэкэенд уже портировали на что только можно

но тем не менее - для TMS-ов 6000 все никак не напишут хорошего компилера.... то есть порта GCC все нет...

то есть думать надо вначале, а потом уже кодироватьsmile.gif
des333
Цитата(iosifk @ Sep 16 2010, 09:36) *
А вот если идет речь о "процессоре общего применения", то действительно, надо начинать с компилятора языка. И уже под него подгонять структуру процессора.

Я, конечно, в создании процессоров ноль, но на мой взгляд, если подгонять архитектуру процессора под компилятор, то хороший процессор не получится.


iosifk
Цитата(des333 @ Sep 17 2010, 16:10) *
... но на мой взгляд, если подгонять архитектуру процессора под компилятор, то хороший процессор не получится.

А процессоры AVR - это нам не указ и не пример... А ведь их структура как раз и была подогнана под компилятор Си. И уже столько лет все довольны... И Атмел на этом как понялась!

а про АМД продолжить? Или и так все понятно...
des333
Цитата(iosifk @ Sep 17 2010, 16:33) *
А процессоры AVR - это нам не указ и не пример... А ведь их структура как раз и была подогнана под компилятор Си. И уже столько лет все довольны... И Атмел на этом как понялась!

а про АМД продолжить? Или и так все понятно...

Один пример - это не показатель.

И еще - не подскажите, у ARM структура тоже подогнана по компилятор?


UPD. Судя по вступлению к этому документу:
http://www.atmel.com/dyn/resources/prod_do...ts/COMPILER.pdf

дело обстоит не совсем так.
Цитата
High Level Languages (HLLs) are rapidly becoming the standard methodology for
embedded microcontrollers due to improved time-to-market and simplified
maintenance support. In order to ensure that the new ATMEL AVR family of
microcontrollers was well suited as a target for C compiler, the external C compiler
development was started before the AVR architecture and instruction set were
completed. During the initial development of the C compiler, several potential
improvements in the AVR were identified and implemented. The result of this
cooperation between the compiler developer and the AVR development team is a
microcontroller for which highly efficient, high performance code is generated.
Leka
Цитата
подгонять архитектуру процессора под компилятор

Тут надо уточнить, подгонка под какой компилятор - уже существующего языка, или нового. Если второе, то речь скорее будет о взаимной подгонке железа и софта с целью общей оптимизации.
Leka
Цитата
LLVM

- почитал немного, пишут, что для х86 результат = GCC +/- 10%, те революций не предвидится.
И вспомнил, когда начинал разбираться с FPGA - ISE/Quartus весили по < 700Мбайт, сейчас > 4Гбайт, а результат синтеза/разводки - почти тот-же, и время синтеза - почти то-же (при неизменном железе). Что наблюдаем, сизифов труд компиляторописателей?
iosifk
Цитата(Leka @ Sep 17 2010, 22:44) *
И вспомнил, когда начинал разбираться с FPGA - ISE/Quartus весили по < 700Мбайт, сейчас > 4Гбайт, а результат синтеза/разводки - почти тот-же, и время синтеза - почти то-же (при неизменном железе). Что наблюдаем, сизифов труд компиляторописателей?


А вот это совершенно разные вещи...
Одно дело компилятор для процессора, а другое - огромная база данных, чем и являются кремниевые компиляторы. Объем "верхних" кристаллов вырос? Соответственно и вырос объем софта... Ну и "накладные расходы" из-за графических оболочек. Одни только Нетфраймы сколько стали весить...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.