Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 24, 2024 16:56

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 19, 2006 12:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
oleg писал(а):
Кстати, кто-нибудь с ТТА разбирался? Как организовать транспорты на альтере?


Точно так же, как и на других ПЛИС :) Вопрос некорректный, так называемые транспорты есть просто один из способов описания взаимодействий между блоками процессора. Все описывается на HDL нормальным порядком.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 19, 2006 12:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
oleg писал(а):
Кстати, кто-нибудь с ТТА разбирался? Как организовать транспорты на альтере?


На мультиплексорах, разумеется. Иного решения и не вижу, потому что в Альтере внутри нет "третьего состояния".

oleg писал(а):
Сдвиг делается на мультиплексоре, правда получается великовато устройство сдвига.

Формально, сдвигатель на мультиплексорах содержит Log<sub>2</sub>N мультиплексоров 2->1 на всю ширину N, t.e. грубо говоря, NLog<sub>2</sub>N логических ячеек (для Альтеры, для Ксайлинкса, думаю, почти то же самое)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 21, 2006 03:57 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
WingLion писал(а):
Кстати, кто-нибудь с ТТА разбирался? Как организовать транспорты на альтере?


На мультиплексорах, разумеется. Иного решения и не вижу, потому что в Альтере внутри нет "третьего состояния".


Это понятно. Я просто хотел понять, как должен выглядеть транспортная сеть для, например 5 исполнительных устройств (однобитовая версия). И на сколько это ресурсоемко получается на плисах, а так же где будет такая среда работать лучше на каких плисах?
Сама идея мне понятна, а вот как это выглядит в железе? Ведь транспорты по идее должны быть двунаправлены.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 21, 2006 23:06 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
oleg писал(а):
Это понятно. Я просто хотел понять, как должен выглядеть транспортная сеть для, например 5 исполнительных устройств (однобитовая версия). И на сколько это ресурсоемко получается на плисах, а так же где будет такая среда работать лучше на каких плисах?
Сама идея мне понятна, а вот как это выглядит в железе? Ведь транспорты по идее должны быть двунаправлены.


Очень нересурсоемко, в объеме штук логических ячеек (при их количестве в тысячах). С однобитовой версией можно не завязываться, ресурсов вполне хватит и на нормальную сеть вычислительных устройств. Что до двунаправленности, то это не совсем тот вопрос, над которым нужно отдельно задумываться. VHDL/Verilog позволяют вести поведенческое описание схем, т.е. как это сделать в железе - голова болит у САПР ПЛИС.

К примеру, вот кусок описания процессора, у которого опкод 23 выполняет add ra, rb, rc

Код:
process(clk)
begin
  if clk'event and clk = '1' then
     case opcode is
        ...
         when 23 => reg_a <= reg_b+reg_c;
         ...
     end case
  end if;
end process;
[/code]


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 00:05 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Хищник писал(а):
Очень нересурсоемко, в объеме штук логических ячеек (при их количестве в тысячах). С однобитовой версией можно не завязываться, ресурсов вполне хватит и на нормальную сеть вычислительных устройств. Что до двунаправленности, то это не совсем тот вопрос, над которым нужно отдельно задумываться. VHDL/Verilog позволяют вести поведенческое описание схем, т.е. как это сделать в железе - голова болит у САПР ПЛИС.

К примеру, вот кусок описания процессора, у которого опкод 23 выполняет add ra, rb, rc


Я знаком а AHDL.
И у меня создалось впечатление, что лучше такого, как приведено выше не делать, а расписать в цикле по lcell-ам с учетом связей заема-переноса и пр.
Но вопрос в другом. Как обычно выглядит эта самая транспортная сеть ( с однобитными устройствами понятно) ну, например я имею 16 исполнительных устройств и хочу, чтобы комутационных шин хватало на то,что бы связать друг с другмо 5 устройств одновременно. Так вот, сколко мне потребуется дешифраторов и на сколько они мне затормозят время передачи данных из одного исполнительного блока в другой, чем если бы я жестко зафиксировал пути и направления.?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 00:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
oleg писал(а):
16 исполнительных устройств и хочу, чтобы комутационных шин хватало на то,что бы связать друг с другмо 5 устройств одновременно.


16 устройств имеют не менее 16 входов, каждый из которых, должен быть куда-то подключен. Если к каким-то из 16 выходов, то это 16 мультиплексоров на 16 входов и одновременно до 16 передач.
Ограничить до 5 - значит лепить дополнительные мультиплексоры - значит снижать быстродействие.
С другой стороны, 5 мультиплексоров на 16 входов (на выходах 16-ти устройств) и 16 мультиплексоров по 5 входов (с выхода первых мультиплексоров) могут занять меньший объем в ПЛИС. И разведутся попроще. И, если какие-то из исполнительных устройств никогда не работают одновременно, их входные мультиплексоры можно сократить.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 10:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
oleg писал(а):
И у меня создалось впечатление, что лучше такого, как приведено выше не делать, а расписать в цикле по lcell-ам с учетом связей заема-переноса и пр.


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

oleg писал(а):
Но вопрос в другом. Как обычно выглядит эта самая транспортная сеть ( с однобитными устройствами понятно) ну, например я имею 16 исполнительных устройств и хочу, чтобы комутационных шин хватало на то,что бы связать друг с другмо 5 устройств одновременно. Так вот, сколко мне потребуется дешифраторов и на сколько они мне затормозят время передачи данных из одного исполнительного блока в другой, чем если бы я жестко зафиксировал пути и направления.?


Очевидно, 5. Но вопрос я не совсем понял. Задержки существенно зависят от двух вещей: числа logic levels (это регулируется как раз сложностью схемы) и трассировкой. Прямого способа выиграть пару наносекунд обычно нет, потому что получается бегание за соринками в грязной комнате. Гораздо эффективнее "повышать общую культуру проекта", кодируя в подходящем стиле. Тогда все транспортные сети получатся сами собой, в процессе реализации синтезатором соответствующего поведения схемы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 11:34 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Прямого способа выиграть пару наносекунд обычно нет, потому что получается бегание за соринками в грязной комнате

На проектах с подпредельной частотой таким не редко приходится заниматься. И тут принцип "Хвост вытащу - нос увязнет, нос вытащу - хвост увязнет" действует в полную силу. Критические места не редко приходится не только по LCELL-ам расписывать, но и ручками эти LCELL-ы на флоорплане расставлять, подбирая эти самые наносекнды так, как нужно.

Радикальный способ увеличения скорости - это переход на другой speed-grade, но и он не гарантирует, от того, что автомат намутит разводку ПЛИС-а так, что все времянки разъедутся.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 13:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
На проектах с подпредельной частотой таким не редко приходится заниматься. И тут принцип "Хвост вытащу - нос увязнет, нос вытащу - хвост увязнет" действует в полную силу. Критические места не редко приходится не только по LCELL-ам расписывать, но и ручками эти LCELL-ы на флоорплане расставлять, подбирая эти самые наносекнды так, как нужно.


Последние версии очень хорошо автоматизируют этот процесс. Конечно, можно лезть и на floorplan, но надо очень хорошо представлять, куда и зачем. А еще есть PlanAhead, хорошо избавляющий от беготни за Cell-ами. Если руками все делать, очень быстро надоест, рассеется внимание, и общий результат окажется хуже, чем мог бы. И в любом случае, основа для дальнейшего улучшения лежит в сфере поведенческого описания. Просто невозможно держать в голове все тонкости конкретного семейства ПЛИС, и список ресурсов, которые в ней есть. Автоматический переход от behavioral к RTL позволяет САПР выбрать именно то, что решает "шаблонные" задачи наилучшим образом. А попытка руками описать цепи переноса приведет к бестолковой, большой и тормозной схеме, работающей чисто на LUT. То же с мультиплексорами, кстати, которые в последних семействах есть в избытке, причем способы их использования оказываются самые неожиданные. Если их попытаться расставить руками по ячейкам, половину не заметим.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 14:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Руками я стараюсь расставлять только то, что сильно критично. Например, проводку CLK со входа через LCELL-ы на выход, когда надо, чтобы его фаза была совершенно четкой и не менялась при перекомпиляции. Плюс расставленные по другим выходам периферийны I/O триггеры, и проблемы с "разбеганием" времянок почти пропадают.

С Квартусом, кстати, проблема еще в том, что он все ручные расстановки LCELL-ов в проекте игнорирует, в результате получается невесть что с неизвестными параметрами. Из-за этого я в MAX-Plus-е отключал разводку в режиме Квартуса (есть у него в последних версиях такое, типа "рекламной акции", которая для меня стала фактически антирекламной).

P.S. Что-то мы тут совсем в оффтопик ударились...
("железная" тема выделена и перенесена)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 15:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Руками я стараюсь расставлять только то, что сильно критично. Например, проводку CLK со входа через LCELL-ы на выход, когда надо, чтобы его фаза была совершенно четкой и не менялась при перекомпиляции. Плюс расставленные по другим выходам периферийны I/O триггеры, и проблемы с "разбеганием" времянок почти пропадают.


Проблема с clk сейчас в основном одна - не забыть поставить Digital Clock Manager. Клок раздается специальными линиями, джиттер при этом измеряется сотнями пикосекунд. Триггеры в I/O аналогично - пакуются везде, где это возможно. Главное, вдумчиво покопаться в настройках синтеза.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 15:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
До проблем с джиттером у меня как-то не доходило :)
Клок один на всю схему, подается с генератора на глобальный вход и как бы "по идее" должен быть высоко стабильный.
А внутри ПЛИС-а для него отдельная общая разводка, которая не допускает лишней разности фаз. Фазы набегают только если клок со входа ПЛИС на выход подается. SD-RAM у меня клок берет с ПЛИС-а, чтобы не возиться с длинной ВЧ-разводкой от генератора, не ловить лишние наводки на клок и не иметь неконтролируемую разность фаз между клоком на памяти и клоком внутри ПЛИС-а...


Кстати, к "фишкам" работы с ПЛИС можно отнести такой прием работы с клоком:
1. Выход клока на память объявляется трехстабильным.
2. Выводится клок через трехстабильный буфер, включенный на постоянно.
3. Клок для защелкивания данных с памяти берется с этого же вывода, и он физически оказывается подключенным именно с него, в результате, нет лишней беготни за фазами сигналов.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 16:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
А внутри ПЛИС-а для него отдельная общая разводка, которая не допускает лишней разности фаз. Фазы набегают только если клок со входа ПЛИС на выход подается. SD-RAM у меня клок берет с ПЛИС-а, чтобы не возиться с длинной ВЧ-разводкой от генератора, не ловить лишние наводки на клок и не иметь неконтролируемую разность фаз между клоком на памяти и клоком внутри ПЛИС-а...


В DCM есть специальный вход CLKFB (feedback), на который требуется заводить сигнал для синхронизации. Можно завести выход самого блока, тогда будет выравниваться фаза тактового сигнала по кристаллу. Но можно вывести clk наружу, к памяти, потом вернуть в ПЛИС, и в этом случае внутренний clk будет синхронизироваться с внешним.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 16:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Наверно, это (DCM) все же фишка Ксайлинкса, а не Альтеры. Или в Альтере она только в более поздних ПЛИСах нежели ACEX, с которыми я сейчас работаю.

P.S. Кстати, Cyclone-II есть в продаже в фирме Эфо, я недавно получил ответ на вопрос по ним и ценники вполне терпимые. начиная от 18$...
Только прямо на складе их сейчас нет, а поставка - 3-4 недели. Сижу и думаю, какой заказывать. 208-выводный минимальный или по максимуму, что в 240-выводном есть.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 22, 2006 16:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
WingLion писал(а):
Наверно, это (DCM) все же фишка Ксайлинкса, а не Альтеры. Или в Альтере она только в более поздних ПЛИСах нежели ACEX, с которыми я сейчас работаю.


Да, в Альтере это должно быть где-то в Циклонах и дальше.

WingLion писал(а):
P.S. Кстати, Cyclone-II есть в продаже в фирме Эфо, я недавно получил ответ на вопрос по ним и ценники вполне терпимые. начиная от 18$...
Только прямо на складе их сейчас нет, а поставка - 3-4 недели. Сижу и думаю, какой заказывать. 208-выводный минимальный или по максимуму, что в 240-выводном есть.


О, наконец-то! А поменьше корпусов там не бывает? Только 208 и 240?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB