dvladim 0 28 марта, 2010 Опубликовано 28 марта, 2010 · Жалоба Вопросы: 1. почему при cs=1 && wr_en=1 активно 3-е состояние - 16'bZ. по логике: (a=1) ? true : false 2. почему данные с data_f = 0123 не передаются на выходную шину data_out_nii, а появляется какая-то С480? или моделировать в квартусе двунаправленную шину и выставлять на ней данные для чтения некорректно? 1. Не третье: на data_f_ = XXX0 - как раз из-за перехода шины в активное состояние и столкновений сигналов. 2. Ну почему же, все как описано: в состоянии 5 данные с data_f_ = С480 передаются на data_out_nii. А вот почему на data_f_ это формируется - смотрите сами. ;) PS. Да, кстати, С480 - это перевернутые 0123 ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 28 марта, 2010 Опубликовано 28 марта, 2010 · Жалоба Хорошо, попробую дать пару тактов на считывание с шины. может и успеет. мне тоже интересно, почему это формируется на data_f и к тому же перевернутое... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 29 марта, 2010 Опубликовано 29 марта, 2010 · Жалоба Хорошо, попробую дать пару тактов на считывание с шины. может и успеет. мне тоже интересно, почему это формируется на data_f и к тому же перевернутое... Да все и так работает как надо. А шину, как вы собрали наоборот, так она и показывается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 29 марта, 2010 Опубликовано 29 марта, 2010 · Жалоба И все-таки пока не понял, почему работает именно так, а не иначе. Возьмем рассмотренный до этого пример: module tristate_buff #(parameter bus_width=16) (input clk, input wire [bus_width-1:0] data_in, output reg [bus_width-1:0] data_out, inout wire [bus_width-1:0] DQ, input wire tristate_n ); assign DQ = (tristate_n == 1'b0) ? 16'bZ : data_in; always @(posedge clk) data_out <= DQ; endmodule управляющий сигнал tristate_n=0, то DQ=16'bZ - Z состояние если tristate_n = 1, то data_out = DQ так почему на времянке получается далеко не так? данные со входа на DQ не пишутся совершенно, а при tristate_n = 0 data_out=DQ, но ведь по логике это происходит при tristate_n = 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 29 марта, 2010 Опубликовано 29 марта, 2010 · Жалоба так почему на времянке получается далеко не так? данные со входа на DQ не пишутся совершенно, а при tristate_n = 0 data_out=DQ, но ведь по логике это происходит при tristate_n = 1 Ну чего не так-то? Все как описано. Вы наверное не сильно различаете DQ и DQ_ - это разные шины: одна из них - то что вы задаете на inout, другая - то что реально на пине. В начале X из-за того что вы снаружи на шину задаете нули, а из схемы идет 3311 и в результате на DQ_ иксы. Я же написал - столкновения сигналов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dim99 0 29 марта, 2010 Опубликовано 29 марта, 2010 · Жалоба А как понять, что происходит на шинах DQ и DQ_, когда приходит tristate_n=0? выполняется условие: 1. DQ = 16'bZ 2. data_out = DQ т.е. на пине будет 3-е состояние для внешнего устройства, а с внутреннего inout я забираю выставленное мною на времянке значение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
awaddon 0 2 сентября, 2013 Опубликовано 2 сентября, 2013 · Жалоба Необходимо решить такую задачу: имеется cpld, которая мультиплексирует сигналы между контроллером ethernet и двумя процессорами. Выбор процессора осуществляется перемычками на плате. Один из мультиплексируемых сигналов является двунаправленным, причем протокола обмена у меня нет, тоесть я не знаю направления передачи данных в конкретный момент времени. Собственно вопрос: можно ли соединить выходы в некотором роде "напрямую", чтобы cpld была "прозрачной" для сигнала? ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 3 сентября, 2013 Опубликовано 3 сентября, 2013 · Жалоба Собственно вопрос: можно ли соединить выходы в некотором роде "напрямую", чтобы cpld была "прозрачной" для сигнала?Нет. Вам нужен аналоговый мультиплексор Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться