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

 
 
> Двухпортовая память в FPGA., Что происходит при одновременном доступе.
dxp
сообщение May 4 2006, 05:11
Сообщение #1


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Вопрос уже понимался, но, к сожалению, я что-то не помню четкого ответа. Вот если в двухпортовую память одновременно идет обращение с двух портов (что есть, вообще-то, штатный режим) и оба обращения попадают в один адрес - что при этом произойдет, если:

1. Один пишет, другой читает, клок один.
2. Один пишет, другой читает, клоки разные и несинхронные.
3. Оба пишут, клок один.
4. Оба пишут, клоки разные и несинхронные.

В случае разных и несинхронных клоков запись/чтение будут происходить физически в чуть разные моменты времени.

Допустимые ли это ситуации с точки зрения целостности дизайна. Растолкуйте, плиз, кто знает?

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Magnum
сообщение May 4 2006, 05:41
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397



Вроде бы у двупортовой памяти один порт для записи и один для чтения.. или вы про нечто другое?
Go to the top of the page
 
+Quote Post
DS
сообщение May 4 2006, 05:47
Сообщение #3


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Что то я не видел памяти с двумя каналами записи. В Xilinx читается асинхронно по обоим каналам, записывается по фронту, только через 1 порт. Если адрес на обоих портах один, после фронта записи меняется значение на выходе на записанное.

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


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
Magnum
сообщение May 4 2006, 05:52
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397



На самом деле оказывается можно, посмотрел в визарде Quartus можно сгенерить такую память с двумя каналами записи и двумя каналами чтения, причем клоки можно раздать раздельно: либо один для записи , другой для чтения, либо по каналам: один для первого канала, другой для второго. хм..
Go to the top of the page
 
+Quote Post
dxp
сообщение May 4 2006, 06:30
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Magnum @ May 4 2006, 12:52) *
На самом деле оказывается можно, посмотрел в визарде Quartus можно сгенерить такую память с двумя каналами записи и двумя каналами чтения, причем клоки можно раздать раздельно: либо один для записи , другой для чтения, либо по каналам: один для первого канала, другой для второго. хм..

Да, это у них называется True Dual-Port Memory. Вот и хоцца прояснить эту ситуацию раз и навсегда. smile.gif В принципе, наверное, всегда можно избежать такие ситуации на уровне дизайна, но не лишне знать, чем чревато такое. Например, может внутри памяти есть аппаратная блокировка второго порта, если он лезет в тот же адрес (по записи), что и первый (тоже по записи). Но вот что-то в доке ничего не нарыл (может искал невнимательно или глаз замыленный).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
id_gene
сообщение May 4 2006, 06:33
Сообщение #6


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



пользуюсь altsyncram с одним клоком. При ситуации (1) читаются старые данные. Чтение синхронное(altsyncram!).
В мегавизарде есть параметр READ_DURING_WRITE_MODE_MIXED_PORTS.

Видел (уже не помню где), что эта ситуация обрабатывается по разному у разных производителей, бывает, что можно читать уже новые данные.
Насчет асинхронного чтения - не знаю.
Развязывающие буферы в моем случае такую ситуацию исключают за счет синхронизации указателей чтения/записи.

С остальными ситуациями не сталкивался.

есть немного в stratix handbook, volume 2, 3-24.
Go to the top of the page
 
+Quote Post
Victor
сообщение May 4 2006, 06:51
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



У Зайлинкса ситуация такая:

Цитата
When one port writes to
a given memory cell, the other port must not address that memory cell (for a write or a read) within the clock-to-clock setup window.
(1 нс для V2Pro).

Цитата
When both clocks are synchronous or identical, the result of simultaneous accesses from
both ports to the same memory cell is best described in words:
• If both ports read simultaneously from the same memory cell:
Both Data_out ports will have the same data.
• If both ports write simultaneously into the same memory cell:
The data stored in that cell becomes invalid (unless both ports write identical data).
• If one port writes and the other port reads from the same memory cell:
The write operation succeeds, and the data to be read out from the read port will be
determined by the read output mode (write_first, read_first, or no_change).
If the write port is in read_first mode, the read port's Data_out represents the previous
content of the memory cell. If the write port is in write_first mode or in no_change mode, the read port's Data_out becomes invalid. Obviously, the read port's mode
setting does not affect this operation.


Пардонте-с, что не перевожу wink.gif


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post

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

 


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


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