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

счетчик на триггерах

Мне кажется, что человеку надо больше делать телодвижений в самообразовании и почитать пару книг в первую очередь.

Но вопрос, по поводу где и что почитать не прозвучал, если не ошибаюсь.

А знания не дают, их берут.

 

Походу интереса к теме у ТС, кроме как сдачи лабораторки или зачета нет.

И все, что тут ему понаписывали успешно забудется после решения "вопроса".

Больше тратить время на эту тему не представляю возможным.

 

Всем успехов!

 

А он прав

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


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

Разумеется, хотелось бы знать как выглядит "человеческий" счетчик на JK-триггерах. Но все, что я могу сейчас - это сделать квакозябру, которая выдавала бы нужную диаграмму. Если такой "простейший" элемент дается c трудом, то как можно вообще научиться писать нормальные проекты? А что касается литературы - есть много примеров описания, но это одно, а когда самому приходиться что-то делать - это уже совсем другое..

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


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

Куда мир катится... 3 (!!!) страницы форума по одному из основных элементов в цифровой схемотехнике...

 

Вот картинка классического синхронного счетчика на JK-тригерах.

 

О строчке на верилоге :-)))

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


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

Разумеется, хотелось бы знать как выглядит "человеческий" счетчик на JK-триггерах. Но все, что я могу сейчас - это сделать квакозябру, которая выдавала бы нужную диаграмму. Если такой "простейший" элемент дается c трудом, то как можно вообще научиться писать нормальные проекты? А что касается литературы - есть много примеров описания, но это одно, а когда самому приходиться что-то делать - это уже совсем другое..

 

настоящие серьезные программы пишутся на другом уровне абстракции, какая собственно вам разница на чем сделан счетчик на JK, T или чего там еще триггере? Вы описываете примитив - счетчик, и пишите что он должен делать, а дальше не ваша забота.

 

Для сравнения вы сейчас мучаете ассемблер и думаете а как же блин тогда виндоус написали!

 

 

Опять же все что говорят на форуме надо делить на 5 - 10, а то и 100... каждый гуру просто считает обязанным себя помазать кого-то мордой об батарею, сказать что-то очень многозначительное, а на вопрос, в чем беда конкретно сказать что у него нет времени больше на эту задачу.

 

я не говорю ни про кого конкретно, но очень много тут людей тратят времени на такие фортили больше чем пошло бы на объяснение проблемы.

 

я посмотрел вашу схему, и посмотрел картинки в интернете, у вас было 2 варианта схемы, и в инете я нашел 2 вида картинок. Схема задачу выполняет, счет ведет. Все остальные страдания по поводу "и" или "или" синхронно или нет - это нюансы! Важные, возможно, но чтобы их понять нужен опыт, а его еще надо набраться.

 

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

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


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

настоящие серьезные программы пишутся на другом уровне абстракции, какая собственно вам разница на чем сделан счетчик на JK, T или чего там еще триггере? Вы описываете примитив - счетчик, и пишите что он должен делать, а дальше не ваша забота.

 

Для сравнения вы сейчас мучаете ассемблер и думаете а как же блин тогда виндоус написали!

 

я посмотрел вашу схему, и посмотрел картинки в интернете, у вас было 2 варианта схемы, и в инете я нашел 2 вида картинок. Схема задачу выполняет, счет ведет. Все остальные страдания по поводу "и" или "или" синхронно или нет - это нюансы! Важные, возможно, но чтобы их понять нужен опыт, а его еще надо набраться.

 

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

 

Настоящие знания складываются из хорошего понимания основополагающих вещей и дальнейшего опыта применения на практике, умения анализировать. Эта задачка про счетчик на JK-триггерах направлена на изучение основополагающих вещей и учит использовать имеющийся ресурс со всеми его "плюсами" и "минусами" для решения совершенно конкретной задачи.

 

Так что прежде, чем выйти на следующий уровень абстракции, неплохо бы пройти предыдущий.

 

 

Разумеется, хотелось бы знать как выглядит "человеческий" счетчик на JK-триггерах. Но все, что я могу сейчас - это сделать квакозябру, которая выдавала бы нужную диаграмму. Если такой "простейший" элемент дается c трудом, то как можно вообще научиться писать нормальные проекты? А что касается литературы - есть много примеров описания, но это одно, а когда самому приходиться что-то делать - это уже совсем другое..

 

В вашей схеме Вы на оба входа триггера подаете один и тот же сигнал - это значит, что Вы используете только 2 из 4 возможных управляющих комбинаций (00 - ничего не делать и 11 - toggle). Очевидно, что если нужен сброс счетчика, то необходимо использовать комбинацию 01 - сброс. Однако в этом случае каждый вход должен управляться разными сигналами.

 

У JK-триггера есть несколько вариантов управляющей последовательности, которая приводит к "счету". Подача константы 11 - только один из них.

 

Начните с разминки.

 

На приведенной ниже схеме соедините выходы триггера с его входами так, чтобы получился однобитный счетчик (ничего, кроме проводов, ну и выходного пина добавлять нельзя)

 

post-7537-1384833902_thumb.jpg

 

Теперь, дорисуйте схему так, чтобы получился 2-х битный счетчик (все, что нужно из элементов на схеме присутствует)

 

post-7537-1384833910_thumb.jpg

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


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

Опять же все что говорят на форуме надо делить на 5 - 10, а то и 100... каждый гуру просто считает обязанным себя помазать кого-то мордой об батарею, сказать что-то очень многозначительное, а на вопрос, в чем беда конкретно сказать что у него нет времени больше на эту задачу.

 

я не говорю ни про кого конкретно, но очень много тут людей тратят времени на такие фортили больше чем пошло бы на объяснение проблемы.

Если вы ещё не уяснили, дух данного форума заключается в том, что тут не принято выдавать готовые решения, это отучает от самостоятельного мышления. Поэтому здесь обычно обсуждают недостатки предложенной конструкции, а также предлагают альтернативные пути (но не готовые решения). Если это больно бьёт по вашим личным комплексам - остаётся лишь два пути : задавить внутренние обиды и адекватно воспринимать критику, либо покинуть данную площадку.

 

я посмотрел вашу схему, и посмотрел картинки в интернете, у вас было 2 варианта схемы, и в инете я нашел 2 вида картинок. Схема задачу выполняет, счет ведет. Все остальные страдания по поводу "и" или "или" синхронно или нет - это нюансы! Важные, возможно, но чтобы их понять нужен опыт, а его еще надо набраться.

 

Вот это - очень опасное программистское заблуждение. Схема должна работать на 100% а не на 99%, иначе глюки начинают накапливаться, в результате раз в неделю появляется тема "я добавил всего один триггер, а оно вдруг перестало работать совсем".

 

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

 

Ну и чтобы не быть голословным, в рамках акции "сделай мир чуть-чуть умнее и победи программистскую самоуверенность" я вам сейчас объясню почему асинхронный сброс счётчика может сделать схему полностью неработоспособной.

Итак, предположим у нас счётчик, считающий от нуля до 9, то есть при достижении десятки 1010 мы его _асинхронно сбрасываем, и получаем , как нам кажется , нормальный счёт 0 1 2 3 4 5 6 7 8 9 0 1 и так далее.

Теперь внимательно рассмотрим схему сброса. Это - четырёхвходовая LUT, которая выполняет функцию out = ~ |(in ^ 4'b1010) (в верилоговском синтаксисе). То есть при появлении комбинации 1010 на входах этой схемы она через некоторое очень небольшое время сбросит в 0 все триггера счётчика. Пути сигнала от каждого из выходов триггеров счётчика до этой четырёхвходовки в реальной жизни неодинаковы и могут слегка отличаться. Теперь предположим (а такое предположение весьма вероятно) что пути от триггеров 1 3 и 4 составляют 0.5нс, а путь от триггера 2 равен 0.6 нс. Рассмотрим переход счётчика из состояния 0111 в состояние 1000. Ввиду разницы путей распространения сигнала на входе 4-входовки управляющей общим сбросом, в течении 100пс будет комбинация 1010 так как 3 триггера уже перейдут в новое состояние, а сигнал от 2 триггера маленько запоздает. В итоге (помним что сброс у нас Асинхронный) все триггера сбросятся, и до состояния 1001 счётчик уже никогда не досчитает. Результат - полностью неработоспособная конструкция, которая к тому же ещё и ведёт себя по-разному от разводки к разводке.

 

З Ы Всё это очень хорошо описано в умных книжках, но в рамках вышеупомянутой акции я счёл возможным опубликовать это здесь, вы ведь любите готовые решения, не так ли?

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


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

раньше дух данного форума был что люди по интересам общаются на общую тему, помогают друг другу и уважают друг друга. Если кто-то считает что знает все и никогда не ошибается - то он опасно заблуждается.

 

Вам не дает покоя что я программист, ну что же тут поделать, у всех свои недостатки. Я прикинул где может быть косяк, и сразу его не увидел, почему то в голове у меня была схема где состояние следующего триггера задает переход предыдущего, как на 1 картинке, Поэтому при переходе с 0111 на 1000 я не видел возможности чтобы старший бит поменялся раньше младшего.

 

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

 

На счет 100% рабочей схемы - вы правы, я никогда не считал что сляпать хоть как-то и запустить - это правильный путь. Я лишь замечаю, что виденье потенциальных опасностей и чувствование схем приходит с опытом, хотя может вы с рождения все знали...

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


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

Площадка форума мгновенно превратилась в РИНГ=))

 

Осмелюсь тоже прокомментировать происходящее в этой теме :wacko:

 

Сам я больше склонен к тому,что задача очень не сложная. Для ее решения

нужно просто уделить денёк и разобраться что такое JK - триггер и счетчик используя

УЧЕБНИКИ ПО ОСНОВАМ ЦИФРОВОЙ ТЕХНИКИ. Уж этого добра полно.

 

А советы местных гуру очень даже к месту и по делу. У всех свой опыт и В ЭТОМ ВЕСЬ ИНТЕРЕС!!!!!!!!!!!!!!!

 

P.S. Многие были студентами и изучали САМИ как работает JK-триггер и как из него получить D-триггер и T-триггер.

Как то это все нормально проходило с карандашом в руке и учебником=)) Думаю нужно просто потрудиться

 

С УВажением ко все публике ФОРУМА :laughing:

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


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

...Так что прежде, чем выйти на следующий уровень абстракции, неплохо бы пройти предыдущий...

К сожалению, в разработке электронных устройств и программировании ничто не наносит такого вреда, как предыдущий опыт. Ну, не будет использовать ТС, при разработке ПО для FPGA JK-триггеры. Не должен этого делать. Нет их в архитектуре современных FPGA. Уровень абстракции должен соответствовать уровню HDL языков. Ну, никак не поможет знание, как изготовить седло для верховой езды, в управлении современным автомобилем.

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


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

К сожалению, в разработке электронных устройств и программировании ничто не наносит такого вреда, как предыдущий опыт. Ну, не будет использовать ТС, при разработке ПО для FPGA JK-триггеры. Не должен этого делать. Нет их в архитектуре современных FPGA. Уровень абстракции должен соответствовать уровню HDL языков. Ну, никак не поможет знание, как изготовить седло для верховой езды, в управлении современным автомобилем.

Вообще (как мне кажется) в этом топике речь шла не о конкретном JK триггере, а о принципах синхронного дизайна, борьбе с разной асинхронщиной, gated clock и использовании разных способов описания логики (схематик, языки)

для правильного описания типовых конструкций на примере счётчика на JK триггерах. Этот опыт в ближайшие лет 10 будет крайне полезен, по крайней мере сейчас ситуация когда отвратительное качество кода компенсируется тактовой частотой процессора в области ПЛИС не наблюдается.

Хотя возможно я и ошибаюсь и речь тут действительно о "спихнуть лабу по-быстрому заюзав коллективный разум форума".

 

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


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

я посмотрел вашу схему, и посмотрел картинки в интернете, у вас было 2 варианта схемы, и в инете я нашел 2 вида картинок. Схема задачу выполняет, счет ведет. Все остальные страдания по поводу "и" или "или" синхронно или нет - это нюансы! Важные, возможно, но чтобы их понять нужен опыт, а его еще надо набраться.

 

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

 

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

Без понимания таких нюансов - "опыт понимания" прийдёт незамедлительно - после включения питания :)

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


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

К сожалению, в разработке электронных устройств и программировании ничто не наносит такого вреда, как предыдущий опыт. Ну, не будет использовать ТС, при разработке ПО для FPGA JK-триггеры. Не должен этого делать. Нет их в архитектуре современных FPGA. Уровень абстракции должен соответствовать уровню HDL языков.

 

Упражнения вроде "реализовать счетчик на JK-триггерах, который ..." очень хорошо учат мыслить, искать и прорабатывать различные решения и вообще понимать что ты делаешь и почему именно такие результаты.

 

Посмотрите код БПФ32 - там такой уровень "абстракции"... Хочется посоветовать вернуться к JK-триггерам.

 

 

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

 

Я в детстве 5 лет занимался конным спортом в школе олимпийского резерва, поэтому как человек, разбирающийся в этом вопросе, могу Вам открыть один секрет:

 

знание, как изготовить седло для верховой езды не помогает даже в управлении лошадью :smile3009:

 

P.S. навыки, приобретаемые или тренеруемые в процессе верховой езды (такие как внимание, скорость реакции, умение ориентироваться в пространстве в сложных ситуациях и на скорости, умение быстро и правильно оценивать ситуацию и еще быстрее принимать правильные решения, чувствовать лошадь, предвидеть на несколько секунд вперед и многое другое) очень даже полезны и при обучении и при непосредственном управлении современным автомобилем. :rolleyes:

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


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

что угодно говорите, какие книжке не пихайте

не выучите вы дифференциальному исчислению ученика начальной школы.

 

Любое сложное ложится на базу простого. И мое мнение что на том уровне когда строишь счетчик на JK триггерах должно формироваться понимание как один блок дергает другой, как переходит одна единица в другую и так далее... Рано еще на этом уровне говорить о задержках в линиях и прочее.

 

Частота работы этого счетчика меньше герца в учебной задаче....

 

 

 

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

Без понимания таких нюансов - "опыт понимания" прийдёт незамедлительно - после включения питания :)

 

так укажите проблему явно, то что для вас очевидно, человеку который не знает отличие ЖК от Д триггера ой как не очевидно. Яж тут и выступаю за то, что если видите проблему, опишите ее, а не ляпните пробегая мимо - "о отстой, работать не будет", а потом на вопрос почему появляются страничные посты про то что нет времени все это рассказывать...

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


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

так укажите проблему явно, то что для вас очевидно, человеку который не знает отличие ЖК от Д триггера ой как не очевидно. Яж тут и выступаю за то, что если видите проблему, опишите ее, а не ляпните пробегая мимо - "о отстой, работать не будет", а потом на вопрос почему появляются страничные посты про то что нет времени все это рассказывать...

Читайте мой пост "Nov 15 2013, 12:18" - куда уш явнее

 

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


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

Вообще (как мне кажется) в этом топике речь шла не о конкретном JK триггере, а о принципах синхронного дизайна,
В топике автор конкретно спросил, как сделать счетчик на JK триггерах. Ни о каком синхронном дизайне, ни о каких FPGA изначально речи не шло (если не считать упоминания об HDL). Однако, как в любом топике, после 3го поста о первоначальном вопросе автора забыли, и начали усиленно обсуждать то, о чем он не спрашивал :rolleyes:

Правда иногда кто нибудь все же вспоминал исходный вопрос, чем только подливал масла в огонь - какие еще JK триггера, когда 1 строчка на Verilog'е :1111493779:

 

Автору - рабочая схема на реальных JK триггерах (как была нарисована в первом посте) в FPGA будет работать со сбоями (если вообще будет работать). То, что можно делать в цифровых схемах на 'рассыпухе' категорически нельзя делать в FPGA.

 

Насколько я помню, тут кто то делился опытом по переносу схемы на 155 серии (размером с небольшой аэродром) в FPGA. Схема была 100% рабочая (проверенно временем), а после ее перенесения 1 в 1 в FPGA она вообще не запустилась :smile3046:

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


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

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

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

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

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

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

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

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

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

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