реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как спастись от "тычков"
georgy31
сообщение Apr 26 2011, 06:41
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Пока схема делителя была собрана на рассыпухе всё было нормально. Но ПЛИСка за счёт высокого быстродействия успевает обработать тычёк. Подскажите как заставить её не реагировать на корткие всплески.
Микросхема МАХ3000.
Прикрепленные файлы
Прикрепленный файл  ______.rtf ( 4.62 мегабайт ) Кол-во скачиваний: 72
 
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 26 2011, 06:57
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(georgy31 @ Apr 26 2011, 09:41) *
Подскажите как заставить её не реагировать на корткие всплески.
Микросхема МАХ3000.

Синхронный дизайн вам в помощь. Тут об этом говорено сто раз.
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 06:57
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Приведите схему, возможно регистры (DFF) на выходе делителя спасут положение


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 26 2011, 07:11
Сообщение #4


я только учусь...
******

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



Цитата(georgy31 @ Apr 26 2011, 09:41) *
Пока схема делителя была собрана на рассыпухе всё было нормально. Но ПЛИСка за счёт высокого быстродействия успевает обработать тычёк. Подскажите как заставить её не реагировать на корткие всплески.
Микросхема МАХ3000.

Возможные ответы Вы найдете тут или тут
Читаем все, что касается HDL описания/кодирования для синтеза.

Чем открывать Ваш файл?
Схему или HDL описанию/код в студию sm.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 07:16
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Схема - обычный делител на три фазы.

Сообщение отредактировал georgy31 - Apr 26 2011, 07:24
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 07:31
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Ну у вас же сигналы 1qg0, 2qg0 и 3qg0 формируются логикой и выводятся напрямую без регистров на выходе - отсюда и "тычки"


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 09:51
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



все нормально работает. "иголки" возникают между клоками - так и забейте на них. выходные же сигналы чистые!
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 11:31
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Цитата(bav @ Apr 26 2011, 13:51) *
все нормально работает. "иголки" возникают между клоками - так и забейте на них. выходные же сигналы чистые!

Да где же нормально? Во втором импульсе 1qg1, иголки дают два ложных срабатывания и дальше всё наперекосяк. Объясните на пальцах, как с ними боротоься. К сожалению кроме графического редактора ничего не умею. Что надо вставить, что бы проглотило эти иглы? Если последовательно воткнуть штуки четыре инвертора, сведут на нет иглы, за счёт своего собственного времени срабатывания?

Сообщение отредактировал georgy31 - Apr 26 2011, 11:33
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 26 2011, 11:36
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(georgy31 @ Apr 26 2011, 15:31) *
Если последовательно воткнуть штуки четыре инвертора, сведут на нет иглы, за счёт своего собственного времени срабатывания?

Нет! Компилятор их просто выкинет... И вообще так не принято в ПЛИС...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 11:39
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Поставьте регистры после элементов XOR на выходе которых формируются сигналы 1qg0, 2qg0 и 3qg0 и снимайте эти сигналы уже с выходов этих регистров - тычков не будет


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 11:44
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата(georgy31 @ Apr 26 2011, 15:31) *
Да где же нормально? Во втором импульсе 1qg1, иголки дают два ложных срабатывания и дальше всё наперекосяк. Объясните на пальцах, как с ними боротоься. К сожалению кроме графического редактора ничего не умею. Что надо вставить, что бы проглотило эти иглы? Если последовательно воткнуть штуки четыре инвертора, сведут на нет иглы, за счёт своего собственного времени срабатывания?


попробуйте на частоте в 10 раз меньше и покажите картинку того что получилось.
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 11:51
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



И с какой целью инвертировался тактовый сигал CLK для первых трех триггеров DFF ?


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 11:52
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



и еще вопрос - что является выходом?
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 11:59
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Цитата(Mikhalych @ Apr 26 2011, 15:39) *
Поставьте регистры после элементов XOR на выходе которых формируются сигналы 1qg0, 2qg0 и 3qg0 и снимайте эти сигналы уже с выходов этих регистров - тычков не будет

Как выглядят эти регистры? Я уже всю библиотеку там пробовал, лучше не становится.

Цитата(Mikhalych @ Apr 26 2011, 15:51) *
И с какой целью инвертировался тактовый сигал CLK для первых трех триггеров DFF ?

Тактовый сигнал должен разделиться на три симметричные фазы сдвинутые на 120 градусов. На выходе должен получиться трёхфазный меандр частотой 33 кгц.
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 12:01
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



например сигнал 3qg7 снимается у вас с выхода DFF - поставьте такойже DFF перед 3qg0


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 12:15
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Цитата(Mikhalych @ Apr 26 2011, 16:01) *
например сигнал 3qg7 снимается у вас с выхода DFF - поставьте такойже DFF перед 3qg0

Это первое что я сделал, но результат нулевой

Может можно как то поумнее разбить сигнал на три фазы? Я как дилетант только так смог.
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 12:30
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Код
module div_3
  (
  clk,
  q1,
  q2,
  q3
  )
  input    clk;
  output  q1;
  output  q2;
  output  q3;
  
  reg   q1;
  reg   q2;
  reg   q3;
  
  reg [1:0] count;
  
  always @(posedge clk)
  begin
   if(count == 2)
      count <= 0;
   else
       count <= count + 1;

   case(count)
   0: {q1, q2, q3} <= 3'b001;
    1: {q1, q2, q3} <= 3'b010;
    2: {q1, q2, q3} <= 3'b100;

  end
endmodule


как-то так?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 26 2011, 12:43
Сообщение #18


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bav @ Apr 26 2011, 16:30) *
как-то так?


"Только трошечки не так"...
Делаем счетчик. С его выходов подаем сигналы на дешифратор. Делаем 6 импульсов. Далее каждую пару подаем на синхронный R-S триггер... По S входу триггер устанавливается, по R - сбрасывается... Гарантированно никаких иголок...

Либо сдвиговый регистр, который по сбросу загружает только одну единицу. К нему схему, проверяющую, что нет двух единиц одновременно. Далее на тактовые - подается синхрочастота, на входы разрешения - частота поделенная. Так же никаких иголок на выходе... Регистр соединен в кольцо...


Либо статический автомат на 3 состояния...
Либо делаем в ПЛИС микропроцессор и на его порте, программно...
Либо...
Ну и так далее...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 12:44
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Большое, человеческое СПАСИБО! Буду пробовать.
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 13:11
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата(iosifk @ Apr 26 2011, 16:43) *
"Только трошечки не так"...
Делаем счетчик. С его выходов подаем сигналы на дешифратор. Делаем 6 импульсов. Далее каждую пару подаем на синхронный R-S триггер... По S входу триггер устанавливается, по R - сбрасывается... Гарантированно никаких иголок...

тогда возникает вопрос: откуда (в приведенной реализации) возникнут на выходе иголки?

Цитата(georgy31 @ Apr 26 2011, 16:44) *
Большое, человеческое СПАСИБО! Буду пробовать.

Вы писали, что должен получиться меандр с частотой 33 кГц. посмотрите, в какой частотной области симулируете...
Go to the top of the page
 
+Quote Post
iosifk
сообщение Apr 26 2011, 13:22
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(bav @ Apr 26 2011, 17:11) *
тогда возникает вопрос: откуда (в приведенной реализации) возникнут на выходе иголки?

Виноват, не увидел, что там на выходе регистры...
Но по жизни, если разряды счетчика перекидываются не одновременно, то "case" отработает это в лучшем виде. И временную диаграмму иногда будет трясти... Так что так, как у Вас приведено, лучше все же не делать...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 26 2011, 13:26
Сообщение #22


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Там комбинационная логика в always @(posedge clk) блоке... и выходы q объявлены как регистры - так что "тычков" не будет sm.gif единственое что там не так - это коэф. заполнения - он будет 1/3 , а не 1/2 как требовалось sm.gif


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
bav
сообщение Apr 26 2011, 13:39
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



Цитата(iosifk @ Apr 26 2011, 17:22) *
Виноват, не увидел, что там на выходе регистры...
Но по жизни, если разряды счетчика перекидываются не одновременно, то "case" отработает это в лучшем виде. И временную диаграмму иногда будет трясти... Так что так, как у Вас приведено, лучше все же не делать...

на счет case - это уже будет зависеть от синтезатора - как раскидает, так и будет sm.gif
а на счет трясти... не очень уверен. здесь не требуется частота 100 МГц!?

Цитата(Mikhalych @ Apr 26 2011, 17:26) *
единственое что там не так - это коэф. заполнения - он будет 1/3 , а не 1/2 как требовалось sm.gif


не увидел
Код
.....
reg [2:0] count;
  
  always @(posedge clk)
  begin
   if(count == 5)
      count <= 0;
   else
       count <= count + 1;

   case(count)
    0: {q1, q2, q3} <= 3'b001;
     1: {q1, q2, q3} <= 3'b011;
     2: {q1, q2, q3} <= 3'b010;
     3: {q1, q2, q3} <= 3'b110;
     4: {q1, q2, q3} <= 3'b100;
      5: {q1, q2, q3} <= 3'b101;
  ...
Go to the top of the page
 
+Quote Post
georgy31
сообщение Apr 26 2011, 14:44
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Частота входного клока 12 мгц. Но почему то из 10 раз, где то один-два, на выходе получается вместо 36кгц, 18 кгц. Это глюк частотомера, или где то ошибка?
Go to the top of the page
 
+Quote Post
Mikhalych
сообщение Apr 27 2011, 05:30
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 7-12-05
Из: 77
Пользователь №: 11 952



Цитата(georgy31 @ Apr 26 2011, 18:44) *
Частота входного клока 12 мгц. Но почему то из 10 раз, где то один-два, на выходе получается вместо 36кгц, 18 кгц. Это глюк частотомера, или где то ошибка?


Чтобы получить 36кГц при использовании предложенной bav реализации - входная частота должна быть 36кГц*6 = 216кГц.... вопрос: откуда 12 МГц?


--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
Go to the top of the page
 
+Quote Post
georgy31
сообщение May 7 2011, 08:39
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305



Уважаемые спецы. Вот написал как советовали. Выдаёт при компиляции сразу 7 ошибок. Подскажите что не так, поскольку сам я всё время творил в графичеком редакторе, а здеь не в зуб ногой.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
gutzzz
сообщение May 8 2011, 16:20
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 7-02-09
Из: Ростов-на-Дону
Пользователь №: 44 537



процессы забыли - always @()
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01595 секунд с 7
ELECTRONIX ©2004-2016