Цитата(juvf @ Oct 11 2012, 02:47)

Как бы организовать умный уарт для ниоса? нужен уарт, который бы принимал данные и по ДМА складывал бы их в определённое место в озу. как только после последнего принятого байта пройдет определённое время, уарт должен генерировать прерывание. А при передаче хотелось бы загрузить пакет в озу и "дернуть старт". данные из озу по дма сами ми бы переправлялись в уарт. после передачи всего пакета уарт (или дма) генерировал бы прерывание или снимал бы флаг бизи. Ну до кучи можно аппаратно управлять внешним драйвером ~RE/TE.
Есть мысли написать свой модуль уарт и посадить его на шину авалон. Только с чего начинать? как свои подобные модули делать? в QSys нужно добавить какойто контроллер авалон и на него цеплять свой модуль? Или сразу свой модуль писать с авалон-слейвом?
Я так и делал. Во вложении для примера мой UART. Только я делал его под свои нужды. У него прерывания на прием (и на передачу) выставляются по определенному терминирующему байту, а не по паузе между байтами. На передачу ДМА нет. И управление CTS (на передачу. Я что-то подзабыл, с названиями могу попутать, но функционал этих хэндшейков правильно пишу) автоматическое, а RTS (на прием) только программное. Но на приеме ДМА организован как кольцевой буфер. Для меня это было важно. Да и безопасно.
В общем, не совсем то что ищете, но в качестве примера. Тестбенч, как всегда, лоховской

, доки тоже нет. Описание всех регистров в инкулуд-файле. Там, вобщем-то вся логика из описания регистров будет понятна. Оберточных файла два. С ДМА и без. Не понял как делать один общий с параметрами если меняется количество интерфейсов. Скорее всего никак. Ну и за английский не пинайте