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

FAQ по языкам описания аппаратуры

Я даже больше скажу. Некоторые синтезаторы вообще меняют "1" и "0" местами в проекте, если им так удобнее. Тоесть они перелопачивают всю логику, и потом разработчик долго смотрит в логический анализатор и понять не может, отчего его сигнал в неактивном состоянии, а все работает. Это касается лишь тех случаев, когда вся логика является внутренней. Таким образом со внешними выводами синтезаторы себе такого не позволяют.

Т.е. я правильно понял, что имеет смысл флаги объявлять как BOOLEAN, а то, каким уровнем будет представлен флаг отдать на откуп синтезатору ?

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


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

Т.е. я правильно понял, что имеет смысл флаги объявлять как BOOLEAN, а то, каким уровнем будет представлен флаг отдать на откуп синтезатору ?

 

Я и не припомню, чтобы пользовался BOOLEAN где-то, кроме generate. И там я true ставил в "1" скорее для читаемости кода!

Что сделает синтезатор - мне не важно. И только когда я этот флаг вытащу в логический анализатор мне понадобится информация об уровне сигнала.

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


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

Дж. Уэйкерли Проектирование цифровых устройств в 2-х т. Постмаркет Москва 2002 г., всего 1088 стр.

Про ABEL и VHDL. djvu 12 метров

было найдено у вьетнамцев (если я ничего не перепутал) на www.vsofts.net , правда под названием Digital Design (3rd Edition) M. Morris Mano Morris M Mano, загружал модератор по нику Vodka1504, мож чего перепутал

 

http://electronix.ru/redirect.php?http://s...kerly.part1.rar

http://electronix.ru/redirect.php?http://s...kerly.part2.rar

http://electronix.ru/redirect.php?http://s...kerly.part3.rar

http://electronix.ru/redirect.php?http://s...kerly.part4.rar

Pass: www.vsofts.net

В указанном месте нет... Ни у кого не сохранилось?

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


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

Вопрос тем кто пишет на VHDL.

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

В пакете ieee.math_real.all есть такая функция - ceil

Насколько мне известно данная библиотека не является стандартной. Посему возникает вопрос, имеются ли подводные камни при использовании совместно библиотек:

    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    use ieee.math_real.all;

Изменено пользователем Flip-fl0p

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


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

Вопрос тем кто пишет на VHDL.

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

В пакете ieee.math_real.all есть такая функция - ceil

Насколько мне известно данная библиотека не является стандартной. Посему возникает вопрос, имеются ли подводные камни при использовании совместно библиотек:

    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    use ieee.math_real.all;

 

Если я не ошибаюсь, то можно отдельно только функцию "заинклудить", чтобы не беспокоиться о совместимости. И, вроде, даже есть еще более хитрый способ с вызовом функции через название пакета ieee.math_real.ceil, но это неточно.

 

use ieee.math_real.ceil;

 

 

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


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

Господа, прошу помощи с описанием двумерных массивов на VHDL.

Объявил вот такой вот массив :

type SDRAM is array (0 to 3, 0 to 3) of std_logic_vector (15 downto 0);
variable memory : SDRAM;

Хочу я записать по адресу SDRAM(0,0) что-нибудь.

Я пишу так :

memory(0, 0) := DQ;

Но столкнулся с проблемой, что меняя индексы строки т.е проводя записи в memory(0, 0) , memory(0, 1) memory(0, 2) итд. у меня данные пишутся только по адресу memory(0, 0).

Соответственно с чтением массива проблема аналогичная.

upd.

При чём если записать так:

               
for i in 0 to 3 loop
    memory(0, i) <= DQ;
end loop;

Данные пишутся во все ячейки.... Не понимаю...

Как это побороть ? И в чём моя ошибка ?

Ну и второй вопрос.

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

Массив нужен для простенькой модели SDRAM памяти

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


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

Я пишу так :

memory(0, 0) := DQ;

А может должно быть так

memory(0)(0):=DQ;

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


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

А может должно быть так

memory(0)(0):=DQ;

Так тоже не работает :crying:

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


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

type SDRAM is array (0 to 3, 0 to 3) of std_logic_vector (15 downto 0);

Это что такое?

 

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


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

Это что такое?

Двумерная матрица размерностью 4 х 4 с глубиной ячейки 16 бит.

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


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

Господа, прошу помощи с описанием двумерных массивов на VHDL.

А у Вас сколькимерный массив получается?

 

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


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

А у Вас сколькимерный массив получается?

Я его понимаю как двумерный массив. С глубиной ячейки 16 бит.

Но фактически это трехмерный массив.

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


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

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

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

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

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

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

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

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

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

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