как байт адресной памяти в Altera FPGA? - PullRequest
0 голосов
/ 15 декабря 2018

Я работал с мегафункциями для генерации 32-битной памяти данных в fpga. Но вывод был адресован 32-битным (4 байта) за раз, как сделать 1-байтовую адресацию?У меня есть Альтера Циклон IV ep4ce6e22c8.

1 Ответ

0 голосов
/ 15 декабря 2018

Я проектирую 32-битный процессор в fpga,

В настоящее время каждая адресная шина процессора работает в байтах.Таким образом, чтобы получить доступ к вашей 32-битной памяти, вы НЕ должны подключать биты адреса LS 2.Вы можете использовать адресные биты A [1: 0], чтобы выбрать байт (или половину слова, используя только A [1]) из памяти при чтении.

Вам по-прежнему понадобятся сигналы разрешения записи в четыре байта.Это позволяет вам писать слова, полусферы или байты.

Посмотрите на существующие шины ЦП или существующие стандарты подключения, такие как AHB или AXI.


Редактировать сообщение:

но читая адрес 0001, я получаю 0x05060708, но желаемое значение - 0x02030405.

Что вы пытаетесь сделатьсделать это прочитать слово с неподключенного адреса.Не существует 32-битной памяти, которая бы поддерживала это.Я предлагаю вам взглянуть на то, как работает 32-битная память.

Старая архитектура Motorola 68020 поддерживала это.Для этого требуется специальный контроллер памяти, который сначала считывает данные с адреса 0, а затем с адреса 4 и повторно объединяет данные в новое 32-разрядное слово.

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

У вас есть несколько вариантов:

  1. Создание специального контроллера памяти, который поддерживает невыровненный доступ.

  2. Отрегулируйте свои ожидания.

Я бы пошел на последнее.В общем, оно основано на неправильном представлении о том, как работает память.Как консолидация: Вы не первый человек на этом сайте, который думает, что именно так вы читаете слова из памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...