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

Про различие можно, например в даташите на используемую микросхему почитать - распределенная память строится на LUT'ах (1 LUT - однопортовая ячейка 16х1, на двух LUT можно сделать двухпортовую ячейку 16х1 или однопортовую 32х1) блочная память - это специально выделенный блок ПЛИС различного максимального объема (в зависимости от типа ПЛИС) с конфигурируемыми портами (их 2 независимых - каждый можно использовать и на чтение и на запись). Более подробно про взаимодействие с различной памятью читайте в Libraries Guide, ключевые слова RAMB, RAM. Также полезно ознакомиться с Language Templates -> VHDL -> Synthesis Templates -> Coding Examples -> RAM.

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


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

при создании тестбенча хочу, чтобы данные , которые я задаю в паттерн визарде изменялись синхронно с Clk, а не в произвольные моменты времени, куда клацнешь мышкой....как можно так сделать?

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


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

скажите, что не совсем корректно, если при синтезе появляется предупреждение:

Warning XST 737: Found 1-Bit Latch for signal <A>

Found 1-Bit Register for signal <B>

Found 64-Bit Register for signal <C>

...

?

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


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

Не все варианты значений сигналов перечислены в конструкции if или case (процессе без тактирования). Хотя тут не так давно утверждалось, что внедрение латчей (фиктивных) может уменьшить задержки. Что-ж, проверим, хотя сомнительно.

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


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

спасибо, BSV. еще такой вопрос: в каких случаях обязательно указывать в списке чувствительности

все сигналы в процессе, а в каких необязательно?

 

 

 

у меня еще при синтезе проекта вышло переиспользование number of bonded IOBs-133%. Чем это

скорее всего может быть вызвано и какие есть пути решения проблемы?

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


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

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

Такое может означать, что Вы использовали больше контактов, чем есть в выбранной Вами микросхеме. Если проект собирается "на попробовать", то просто возьмите корпус с большим количеством контактов. Если есть реальное железо (плата), под которое все делается, то я вообще не понимаю, как такое возможно.

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


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

BSV

Возможно, возможно. Сам в своё время постанул здесь подобный вопрос :)

Синтезатор, сцуко, думает, что все сигналы ввода-вывода и есть ножки чипа непосредственно. А мы пишем просто компонент, который только встраивается в систему.

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


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

А мы пишем просто компонент, который только встраивается в систему.
Это я и имел ввиду под "на попробовать". Понятно, что внутренних сигналов может быть очень много - не в каждом корпусе есть столько.

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


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

решил разобрать для примера проект Blowfish in VHDL, но не встречался с такой организацией проекта.

в проекте есть отдельная папка common (библиотека), которую XST найти не может + остальные ошибки из-за этого. Файлы добавлял все в качестве Sources.

Что нужно , чтобы библиотека это использовалась

blowfishvhdl_2.0.rar

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


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

в проекте есть отдельная папка common (библиотека), которую XST найти не может + остальные ошибки из-за этого. Файлы добавлял все в качестве Sources.

Что нужно , чтобы библиотека это использовалась

Вам поможет справка ISE. Раздел называется "Working with VHDL Libraries".

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


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

Вот здесь лежат исходники для ГОСТ 28147-89 для режима простой замены

http://www.sendspace.com/file/haeds8

 

Извините, а можно их еще раз перевыложить - файл уже не существует.

А то захотелось со своими потугами сравнить...

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


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

раньше я записывал данные блока подстановки ключей в таблице в файле-исходнике.

сейчас хочу реализовать ее на памяти, но вот в чем вопрос.

раньше все операции по обработке блока данных вплоть до суммирования по модулю

2 в сумматоре СМ2 выполнялись в одном такте, а если использовать память, то для

текущего такта получается в работе будет участвовать выход блока подстановки для

предыдущего такта, так как использется синхронное считывание по Clk.

 

Есть ли способ не изменять прежнюю архитектуру, не увеличивать время на один период?

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


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

Использовать не блочную а распределенную память, из которой возможно асинхронное чтение. Это выход.

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


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

столкнулся с такой проблемой. помогите решить,пожалуйста.

реализовал режим гаммирования. на этапе Behavioral Simulation

все работает по тестбенчу четко. Но на этапе Post-translate

все красное. Начал каждый компонент и вложенный модуль тестить вплоть до

Post-Place and Route, в итоге, все работает вплоть до вложенного модуля простой замены

включительно на Post-Place and Route.

Когда целиком тестирую в режиме гаммирования - на работает.

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


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

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

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

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

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

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

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

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

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

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