Есть двоичный рекурсивный код. Получается при помощи формулы, например такой x11 = x1 xor x5 xor x10, но вообще необязательно xor , может быть любая бинарная операция, равно как и количество операндов входящих в неё, кроме того допускается использование констант.
Для этой формулы задаётся начальная константа = 0 и осуществляется рекурсивное построение кода.
У меня есть такой код(2^17 значений) и формула по которой он был синтезирован.
Задача сводится к тому чтобы, для произвольного 17разрядного значения кода определить число шагов рекурсии, которое необходимо для его синтеза.
Самый простой способ - использование ппзу емкостью 2^17 слов. Тогда адрес - это одно из значений кода, а то что лежит по адресу - искомое число шагов рекурсии.
Хотелось бы найти более простое решение, которое можно было бы реализовать в качестве комбинационной логике на ПЛИС.
yornik
Mar 15 2005, 18:58
На мой взгляд, Вы слишком большой оптимист, если думаете, что решение может быть найдено для такого общего случая. Самое похожее, что мне встречалось - это нахождение члена рекуррентного ряда по его номеру (e.g., числа Фибоначчи x(n+2) = x(n+1)+x(n), x(0)=x(1)=1), и там, как, впрочем, и в теории простейших диффуров, все упирается в невозможность формулой определить корни уравнения степени более 4. Предполагаю (я совсем не математик), что использование в уравнении только 0 и 1 (а не всех целых чисел) не делает задачу аналитически решаемой в общем случае.
Еще, это напоминает задачу построения системы связи с шумоподобными сигналами при необходимости обеспечить синхронизацию приемника за заданное время. Но книжек по теме назвать не смогу.
Посмотрел на задачу немного с другой стороны. Есть два множества, элементы которых однозначно отображаются друг на друга. Найти закон отображения. Наверняка должны быть какие-нибудь математические пакеты, которые позволяют это сделать, хотя бы в первом приближении.
По поводу нулей и единиц возникла такая мысль. Составить для каждого разряда свою ДНФ и попытаться её минимизировать. Естественно порядки не те , чтобы делать это вручную. Может попробую на этой недели сгенерировать эти формулы и загнать их например в LeonardoSpectrum.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.