Jump to content
    

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

И вообще, специфика данной темы заключается в том, что все обсуждения должны строиться только на соглашениях, принятых в документе 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 с десятком других ФУ) и по отдельности они ничего из себя не представляют.

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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.

 

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

Share this post


Link to post
Share on other sites

2 Vetal

 

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

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

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

 

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

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

 

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

 

Подитог.

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

post-562-1152296994_thumb.jpg

Share this post


Link to post
Share on other sites

а на мой взгляд первый ряд тоже немного фривольно набросан - и 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).

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

article.rar

Share this post


Link to post
Share on other sites

Может быть передумаете на счет последнего высказывания? (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, т.е. при попытке записи в эту ячейку данные не должны туда попасть.

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

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

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

Share this post


Link to post
Share on other sites

to des00:

 

Do you want to change title from "elecard vhdl coding styles rule" to Elecard VHDL Coding Guidelines. I think it is better

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...