Я не могу заставить работать Xilinx uartlite IP

Я пытаюсь использовать IP-адрес Xilinx uartlite 2.0 с интерфейсом AXI4-lite для передачи байта без процессора microblaze. К сожалению, все готовые сигналы остаются низкими после того, как я установил данные и действительные сигналы, а сигнал tx никогда не передается.

Я включил результаты моделирования. есть идеи?

Моделирование времени Xilinx Uartlite 2.0 axi4-lite


person jwanga    schedule 06.06.2015    source источник
comment
Пробовали ли вы дождаться ready = '1', прежде чем управлять valid (для всех 3 каналов).   -  person Jonathan Drolet    schedule 06.06.2015
comment
У меня сложилось впечатление, что сначала подаются действительные сигналы, когда вход готов, а затем модуль возвращает сигнал готовности. Кажется, это поток согласно этому документу AXI4-lite: silica. com/fileadmin/02_Products/Productdetails/Xilinx/   -  person jwanga    schedule 06.06.2015
comment
Теоретически да, но в прошлом у меня были проблемы с некоторыми Xilinx IP. Если вы не едете действительно, готовы ли подняться?   -  person Jonathan Drolet    schedule 06.06.2015
comment
К сожалению нет. Если я не вожу действительный, готовность остается низкой   -  person jwanga    schedule 06.06.2015
comment
Другими указателями было бы не выпускать сброс до тех пор, пока действительный не станет стабильным. Прямо сейчас сброс отпускается, пока действительным является «U» или «X». Кроме того, у AXI есть сброс с активным низким уровнем, инвертируйте свой сброс и не показывайте его в своей симуляции?   -  person Jonathan Drolet    schedule 06.06.2015
comment
Несколько идей: (1) избавиться от «X», инициализировав сигналы тестового стенда (просто чтобы сделать его более аккуратным); (2) @JonathanDrolet дал вам отличный совет о перезагрузке; (3) вставьте фрагмент того, как вы управляете сигналами.   -  person delirium    schedule 08.06.2015
comment
У меня был недавний опыт работы с другим IP-ядром xilinx, где, если какой-либо из входов был «X», когда он вышел из сброса, он никогда не восстановился бы и просто выдавал нули для всей симуляции. Как уже упоминалось другими людьми, я хотел бы убедиться, что все инициализировано и что вы выходите из сброса в правильной последовательности.   -  person Ian    schedule 09.06.2015
comment
Всем спасибо. У меня это работает! Мне пришлось инвертировать сброс и убедиться, что все входы инициализированы. @ Джонатан Дроле. Не могли бы вы опубликовать свой комментарий в форме ответа, чтобы я мог отдать вам должное?   -  person jwanga    schedule 11.06.2015
comment
Ваша ДЕЙСТВИТЕЛЬНАЯ логика не должна зависеть от ГОТОВНОСТИ. Это в стандарте AXI, который я рекомендую вам прочитать. READY может ждать VALID, а не наоборот. После того, как вы ДЕЙСТВИТЕЛЬНЫ, вы должны оставаться действительными до тех пор, пока не будет завершено рукопожатие, то есть не будет подтверждено ГОТОВО. Так что ваше ядро, вероятно, ведет себя правильно, а ваш мастер ведет себя неправильно. Кроме того, ваша симуляция показывает высокоактивный RESET, в то время как AXI_ARESET_N низкоактивный. Убедитесь, что это не является источником ваших проблем.   -  person FRob    schedule 11.06.2015


Ответы (1)


Для потомков пришлось инвертировать сброс и убедиться, что все входы были инициализированы. Спасибо за полезные комментарии. Я приложил рабочую симуляциювведите здесь описание изображения

person jwanga    schedule 13.06.2015