Как бы я сочетал какой-то интерфейс Avalon с пользовательской инструкцией, чтобы он мог обращаться к SDRAM? У меня уже работает SDRAM, а также у меня есть несколько пользовательских инструкций, написанных на Verilog. Но я не могу понять, как получить пользовательскую инструкцию, чтобы взять адрес (например, через dataa
) и извлечь память, начиная с этого адреса, из SDRAM. В частности:
- Должна ли пользовательская инструкция иметь главный или подчиненный интерфейс Avalon? Я подумал мастер, но в (слишком сложном) примере, который я видел, был раб, поэтому я больше не уверен.
- Как мне убедиться, что он читает / записывает в соответствующий ведомый модуль памяти Авалона? Придется ли мне вручную вычитать базовый адрес SDRAM из любых указателей, которые я передаю?
- Как получить интерфейс пользовательских инструкций и интерфейс Avalon MM для совместного использования одних часов? Обе нужны часы, но пользовательской инструкции нужны часы, чтобы быть внутри их интерфейса, тогда как интерфейсу Avalon нужен отдельный интерфейс часов, с которым он связан.
- Как мне моделировать SDRAM в ModelSim?
- Будет ли это лучше построить выделенный аппаратный ускоритель? Как это будет отличаться от пользовательской инструкции? Честно говоря, я думал, что пользовательские инструкции уже считались аппаратными ускорителями, но, похоже, они означают разные вещи, хотя я не совсем уверен, что.