Цитата(SM @ May 21 2009, 19:53)

Если на него так однобоко смотреть - то да, не имеет. Но SLOAD работает в любом режиме работы LE. В том числе и не в арифметическом. И в результате можно иметь LUT4 + SLOAD + LOADDATA одновременно, правда с ограничением, что один из входов LUT тот же LOADDATA.
Цитата(SM @ May 21 2009, 19:53)

Да, каждый LAB содержит по две штуки сигналов CLK, CE, ACLR и по одному SCLR, ALOAD/PRE, SLOAD, ADDnSUB. А куда их больше-то на десяток триггеров? Если переход из домена в домен, то всегда из лаба в лаб. Два клока разве что для паковки независимой логики разных доменов в один лаб. А вот [A/S][CLR/PRE/LOAD] маловато... Хотя бы по три каждого вида бы надо бы. На прототипировании заказных микрух мне этих ресурсов к сожалению обычно маловато. Да и даже на 16 LE, как вроде в последнем циклоне, хватит двух клоков за глаза. Сложно себе представить задачу, настолько напичканную различными клоками, чтобы нехватило этого ресурса.
Я смотрел на проблемы отсутствия SLOAD и как бы их обойти... Да без SLOAD иногда понадобиться использовать 2 LUT4 сцепленных каскадно, или более хитро, ISE 9.2 уже научился уже это делать хорошо,.. даже слишком хорошо. А SLOAD - один на весь LAB, также как и ALOAD, SCLR; а ACLR и CLKEN - только два на все LAB триггера. Да, эти управляющие линии очень приятны, но уже очень их ограниченный набор на весь LAB... А жаль, задумка полезная, побольше бы было таких независимых линий и было бы очень хорошо. У Xilinx FPGA на каждый Slice приходит по своему CE, CLK, CLR/RST, PRE/SET - правда, есть архитектурный недостаток - эти сигналы
всегда подаются на оба триггера в Slice. Но в Slice только 2 триггера,.. а в LAB до 16.
Цитата(SM @ May 21 2009, 19:53)

А с учетом того, что практически во всех проектах имеется глобальный асинхронный сброс всей системы параллельно с локальными, управляемыми от ядра, асинхронными сбросами отдельных периферийных блоков и с кучей локальных синхронных (уже синтезированных с различных HDL-конструкций, автоматов, и т.п.), это очень нужно.
У Xilinx есть GSR (Global Set/Reset), только он сбрасывает все триггеры кристалла, поэтому эти цепи выброшены из схемы Slice. А по поводу активного использования асинхронных сбросов и предустановок только недавно (в пределах полугода назад) обсуждался вред такой техники работы - уж очень надо аккуратно работать с ними - не все могут справиться, поэтому с синхронными сигналами Set/Reset понадежней получается.
Цитата(SM @ May 21 2009, 19:53)

Плюс есть register chain, которая по аналогии с carry chain каскадирует триггеры в сверхскоростной сдвиговый регистр без занятия ресурсов разводки. Где это в xilinx? Я не вижу аналогичных shift_in и shift_out, но для триггеров, а не для SHR16.
А зачем... между соседними CLB сигналы передаются по коротким трассам - это я и имел ввиду под разницей разводочного ресурса, в Spartan и Virtex между соседними CLB груда трас... и все они быстрые (поэтому их и не выпячивают с помпой), а что по ним передавить - неважно: выход логики X (Y) или выход триггера XQ (YQ), причем всё равно какого Slice из имеющихся в CLB. А в пределах CLB данные передаются еще быстрее.
Цитата(SM @ May 21 2009, 19:53)

Чисто из своего опыта - distributed ram ни разу не понадобился, он есть в lattice, с которыми я работаю, есть в xilinx, для которого не раз синтезировал на пробу
Он действительно не всегда нужен, но когда нужен, то очень полезен. Для чтения Distributed RAM - асинхронная память. При любом использовании LUT4 можно использовать и FF, правда, если LUT4 используется не как ROM, то с некоторыми небольшими ограничениями (clock у них общий...)
А вот, например, в Pico Blase на 32 LUT собирается 16 16-разрядных регистров S0-S15 с 2 выходами, со встроенными дешифраторами адреса, выходными коммутаторами и почей обвязкой характерной для SRAM - получается очень компактно и блочная память не расходуется.
Цитата(SM @ May 21 2009, 19:53)

Касаемо SHR16... И зачем нужен регистр сдвига на 16 бит с единственным отводом от 16-го?
Редкость... поэтому место отвода динамически задается адресом (входными данными LUT'а - 4 бита) - и можно выбирать какую ячейку мы хотим увидеть от 1 до 16. Есть еще и специальный выход для каскадирования - там всегда данные с 16-ой ячейки.
Цитата(SM @ May 21 2009, 19:53)

А вот сдвиговый регистр на 16 бит с отводами от каждого бита - сколько угодно. При чем при этом сами LUT остаются полностью свободны и все ресурсы разводки тоже.
Ну пользуйте триггеры в Spartan - кто Вам не даёт ? При этом тоже можно использовать оба LUT4 сколько влезет. Про то, что у Xilinx все короткие трассы соединения достаточно "быстрые" - я написал выше, да и ниже тоже.
Цитата(SM @ May 21 2009, 19:53)

А, кстати, блочная память в X может переключаться в режим сдвигового регистра? В альтере да.
По моему не может, для этого понадобится собрать внешний генератор адреса... А если нужет не очен длинный сдиговый регистр (например на 64 бита) можно воспользоваться теми самыми SHR16, соединенными каскадно, а блочную память использовать для чего-либо более полезного.
Цитата(SM @ May 21 2009, 19:53)

Во первых LAB (Cyclone, я про него наизусть помню) состоит из 10 LE.
CycloneII Architecture, 2 абзац:
The logic array consists of LABs, with 16 logic elements (LEs) in each LAB.Cyclone III Device Handbook, Volume 1:
The logic array block (LAB) consists of 16 LEs and a LAB-wide control block.Ну да мне всё-равно.
Цитата(SM @ May 21 2009, 19:53)

Это Вы глаза разуйте, тут уже речь про разводку вне LAB/CLB, а не внутри них.
У X есть груды local line - это линии с малым временем распространения сигнала на "близкие" расстояния. У Spartan-3A от каждого CLB расходятся local lines предназначенные для достаточно быстрой (для предельных частот работы ПЛИС) к восьми соседним CLB. Для передачи данных на б
ольшые расстояния есть local lines пробрасывающие сигнал на 3 и 6 CLB одновременно, если надо еще дальше, то используется каскадное включение local lines, или уже long line. Если не лень гляньте FPGA Editor'ом в любую Xilinx FPGA и Вы увидите все детали этого кристалла (и заметьте: разводочный ресурс потребляет очень много места в Xilinx FPGA).
Цитата(SM @ May 21 2009, 19:53)

Я всего лишь говорю о том, что для каждой отдельно взятой задачи будет лучшим какой-то определенный чип какой-то одной фирмы, и вовсе не обязательно это будет altera или xilinx. Но пока из своей практики у меня не было такого проекта, который бы эффективнее был решен на xilinx-е (эффективность это в первую очередь себестоимость). Но как только появится, я его ни на секунду не задумываясь применю. У каждой архитектуры есть свои плюсы и свои минусы. И именно какой-то определенный плюс или их совокупность "выстреливает" в каждом отдельно взятом случае.
Мои соседи сидят на Cyclone 1, 2 и 3, он им подходит больше, в т.ч. и из-за б
ольшего количества "маленьких" (4K) блоков памяти на триггер - такие задачи.
А мне больше подходит Xilinx FPGA... - такие задачи.
Цитата(SM @ May 21 2009, 19:53)

А slice очень смахивает на под корень кастрированный ALM от Arria

Да весьма похож, но не он (нет Distributed RAM)... интересно кто появился раньше Virtex 1 или Arria ?
P.S.
Недеюсь нигде не опечатался.
Вот, наверное, и описаны основные
+ и
- для Spartan-3x и Cyclon 1, 2, 3... в сравнении так сказать.