|
Как спастись от "тычков" |
|
|
|
Apr 26 2011, 06:41
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305

|
Пока схема делителя была собрана на рассыпухе всё было нормально. Но ПЛИСка за счёт высокого быстродействия успевает обработать тычёк. Подскажите как заставить её не реагировать на корткие всплески. Микросхема МАХ3000.
Прикрепленные файлы
______.rtf ( 4.62 мегабайт )
Кол-во скачиваний: 72
|
|
|
|
|
Apr 26 2011, 07:11
|

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

|
Цитата(georgy31 @ Apr 26 2011, 09:41)  Пока схема делителя была собрана на рассыпухе всё было нормально. Но ПЛИСка за счёт высокого быстродействия успевает обработать тычёк. Подскажите как заставить её не реагировать на корткие всплески. Микросхема МАХ3000. Возможные ответы Вы найдете тут или тут Читаем все, что касается HDL описания/кодирования для синтеза. Чем открывать Ваш файл? Схему или HDL описанию/код в студию
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Apr 26 2011, 11:31
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305

|
Цитата(bav @ Apr 26 2011, 13:51)  все нормально работает. "иголки" возникают между клоками - так и забейте на них. выходные же сигналы чистые! Да где же нормально? Во втором импульсе 1qg1, иголки дают два ложных срабатывания и дальше всё наперекосяк. Объясните на пальцах, как с ними боротоься. К сожалению кроме графического редактора ничего не умею. Что надо вставить, что бы проглотило эти иглы? Если последовательно воткнуть штуки четыре инвертора, сведут на нет иглы, за счёт своего собственного времени срабатывания?
Сообщение отредактировал georgy31 - Apr 26 2011, 11:33
|
|
|
|
|
Apr 26 2011, 11:59
|
Местный
  
Группа: Свой
Сообщений: 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 кгц.
|
|
|
|
|
Apr 26 2011, 12:15
|
Местный
  
Группа: Свой
Сообщений: 464
Регистрация: 4-02-10
Пользователь №: 55 305

|
Цитата(Mikhalych @ Apr 26 2011, 16:01)  например сигнал 3qg7 снимается у вас с выхода DFF - поставьте такойже DFF перед 3qg0 Это первое что я сделал, но результат нулевой Может можно как то поумнее разбить сигнал на три фазы? Я как дилетант только так смог.
|
|
|
|
|
Apr 26 2011, 12:30
|
Знающий
   
Группа: Свой
Сообщений: 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 как-то так?
|
|
|
|
|
Apr 26 2011, 12:43
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(bav @ Apr 26 2011, 16:30)  как-то так? "Только трошечки не так"... Делаем счетчик. С его выходов подаем сигналы на дешифратор. Делаем 6 импульсов. Далее каждую пару подаем на синхронный R-S триггер... По S входу триггер устанавливается, по R - сбрасывается... Гарантированно никаких иголок... Либо сдвиговый регистр, который по сбросу загружает только одну единицу. К нему схему, проверяющую, что нет двух единиц одновременно. Далее на тактовые - подается синхрочастота, на входы разрешения - частота поделенная. Так же никаких иголок на выходе... Регистр соединен в кольцо... Либо статический автомат на 3 состояния... Либо делаем в ПЛИС микропроцессор и на его порте, программно... Либо... Ну и так далее...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Apr 26 2011, 13:11
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата(iosifk @ Apr 26 2011, 16:43)  "Только трошечки не так"... Делаем счетчик. С его выходов подаем сигналы на дешифратор. Делаем 6 импульсов. Далее каждую пару подаем на синхронный R-S триггер... По S входу триггер устанавливается, по R - сбрасывается... Гарантированно никаких иголок... тогда возникает вопрос: откуда (в приведенной реализации) возникнут на выходе иголки? Цитата(georgy31 @ Apr 26 2011, 16:44)  Большое, человеческое СПАСИБО! Буду пробовать. Вы писали, что должен получиться меандр с частотой 33 кГц. посмотрите, в какой частотной области симулируете...
|
|
|
|
|
Apr 26 2011, 13:39
|
Знающий
   
Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184

|
Цитата(iosifk @ Apr 26 2011, 17:22)  Виноват, не увидел, что там на выходе регистры... Но по жизни, если разряды счетчика перекидываются не одновременно, то "case" отработает это в лучшем виде. И временную диаграмму иногда будет трясти... Так что так, как у Вас приведено, лучше все же не делать... на счет case - это уже будет зависеть от синтезатора - как раскидает, так и будет  а на счет трясти... не очень уверен. здесь не требуется частота 100 МГц!? Цитата(Mikhalych @ Apr 26 2011, 17:26)  единственое что там не так - это коэф. заполнения - он будет 1/3 , а не 1/2 как требовалось  не увидел Код ..... 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; ...
|
|
|
|
|
Apr 27 2011, 05:30
|

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

|
Цитата(georgy31 @ Apr 26 2011, 18:44)  Частота входного клока 12 мгц. Но почему то из 10 раз, где то один-два, на выходе получается вместо 36кгц, 18 кгц. Это глюк частотомера, или где то ошибка? Чтобы получить 36кГц при использовании предложенной bav реализации - входная частота должна быть 36кГц*6 = 216кГц.... вопрос: откуда 12 МГц?
--------------------
Не, ну наболело, капитан - он выступает как директор пляжа, посол! (с) Ширли-Мырли
|
|
|
|
|
May 8 2011, 16:20
|
Участник

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

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