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

 
 
 
Reply to this topicStart new topic
> Zynq DDR3 перестановка пинов DQx
Almaz1988
сообщение May 30 2016, 12:08
Сообщение #1


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

Группа: Участник
Сообщений: 100
Регистрация: 19-09-12
Пользователь №: 73 602



Добрый день!
Судя по http://www.xilinx.com/support/answers/46723.html
я могу для удобства разводки платы переставлять пины
данных в пределах банка: DQ[0-7], DQ[8-15], DQ[16-23], DQ[24-31].
А где в процессе сборки PetaLinux указать, что такие-то пины
переставлены? В Vivado такой возможности нет. Остается либо
дерево конфигурации, либо нужно лезть в исходники ядра, чего
очень не хочется.
Подскажите пожалуйста где, в каких файлах сборки указываются
переставленные пины? Я в данный момент развожу плату под Zynq-7000
и мне всего лишьнужно убедиться, что такая переконфигурация
выполняется безболезненно, без правки исходников ядра.
Скажите пожалуйста какой именно файл в сборке Petalinux нужно
править?
Go to the top of the page
 
+Quote Post
doom13
сообщение May 30 2016, 12:22
Сообщение #2


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Если речь о DDR-контроллере PS, то ничего Вы переставлять и не можете (там всё фиксировано), если - о DDR-контроллере PL, то такая возможность есть, но и соответствие линий будет указываться в проекте для PL.
Go to the top of the page
 
+Quote Post
Almaz1988
сообщение May 30 2016, 12:27
Сообщение #3


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

Группа: Участник
Сообщений: 100
Регистрация: 19-09-12
Пользователь №: 73 602



Цитата(doom13 @ May 30 2016, 15:22) *
Если речь о DDR-контроллере PS, то ничего Вы переставлять и не можете (там всё фиксировано), если - о DDR-контроллере PL, то такая возможность есть, но и соответствие линий будет указываться в проекте для PL.

Я о DDR-контроллере PS. А что тогда имеется в виду в UG933, на странице 66: " Byte and bit swapping is allowed to facilitate PCB routing, except for LPDDR2, which specifically forbids swapping. When
swapping bits, keep all bits within the same byte group." ?
Go to the top of the page
 
+Quote Post
doom13
сообщение May 30 2016, 13:01
Сообщение #4


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Похоже, работать будет. В ядре править ничего не придётся, т.к.:
Цитата
Since data will be returned the same way it was sent out of the Zynq PHY interface, physically swapping data lines between Zynq and memory will have no net effect on the data.
(Ваша ссылка).

PS: На zc706 все пины (DQ) DDR-контроллера соответствуют пинам памяти.
Go to the top of the page
 
+Quote Post
Almaz1988
сообщение May 30 2016, 13:47
Сообщение #5


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

Группа: Участник
Сообщений: 100
Регистрация: 19-09-12
Пользователь №: 73 602



Цитата(doom13 @ May 30 2016, 16:01) *
Похоже, работать будет. В ядре править ничего не придётся, т.к.:
(Ваша ссылка).

PS: На zc706 все пины (DQ) DDR-контроллера соответствуют пинам памяти.


Т.е., если я переставлю пины 2 и 3, то отправляя 0x04 контроллер будет думать,
что отправляет 0х08 и наоборот? Как будто бы просто сменится порядок битов.
Как будто бы должно работать, но все же хотелось бы услышать мнение тех, кто
проделывал такое на практике.

Цитата(Almaz1988 @ May 30 2016, 16:08) *
Т.е., если я переставлю пины 2 и 3, то отправляя 0x04 контроллер будет думать,
что отправляет 0х08 и наоборот? Как будто бы просто сменится порядок битов.
Как будто бы должно работать, но все же хотелось бы услышать мнение тех, кто
проделывал такое на практике.


Нашел опен сорсный пример разводки DDR3: http://www.imx6rex.com/
Плата OpenRex.
Действительно, биты данных переставлены в пределах своей банки в произвольном
порядке за исключением самых младших битов в каждой банке: DQ0, DQ8, DQ16, DQ24.
Go to the top of the page
 
+Quote Post
akorud
сообщение Jun 6 2016, 08:13
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842



Цитата(Almaz1988 @ May 30 2016, 15:47) *
Т.е., если я переставлю пины 2 и 3, то отправляя 0x04 контроллер будет думать,
что отправляет 0х08 и наоборот? Как будто бы просто сменится порядок битов.

Контроллер ничего не будет думать. Он просто запишет 8 бит и ожидает получить их в том же порядке читая. А в какую конкретно ячейку памяти попадет бит (в границах группы) ему в общем-то все равно.
Go to the top of the page
 
+Quote Post
Sl_Kirillov
сообщение Feb 14 2017, 12:36
Сообщение #7





Группа: Участник
Сообщений: 10
Регистрация: 12-01-09
Из: Санкт-Петербург
Пользователь №: 43 217



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

Проверено на нескольких платах с Zynq.

Был печальный опыт: случайно попутали по одному биту меж байтами - в итоге ничего не работало. Такой косяк лечится исключительно переразводкой.
Go to the top of the page
 
+Quote Post

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

 


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


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