Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: банальный вопрос
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
skilful
Всем привет! smile.gif Имеется код описания устройства с INOUT в МАХ+. Как его только промоделировать не знаю. В симуляторе не устанавливается нужное значение на выходе, а устанавливается "Х". Можно ли промоделировать его, без тестбенча, а только используя редактор в симуляторе

Код
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;

ENTITY env IS
PORT ( OE : in std_logic;
      Data_in_out : inout std_logic_vector(2 downto 0);
          Data_in : in std_logic_vector(2 downto 0);
         data_out : out std_logic_vector(2 downto 0));
END env;

ARCHITECTURE work OF env IS

SIGNAL data: std_logic_vector(2 downto 0);

BEGIN
   data_out <= data_in_out when OE = '0';

   data_in_out <= Data_in when OE = '1' else (others=>'Z');
END env;









+ еще такой вопрос. При таком коде синезируется такой вот пин???
SunnyAngel
Код правильный, схема синтезируется тоже правильная. А "Х" устанавливается из-за текста тестбенча - там двунаправленному сигналу тоже надо присваивать третье состояние.
Промоделировать его, без тестбенча, а только используя редактор в симуляторе нельзя - операторы выполняются параллельно.
sazh
Схема конечно синтезируема, но результат этого синтеза не будет соответствовать приведенному эскизу. Такое описание помимо буферов по третьему состоянию порождает триггера- защелки (лачи)
Прогоните проект на fpga и посмотрите на затраченные ресурсы.
Чтобы избавиться от лачей, достаточно.
data_out <= data_in_out when OE = '0' else (others=>'Z');
data_in_out <= Data_in when OE = '1' else (others=>'Z');
переходите на Квартус. Там есть RTL просмотрщик. Вы бы это сразу увидели.
и не используйте зарезервированные слова типа work.
В MAX+ и Квартусе встроенный симулятор. Он поддерживает только графический ввод входных воздействий для моделирования схемы.
тестбенчи это для сторонних симуляторов.
YuP
Была такая же проблема.Бился долго,пока не подсказали, что в Тест бенче двунаправленному сигналу,тоже нужно присваивать 3 состояние.
tocha
Цитата(skilful @ May 28 2007, 02:51) *
Можно ли промоделировать его, без тестбенча, а только используя редактор в симуляторе


Легко. Как выше сказали, по всей диаграмме на двунаправленный пин подать сигнал z-уровня, а поверх него в соответствующих местах, где ое в нужном положении (буфер развёрнут на вход), подавать нужное значение.
skilful
спасибо за ответы. Разобрался smile.gif
SunnyAngel
Цитата(sazh @ May 28 2007, 21:40) *
тестбенчи это для сторонних симуляторов.

В ISE Xilinx встроенный симулятор, который работает с тестбенчами и не позволяет вводить воздействия графическим способом.
Плохой тон - смешивать в одном тексте описание устройства и воздействия на него. Будет крупный проект - текст станет не читаемый.
Rendom
Цитата
В ISE Xilinx встроенный симулятор, который работает с тестбенчами и не позволяет вводить воздействия графическим способом.


Хотелось бы узнать с какой это версии ISE перестал поддерживать графический ввод входных сигналов тестбенчей???
SunnyAngel
Цитата(Rendom @ May 30 2007, 20:23) *
Хотелось бы узнать с какой это версии ISE перестал поддерживать графический ввод входных сигналов тестбенчей???


Мдаааа... Неловко как-то... Есть графический ввод... Извиняйте за маленькую дезинформацию.
Ну ничего, никогда не поздно узнать что-нибудь новое!
CodeWarrior1241
Цитата(SunnyAngel @ May 30 2007, 15:15) *
Мдаааа... Неловко как-то... Есть графический ввод... Извиняйте за маленькую дезинформацию.
Ну ничего, никогда не поздно узнать что-нибудь новое!

Про графический ввод имеется в виду testbench waveform (.tbw)?
SunnyAngel
Цитата(CodeWarrior1241 @ May 30 2007, 22:19) *
Про графический ввод имеется в виду testbench waveform (.tbw)?


да, про временные диаграммы
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.