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

Симуляция vs Синтез

В соседней теме (http://electronix.ru/forum/index.php?showtopic=120411) я задал одному из участников 5 вопросов про разницу между синтезом и симуляцией:

 

1) Всякую ли и всегда ли синтаксически правильную конструкцию синтезатор сможет воплотить физически в FPGA/ASIC?

 

2) Всякую ли и всегда ли синтаксически правильную конструкцию симулятор сможет просимулировать?

 

3) Зачем синтезатору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

 

4) Зачем симулятору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

 

5) В чем, на ваш взгляд, заключается разница между задачей синтеза и моделирования (симуляции)?

 

Интересно, а как бы ответели Вы?.

 

Хочу собрать разные мнения по этим вопросам.

 

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

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


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

есть два вида симуляторов - cycle-accurate и timing-accurate.

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

т.е. ваш второй вопрос не корректен для однозначного ответа да/нет

 

третий и четвертый вопросы впрочем также не корректны. наука не отвечает на вопрос "зачем" ;-)

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


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

есть два вида симуляторов - cycle-accurate и timing-accurate.

 

Приведите, пожалуйста, примеры таких симуляторов каждого вида.

 

Я думаю, что Вы путаете виды моделей с самими симуляторами.

 

Есть cycle-accurate модель и timing-accurate модель чего-нибудь (например DSP-ядра). Причем, эта модель может быть написана как на языке программирования, так и на HDL-языке.

 

Мы ограничимся вопросами симуляции и синтеза того, что написано на HDL-языке (тот факт, что воздействия для DUT могут формироваться с использованием таких языков, как С или SystemC сути не меняет). Есть модуль написанный на Verilog, SV или VHDL и его мы синтезируем и симулируем.

 

т.е. ваш второй вопрос не корректен для однозначного ответа да/нет

 

Мне не интересны однозначные ответы - мне интересно увидеть развернутое мнение/рассуждение.

 

Мои вопросы о том, что на один и тот же код синтезаторы и симуляторы "смотрят" с совершенно разных точек зрения.

 

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


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

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

 

Порассуждав, можно перейти прочтению вот этих книг (достаточно первых трех)

http://www.bsuir.by/vhdl/literature/bibilo/

 

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

 

Такой вот план удовлетворения пытливого ума.

 

Мне не интересны однозначные ответы - мне интересно увидеть развернутое мнение/рассуждение.

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


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

В соседней теме (http://electronix.ru/forum/index.php?showtopic=120411) я задал одному из участников 5 вопросов про разницу между синтезом и симуляцией:

 

1) Всякую ли и всегда ли синтаксически правильную конструкцию синтезатор сможет воплотить физически в FPGA/ASIC?

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

2) Всякую ли и всегда ли синтаксически правильную конструкцию симулятор сможет просимулировать?

Тоже нет. Например, timing loops.

3) Зачем синтезатору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

Потому, что это описание регистра.

4) Зачем симулятору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

Совсем не обязательно. Симулятору безразлично что это.

5) В чем, на ваш взгляд, заключается разница между задачей синтеза и моделирования (симуляции)?

В чем разница написания сценария и съемки фильма?

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


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

не силен в построении концепций :)

Но в моделсиме например при компиляции есть ключ (что-то типа -check_synthesys). Лично я всегда думал, что использование этого ключа и помогает в ответе на часть приведенных выше вопросов. При условии грамотного подключения библиотек конечно.

Я не прав?

P.S.: В задачи моделирование входит построение модели, близкой по своей архитектуре и поведению реально синтезируемому устройству. Близкой, но не идентичной полностью. Построение модели используется, как правило, когда в силу определенного ряда обстоятельств (экономических, физических и т.п.) нет возможности исследовать поведение реального устройства.

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


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

В соседней теме (http://electronix.ru/forum/index.php?showtopic=120411) я задал одному из участников 5 вопросов про разницу между синтезом и симуляцией:

 

1) Всякую ли и всегда ли синтаксически правильную конструкцию синтезатор сможет воплотить физически в FPGA/ASIC?

 

2) Всякую ли и всегда ли синтаксически правильную конструкцию симулятор сможет просимулировать?

 

3) Зачем синтезатору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

 

4) Зачем симулятору нужно "уметь" код типа always @(posedge CLK) A <= B; интерпретировать как регистр?

 

5) В чем, на ваш взгляд, заключается разница между задачей синтеза и моделирования (симуляции)?

 

Интересно, а как бы ответели Вы?.

 

Хочу собрать разные мнения по этим вопросам.

 

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

1) Нет. Только из синтезабельного подмножества. Плюс- ограничение на ресурсы (особенно если пытаться реализовать асинхронные схемы в FPGA)

2) Ну если предположить что у симулятора нет багов и он полностью поддерживает стандарт - то да.

правда опять-же, описание должно быть всётаки синхронной схемы....

Что-то типа @(posedge R or posedge S) (асинхронный RS тригер) может и не пройти синтакс чекер, хотя вроде и можно так написать...

3) Синтезатор впринципе принимает код который собственно и есть описанием схемы.

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

А почему именно эта конструкция есть тригер? А просто по смыслу.

4) Симулятору похоже пофик чёэто. Он просто интерпритирует язык описания, оно работает как тригер.

Иногда можно такое написать, что вроде и тригер, а симулится ни как тригер...и фиг потом найдёш...

5) Симуляция (именно RTL) интерпретация языка.

Синтез - замена заранее предопределённых языковых конструкций элементами схемы.

 

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


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

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

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

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

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

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

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

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

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

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