реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Picoblaze для Altera
SM
сообщение Sep 15 2009, 09:45
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Artem_Petrik @ Sep 15 2009, 11:12) *
Память как память. Только данные на выходе появляются в следующем такте, после того как выставлен адрес. А для проца с машинным циклом в 1 такт нужно чтоб сразу. Ну или конвеер лепить, чтоб адрес зараннее выставлять.

Фигня война. Просто для момента "запись во время чтения" надо сделать байпасный путь. Т.е. если адрес записи совпадает с адресом чтения и запись активна, то читать не из ОЗУ а с шины данных записи. И все проблемы решены одним компаратором и мультиплексором.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 15 2009, 09:53
Сообщение #17


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(SM @ Sep 15 2009, 04:45) *
Фигня война. Просто для момента "запись во время чтения" надо сделать байпасный путь. Т.е. если адрес записи совпадает с адресом чтения и запись активна, то читать не из ОЗУ а с шины данных записи. И все проблемы решены одним компаратором и мультиплексором.


угу, при этом это все на входе однотактного АЛУ и на выход системной шины. ИМХО тактуха упадет где-то раза в 2-2.5 %)


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 15 2009, 16:05
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Sep 15 2009, 13:53) *
ИМХО тактуха упадет где-то раза в 2-2.5

Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое.
Go to the top of the page
 
+Quote Post
Leka
сообщение Sep 15 2009, 17:26
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(SM @ Sep 15 2009, 20:05) *
Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое.

Асинхронная память в FPGA не для "чтения записываемого" - у синхронной блочной памяти есть режим "write first", и байпасные пути для этого не требуются. Асинхронный режим нужен для чтения и записи по разным адресам в одном такте и для одного порта. Например, когда в текущем такте (i) прочесть по двум адресам А(i), В(i), и записать по третьему адресу С(i)==B(i-1). Байпасные пути не помогут.

Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти?
Go to the top of the page
 
+Quote Post
Methane
сообщение Sep 15 2009, 17:39
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(des00 @ Sep 15 2009, 11:19) *
но этот вариант изменит временные соотношения на шине пикоблейза, т.к. она вместо аналога APB 2.0 станет аналогом вишбона с ws = 0.

Если бы все было так просто, тогда Кен Чапмен заложил бы в свой процессор возможность использовать блочную память, лишние 1к регистров всегда пригодились бы.

понял. Не знал что такая штука в ксилинксе есть.
Go to the top of the page
 
+Quote Post
confflex
сообщение Sep 15 2009, 17:46
Сообщение #21


Участник
*

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



Цитата(SM @ Sep 15 2009, 20:05) *
Не знаю, как в альтере, а в асике байпасный путь мне не подпортил ровном счетом ничего, даже немного улучшил критический путь. А все из-за того, что мультиплексор + синхронная память оказались шустрее асинхронной, позволяющей читать записываемое.

Вы использовали "правленный" picoblaze в асиках? Может выложите исходники, а мы для Альтеры попробуем. biggrin.gif
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Sep 15 2009, 18:34
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(Leka @ Sep 15 2009, 20:26) *
Асинхронная память в FPGA не для "чтения записываемого" - у синхронной блочной памяти есть режим "write first", и байпасные пути для этого не требуются. Асинхронный режим нужен для чтения и записи по разным адресам в одном такте и для одного порта. Например, когда в текущем такте (i) прочесть по двум адресам А(i), В(i), и записать по третьему адресу С(i)==B(i-1). Байпасные пути не помогут.

Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти?

Можно взять 2 блока памяти, писать в оба одновременно (содержимое памяти будет одинаковое), читать из одного блока операнд А, из другого операнд Б. 
Go to the top of the page
 
+Quote Post
Leka
сообщение Sep 15 2009, 20:27
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Artem_Petrik @ Sep 15 2009, 22:34) *
Можно взять 2 блока памяти, писать в оба одновременно (содержимое памяти будет одинаковое), читать из одного блока операнд А, из другого операнд Б. 

Да, так можно, если блочной памяти не жалко. smile.gif
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 15 2009, 21:18
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Leka @ Sep 15 2009, 21:26) *
Те режим 2х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти?

Т.е. трехпортовая память? Два порта на чтение и один на запись? Или чтение на первом пол-такте и запись по тому же порту на втором? Если разбивка по пол-тактам, то можно и синхронную запустить на удвоенной частоте, что эквивалентно.
Go to the top of the page
 
+Quote Post
Leka
сообщение Sep 15 2009, 22:55
Сообщение #25


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(SM @ Sep 16 2009, 01:18) *
Т.е. трехпортовая память? Два порта на чтение и один на запись? Или чтение на первом пол-такте и запись по тому же порту на втором? Если разбивка по пол-тактам, то можно и синхронную запустить на удвоенной частоте, что эквивалентно.

Для асинхронной(по чтению) памяти с регистром на адресном входе получается так: по фронту клока - запись по старому адресу(в регистре адреса) и чтение по новому адресу(защелкнутому в регистре адреса). Можно и на синхронной - с мультиплексорами, многофазным клоком, и тп. Просто если нет асинхронной памяти - выгоднее взять другую архитектуру - под синхронную память.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 16 2009, 03:22
Сообщение #26


Вечный ламер
******

Группа: Модераторы
Сообщений: 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х-портового чтения--модификации--записи в каждом такте - как реализовать на синхронной памяти?


для пикоблейза это не актуально, т.к. у него такт проца всегда двухфазный, и регистровый файл можно просто сделать на одном элементе блочной памяти, все начинает портить латентность чтения этой памяти и особенности реализации АЛУ данного проца %)


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 16 2009, 05:54
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Sep 16 2009, 07:22) *
2. появляется лишний слой логики на выходе блочной памяти (байпас на шину и однотактное алу) что с учетом больших задержек при работе с блочной памятью даст увеличение критических путей %)

Да не проблема это. У асинхронной памяти время доступа куда больше, чем Tco синхронной. Итого Tpd асинхронной больше, чем (Tco синхронной + Tpd байпаса)

Ну и можно собрать для аррии например, у нее и распределенная память есть.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 16 2009, 06:59
Сообщение #28


Вечный ламер
******

Группа: Модераторы
Сообщений: 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

на альтеры с распределенной памятью пикоблейз легко переноситься


--------------------
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 16 2009, 07:30
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(des00 @ Sep 16 2009, 10:59) *
для распределенной памяти "время чтения" 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

И это сравнение для того же объема и конфигурации, набранного распределенной памятью, как у блока? Не верю.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 16 2009, 07:41
Сообщение #30


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(SM @ Sep 16 2009, 01:30) *
И это сравнение для того же объема и конфигурации, набранного распределенной памятью, как у блока? Не верю.


Это сравнение пикоблейзовского регистрового файла сделанного на 8 ми элементах RAMD16x1(1 LUT) и его же сделанного на одном элементе RAMB16. Ведь речь в теме идет о переводе пикоблейза на блочную память as is, без переработки адресации операндов %)


--------------------
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 12:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01504 секунд с 7
ELECTRONIX ©2004-2016