Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Языки описания аппаратуры (VHDL и др.)

Ответ:

Отправлено Kolobok 28 февраля 2008 г. 12:07
В ответ на: Ответ: отправлено zlyh 25 февраля 2008 г. 10:02

1. В OrCADе 9.1 VHDL моделировать можно. Утилита называется OrCAD Simulate.
2. С функциями сдвига интересная штука получается. Буду признателен если подскажете. В пакете NUMERIC_STD есть функции SHIFT_LEFT и SHIFT_RIGHT. Они определены для типов SIGNED и UNSIGNED и компилятор ругается при попытке послать в них STD_LOGIC_VECTOR. Но если посмотреть на тело, к примеру, функции SHIFT_LEFT, то увидим, что она вызывает другую функцию XSLL, в которой используется STD_LOGIC_VECTOR.
А теперь вопрос: как будет более корректно пользоваться функциями сдвига для типа STD_LOGIC_VECTOR:
а) Использовать двойное преобразование типов: a:=std_logic_vector(SHIFT_LEFT(SIGNED(b),i));
б) Просто скопировать текст функции XSLL в мой VHDL-файл и вызывать ее для сдвига.
в) Дописать в декларативной части пакета NUMERIC_STD фукцию XSLL, чтобы ее было видно из моего VHDL-файла. И как в прежнем примере, вызывать для сдвига ее.

Результат работы всех вариантов одинаковый.

3. Про http://fpga-faq.narod.ru/ знаю. Разную полезную инфу от туда скачал. Учебники по языку читать пробовал, но не очень усердно. Самой полезной для меня оказался сайт(и сделанная по нему книга) Сергиенко А.М. "VHDL для проектирования вычислительных устройств". Пробовал читать Бибило, но почти уснул. На мой взгляд, на начальном этапе она способна убить интерес к языку. Сейчас я бы ее полистал, надо опять попросить у научного руководителя.

4. "Null range: 0 downto 1" это так компилятор реагирует на 913,914ю строки float_pkg. Там специально определены константы (не понял, правда, зачем):
-- null range array constant
constant NAFP : float (0 downto 1):= (others => '0');
constant NSLV : STD_LOGIC_VECTOR (0 downto 1) := (others => '0');


Спасибо за разъяснения по XST. Помаленьку знакомлюсь с программой. Правда не люблю читать большие тексты на английском, но тут уж никуда не деться.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 13:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru