Перейти к содержанию
    

Доброго времени суток!

 

Altera, Quartus Schematic.

Хочу заставить работать следующюю схему:

post-23832-1220871970.jpg

sig_in - любой асинхронный сигнал (например _WR)

Проблема заключается в том, что если убрать reset_sig, этот триггер переносит 1(vcc) безо всякого sig_in. Стоит добавить любой reset_sig и 1 переносится по фронту sig_in.

 

Это результат какой-то оптимизации?

Как заставить правильно работать эту схему, если принципиально нет никакого reset_sig?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почеу вы уверены что триггер дложен инициализироваться при включении именно 0? На сколько я помню нн может с равной вероятностью быть как в 0 так и в 1. Надо при старте инициализировать все схемы которые дложны быть в определенном состочнии специальной схемой сброса

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почеу вы уверены что триггер дложен инициализироваться при включении именно 0? На сколько я помню нн может с равной вероятностью быть как в 0 так и в 1. Надо при старте инициализировать все схемы которые дложны быть в определенном состочнии специальной схемой сброса

Ну не знаю, не встречал я еще триггеров в 1-м состоянии при включении. (согласен, может быть, но у меня все триггера во всех схемах по умолчанию в нуле)

В данной схеме 1 выставляется сразу и на симуляции и в железе, поставлю gnd на D-вход и будет на Q ноль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А сделать обычную синхронную схему фиксации сигнала никак не возможно? Асинхронные схемы это самый типичный источник глюков и багов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это результат какой-то оптимизации?

 

Так оно и есть. По умолчанию опция синтезатора // Power-Up Don't Care - on.

И так как получается Вам все равно, что по включению питания, синтезатор заменяет триггер на константу.

(Смотрите хелп. Там даже рисунок есть). Поставьте опцию в off и триггер появится.(затраченные ресурсы смотрите)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема заключается в том, что если убрать reset_sig, этот триггер переносит 1(vcc) безо всякого sig_in. Стоит добавить любой reset_sig и 1 переносится по фронту sig_in.

 

Это результат какой-то оптимизации?

Как заставить правильно работать эту схему, если принципиально нет никакого reset_sig?

Если принципиально нет никакого сброса, то постоянная 1 - самая правильная работа этой схемы. Даже если при включении в 0 случайно встанет, все равно безвозвратно упадет в 1 при первом же косом взгляде. :unsure: :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А сделать обычную синхронную схему фиксации сигнала никак не возможно? Асинхронные схемы это самый типичный источник глюков и багов.

Подсажите пожалуйста, как будет выглядеть правильный вариант схемы, которая раз и навсегда защелкнет триггер из 0 -> 1 по фронту принципиально асинхронного сигнала?

Или у меня вообще подход неправильный, я так и не понял..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подсажите пожалуйста, как будет выглядеть правильный вариант схемы, которая раз и навсегда защелкнет триггер из 0 -> 1 по фронту принципиально асинхронного сигнала?

Или у меня вообще подход неправильный, я так и не понял..

Хотя смысл неясен совершенно ( если это не учебная задача, конечно), но Ваша схема имеет право на существование, но при условии, что сброс все-таки есть. Это может быть глобальный сброс при включении питания, который гарантирует известное состояние системы в момент начала отсчета времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подсажите пожалуйста, как будет выглядеть правильный вариант схемы, которая раз и навсегда защелкнет триггер из 0 -> 1 по фронту принципиально асинхронного сигнала?

Или у меня вообще подход неправильный, я так и не понял..

 

Классический RS триггер на двух логических элементах. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почеу вы уверены что триггер дложен инициализироваться при включении именно 0? На сколько я помню нн может с равной вероятностью быть как в 0 так и в 1. Надо при старте инициализировать все схемы которые дложны быть в определенном состочнии специальной схемой сброса

 

Или проектировать такие , которые не критичны к начальным условиям

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

 

Altera, Quartus Schematic.

Хочу заставить работать следующюю схему:

post-23832-1220871970.jpg

sig_in - любой асинхронный сигнал (например _WR)

Проблема заключается в том, что если убрать reset_sig, этот триггер переносит 1(vcc) безо всякого sig_in. Стоит добавить любой reset_sig и 1 переносится по фронту sig_in.

 

Это результат какой-то оптимизации?

Как заставить правильно работать эту схему, если принципиально нет никакого reset_sig?

Не совсем понятно, что должна делать Ваша схема. Если нужно получить sig_out при поступлении sig_in, то поменяйте местами входы D и CLK триггера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если нужно получить sig_out при поступлении sig_in, то поменяйте местами входы D и CLK триггера.

И что?

Навечно подвешенный к 1 клок - довольно нестандартное "решение"...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что?

Навечно подвешенный к 1 клок - довольно нестандартное "решение"...

Да. прошу прощения, поторопился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем, думаю что надо пояснить для чего я это все делал.. (задача не учебная)

Мне необходимо записать регистры при включении плис значениями по умолчанию из ROM. А при первой попытке их перезаписать (сигнал wr, по "И" с сигналом дешифратора адресса) снять режим записи значениями по умолчанию.

Согласен, выглядет неэлегантно, но думаю, претендовать на работоспособность может. Соответственно следующяя запись из ROM только при сбросе питания (зачем мне reset в этом случае?).

Думаю, что более правильно было бы сделать сигнал init и запустиь на него какой-нить сигнал, вырабатываемый при загрузке плис (может выход на режим pll, может еще какой-нить есть...)

а лучше всего подать на этот вход осознанный сигнал (в моем случае с ПК).

 

а про триггер в таком режиме хотелось узнать просто из любопытства.

Кстати, если я все таки поставлю Power-Up Don't Care - on на чем это еще может сказаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем, думаю что надо пояснить для чего я это все делал.. (задача не учебная)

Мне необходимо записать регистры при включении плис значениями по умолчанию из ROM. А при первой попытке их перезаписать (сигнал wr, по "И" с сигналом дешифратора адресса) снять режим записи значениями по умолчанию.

 

Вам нужен примитив dffe. По включению питания он устанавливается в 0.

Потом по выбранному адресу в цикле записи записываете с шины данных лог. 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...