Цитата(LeonY @ May 26 2006, 13:21)

Возникла интересная задачка, предельно простая в описании, но решения я пока не нахожу.
Нужен "счетчик" с четырьмя входными сигналами: UpEnable, ClkUp и DownEnable, ClkDown. Про всякое типа Reset не говорю.
ClkUp и ClkDown - две независимые тактовые последовательности, асинхронные относительно друг-друга, с неизвестным соотношением частот.
Если чуть копнуть, то оказывается, что эта задачка не так примитивна, как кажется на первый взгляд, и связана с вопросами семантики языка, которым написано сообщение

Во-первых, что такое счетчик? Самый обычный, одноклоковый? Попробуйте дать его формальное определение. Наверняка не обойдетесь без дискретного времени: "по приходу клоку происходит изменение выходов". Счетчик в непрерывном времени нереализуем без дополнительного упоминания переходных процессов - любые счетчики в непрерывном времени являются лишь аппроксимацией идеального счетчика. Можно или нет пользоваться той или иной аппроксимацией - зависит от применения. К счастью, в большинстве применений время дискретно и совпадает с доменом клока самого счетчика, и никаких вопросов не возникает.
Сложность рассматриваемой задачи связана с тем, что в случае двух независимых клоков, очевидно, нет такого единого дискретного времени, в котором можно было бы просто и однозначно определить понятие "двухклоковый счетчик". То есть, с самого начала приходится работать с аппроксимациями, несколько вариантов таких аппроксимаций было накидано ранее, но какую из них можно применять - зависит от несообщенных деталей применения. Возможно, что ни один из изложенных вариантов не подойдет - и прийдется выдумывать что-то совсем экзотическое и сильно навороченное.