Полная версия этой страницы:
как такое может быть ?
На tri-state bridge прицеплено устройство. В verilog его описании стоит assign avs_data[31:0] = (avs_outputenable_n) ? {16'hzzzz,outLatch} : 32'hzzzzzzzz;
Ну то есть контролируем только OE с шины avalon. Работоспособность не проверял, но NIOS по крайней мере виден отладчику. Потом пишу
assign avs_data[31:0] = (!avs_read_n && !avs_outputenable_n) ? {16'hzzzz,outLatch} : 32'hzzzzzzzz;, то бишь хочу чтобы и OE и сигнал read учитывался. Система виснет наглухо (Eclipse пишет, что не может остановить проц). Q10.1. Кстати посмотрел RTL - ужаснулся, он куда-то пооткусывал кучу буферов, хотя они однозначно нужны (avalon export). Q9 сгенрел нормальный на вид RTL , с работоспособностью завтра буду разбираться. Вообще это хоть правильная конструкция "(!avs_read_n && !avs_outputenable_n) " ?
Цитата(DASM @ Jan 26 2011, 10:27)

assign avs_data[31:0] = (avs_outputenable_n) ? {16'hzzzz,outLatch} : 32'hzzzzzzzz;
...
assign avs_data[31:0] = (!avs_read_n && !avs_outputenable_n) ? {16'hzzzz,outLatch} : 32'hzzzzzzzz;
хммм, а вы с полярностью сигналов не напутали? в первом случае данные буду выданы на шину когда avs_outputenable_n == 1, а во втором когда avs_read_n == 0 и avs_outputenable_n == 0
да, кажется напутал, но во втором случае то почему шина виснет и проц не виден ?
vadimuzzz
Jan 27 2011, 07:49
Цитата(DASM @ Jan 27 2011, 13:45)

да, кажется напутал, но во втором случае то почему шина виснет и проц не виден ?
кто-то занял системную шину и не дает другим
так в том и дело, что этот кто-то и есть мой модуль, если assign avs_data убрать - все OK. Но вот вопрос - почему же он занимает шину, ведь при неактивных read_n и output_enable я делаю assign к 32'hZZZZZZZZ
vadimuzzz
Jan 27 2011, 08:24
ну, посимулировать это дело или сигналтапом посмотреть. да, еще вспомнил - был у меня один самописный компонент с придурью, затирал память программ ниоса, тоже все наглухо вешалось
да мой компонент по-сути проходной - сплошной export и все.
Stewart Little
Jan 27 2011, 13:01
Цитата(DASM @ Jan 27 2011, 10:57)

так в том и дело, что этот кто-то и есть мой модуль, если assign avs_data убрать - все OK. Но вот вопрос - почему же он занимает шину, ведь при неактивных read_n и output_enable я делаю assign к 32'hZZZZZZZZ
Внутри ПЛИСа (то биш на авалоне) Z-состояний не бывает. Может в этом дело?
Цитата(DASM @ Jan 27 2011, 10:57)

так в том и дело, что этот кто-то и есть мой модуль, если assign avs_data убрать - все OK. Но вот вопрос - почему же он занимает шину, ведь при неактивных read_n и output_enable я делаю assign к 32'hZZZZZZZZ
А он выборку имеет (select)? Или наглухо выбран?? Тут остальное уже всё рассказали. Посмотрите прикрепл. файл. Может, поможет. Он - очень простой. И как раз на улицу шину делает 32-х разрядную двунаправленную.
Выборку имеет. Вобщем откатил проект с Q10_1 на Q9_0 - все заработало нормально
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.