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

Как определить номер старшего разряда std_logic_vector

решение "в лоб" :

 

ENTITY prio
    PORT (
        a : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
        y : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
    );
END ENTITY;

ARCHITECTURE seq OF prio IS
BEGIN
    PROCESS (a)
    BEGIN
        y <= "000";
        FOR i IN  a'HIGH downto 0 LOOP
            IF a(i) = '1' THEN
                y <= STD_LOGIC_VECTOR(TO_UNSIGNED(i, y'LENGTH));
                        exit;
            END IF;
        END LOOP;
    END PROCESS;
END ENTITY;

 

upd

PS тоже самое используется в вычислении логарифма у _Anatoliy

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


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

Так вам логарифм нужен? Посмотрите по ссылке,лишнее выбросьте.

быстрый логарифм

 

Спасибо огромное. Спасибо всем за ответы

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


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

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

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

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

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

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

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

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

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

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