|
|
  |
Picoblaze для Altera |
|
|
|
Sep 15 2009, 17:26
|
Профессионал
    
Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118

|
Цитата(SM @ Sep 15 2009, 20:05)  Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое. Асинхронная память в FPGA не для "чтения записываемого" - у синхронной блочной памяти есть режим "write first", и байпасные пути для этого не требуются. Асинхронный режим нужен для чтения и записи по разным адресам в одном такте и для одного порта. Например, когда в текущем такте (i) прочесть по двум адресам А(i), В(i), и записать по третьему адресу С(i)==B(i-1). Байпасные пути не помогут. Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти?
|
|
|
|
|
Sep 15 2009, 17:46
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 19-11-05
Пользователь №: 11 082

|
Цитата(SM @ Sep 15 2009, 20:05)  Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое. Вы использовали "правленный" picoblaze в асиках? Может выложите исходники, а мы для Альтеры попробуем.
|
|
|
|
|
Sep 15 2009, 18:34
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Цитата(Leka @ Sep 15 2009, 20:26)  Асинхронная память в FPGA не для "чтения записываемого" - у синхронной блочной памяти есть режим "write first", и байпасные пути для этого не требуются. Асинхронный режим нужен для чтения и записи по разным адресам в одном такте и для одного порта. Например, когда в текущем такте (i) прочесть по двум адресам А(i), В(i), и записать по третьему адресу С(i)==B(i-1). Байпасные пути не помогут.
Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти? Можно взять 2 блока памяти, писать в оба одновременно (содержимое памяти будет одинаковое), читать из одного блока операнд А, из другого операнд Б.
|
|
|
|
|
Sep 16 2009, 03:22
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(SM @ Sep 15 2009, 11:05)  Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое. ну то в асике %) для фпга вижу несколько "проблем" : 1. блочная память, в отличие от распределенной находиться только в определенных местах фпга : это надо будет учесть при разводке мультиплексоров и алу. 2. появляется лишний слой логики на выходе блочной памяти (байпас на шину и однотактное алу) что с учетом б ольших задержек при работе с блочной памятью даст увеличение критических путей %) Цитата(Leka @ Sep 15 2009, 12:26)  Асинхронная память в FPGA не для "чтения записываемого" - у синхронной блочной памяти есть режим "write first", и байпасные пути для этого не требуются. Асинхронный режим нужен для чтения и записи по разным адресам в одном такте и для одного порта. Например, когда в текущем такте (i) прочесть по двум адресам А(i), В(i), и записать по третьему адресу С(i)==B(i-1). Байпасные пути не помогут.
Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти? для пикоблейза это не актуально, т.к. у него такт проца всегда двухфазный, и регистровый файл можно просто сделать на одном элементе блочной памяти, все начинает портить латентность чтения этой памяти и особенности реализации АЛУ данного проца %)
--------------------
|
|
|
|
|
Sep 16 2009, 06:59
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(SM @ Sep 16 2009, 00:54)  Да не проблема это. У асинхронной памяти время доступа куда больше, чем Tco синхронной. Итого Tpd асинхронной больше, чем (Tco синхронной + Tpd байпаса)
Ну и можно собрать для аррии например, у нее и распределенная память есть. для асика может быть, вот из даташита на спартан3е, для распределенной памяти "время чтения" TILO The time it takes for data to travel from the CLB’s F (G) input to the X (Y) output 0.66ns для блочной TBCKO When reading from block RAM, the delay from the active transition at the CLK input to data appearing at the DOUT output 2.45ns на альтеры с распределенной памятью пикоблейз легко переноситься
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|