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

Обсуждение для гуру и не только(+)

И вообще, специфика данной темы заключается в том, что все обсуждения должны строиться только на соглашениях, принятых в документе elecard_vhdl_coding_styles_rules.doc. Я ведь не сказал, что Вы не правы впринципе. Я лишь отметил, что в контексте данного документа Ваше замечание не имеет силы до тех пор, пока не произойдут изменения в разделе Conventions. А пока, насколько Я понял, здесь под RTL понимается именно синтезируемое описание устройства на уровне регистровых передач. Следовательно, никаких языковых средств для моделирования в коде (в этом случае) быть не должно. "4.32. RTL: It is not allowed to ..." - Раз в начале стоит слово RTL, то остальная фраза относится именно к RTL !

Да уж.:)

RTL без SIM = кот в мешке.

 

!!!!Если ухватиться за: "SIM :...resources for simulation...", то я в какой-то степени прав, т.к. инициализация является частью SIM и в RTL ее не может быть теоретически, а строчка

"signal blablabla : std_logic:='0'" следуя данному подходу состоит из 2-х частей

RTL(часть используемая для синтеза) : SIM(часть используемая для симуляции) :)

 

Ну, предположим, что составление тестовых воздействий и наблюдение поведения модели устройства под влиянием этих стимулов НЕ является единственной возможностью проверки системы. Скажем, формальная верификация опирается на средства математической логики.

Такое нам не надо, т.к. в большинстве случаев testbench является продолжением проекта в плисине(который затянут OC с десятком других ФУ) и по отдельности они ничего из себя не представляют.

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


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

- (уровни абстракции описания) транзистор-вентиль-RTL-функция-поведение-система [можно и TLM приплести при желании :)]

- (форма представления проекта) BEHaviour - Structure

- (средства отладки описания) SIMulation (кстати моделировать можно на ЛЮБОМ уровне описания - от бега электронов в транзисторе до работы на системном уровне), Formal Verification, визуальный анализ кода ...

 

а на мой взгляд первый ряд тоже немного фривольно набросан - и TLM туда до кучи точно приплетать не стоит. ;)

к стати что вы имеете в виду под уровнем функции?

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


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

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

 

Jul 4 2006, 09:58

 

Conventions

 

RTL: Register Transfer Level. This document mean, that RTL is coding style which is using for synthesis purposes. This code can contain processes with sensitivity list or processes without sensitivity list with single level of ”wait until” expression. This code can be synthesizable via synthesizer.

 

BEH : Behavioral code. This document mean, that BEH is coding style which is using for functional testing purposes only. This code can contain multi level hierarchy of ”wait until” expression and use any techniques for process’s synchronization. This code may not be synthesizable via synthesizer.

 

SIM : Test benches, test code and resources for simulation and verification.

 

вы спорите об старых соглащениях. Интересно можно ли выложить новый файл в замен старого.

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


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

2 Vetal

 

1. Сигнала RdEnа - нет.

2. WrEn - зависит от начального значения адреса.

3. Из (2) необходим ЛИБО сброс ЛИБО инициализация.

 

1. странно сколько работаю с ксайлинксом и до этого с альтерой никогда не знал что сигнал Read Enable нет, что же тогда я использую ? :)

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

 

2. Опять же странно, сколько проектов я не делал, никогда не видел что бы сигнал Write Enable, который являеться сигналом разрешения записи зависел от значения адреса, хоть начального, хоть какого. Это как так ? типа вот в 0x0000 - 0x1000 я могу писать, а в 0x10001 нет ? поясните пожалуйста

 

Подитог.

Я не согласен с формулировкой:

 

Спасибо ваше мнение ясно, еще три рекомендации от гуру и есть мажоритар по 5 ти точкам :)

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


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

Такое нам не надо, т.к. в большинстве случаев testbench является продолжением проекта в плисине(который затянут OC с десятком других ФУ) и по отдельности они ничего из себя не представляют.
Может быть передумаете на счет последнего высказывания? :) (см. изображение)

 

P.S.: Изображение - отрывок статьи "Функционально-временная верификация сложных цифровых систем" с www.osp.ru. Правда ссылка на нее (http://www.osp.ru/text/302/181572) кривая какая-то. Если хотите, то могу выложить скаченный вариант.

post-562-1152296994_thumb.jpg

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


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

а на мой взгляд первый ряд тоже немного фривольно набросан - и TLM туда до кучи точно приплетать не стоит. ;)

к стати что вы имеете в виду под уровнем функции?

 

"The Design Warrior's Guide to FPGA" by Clive Maxfield :

 

Про функциональный уровень -

p. 154 - раздел Different Levels of Abstraction.

 

Maxfield под понятием "функциональный уровень" группирует функции, записанные с помощью булевских выражений, и RTL. Извините за опечатку - в иерархии функции стоят ниже RTL - ...вентиль-функция-RTL-поведение... (впринципе слово "функция" можно и выкинуть, тогда функциональный уровень Maxfield'а выродится в RTL).

 

Про TLM не воспринимайте всерьез (конец рабочего дня, чего не напишешь сгоряча). Насколько Я знаю этот термин появляется только при упоминании об уровнях абстракции SystemC (см. ту же книгу на стр. 201).

 

Интересно можно ли выложить новый файл в замен старого.

Кнопка Изменить -> кнопка удалить -> выложить новый вариант.

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


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

P.S.: Изображение - отрывок статьи "Функционально-временная верификация сложных цифровых систем" с www.osp.ru. Правда ссылка на нее (http://www.osp.ru/text/302/181572) кривая какая-то. Если хотите, то могу выложить скаченный вариант.

выложите пожалуйста - а то с кодировкой беда какая-то

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


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

выложите пожалуйста - а то с кодировкой беда какая-то

 

"Функционально-временная верификация сложных цифровых систем", Журнал "Открытые системы", #06, 2002 год

article.rar

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


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

Может быть передумаете на счет последнего высказывания? (IMG:style_emoticons/default/smile.gif) (см. изображение)

А зачем думать, совершенно справедливые данные :).

 

А теперь отойдем от абстракционизма. Строчка кода:

s2<=transport s1 after 1000 ns;

описывает работу устройства - линия задержки, которое выполняет функцию - задержка сигнала во времени. :)

Линия задержки, в системе является источником количества времени.

 

Если я не опишу данное ФУ так, и буду использовать табличное воздействие, то мне придется занести в таблицу значения этой функции. Таблица должна будет иметь >10^6 значений.

Я считаю, что адекватность моделирования никак не упадет при моем подходе, а гибкость теста, построенного таким образом, будет намного выше.

 

1. странно сколько работаю с ксайлинксом и до этого с альтерой никогда не знал что сигнал Read Enable нет, что же тогда я использую ? (IMG:style_emoticons/default/smile.gif)

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

 

M4K(серия stratix и его производные, в т.ч. cyclone).

Сигнал разрешения записи в регистр адреса. сигнал разрешения чтения, разрешает запись в выходной регистр данных их ОЗУ, который ни разу не используется.

По крайней-мере я не использую ни тот, ни другой. 1 совершенно не нужен, т.к. использование клока – 100%.

Выходной регистр никогда не ставлю, т.к. никакой пользы от него нет, только латентность дополнительная появляется.

 

Acex.

В megawizard “RAM-1 port” нету галки для сигнала RE, только для многопортовой(раздельные шина чтения и записи).

 

Надо, что бы на M4K и на Acex работало.

 

 

2. Опять же странно, сколько проектов я не делал, никогда не видел что бы сигнал Write Enable, который являеться сигналом разрешения записи зависел от значения адреса, хоть начального, хоть какого. Это как так ? типа вот в 0x0000 - 0x1000 я могу писать, а в 0x10001 нет ? поясните пожалуйста

 

0x00 - 0x2FF, вы не можете писать в 0х00, т.е. при попытке записи в эту ячейку данные не должны туда попасть.

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


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

Выходной регистр никогда не ставлю, т.к. никакой пользы от него нет, только латентность дополнительная появляется.

 

Маленкий :bb-offtopic: данной темы (чтобы не создавать)

 

Я обычно ставлю регистры на выход, потому что заметил, что дает более качественную трасировку + физическая оптимизация получается лучше.

 

Те для каких фирм(семейств) Вы считаете, что выходной тригер не обязателен???

 

Что думают окружающие?

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


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

Выходной регистр никогда не ставлю, т.к. никакой пользы от него нет, только латентность дополнительная появляется.

 

Маленкий :bb-offtopic: данной темы (чтобы не создавать)

 

Я обычно ставлю регистры на выход, потому что заметил, что дает более качественную трасировку + физическая оптимизация получается лучше.

 

Те для каких фирм(семейств) Вы считаете, что выходной тригер не обязателен???

 

Что думают окружающие?

Дело не в семействе, а в латентности. Чем больше pipe - тем сложнее обеспечить целостность данных в нем.

Надо оценивать итоговую производительность системы, т.к. зачастую схема, работающая на 120 MHz, за 1 такт будет обрабатывать данные быстрее, чем схема, работающая на частоте 140 MHz за 2 такта.

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

 

Зазляните внутрь NIOSII или NIOS - там везде используется указанный мной вариант, когда регистр только на входе.

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


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

Дело не в семействе, а в латентности. Чем больше pipe - тем сложнее обеспечить целостность данных в нем.

 

Про целостностьданных я не понял. Поясните пожалуйста.

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


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

Дело не в семействе, а в латентности. Чем больше pipe - тем сложнее обеспечить целостность данных в нем.

Надо оценивать итоговую производительность системы, т.к. зачастую схема, работающая на 120 MHz, за 1 такт будет обрабатывать данные быстрее, чем схема, работающая на частоте 140 MHz за 2 такта.

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

 

Я скорее про другое - выходы с блоков памяти также "стандартно" трассируется, как и пропушенные через регистр?

(те нет ориентации на завести выход блока памяти сначала на регистр. Я не настолько проверял тонкости структуры (конкретных) ПЛИС)

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


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

Дело не в семействе, а в латентности. Чем больше pipe - тем сложнее обеспечить целостность данных в нем.

 

Про целостностьданных я не понял. Поясните пожалуйста.

 

http://www.citforum.ru/hardware/svk/glava_5.shtml#Конфликты по данным, остановы конвейера и реализация механизма обходов

 

Я скорее про другое - выходы с блоков памяти также "стандартно" трассируется, как и пропушенные через регистр?

(те нет ориентации на завести выход блока памяти сначала на регистр. Я не настолько проверял тонкости структуры (конкретных) ПЛИС)

Нет, такого в M4K(altera) ограничения нет. И в actel apa асинхронный режим памяти нормально работает.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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