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

 
 
> EDK_8_10_11 переход, проблема с брам блоками
rv3dll(lex)
сообщение Aug 26 2009, 04:45
Сообщение #1


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



при переносе проекта из 8 версии в 11 есть ошибка стыковки брам блоков. выражается это так

одним концом брам блок подключен к процессору через контроллер другим к своему ядру.
ругается на несоответствие размера памяти по разным портам и не генерирует адреса, хотя в 8мой версии софта всё было без проблем и работает в железе.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 22)
DmitryR
сообщение Aug 27 2009, 11:18
Сообщение #2


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Просто у вас в проекте некритическая ошибка: конечно же если по уму, то размер памяти по разным портам должен совпадать. Однако, если вы из двух несовпадающих размеров по обоим портам используете меньший, то все как понятно будет работать. А если больший - то не будет, поэтому видимо решили такую ситуацию обставить ошибкой.
Go to the top of the page
 
+Quote Post
rsv
сообщение Aug 29 2009, 17:52
Сообщение #3


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

Группа: Свой
Сообщений: 119
Регистрация: 16-07-07
Из: Тула
Пользователь №: 29 160



из своего опыта: конвертировал из 7 в 10, пришлось создавать проект заново. потом конвертировал из 10 в 11: тоже пришлось заново. то-ли руки у меня кривые, то ли проект слишком сложный, то ли та помесь из индуса и китайца, что этот edk творила, накосячила
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 30 2009, 16:52
Сообщение #4


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Если проект очень сложный, то это обычное дело. Потому что он сконвертировать-то сконвертирует, но потом оказывается, что проще пересобрать проект, чем разбираться с результатами конвертации.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Aug 31 2009, 05:21
Сообщение #5


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



да тут немного другой случай - если создавать проект заново, по приходится переходить на новую плб и новые темак и контроллер внешней памяти в результате чего налетаем на невозможность развести. После такого приезда остаётся только использовать старый проект. Я экспериментировал с размерностью шин адреса со стороны ядра ничего не получаесся. - а как задать размер памяти из своего ядра??? я его там вообще не задаю.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 31 2009, 06:04
Сообщение #6


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Во-первых, в новых версиях EDK старые версии ядер обычно есть, просто надо включить галочку в опциях, чтобы deprecated показывались. Во-вторых, можно в старой версии нужные ядра выгрузить в исходники и импортировать в новую версию. Я такой трюк делал например с контроллером HDLC, чтобы втащить его в оригинально не поддерживаемый Virtex-5.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Aug 31 2009, 06:28
Сообщение #7


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



что за галочка - где она?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 31 2009, 07:21
Сообщение #8


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Edit/Preferences/IP Catalog/"Display deprecated IP cores"
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Aug 31 2009, 08:36
Сообщение #9


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



спасибо - только это ничего мне не дало - я собрал проект заново и получил снова ошибку по размеру памяти - как её задать из своего ядра, чтобы сравнять этот размер?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 31 2009, 09:49
Сообщение #10


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Я думаю, что вы используете не все адресные линии со своей стороны. Сгенерируйте блок памяти меньшего размера.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Aug 31 2009, 10:36
Сообщение #11


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



в том то и дело, что все пробовал и 32 и 16 - у меня 64 килобайтный блок
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 31 2009, 11:36
Сообщение #12


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Я говорю про ширину данных, а не адреса. Убедитесь, что для случая 64 килобайта, организованных как 16384 тридцатидвухразрядных слов у вас с обеих сторон используется ровно по 14 линий адреса.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Aug 31 2009, 12:55
Сообщение #13


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



64 разряда использую и у меня 16 линий - на сколько я понимаю визард откидывает младшие линии сам
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 31 2009, 13:11
Сообщение #14


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Судя по тому, что у вас проект не компилируется - не откидывает. Почем ему знать, что их надо откинуть, а может вы хотели именно 16 бит адреса, а память по ошибке сгенерили маленькую? Вот он и ругается.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 1 2009, 07:57
Сообщение #15


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



пробовал по всякому

вообще в описании написано что адрес должен быть от 9 до 17 линий - 9 линий для 512 байттного размера и видимо вне зависимости от ширины шины данных
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 1 2009, 08:58
Сообщение #16


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(rv3dll(lex) @ Sep 1 2009, 11:57) *
9 линий для 512 байттного размера и видимо вне зависимости от ширины шины данных

Еще раз: от ширины шины данных - зависит. Если организация будет например 128 тридцатидвухразрядных слов, то ширина адреса будет 7 линий.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 1 2009, 10:42
Сообщение #17


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(DmitryR @ Sep 1 2009, 12:58) *
Еще раз: от ширины шины данных - зависит. Если организация будет например 128 тридцатидвухразрядных слов, то ширина адреса будет 7 линий.

ты говоришь про ise и уверен что в EDK тоже самое? - почему тогда в 8ом всё работает, что подтверждено работой железки и просмотрев лог нет ни одного предупреждения хотя при 64 разрядной организации памяти на адресный вход подаётся 32 разряда из которых 3 младших нули а старшие неиспользуемые вообще не определены. тоже было и в седьмом ЕДК 100 лет назад.

если откомпилировать этот проект он не выдаёт ошибок - он просто не расставляет автоматически адреса и не переносит их в икспараметерсашь
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 1 2009, 10:55
Сообщение #18


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(rv3dll(lex) @ Sep 1 2009, 14:42) *
ты говоришь про ise и уверен что в EDK тоже самое?
Это везде то же самое. Количество адресных линий, которое необходимо для адресации M слов разрядности N определяется просто математикой.

Цитата(rv3dll(lex) @ Sep 1 2009, 14:42) *
- почему тогда в 8ом всё работает, что подтверждено работой железки и просмотрев лог нет ни одного предупреждения хотя при 64 разрядной организации памяти на адресный вход подаётся 32 разряда из которых 3 младших нули а старшие неиспользуемые вообще не определены.
Смотрю старенький DS444 (документация на EDK BRAM IP Core 2004 года). Вижу:

C_PORT_AWIDTH Port A and B Address Width 9 – 17

Где тут на адресный вход подается 32 разряда?
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 1 2009, 12:29
Сообщение #19


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



я этот же документ и читаю

9-17 для блоков размером 512 байт - 131072 байта для разрядности 64 и 32.

из чего следует, что для данного случая вне зависимости от разрядности выхода размерность адресной шины не меняется и младшие разряды 3 для 64 разрядов и 2 для 64 игнорируются и адрес описывает количество байт а не слов, в отличие от библиотечных элементов в ise

кусочек из мпд файла на брам блок

###################################################################

BEGIN bram_block

## Generics for VHDL or Parameters for Verilog
PARAMETER C_MEMSIZE = 2048, DT = integer
PARAMETER C_PORT_DWIDTH = 32, DT = integer, BUS = PORTA:PORTB
PARAMETER C_PORT_AWIDTH = 32, DT = integer, BUS = PORTA:PORTB
PARAMETER C_NUM_WE = 4, DT = integer
PARAMETER C_FAMILY = virtex2, DT = string

из чего следует, что 32 можно подавать и размер шины определяется автоматом, что он собственно и делал пока не появилась 11 версия.

Сообщение отредактировал rv3dll(lex) - Sep 1 2009, 12:31
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 1 2009, 13:40
Сообщение #20


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(rv3dll(lex) @ Sep 1 2009, 16:29) *
из чего следует, что для данного случая вне зависимости от разрядности выхода размерность адресной шины не меняется
Это хороший аргумент, однако все же не настолько хороший, чтобы не попробовать сдвинуть адрес на эти два или три разряда и не посмотреть на результат.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 2 2009, 04:21
Сообщение #21


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(DmitryR @ Sep 1 2009, 17:40) *
Это хороший аргумент, однако все же не настолько хороший, чтобы не попробовать сдвинуть адрес на эти два или три разряда и не посмотреть на результат.


я выше писал что пробовал и сдвигать на эти 3 бита и ограничивать старшие адреса и сдвигать и ограничивать сразу - результат один((((

есть ещё мысля что со стороны контроллера на плб он хочет сделать 32 разряда, а у меня 64

у меня есть ещё одна ветка подключения к памяти на доцм шине которая в принципе 32 разрядная с порта В подключен свой модуль с 32 разрядным доступом. Надо посмотреть ругается ли на него.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Sep 2 2009, 07:08
Сообщение #22


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



там тоже самое , но прикол в том, что проект при этом в железе работает! ))
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Sep 2 2009, 09:01
Сообщение #23


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(rv3dll(lex) @ Sep 2 2009, 08:21) *
есть ещё мысля что со стороны контроллера на плб он хочет сделать 32 разряда, а у меня 64
Это тоже верно, этот блок разную ширину шин данных по портам не умеет. Если PLB шириной 64, то и внутри должно быть 64.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:33
Рейтинг@Mail.ru


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