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

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

Отправлено Leoyv 05 августа 2003 г. 13:10
В ответ на: Посмотрите код:, что ему не нравиться не пойму. Просто тока начал с HDL плотно работать. отправлено MemoryTest 05 августа 2003 г. 09:58

Ошибка в заданиях constant - все компиляторы рассматривают их как 12-ти битовые (3 четверки), а заданы они как 10-ти битовые. Если вместо определения X"360" использовать "110110000" и т.д. - все компилируется. Поверил на Quartus-е и Synplify. При этом Quartus НЕ компилирует и НЕ говорит чего неправильно, а Synplify - говорит.

Еще одно замечание - код может быть написан по другому:
------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity adress_compare is
generic( ADRESS_LENGTH: INTEGER :=10);
port (input_adress: in STD_LOGIC_VECTOR (ADRESS_LENGTH-1 downto 0);
subreg0_select: out STD_LOGIC;
subreg1_select: out STD_LOGIC);
end adress_compare;

architecture Behavioral of adress_compare is
constant SUBREG0_ADRESS: STD_LOGIC_VECTOR (ADRESS_LENGTH-1 downto 0):="1101100000";
constant SUBREG1_ADRESS: STD_LOGIC_VECTOR (ADRESS_LENGTH-1 downto 0):="1101100001";
begin
subreg0_select <='1' when input_adress = SUBREG0_ADRESS else '0';
subreg1_select <='1' when input_adress = SUBREG1_ADRESS else '0';
end Behavioral;
------------------------------------------------------
При этом имплементация другая - меньшее число LUT, но меньше и быстродействие. Тут уж надо выбирать чего именно нужно.

Успехов


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru