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

Подскажите пожалуйста, кто знает.

Надо мне описать схему на VHDL.

Имеется 3 САПРа: max+plus 2, Orcad 9.2, MultiSIM 2001.

На первом у меня компилятор ругается.(я это VHDL-описание дал челу, он на другом компиляторе все скомпилил.Как называется не понмю.)

В оркаде и MultiSIM нет возможности создавать VHDL-проекты(где выбор проекта, на VHDL-пункте серое).

Как быть?

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


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

Все зависит от того, что хочешь получить на выходе. Если тебе необходимо просто скомпилировать .vhdl (= проверка на правильность кода) и, возможно, прогнать тестовое воздействие, testbench (= проверка на функционирование схемы), то для этого лучше всего подходят такие среды как ActiveHDL и ModelSim.

Для синтеза схемы в ПЛИС не обойтись без пакетов MAX Plus, Quartus, ISE и т.д., но они, насколько видно из твоего сообщения, в данном случае не нужны.

 

P.S. В принципе MAX Plus позволит тебе нормально откомпилировать проект при условии, что ты не используешь неподдерживаемых пакетом конструкций языка (например, переменных физического типа time) - это справедливо и для остальных сред-синтезаторов. Список поддерживаемых конструкций можешь найти в справке программы.

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


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

Да, я просмто хочу промоделировать vhdl. Неподдерживаемые конструкции я вроде не использую.В нескольких форумах(адреса не помню) видел мессаги о том, что МАХ Plus с VHDL не сильно дружит.Если мерить чему о котором я упомянул выше, то МАХ+ глючит действительно.Хотелось бы для достоверности момоделировать на другом САПРе, но видимо не судьба :wacko:

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


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

У вас проект из одного или нескольких вайлов?

Если файлов несколько ,то их необходимо скомпилировать вручную с соблюдением иерархии.

 

Попробуйте с помощью препроцессора сpp, собрать все файлы в один.

 

Посмотрите на что он ругается, иногда одно и то же можно описать по разному.

 

Если ничего не помогает, используйте synplicity Synplify, для flex10k и круче, более эффективно Amplify.

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


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

Господа, человеку наверное надо лабу сделать, а вы его грузите.

 

Во-первых проверь, что у тебя нормальная лицензия на макс (с потдержкой VHDL).

 

Во-вторых сделай весь проект в одном файле.

 

В третьих в максе c vhdl должно быть все в порядке. Посмотри хелп, примеры, и сделай аккуратненько.

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


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

Господа, человеку наверное надо лабу сделать, а вы его грузите.

 

Во-первых проверь, что у тебя нормальная лицензия на макс (с потдержкой VHDL).

 

Во-вторых сделай весь проект в одном файле.

 

В третьих в максе c vhdl должно быть все в порядке. Посмотри хелп, примеры, и сделай аккуратненько.

Не лабу, а контрольную.Хотя это не важно. :)

А как праверить что она нормальная?

Пару простениких схемок на нем сдела- все работает.

Хелп там ужасный.Примеры мне особо не помогут.

Кстати, а где в сети можно набрать vhdl-файлов с различными девайсами?

мож там и мое будет. :rolleyes:

Собственно у меня МАХ+ странное выдает при компиляции.Щас дословно не првиеду, но смыслс варнингов такой, что входы и выходы(те что в vhdl-файле) никуда не подключены.Я его прям так и компилирую, предварительно обозвав его проектом.Ошибок не пишет.Ну и не моделируется - пишет теже варнинги.

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


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

Если просят надо подключить, или устранить.

pin_name<=default_value;--(out1<='0');

 

www.vhdl.org/fmf

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


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

Если просят надо подключить, или устранить.

pin_name<=default_value;--(out1<='0');

 

www.vhdl.org/fmf

Лицензия у меня поддерживает сделующее:

VHDL output

VHDL entry

ну много чего еще.Неподдерживаемого(в правом столбце нету ничего.

Вот дословно варнинги, которые мишет МАХ+

 

Primitive 'y3' is stuck at VCC

Primitive 'y2' is stuck at GND

и т.д.

Ignored unnecessary INPUT pin ss1

Ignored unnecessary INPUT pin ss0

 

Эти входы и выходы обозначены так:

entity dc_1 is

port( ss: in integer range 3 downto 0;

y: out bit_vector(3 downto 0)

);

гм....я ж говорю, хелп там некудушный :(

А я думал, что входам и выводам присвается уровень 1 или 0, пока я его не задал сам как-то автоматически(т.к. я я пока программировать ПЛИС не планирую, то можно было бы ограничиться этим в режиме моделирования).Но все равно попробую.Хотя даже чисто физически, на входы все равно что-то подается, если конечно нет физического отключения.Ну а выходы почти так же, за тем исключением, что там либо 0,1 и 3-е состояние(не путать с 'неопределено значение').

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


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

Как советовал vetal я попробовал сделать.Тогда вообще куча всяких малоинформативных сообщиенй об ошибках.В одном из них говориться, что на входы падавать значения нельзя(смысл примерно такой).

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


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

Это не ошибки, а предупреждения.

в простейшем случае соедините выход со входом, и они пропадут.

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


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

Это не ошибки, а предупреждения.

в простейшем случае соедините выход со входом, и они пропадут.

Да, но из-за этих предупреждений не идет иногда моделирование.

Вот такую простую штуку мне надо сдалть:

PACKAGE hex_pkg IS
TYPE HEX_TYPE IS ('9','A', 'B', 'C', 'D', 'E', 'F');
END hex_pkg;
use work.hex_pkg.all;
entity dc_1 is
port(    ss: in HEX_TYPE;
 y: out bit_vector(3 downto 0)
);
end dc_1;
architecture functional of dc_1 is
signal a: bit_vector(3 downto 0);
begin
p0:process(ss)
begin
CASE ss IS
WHEN '9' => a<="1001";
WHEN 'A' => a<="1010";
WHEn 'B' => a<="1011";
WHEn 'C' => a<="1100";
WHEn 'D' => a<="1101";
WHEn 'E' => a<="1110";
WHEn 'F' => a<="1111";
end case;
end process;
y<=a;
end functional;

Эти предупреждения все равно есть на y3 и ss3.

Но вот низадача, это описание компилиться, а вот моделируется криво т.е. на y всегда что-то есть и если я на ss подю несколько чисел, то на y появляется одна и та же комбинация пока я на ss подаю что-то.Т.е как я думаю, в y просто переписываетс значение какое-то мусорное (Х) значение a, а условие не выполняется.

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


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

а вот моделируется криво

Ага, и синтезируется точно также.

Дело в том, что цифровая электроника оперирует с реальными двоичными значениями/числами, а у тебя указан перечисляемый тип с элементами character.

Поэтому или приведи данные к двоичному типу (например, через константы) или перебирайся на пакет моделирования, не привязанный жестко к синтезу схем на ПЛИС (цитирую сам себя B) ):

для этого лучше всего подходят такие среды как ActiveHDL и ModelSim

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


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

Поэтому или приведи данные к двоичному типу (например, через константы) или перебирайся на пакет моделирования, не привязанный жестко к синтезу схем на ПЛИС (цитирую сам себя B) ):

для этого лучше всего подходят такие среды как ActiveHDL и ModelSim

Мне надо это сделать обязательно в МАХ+.Это контрольная, и кроме моделирования мне ниче больше не надо.

А как их перевести?

На входе(в эмуляции) у меня полюбому будут двоиные числа.А их надо представить что типа это 16-тиричные.Вообще-то физически таких чисел нету, вот и хотел сделать это типа символьных переменных.

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


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

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

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

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

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

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

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

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

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

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