|
Проблема с VIO и ILA |
|
|
|
May 3 2016, 19:27
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Здравствуйте. Такая проблема: не могу верно использовать ILA и VIO. При нажатии кнопки происходит такая вот бесконечная загрузка. Не понимаю в чем дело. Объясните пожалуйста, в чем может быть ошибка. Может быть в коде не верно прописываю их подключение, может быть в анализаторе что-то сделала не так. Только начинаю работать с анализатором.
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
May 3 2016, 20:05
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Если вернуть значение X, то при нажатии на осциллографе ILA не происходит ничего, enable остается на уровне ноль.
Тактовый сигнал подается всегда один и тот же, на ILA, на VIO, на CONTROL, он же используется и самой программой.
|
|
|
|
|
May 3 2016, 20:13
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Вы же имеете ввиду тактовый сигнал, верно?
Сейчас не могу показать, с платой работаю только на учебе.
|
|
|
|
|
May 3 2016, 20:24
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Он у меня всего один и я не думаю, что там где-то опечатка. На всякий случай проверила код, вроде бы все нормально.
А если нет проблем с Capture Settings, могут быть проблемы с чем-то еще? Вкладку в четверг проверю с платой.
|
|
|
|
|
May 4 2016, 16:24
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Почему не выполняется, если по идее должен сигнал enable переходить в единицу при нажатии?
Ведь при нажатии переменной enable должно присваиваться значение единицы? А значит условие должно выполнится? Или я что-то не так понимаю?
|
|
|
|
|
May 12 2016, 07:46
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Нашла проблему. Не заметила что делаю неверное присваивание. Сделала вот так: wire sync_in; assign enable sync_in = enable; Но теперь возникает ошибка: "this signal is connected to multitype drivers" Я думаю, что это происходит потому, что мой сигнал enable используется также в коде программы в always, но не понимаю как исправить.
|
|
|
|
|
May 12 2016, 07:56
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Вы имеете ввиду полный код?
|
|
|
|
|
May 12 2016, 08:17
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(RinettaFox @ May 12 2016, 10:56)  Вы имеете ввиду полный код? Посмотрите Вы скорее всего присваиваете одному и тому же сигналу разные данные/сигналы в разных местах описания. В описании у Вас должно быть присвоение одному сигналу в одном месте например в одном always, а не в разных частях описания или в разных always Цитата Я думаю, что это происходит потому, что мой сигнал enable используется также в коде программы в always, но не понимаю как исправить. Вы на верном пути Насчет описания нужен always (с signal is connected to multitype drivers) с и место с присвоением
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
May 12 2016, 10:15
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
В always идет только проверка условия, равен ли enable 0 или 1, присвоения нет.
Делаю следующим образом:
wire SYNC_OUT; assign enable = SYNC_OUT;
ila ILA ( .CLK (clk), .CONTROL (control0), .TRIG0 (block_5V), .TRIG1 (cod), .TRIG2 (comand), .TRIG3 (ready), .TRIG4 (enable) );
vio VIO ( .CLK (clk), .CONTROL (control1), .SYNC_IN(SYNC_IN), // IN BUS [7:0] .SYNC_OUT(SYNC_OUT) );
Т.е. enable используется только здесь, в остальных случаях идет лишь условие проверки его значения.
Может быть здесь что-то не то? Хотя вроде бы логично, я завожу кнопку на VIO, при ее нажатии ей должно присваиваться значение единицы, потом завожу на ILA и там значение кнопки выводится на осциллографе.
|
|
|
|
|
May 12 2016, 12:42
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Может быть с типами переменных что-то не то?
enable у меня является входом: input enable
SYNC_OUT переменной типа wire.
|
|
|
|
|
May 12 2016, 13:39
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
А если я не могу его объявить как wire? Мне нужно, чтобы он был входом в моей программе. Можно как-то иначе? Может быть какую-то промежуточную переменную ввести? Пока не поняла как.
Сообщение отредактировал RinettaFox - May 12 2016, 13:40
|
|
|
|
|
May 12 2016, 14:29
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795

|
Цитата(RinettaFox @ May 12 2016, 16:39)  А если я не могу его объявить как wire? Мне нужно, чтобы он был входом в моей программе. Можно как-то иначе? Может быть какую-то промежуточную переменную ввести? Пока не поняла как. Можно сделать его inout портом, но это не очень хорошая практика, лучше как-то так: Код ....
input external_enable wire external_enable
wire temp_enable, internal_enable
assign temp_enable = то, что вам надо.
assign internal_enable = external_enable | temp_enable; Хотя непонятно, зачем его делать портом, если вы все равно назначаете его внутри блока.
Сообщение отредактировал Tausinov - May 12 2016, 14:31
|
|
|
|
|
May 12 2016, 14:34
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 14-04-16
Пользователь №: 91 286

|
Спасибо большое, заработало.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|