реклама на сайте
подробности

 
 
6 страниц V  « < 4 5 6  
Reply to this topicStart new topic
> Любой ли синтаксически верный код VHDL будет корректно работать на реальной ПЛИС?, Общий вопрос от начинающего
Raven
сообщение Apr 13 2017, 16:18
Сообщение #76


Местный
***

Группа: Свой
Сообщений: 432
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Цитата(alexadmin @ Apr 13 2017, 18:43) *
Обожаю такие темы. Студент задавший вопрос, который и сам не понял, давно уже свалил, а мужики с 10+ опытом уже неделю рвут друг друга на лоскуты, хотя говорят об одном и том же, только разными словами.

Ну не удержался я сегодня. Звыняйтэ sm.gif

На самом деле, вопрос действительно довольно фундаментальный и интересный. Не так уж и часто тут обсуждается что-то подобное. И оно (обсуждение) может действительно оказаться полезным для новичков.

Цитата(alexadmin @ Apr 13 2017, 19:10) *
Тихо, в сторону, как говорится в пьесах: Я уж не стал добавлять "демонстрируя абсолютное непонимание основ", чтоб никого не расстроить biggrin.gif

Да чего уж там - жарьте! Раз пошла такая история. Может, и научимся чему. Ну,- основам, по крайней мере. sm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 13 2017, 20:59
Сообщение #77


Гуру
******

Группа: Свой
Сообщений: 4 081
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
А вот тут не соглашусь. Языковую конструкцию в интересующем нас случае мы вначале подсовываем синтезатору, а уже результат синтеза заставляем пробежаться в симуляторе. А сравнивать собираемся с результатом пробежки в этом же симуляторе несинтезированного RTL-описания. Кстати, еще раз сверим ходы: какой симулятор у нас в деле? Может, это он подгадил? (Бывает и такое. Даже в пределах естественной для симуляторов среды обитания - чисто поведенческих конструкций).


Стойте - стойте! Как так сначала синтезатору, а потом симулятору? Да нет конечно. Можно написать толпу не синтезируемых конструкций и прекрасно их видеть на симуляции. Вообще VHDL как способ описания схемы для литературы и симуляции - это его первичное назначение, функцию создания схемы прекрутили позже.

Если мы говорим о пост синтез симуляции, то да, сначала синтезатор, а потом симулятор, но в этом случае он уже не использует начальный RTL, он идет по нет листу, который тоже rtl, но уже переработанный в связь элементов. И тут вообще процессов то и не будет, будет список ячеек и связей, разве что в моделях ячеек.

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

про изменение и фронты - ок. принимается, правда скорее придирка. Просто для асинхронных сбросов-установок важен именно уровень а не фронт, ну не важно...
про защелкивается и обрабатывает процесс - не принимается. Процесс может быть без клока, и там ничего не щелкается, а комбинируется, то есть важен прямо таки факт обработки, а не изменение данных. Ну то есть тут мне кажется что все же терминология важна.


Для Мур, кроме блоков и мегофункций для каждого семейства есть книжечка какие конструкции хочет видеть синтезатор для того или иного поведения, в 99% случаев у альтеры и ксалинкса они совпадали, но различия все же были. Стоит на эти книжечки ориентироваться, тем более что у вас 3 семейства. Мы в таких местах делали ветвление через `ifdef ALTERA `elsif XILINX, не помню VHDL аналога, годная практика имхоsm.gif

Go to the top of the page
 
+Quote Post
Raven
сообщение Apr 14 2017, 07:20
Сообщение #78


Местный
***

Группа: Свой
Сообщений: 432
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Ich habe des alles gesagt. sm.gif
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Apr 14 2017, 09:14
Сообщение #79


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 20-07-16
Пользователь №: 92 633



Да, относительно VHDL в литературе везде написано, что список чувствительности процесса игнорируется при синтезе...

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

Код
signal a : std_logic_vector (3 downto 0) := x"0";


И очень удивился, когда узнал, что как минимум ISE 14.7 умеет выставлять эти значения.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 14 2017, 09:30
Сообщение #80


Гуру
******

Группа: Свой
Сообщений: 4 081
Регистрация: 17-02-06
Пользователь №: 14 454



Ранее не синтезируемые конструкции начинают потихоньку переходить в синтезируемые. Так что такие конфузы возможны. Описали в литре что выкидывается данная кострукция, а потом бабах и уже не выкидывается.

Не знаю с какой серии, но у ксалинкса начальное состояние тех элементов может быть как 1 так и 0, и задается в прошивке, поэтому естественно было подержать синтезируемость инициализации. Альтера вроде как имеет только одно нулевое состояние для всех элементов после старта, но тоже поддержала эту конструкцию на синтезе за счет того что ставит инверсию до и после тех элементов которые в начале должны быть 1.
Go to the top of the page
 
+Quote Post
lexx
сообщение Apr 16 2017, 03:37
Сообщение #81


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 25-06-04
Пользователь №: 186



Цитата(Golikov A. @ Apr 13 2017, 23:59) *
Мы в таких местах делали ветвление через `ifdef ALTERA `elsif XILINX, не помню VHDL аналога, годная практика имхоsm.gif

Это как надо код писать, чтобы при синтезе оно отличалось ? Приведите пример такой конструкции.

Все сходится и ни ошибки, ни warning-а при этом ?
1. LINT
2. SIM (ncsim например)
3. SYN
4. EC

Наверняка что-то находится за гранью синтезируемой области, кто-то поддержал новую фичу, кто-то нет
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 17 2017, 06:45
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 4 081
Регистрация: 17-02-06
Пользователь №: 14 454



Да возьмите и попробуйте на верилоге описать настоящую 2 портовую память для ксалинкса и альтеры, да так чтобы она еще технологическими блоками правильно заменялась и лишних регистров не натыкала?
Там еще все усугублялось тем что был спартан 6, и как следствие нет поддержки SV, а у альтеры 2 портовая штатно как раз именно на SV описывается.

И да, никто не обещал что ошибок и варнингов не будет, там как раз было много всего. В основном конечно битва за то чтобы все правильно легло в технологические блоки ПЛИС, которые у каждого свои и со своими нюансами.
Go to the top of the page
 
+Quote Post

6 страниц V  « < 4 5 6
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th April 2017 - 15:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016