Jump to content

    

Opex

Свой
  • Content Count

    86
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Opex

  • Rank
    Частый гость

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

1111 profile views
  1. Ну и пусть оно все сдвинется на одно слово, не вижу тут проблемы. Лежало в памяти N слов, N и осталось, адреса только увеличились на 1 у всех.
  2. А чтобы кэш лучше работал, увеличим его глубину! Постойте... Если серьезно, во время поиска может освободиться приемник, и тогда можно ошибочно взять элемент вне очереди. Кэш на один элемент хорошо сочетается с защитой от этого.
  3. Читаем первый элемент, если он не подходит, читаем второй, записываем на его место первый. Если второй не подходит, читаем третий, записываем на его место второй. Либо дойдем до элемента, который прочитаем, и не будем записывать, то есть удалим, или просто сдвинем все элементы на один адрес.
  4. Можно сразу сдвигать запись при поиске. Читаем, не подходит - пишем на место следующей, и т. д.
  5. Можно еще в конце пару лишних байт добавить, под контрольную сумму подобранных.
  6. Если шина адреса 32-разрядная, это миллион слейвов получается? Как тогда организуется доступ к гигабайту памяти?
  7. ['h0000:'h0fff] - это локальная адресация слейва, или глобальные адреса? Из примера совсем не понятно, зачем нужны регионы. У вас они, можно подумать, используются просто как дополнительные старшие адреса А если у слейва адреса ['h0000:'h7fff] ?
  8. Как-то противоречиво. Приведите, пожалуйста, конкретный пример.
  9. Зачем же эти сигналы передаются, если их использовать нельзя?
  10. 1. Это не "расширение адреса", перекрываться адресные пространства не должны. Они нужны для упрощения слейвов. Есть, например, модуль доступа к флешке, в настройках интерконнекта можно выставить адреса 0x0000 - 0x1000 как доступные для записи/чтения, 0x1000 - 0x2000 только для чтения, 0x2000 - 0x7000 запись/чтение, слейву уже в расшифрованном виде через AWREGION передается, можно записывать, или нет. 4КБ потому что это максимальный размер одной транзакции. 2. Как хочется, так и делается, это только подсказки. 3. Возможность объединить запись по разным адресам в одну. Например, запись байта по адресу 0x01 и байта по адресу 0x02 объединить в одну запись сразу двух байт. Поведение при записи по одному адресу зависит от остальных бит, может и каждую запись обязательно проводить, или вообще не проводить, все в кеше оставить. 4. Слейв ничего не обязан, как хочет, так и делает, это мастер обязан держать и адрес, и данные, пока их не примут. 5.
  11. У нас в обычном Цинке сделано так: сначала идет рабочая прошивка, затем аварийная. Какой-то встроенный загрузчик ищет волшебную комбинацию байтов, если находит, грузит прошивку. При обновлении, сначала стираются волшебные числа, записывается прошивка, если все записалось хорошо, записываются числа.
  12. Папка project_1/project_1.src управляется средой, поэтому при создании проекта из скрипта перезаписывается. Исходники можно перенести в другую папку, при создании файла write_prj.tcl будут ссылки на файлы в ней, руками править не нужно.
  13. У встроенного ширина шины между логикой и памятью поуже. Если хватает, лучше его использовать.
  14. Можете выставить температуру, потом включить печку, действия независимы. Одновременность не требуется. А выставить температуру, и ждать реакции от печки перед её включением - это и есть зависимость.
  15. Зависимости между каналами со стороны мастера как раз и не должно быть. А другая сторона уже решает, сделать простой прием с зависимыми каналами, или накрутить дополнительную логику и регистры для независимого приема.