rezuk 0 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба необходимо для реализации на плис схемку, которая сможет анализировать пришедшие цифровые сигналы на ножки на предмет того кто раньше пришел(имеется ввиду из данных сигналов). Проблема в том что, детекторы аналоговых каналов, цифровые импульсы которых потом и приходят в плис, срабатывают одновременно от одного входящего сигнала (пролазы межканальные или черт их знает что), по идее должен сработать только детектор того канала в который пришел сигнал, но т.к. сигнал сильный, а фильтры широкополосны появляются подрабатывния детекторов в других каналах. Есть ли какие-нибудь идеи таких схем или подскажите книжку где искать... спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба по идее должен сработать только детектор того канала в который пришел сигнал, но т.к. сигнал сильный, а фильтры широкополосны появляются подрабатывния детекторов в других каналах. Есть идея. Даже две. Первая - нужно бороться именно с этим "подрабатыванием", все остальное - потом. Пока вы не выясните причину этого эффекта, двигаться дальше нет смысла. Вторая - нужно формулировать ваши вопросы и описания так, чтобы они были четкими и ясными. Из вашего описания ничего невозможно понять. Хоть бы структурную схемку вашей системы набросали и частотный диапазон сигналов привели ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezuk 0 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба все что можно было сделать чтобы побороть "подрабатывания" уже сделано. Я объяснил достаточно чтобы понять что нужно реализовать на плис, а с железом уже ничего нельзя сделать, к сожалению Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 14 июля, 2013 Опубликовано 14 июля, 2013 · Жалоба все что можно было сделать чтобы побороть "подрабатывания" уже сделано. Я объяснил достаточно чтобы понять что нужно реализовать на плис, а с железом уже ничего нельзя сделать, к сожалению Значит, не все, раз не побороли. Почему с железом нельзя ничего сделать ? Объяснение небрежное, из коего ровным счетом ничего понять нельзя. Хотите считать его нормальным ? Считайте ... P.S. Простите, если вы решали задачу так же качественно, как писали запрос на форум, то легко понять, почему ваша система работает именно так ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vervs 31 15 июля, 2013 Опубликовано 15 июля, 2013 · Жалоба детекторы аналоговых каналов, цифровые импульсы которых потом и приходят в плис, срабатывают одновременно вы хотите различать эти импульсы во времени? если с железом уже ничего нельзя сделать, к сожалению, то ПЛИС тут ни чём не поможет и со всей задачей уже ничего нельзя сделать, п.с. расскажите лучше про аналоговые сигналы и детекторы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fujitser 0 15 июля, 2013 Опубликовано 15 июля, 2013 (изменено) · Жалоба Так они срабатывают одновременно или нет, всё таки? Если нет, то на плис можно сделать так, например: wire in_a, in_b; reg a_r; // сработал первый датчик! reg b_r; //сработал второй датчик! reg state; // 0- на старт, внимание, марш! // 1 - есть победитель ! always@(posedge clk) begin ... if(!state & in_a & !in_b) begin a_r <= 1'b1; state <= 1'b1; end if(!state & !in_a & in_b) begin b_r <= 1'b1; state <= 1'b1; end end Изменено 15 июля, 2013 пользователем Fujitser Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezuk 0 15 июля, 2013 Опубликовано 15 июля, 2013 · Жалоба Значит, не все, раз не побороли. Почему с железом нельзя ничего сделать ? Объяснение небрежное, из коего ровным счетом ничего понять нельзя. Хотите считать его нормальным ? Считайте ... P.S. Простите, если вы решали задачу так же качественно, как писали запрос на форум, то легко понять, почему ваша система работает именно так ... про железо ничего больше сказать не могу. Если Вы считаете что объяснение небрежное, то это Ваше дело, но я считаю что специалисту в такой области больше пояснять ничего не нужно. вы хотите различать эти импульсы во времени? если , то ПЛИС тут ни чём не поможет и со всей задачей уже ничего нельзя сделать, п.с. расскажите лучше про аналоговые сигналы и детекторы Да, во времени. Точно сказать не могу, но разброс между фронтами сигналов может исчисляться единицами нс, а может и пс. К сожалению измерить нет возможности. Так они срабатывают одновременно или нет, всё таки? Если нет, то на плис можно сделать так, например: wire in_a, in_b; reg a_r; // сработал первый датчик! reg b_r; //сработал второй датчик! reg state; // 0- на старт, внимание, марш! // 1 - есть победитель ! always@(posedge clk) begin ... if(!state & in_a & !in_b) begin a_r <= 1'b1; state <= 1'b1; end if(!state & !in_a & in_b) begin b_r <= 1'b1; state <= 1'b1; end end Спасибо за схемку, но для её реализации нужна большая "clk" сотни МГц. Сейчас схема работает без подрабатываний для 2-х каналов от простейшего RS триггера с небольшими наворотами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 15 июля, 2013 Опубликовано 15 июля, 2013 · Жалоба Да, во времени. Точно сказать не могу, но разброс между фронтами сигналов может исчисляться единицами нс, а может и пс. К сожалению измерить нет возможности. Фронты сигналов, приходящие на ПЛИС, привязаны к какой-либо тактовой сетке? если нет, тогда в ПЛИС делать нечего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezuk 0 17 июля, 2013 Опубликовано 17 июля, 2013 · Жалоба Фронты сигналов, приходящие на ПЛИС, привязаны к какой-либо тактовой сетке? если нет, тогда в ПЛИС делать нечего. нет не привязана по приходу ни к какой частоте. вообще сигналы пройдя через схемку на RS тригерах поступают на схемку выделения короткого импульса по фронту либо по спаду сигналов срабатывания обнаружителя, она работает он 80 МГц. Походу в ней что-то ломается из-за разбросов задержек внутри самой плис. module videlyalka(input DATAIN, CLR, CLOCK, output DATAOUT); reg [4:0] sr1_q, sr2_q; reg fd1_q, fd2_q; wire clr1, clr2; assign clr11 = (|sr2_q) | CLR; always @(posedge CLOCK or posedge clr11) begin if(clr11) sr1_q <= 5'b0; else sr1_q <= {sr1_q[3:0], DATAIN}; end assign clr12 = clr11 | sr1_q[4]; always @(posedge CLOCK or posedge clr12) begin if(clr12) fd1_q <= 1'b0; else fd1_q <= DATAIN; end assign clr21 = (|sr1_q) | CLR; always @(negedge CLOCK or posedge clr21) begin if(clr21) sr2_q <= 5'b0; else sr2_q <= {sr2_q[3:0], DATAIN}; end assign clr22 = clr21 | sr2_q[4]; always @(negedge CLOCK or posedge clr22) begin if(clr22) fd2_q <= 1'b0; else fd2_q <= DATAIN; end assign DATAOUT = fd1_q | fd2_q; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться