Alexander_92 0 2 мая, 2015 Опубликовано 2 мая, 2015 · Жалоба Добрый день всем ! Прошу откликнуться на мой вопрос. Поскольку я только начинающий инженер Verilog HDL, то хотелось бы, чтобы кто-нибудь из продвинутых подсказал, какая структурная схема соответствует данному коду Verilog. Синтез САПРом не в счёт, но речь вроде идет о наличии двухступенчатого триггера. Cам модуль описывает фильтр дребезга при нажатии кнопки. Всем спасибо огромное, кто нарисует и объяснит !!! Сам код ниже `timescale 1ns / 1ps module BTN_FLTR( input CLK, input RST, input CE, input BTN_I, output reg BTN_O = 0, output reg BTN_CEO = 0 ); reg [1:0] BTN_I_SYNC = 0; always @(posedge CLK, posedge RST) begin if (RST) BTN_I_SYNC <= 2'b00; else BTN_I_SYNC <= {BTN_I_SYNC[0], BTN_I}; end reg [3:0] CNT = 0; always @(posedge CLK, posedge RST) begin if (RST) CNT <= 4'b0000; else if (BTN_I_SYNC[1]~^BTN_O) CNT <= 4'b0000; else if (CE) CNT <= CNT + 1'b1; end always @(posedge CLK, posedge RST) begin if (RST) BTN_O <= 1'b0; else if (&(CNT) & CE) BTN_O <= BTN_I_SYNC[1]; end always @(posedge CLK, posedge RST) begin if (RST) BTN_CEO <= 1'b0; else BTN_CEO <= &(CNT) & CE & BTN_I_SYNC[1]; end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 3 мая, 2015 Опубликовано 3 мая, 2015 · Жалоба Добрый день всем ! Прошу откликнуться на мой вопрос. Поскольку я только начинающий инженер Verilog HDL, то хотелось бы, чтобы кто-нибудь из продвинутых подсказал, какая структурная схема соответствует данному коду Verilog. Синтез САПРом не в счёт, но речь вроде идет о наличии двухступенчатого триггера. Cам модуль описывает фильтр дребезга при нажатии кнопки. Всем спасибо огромное, кто нарисует и объяснит !!! RTL просматровщик Вам в помощь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 3 мая, 2015 Опубликовано 3 мая, 2015 · Жалоба Добрый день всем ! Прошу откликнуться на мой вопрос. Поскольку я только начинающий инженер Verilog HDL, то хотелось бы, чтобы кто-нибудь из продвинутых подсказал, какая структурная схема соответствует данному коду Verilog. Синтез САПРом не в счёт, но речь вроде идет о наличии двухступенчатого триггера. Cам модуль описывает фильтр дребезга при нажатии кнопки. Всем спасибо огромное, кто нарисует и объяснит !!! Двухступенчатого триггера здесь нет, тут обычные, с динамическим управлением, которые работают по фронту. В ПЛИС других и не бывает, во всяком случае в подавляющем большинстве случаев. Схему можно посмотреть через RTL-просмотрщик. Специально для Вас нарисовал в классическом виде, так, конечно, понятнее. Довольно таки всё просто. Сигнал с кнопки (BTN_I) проходит через два триггера, для подавления метастабильности, и поступает на сброс счётчика, но не на прямую. Сам счётчик запускается командой CE, кто эту команду подаёт непонятно. Счётчик начинает считать, когда достигнет своего максимального состояния (все его разряды в единице) элемент И сидящий на его выходной шине выдаёт "1", которая является командой загрузки в триггер, в триггер загружается текущее состояние кнопки. Выход этого триггера (BTN_O) одновременно является состоянием кнопки с подавленным дребезгом и командой на сброс счётчика. На сброс счётчика поступают два сигнала: этот и с триггера подавления метастабильности (смотри начало), они объединяются через элемент исключающее или с инверсией. Есть ещё выход BTN_CEO, на нём формируется импульс на первом такте единичного состояния сигнала BTN_O. Цепи синхронизации и асинхронного сброса не рисовал, и так понятно. В общем ни чего сложного. Рисуем схему и смотрим внимательно что откуда идёт и куда приходит. Потом запускаем симулятор и снова внимательно смотрим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 19 мая, 2015 Опубликовано 19 мая, 2015 · Жалоба Двухступенчатого триггера здесь нет, тут обычные, с динамическим управлением, которые работают по фронтуС динамическим управлением - и есть двухступенчатый D-триггер в его классическом понимании (D-Latch). По фронту данные из первой ступени попадают во вторую, этим обеспечивается динамичность, т.е. работа только по фронту, а не по уровню. В ПЛИС других и не бывает, во всяком случае в подавляющем большинстве случаев.Если речь идёт о двух каскадах триггеров с динамическим управлением, то такие в ПЛИС бывают, реализуются последовательным соединением триггеров ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 19 мая, 2015 Опубликовано 19 мая, 2015 · Жалоба С динамическим управлением - и есть двухступенчатый D-триггер в его классическом понимании (D-Latch). По фронту данные из первой ступени попадают во вторую, этим обеспечивается динамичность, т.е. работа только по фронту, а не по уровню. Ну не знаю. Нас по советской терминологии учили. Двухступенчатый триггер состоит из двух синхронных триггеров работающих по уровню. С динамическим управлением - это тот который запоминает и выдаёт значение по фронту, у него явно выраженных ступеней нет. Можно вот эту книжку глянуть: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Можно вот эту книжку глянуть:Ну что, гянули? И как? Остаётесь при своём мнении? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 20 мая, 2015 Опубликовано 20 мая, 2015 · Жалоба Ну что, гянули? И как? Остаётесь при своём мнении? Что-то я Вас не понимаю. 1. Синхронный триггер: 2. Двухступенчатый на базе синхронного: 3. С динамическим управлением: Может триггер с динамическим управлением и функционирует так как вы говорите, но двухступенчатым он не является. Классический двухступенчатый триггер - это тот который под номером 2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 21 мая, 2015 Опубликовано 21 мая, 2015 · Жалоба но двухступенчатым он не являетсяХм... а что по-Вашему на 3 схеме образуют элементы под номерами 5 и 6? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander_92 0 21 мая, 2015 Опубликовано 21 мая, 2015 · Жалоба Кто-нибудь из вас знает про принципы работы ISA ? Мне необходим более объёмный материал (книга), где полностью разжёвано. Нужно спроектировать на ПЛИС ISA шестнадцатибитную (Преобразователь интерфейса UART - ISA). :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 21 мая, 2015 Опубликовано 21 мая, 2015 · Жалоба Хм... а что по-Вашему на 3 схеме образуют элементы под номерами 5 и 6?Я не спорю, может быть. Но нас учили так как говорю: триггер с динамическим управлением - это триггер с динамическим управлением, а двухступенчатый - это два синхронных стоящих в послед. Кто-нибудь из вас знает про принципы работы ISA ?Не так давно где-то здесь, в соседних темах, книжку выкладывали, буквально на этой неделе, я не помню где, поищите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 21 мая, 2015 Опубликовано 21 мая, 2015 · Жалоба Кто-нибудь из вас знает про принципы работы ISA ? Мне необходим более объёмный материал (книга), где полностью разжёвано. Нужно спроектировать на ПЛИС ISA шестнадцатибитную (Преобразователь интерфейса UART - ISA). :rolleyes: М.Гук."Интерфейсы PC" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 22 мая, 2015 Опубликовано 22 мая, 2015 · Жалоба Я не спорю, может быть. Но нас учили так как говорю: триггер с динамическим управлением - это триггер с динамическим управлением, а двухступенчатый - это два синхронных стоящих в послед.Ну видимо неправильно учили )) Динамическое управление невозможно сделать без двух ступеней. Либо, как написано в той же книжке выше, на аналоговых дифференциальных цепях. Двухступенчатый - это не обязательно 2 строго одинаковых последовательно соединённых триггера. Это просто 2 триггера последовательно, неважно одинаковых или немного разных. В конце концов все "разные" триггеры сделаны из RS путём навешивания на его входы и выходы всякой логической обвязки ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MarkOne 0 22 мая, 2015 Опубликовано 22 мая, 2015 · Жалоба ... про принципы работы ISA ? ... где полностью разжёвано. ... на ПЛИС ISA (Преобразователь интерфейса UART - ISA).... "Вальпа О.Д. Полезные схемы с применением МК и ПЛИС_2006" стр.35 - интерфейс шины ISA на ПЛИС стр.42 - адаптер СОМ порта на ПЛИС Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 22 мая, 2015 Опубликовано 22 мая, 2015 · Жалоба Ну видимо неправильно учили )) Динамическое управление невозможно сделать без двух ступеней. Либо, как написано в той же книжке выше, на аналоговых дифференциальных цепях. Двухступенчатый - это не обязательно 2 строго одинаковых последовательно соединённых триггера. Это просто 2 триггера последовательно, неважно одинаковых или немного разных. В конце концов все "разные" триггеры сделаны из RS путём навешивания на его входы и выходы всякой логической обвязки ))) Учили -то правильно, просто классификации разные: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander_92 0 22 мая, 2015 Опубликовано 22 мая, 2015 · Жалоба Спасибо за объяснения. А скажите, пожалуйста, почему в описании временных диаграмм работы ISA говорится то, что ... "При цикле чтения задатчик выставляет сигнал -IOR, в ответ на который исполнитель должен выдать данные на шину данных. Эти данные должны быть сняты исполнителем после окончания сигнала -IOR." А на временной диаграмме какая-то задержка, получается ? То есть следует при проектировании все таки следовать времени переключения CLK в единицу, то есть в этот момент заканчивается снятие данных ? или по перепаду фронта IOR в высокий уровень ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться