некоторые умные bitmanipulations для VHDL пожалуйста.

C

completelyuseless

Guest
Привет всем,

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

в вектор говорю 'N' бит, мне нужно найти позицию наиболее значимых'1 'в векторных и инвертировать и 0
в которых с левой стороны ее.

например:
позволяет говорить
а.и. есть вектор, что составляет 9 бит долго, и произвольно это говорю 000110100

Есть 3 нули перед самым значительным 1 в obove вектора, так что я нужен умный вид маскировки системы, которая будет инвертировать этих нулей,
в результате чего она 111110100.
Даже если позиции, которые наиболее значимых'1 'изменений, метод должен быть общими и работать на любом случае (при условии, что вектор размер не изменится, конечно)

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

заранее спасибо

 
Подобные операции могут быть наиболее легко осуществляются А LOOP итеративная схема.Как вы считаете, что все эквиваленте дизайн описаний можно ожидать к концу в тот же самый код в связи с VHDL компилятор оптимизации действий.Таким образом, читаемость и компактность кода являются основными критериями.

 
Я думаю, что вы можете использовать один случай заявлением или петля ..

 
Это, как вы это делаете.

входные и выходные сигналы имеют одинаковую длину.

Код:процесс (CLK)

переменная leading_zeros: булево;

начинать

если rising_edge (CLK), а затем

на в input'high dowoto input'low петля

leading_zeros: = TRUE;

если вход (а) ='0 'и затем leading_zeros

вывода (а) <='1 ';

еще

вывода (а) <= ввода (а);

leading_zeros: = FALSE;

End If;

конец петли;

End If;

окончания процесса;

 

Welcome to EDABoard.com

Sponsor

Back
Top