Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
Xilinx в последних синтезаторах делает достаточно остроумно. При необходимости обеспечить много портов для чтения распределенная память дублируется - запись ведется по первому порту нескольких одинаковых блоков, и таким образом, читать можно теперь из любого. А вот порты чтения распределены по одному на каждый такой блок (используется уже второй порт), в результате каждый блок имеет по одному порту чтения, и одному записи, а в проекте выглядит как многопортовый на чтение.
Xilinx в последних синтезаторах делает достаточно остроумно. При необходимости обеспечить много портов для чтения распределенная память дублируется - запись ведется по первому порту нескольких одинаковых блоков, и таким образом, читать можно теперь из любого. А вот порты чтения распределены по одному на каждый такой блок (используется уже второй порт), в результате каждый блок имеет по одному порту чтения, и одному записи, а в проекте выглядит как многопортовый на чтение.
|
|
|
|
Добавлено: Пн авг 17, 2009 00:42 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Блочную память использовать можно, только с ней скорость получается низкой к сожалению из-за двухтактного доступа. Поэтому стеки пока сделаны на LCELL-ах.
Блочную память использовать можно, только с ней скорость получается низкой к сожалению из-за двухтактного доступа. Поэтому стеки пока сделаны на LCELL-ах.
|
|
|
|
Добавлено: Вс авг 16, 2009 20:54 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Встроенную память можно использовать у Xilinx, где каждая LUT конфигурируется и как 16x1 бит. Блочная память у всех производителей достаточно крупная (4 кбит в старых семействах, 18 кбит в новых), и синтезатор просто не рассматривает ее для реализации мелкого блока памяти. Можно, конечно, задать использование блочной памяти и принудительно.
Встроенную память можно использовать у Xilinx, где каждая LUT конфигурируется и как 16x1 бит. Блочная память у всех производителей достаточно крупная (4 кбит в старых семействах, 18 кбит в новых), и синтезатор просто не рассматривает ее для реализации мелкого блока памяти. Можно, конечно, задать использование блочной памяти и принудительно.
|
|
|
|
Добавлено: Вс авг 16, 2009 20:34 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): Стеки по 232LE
ясно. а встроенную память нельзя под это дело пользовать?
[quote="WingLion"]Стеки по 232LE[/quote]
ясно. а встроенную память нельзя под это дело пользовать?
|
|
|
|
Добавлено: Вс авг 16, 2009 20:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Вот раскладка, что и сколько занимает на данный момент:
Код: 16-bit вариант: Общий объем на данный момент ~1400LE мультиплексоры -- от 0 до 80 LE Memory Control Unit - 32LE ALU1 - 226LE ALU2 -18LE Стеки по 232LE Устройство управления - 35LE
Надо заметить, что мультиплексоры занимают сейчас максимальный объем, потому что в устройстве управления введены тестовые входы, позволяющие подать любую внутреннюю широкую команду на исполнительные блоки.
Когда эти входы отключатся, Квартус должен будет соптимизировать часть этих ресурсов и объем уменьшится.
Вот раскладка, что и сколько занимает на данный момент:
[code]16-bit вариант: Общий объем на данный момент ~1400LE мультиплексоры -- от 0 до 80 LE Memory Control Unit - 32LE ALU1 - 226LE ALU2 -18LE Стеки по 232LE Устройство управления - 35LE[/code]
Надо заметить, что мультиплексоры занимают сейчас максимальный объем, потому что в устройстве управления введены тестовые входы, позволяющие подать любую внутреннюю широкую команду на исполнительные блоки.
Когда эти входы отключатся, Квартус должен будет соптимизировать часть этих ресурсов и объем уменьшится.
|
|
|
|
Добавлено: Вс авг 16, 2009 18:43 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
точнее и о размерах и о тормозах
точнее и о размерах и о тормозах 8)
|
|
|
|
Добавлено: Вс авг 16, 2009 18:23 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
посыпаю голову пеплом, не прав 8(
собственно я думал о размерах, а не о тормозах.
посыпаю голову пеплом, не прав 8(
собственно я думал о размерах, а не о тормозах.
|
|
|
|
Добавлено: Вс авг 16, 2009 18:22 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Я бы даже сказал, что существенно полегче. Уклон в сторону мультиплексоров пошел с 90-нм семейств, они очень хорошие получаются и на большое число входов.
Я бы даже сказал, что существенно полегче. Уклон в сторону мультиплексоров пошел с 90-нм семейств, они очень хорошие получаются и на большое число входов.
|
|
|
|
Добавлено: Вс авг 16, 2009 18:22 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Хищник писал(а): А можно узнать, на основании чего сделан такой вывод?
видимо из опыта. Альтера действительно жутко тормозит на мультиплексорах. Особенно старая альтера типа ACEX FLEX и т.п.
У новых с этим все же полегче...
[quote="Хищник"]А можно узнать, на основании чего сделан такой вывод? [/quote]
видимо из опыта. Альтера действительно жутко тормозит на мультиплексорах. Особенно старая альтера типа ACEX FLEX и т.п.
У новых с этим все же полегче...
|
|
|
|
Добавлено: Вс авг 16, 2009 18:20 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): и основные тормоза на гигантских мультиплексорах (коих многовато)...
А можно узнать, на основании чего сделан такой вывод?
[quote="mOleg"]и основные тормоза на гигантских мультиплексорах (коих многовато)... [/quote]
А можно узнать, на основании чего сделан такой вывод? :)
|
|
|
|
Добавлено: Вс авг 16, 2009 18:15 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
и основные тормоза на гигантских мультиплексорах (коих многовато)...
а так очень интересно, в том числе и то, что проц представлен в графическом виде
и основные тормоза на гигантских мультиплексорах (коих многовато)...
а так очень интересно, в том числе и то, что проц представлен в графическом виде 8)
|
|
|
|
Добавлено: Вс авг 16, 2009 18:13 |
|
|
|
|
|
Заголовок сообщения: |
TTA forth-процессор (базовая модель) |
|
|
Итак, за один вечер схемка стала реальной в Quаrtus-е.
Вот она: http://fforum.winglion.ru/att/tta.bdf.pdf
Регистры и стеки объединены соответственно, каждый в один блок.
ALU1 и ALU2 - задаются двумя разными файлами, т.е. они формально различны, практически сейчас в них только заглушки с минимумом операций.
Блок контроллера памяти сделан так, чтобы в нем можно было разместить как внутренние блоки памяти ПЛИС, так и подключить внешнюю память.
Блок управления пока с нулями во всех командах и тестовыми входами для прямого управления всеми устройствами и облегчения проверки их работы в симуляторе.
Внутренняя команда - 46 бит, внешняя - 4 бита.
при 16-битной ширине данных "зверек" развелся в 943 логических ячейки с частотой 141MHz для
циклона-2 (EP2C20F484C7)
Итак, за один вечер схемка стала реальной в Quаrtus-е.
Вот она: http://fforum.winglion.ru/att/tta.bdf.pdf
Регистры и стеки объединены соответственно, каждый в один блок.
ALU1 и ALU2 - задаются двумя разными файлами, т.е. они формально различны, практически сейчас в них только заглушки с минимумом операций.
Блок контроллера памяти сделан так, чтобы в нем можно было разместить как внутренние блоки памяти ПЛИС, так и подключить внешнюю память.
Блок управления пока с нулями во всех командах и тестовыми входами для прямого управления всеми устройствами и облегчения проверки их работы в симуляторе.
Внутренняя команда - 46 бит, внешняя - 4 бита.
при 16-битной ширине данных "зверек" развелся в 943 логических ячейки с частотой 141MHz для
циклона-2 (EP2C20F484C7)
|
|
|
|
Добавлено: Вс авг 16, 2009 02:12 |
|
|
|
|