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

 
 
 
Reply to this topicStart new topic
> "addressAlignment" "NATIVE"
DASM
сообщение Nov 12 2010, 09:40
Сообщение #1


Гуру
******

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



Тут задачка такая, вобщем надо mmslave 8 битный повесить на avalon bus. Как я понимаю при записи-чтении произойдет 4-ре обращения к слейву, что мне совсем не надо.
Выхода я вижу два - или указать "addressAlignment" "NATIVE" (кстати а это поможет ? В примерах от Террасика вроде работает именно так)
Вторым вариантом мне видится представить мой слейв таки как с 32 битной шиной, но в вериложном файле оответсвенно корректировать принимаемые адреса и использовать только байт из 32 битного слова (соответственно в НИОСе отсекать при чтении). - а этот вариант подойдет ? Ну и главный вопрос - как все же лучше то ?
Go to the top of the page
 
+Quote Post
torik
сообщение Nov 12 2010, 10:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



А о каких четырех обращениях идет речь?


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
DASM
сообщение Nov 12 2010, 10:49
Сообщение #3


Гуру
******

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



If the master is wider than the slave, data bytes in the master address space map to
multiple locations in the slave address space. For example, when a 32-bit master port
performs a read transfer from a 16-bit slave port, the system interconnect fabric
executes two read transfers on the slave side on consecutive addresses, and presents
32-bits of slave data back to the master port.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 12 2010, 12:12
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(DASM @ Nov 12 2010, 16:49) *
If the master is wider than the slave...

я думаю, здесь имеются в виду операции с более чем 1 словом. например, пытаемся прочесть 5 байт, тогда в описанной здесь схеме будет 3 операции по 16 бит. у процессора ведь есть разные инструкции чтения: ldb, ldh,ldw ...
Go to the top of the page
 
+Quote Post
DASM
сообщение Nov 12 2010, 12:18
Сообщение #5


Гуру
******

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



ммммм.. а я так понял, что если ниос с 32 битной шиной сделает IORD к 8 битному слейву, то прочтет таки 4 байта.....
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 12 2010, 12:37
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(DASM @ Nov 12 2010, 18:18) *
ммммм.. а я так понял, что если ниос с 32 битной шиной сделает IORD к 8 битному слейву, то прочтет таки 4 байта.....

посмотрите в сигналтапе, если есть возможность. самому интересно smile.gif
Go to the top of the page
 
+Quote Post
DASM
сообщение Nov 12 2010, 12:55
Сообщение #7


Гуру
******

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



TAP уже забыл как юзать, просто написал в верилоге счетчик кол-ва стробов RD и выдаю его.. Ан нет, одно обращение за раз делает... Тогда вообще не понимаю как эту фразу понимать
Причем мне даже SOPC дает warning slave0 does not have byteenables from cpu. Narrow (less than 32-bit) writes will result spurios writes...
Попробовал счетчик на write - то же самое - только одно обращение. Потом правда понял свою ошибку - в дизасме то он stw делал по макросу IOWR. Но я поменял запись на такое volatile alt_u8 *ptr = (alt_u8 *)(BRIDGE2MPEG_CNTRL_IF_0_BASE | 0x80000000);
Теперь в дизасме stb уже, но ВСЕ РАВНО только одно обращение... ничо не понимаю...
Go to the top of the page
 
+Quote Post
DASM
сообщение Nov 12 2010, 14:39
Сообщение #8


Гуру
******

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



Все. Понял. Просто я забыл при NATIVE перекомпилить SOPC
Вобщем если в tcl стоит set_interface_property avalon_slave_0 addressAlignment NATIVE - то обращение будет одно.
Если set_interface_property avalon_slave_0 addressAlignment DYNAMIC - то 4 (в моем случае)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 14th July 2025 - 05:00
Рейтинг@Mail.ru


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