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

Пересылка от переменной variable к сигналу

Взял за основу пример из книги "VHDL Эффективное использование при проектировании цифровых систем" Бибило П.Н. , где реализованы отдельные процедуры считывания и записи кодов в\с файлов.

Поскольку само чтение из файла работает исключительно с variable, то для возврата данных из функции в конце процедуры идет пересылка от переменной в вектор.

dwt_b <= dwt_v;

 

ModelSim ругается так:

Сannot drive signal 'dwt_b' of mode IN.

 

Что за хрень? Книга четко описывает процесс в последовательности подготовки кода для выдачи наружу при выходе из функции.

 

procedure readtest (----------------------------------------------------------------------------------

file in_file : TEXT;

signal dwt_b: STD_LOGIC_VECTOR (15 downto 0))

--

variable dwt_v: STD_LOGIC_VECTOR (15 downto 0); --

variable lll : line;

 

begin

if not endfile(in_file) then

readline(in_file,lll);

while lll(1) = '-' loop

readline(in_file,lll);

end loop;

 

hread(lll,dwt_v);

dwt_b <= dwt_v;

end if;

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


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

Сannot drive signal 'dwt_b' of mode IN.

Вы переведите ошибку.

 

У вас на вход будут приходить данные откуда-то там. А вы ему такую конструкцию dwt_b <= dwt_v;

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


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

Вы переведите ошибку.

 

У вас на вход будут приходить данные откуда-то там. А вы ему такую конструкцию dwt_b <= dwt_v;

 

...да не откуда-то а из hread(lll,dwt_v);

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


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

...да не откуда-то а из hread(lll,dwt_v);

По умолчанию все параметры процедур имеют тип in. Тип out надо указывать явно.

procedure readtest (
  file in_file : TEXT;
  signal dwt_b : out STD_LOGIC_VECTOR (15 downto 0)
)

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


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

хочу загладить вину и выложить удобный для тест-бенчей гибкий инструмент. Жизнь заставила!

imitator.ZIP

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


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

Классная штуука получилась.

Тут немного усовершенствовано для возможности делать интервалы. Для возможности такой работы .txt надо дописать следующим фрагментом...

 

Это удобно...

CProc.vhd

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


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

Классная штуука получилась.

Тут немного усовершенствовано для возможности делать интервалы. Для возможности такой работы .txt надо дописать следующим фрагментом...

 

Это удобно...

 

Поправить...

 

when TRD => --tau

cp_avt <= REND;

drt_b <= DAT_IO;

when REND =>

cp_avt <= NU;

-- drt_b <= DAT_IO;

 

Здесь принятые коды уйдут в файл без смещения...

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


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

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

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

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

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

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

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

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

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

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