Перейти к содержанию
    

Когда и где правильнее соединять Avalon-MM со своим Verilog модулем

Добрый день,

 

есть свой проект в 13-ом квартусе, в котором хочется использовать DDR2 память. UniPHY для этой памяти мегавизардом сгенерил, из него торчит

 

        output wire         avl_ready,          //              avl.waitrequest_n
        input  wire         avl_burstbegin,     //                 .beginbursttransfer
        input  wire [24:0]  avl_addr,           //                 .address
        output wire         avl_rdata_valid,    //                 .readdatavalid
        output wire [255:0] avl_rdata,          //                 .readdata
        input  wire [255:0] avl_wdata,          //                 .writedata
        input  wire [31:0]  avl_be,             //                 .byteenable
        input  wire         avl_read_req,       //                 .read
        input  wire         avl_write_req,      //                 .write
        input  wire [2:0]   avl_size,           //                 .burstcount

 

Скажите, пожалуйста, где и по какому интерфейсу проще и правильнее всего сдруживать свое фифо с этим авалоном - читал много букв с альтеровской доки про кусис, но так и не понял как правильно... Если эту шину авалона на прямую уже можно/правильно использовать в своем верилог модуле, вдруг кто знает, киньте, пожалуйста, в меня примером или ссылкой на пример такого использования... Совсем запутался, и не могу понять, пожалуйста, посоветуйте!

 

Спасибо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите, пожалуйста, где и по какому интерфейсу проще и правильнее всего сдруживать свое фифо с этим авалоном - читал много букв с альтеровской доки про кусис, но так и не понял как правильно... Если эту шину авалона на прямую уже можно/правильно использовать в своем верилог модуле, вдруг кто знает, киньте, пожалуйста, в меня примером или ссылкой на пример такого использования... Совсем запутался, и не могу понять, пожалуйста, посоветуйте!

 

На мой взгляд удобнее этот контроллер вставить прямо в qsys-систему. В этом случае из нее будут торчать только интерфейс физической памяти. Далее внутри qsys подключаете свой собственный модуль. Все это связывается шиной avalon автоматически посредством qsys.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, alexadmin, за совет!

Далее внутри qsys подключаете свой собственный модуль. Все это связывается шиной avalon автоматически посредством qsys.

Скажите, пожалуйста, как должен выглядеть этот модуль? Я пробовал Parallel IO, у него шина не более 32 бита, правильно ли понимаю, что мне на адрес нужна одна шина, на вход 8 таких и на выход еще 8. И даже если это так, убей не могу понять как мне все 8 шин соединить в кусисе в один авалон... Вдруг знаете, понимаете, пожалуйста, посоветуйте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, alexadmin, за совет!

 

Скажите, пожалуйста, как должен выглядеть этот модуль? Я пробовал Parallel IO, у него шина не более 32 бита, правильно ли понимаю, что мне на адрес нужна одна шина, на вход 8 таких и на выход еще 8. И даже если это так, убей не могу понять как мне все 8 шин соединить в кусисе в один авалон... Вдруг знаете, понимаете, пожалуйста, посоветуйте!

 

Для этого надо научиться создавать устройства, совместимые с интерфейсом Avalon ;)

Бывает 2 типа устройств - slave и master.

Slave - это те, кто отвечает на запросы чтения и записи, master - это те, кто эти запросы инициирует.

Т.е. если к вас будет кто-то еще, например процессор, который будет читать данные из памяти и перекладывать в фифо (или наоборот), то вам нужен slave. Если вы хотите писать/читать память напрямую из вашего модуля - master.

Модуль PIO тут не особо удобен, он для взаимодействия с внешним миром в первую очередь. Новые компоненты создаются в Qsys через File => New component. Ну а дальше лучше документация читать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для этого надо научиться создавать устройства, совместимые с интерфейсом Avalon ;)

Бывает 2 типа устройств - slave и master.

Slave - это те, кто отвечает на запросы чтения и записи, master - это те, кто эти запросы инициирует.

Т.е. если к вас будет кто-то еще, например процессор, который будет читать данные из памяти и перекладывать в фифо (или наоборот), то вам нужен slave. Если вы хотите писать/читать память напрямую из вашего модуля - master.

Модуль PIO тут не особо удобен, он для взаимодействия с внешним миром в первую очередь. Новые компоненты создаются в Qsys через File => New component. Ну а дальше лучше документация читать...

это только для Avalon Memory Mapped Interface (Avalon-MM), но сам Avalon имеет еще интерфейсы:

 

This specification defines the following seven interface roles:

■ Avalon Streaming Interface (Avalon-ST)—an interface that supports the

unidirectional flow of data, including multiplexed streams, packets, and DSP data.

■ Avalon Memory Mapped Interface (Avalon-MM)—an address-based read/write

interface typical of master–slave connections.

■ Avalon Conduit Interface— an interface type that accommodates individual signals

or groups of signals that do not fit into any of the other Avalon types. You can

connect conduit interfaces inside a Qsys system or export them to make

connections to other modules in the design or to FPGA pins.

■ Avalon Tri-State Conduit Interface (Avalon-TC) —an interface to support connections

to off-chip peripherals. Multiple peripherals can share pins through signal

multiplexing, reducing the pin count of the FPGA and the number of traces on the

PCB.

■ Avalon Interrupt Interface—an interface that allows components to signal events to

other components.

■ Avalon Clock Interface—an interface that drives or receives clocks. All Avalon

interfaces are synchronous.

■ Avalon Reset Interface—an interface that provides reset connectivity.

 

подробнее здесь

 

просто iiv возможно нужна потоковая запись/чтение в память...

 

iiv - подключение к DDR памяти на мой взгляд сделать в QSys, а потом свой модуль подключить уже к авалону (как Вам советовали ранее)

Тут пример - реализации на Verilog мастера Avalon Memory Mapped Interface (Avalon-MM)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто iiv возможно нужна потоковая запись/чтение в память...

 

Вы прям как пришли на урок физики в пятый класс и стали рассказывать про эйнштейновское сокращение времени :)

Пример да, правильный. Тоже как раз вспомнил...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые Maverick и alexadmin,

 

огромное Вам спасибо за простые и понятные объяснения по поводу моей проблемы. Доки на авалон оказались не такими и сложными, а с учетом того, что мне без бурст-режима эта память и не поможет, надеюсь написать сам конечный автомат по дерганью Avalon-MM и передаче в него и из него своих данных.

 

С уважением

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/15/2014 at 2:53 PM, iiv said:

Уважаемые Maverick и alexadmin,

огромное Вам спасибо за простые и понятные объяснения по поводу моей проблемы. Доки на авалон оказались не такими и сложными, а с учетом того, что мне без бурст-режима эта память и не поможет, надеюсь написать сам конечный автомат по дерганью Avalon-MM и передаче в него и из него своих данных.

С уважением

ИИВ

хотел бы поинтересоваться получилось ли у Вас все таки справиться с Avalon? Сам сейчас сижу с похожей проблемой и нигде не могу найти примера как хоть кто нибудь реализовал Avalon в HDL файле при добавлении собственного IP component

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Александр_1 said:

хотел бы поинтересоваться получилось ли у Вас все таки справиться с Avalon? Сам сейчас сижу с похожей проблемой и нигде не могу найти примера как хоть кто нибудь реализовал Avalon в HDL файле при добавлении собственного IP component

Avalon Streaming Interface или Avalon Memory Mapped Interface Вас интересует?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 минуты назад, Александр_1 сказал:

хотел бы поинтересоваться получилось ли у Вас все таки справиться с Avalon? Сам сейчас сижу с похожей проблемой и нигде не могу найти примера как хоть кто нибудь реализовал Avalon в HDL файле при добавлении собственного IP component

Совсем народ поиском пользоваться разучился...

Creating Platform Designer (Standard) Components

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, Maverick_ said:

Avalon Streaming Interface или Avalon Memory Mapped Interface Вас интересует?

Avalon Memory Mapped :)

14 hours ago, Stewart Little said:

Совсем народ поиском пользоваться разучился...

Creating Platform Designer (Standard) Components

Stewart Little, спасибо, я точно находил этот документ в Pdf и сохранил его, но меня смутила надпись "Updated for Intel® Quartus® Prime Design Suite: 18.1", а я к сожалению работаю в Quartus 12.1, т.к проект нужно сделать на Cyclone III ((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть готовые темплейты, сам юзаю их с небольшим допилом, очень удобные

https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/intellectual-property/embedded/nios-ii/exm-avalon-mm.html

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, Burenkov сказал:

Есть готовые темплейты, сам юзаю их с небольшим допилом, очень удобные

https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/intellectual-property/embedded/nios-ii/exm-avalon-mm.html

 

Спасибо большое!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...