[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено zlyh 26 ноября 2004 г. 19:08
В ответ на: Ответ: отправлено Doka 26 ноября 2004 г. 15:04


Просто сдвиг.

Самым наглядным сдвиговым регистром мне представляется
... rising_edge(Clk) ...
mysignal(7 downto 0) <= mysignal(6 downto 1) & inputsig;

Если делать тоже самое для сдвига вправо знакового числа, то надо следить за расширением знака. Всё уже придумано чтобы не следить - package NUMERIC_STD рекомендован стандартом.

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
...
signal mysignal : signed(7 downto 0);
...
... rising_edge(Clk) ...
mysignal <= SHIFT_RIGHT(mysignal, 1);

Параметризированный сдвиг.

Что это будет в железе? Или сдвиговый регистр, где клоком его надо будет крутить или мультиплексор. Поэтому описываем или то или другое. (сигнал на границах массива вообще кто нибудь синтезирует?)
Просто мультиплексор
tmp <= din(15 downto 0) when coe_shift2 = 0 else
din(16 downto 1) when coe_shift2 = 1 else
din(17 downto 2) when coe_shift2 = 2 else
din(18 downto 3);

Параметризировать наверно можно если под циклoм FOR написать
if (i = coe_shift2) then tmp <= din(i+16-1 downto i); end if;
Потому что i будет известна на момент синтеза.


Про знаковую арифметку.
Уж где где а здесь без типов можно залететь.
Сумматору на знак плевать. А вот умножителю нет. И в Верилог был введён знаковый тип.
Из примера не могу сказать на что ругался Лео. Но функции преобразования не надо переделывать под ЕГО пакет.

Тип bit это для тестеров. Это "другая" жизнь.

Преобразование типов? Так это к Никлаусу Вирту. Он вправит... (Никто это преобразование не любит).

Учите Дугласа Смита. Он и по Верилогу тоже...

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru