Цитата(des333 @ Jul 10 2017, 09:08)

А почему Вас не устраивает использование Avalon-MM?
Хочу записывать данные сразу в кэш процессора, а для этого записывать их надо через ACP (Accelerator Coherency Port) порт.
Этот порт требует установки линий AWCACHE и AWUSER, которых в Avalon-MM нет.
Видел посты буржуев, что они всё равно работают в этом случае через Avalon, но путём правок сгенерированных файлов interconnect вставляют нужные AWCACHE и AWUSER.
Но это чистое шаманство и необходимость править файлы на низком уровне после каждой генерации - глупость какая-то.
Поэтому логично было бы вместо авалона (и обёртки Avalon -> AXI, которую генерирует QSys) использовать напрямую AXI.
Вроде простая шина, но вот затык случился нехороший...
Авалон очень удобно работает - присутствует только то направление, которое нужно - только запись, к примеру, или только чтение с минимумом сигналов.
AXI вроде тоже имеет независимые каналы записи и чтения, но при создании модуля в QSys порт AXI требует наличия ВСЕХ сигналов, и для записи, и для чтения, не зависимо от того, используются ли они в коде.
У меня чтение не используется, и я просто жёстко задал неактивные уровни для этого канала.
Может быть это и является причиной, по которой синтезатор удаляет шину?
И пофигу ему, что запись-то необходима!
Может, стоит попробовать 17 версию квартуса?
Хотя не думаю, что поможет, если честно...
Нашёл косяк, с моей стороны, конечно.
Ещё раз повнимательнее почитал условия транзакций, и понял, что нарушил парочку:
Цитата
the slave can wait for AWVALID or WVALID, or both before asserting AWREADY
the slave can wait for AWVALID or WVALID, or both, before asserting WREADY
Слишком много свободы и вариативности