Sefo 0 25 апреля, 2014 Опубликовано 25 апреля, 2014 · Жалоба В соседней теме (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) В чем, на ваш взгляд, заключается разница между задачей синтеза и моделирования (симуляции)? Интересно, а как бы ответели Вы?. Хочу собрать разные мнения по этим вопросам. Просьба, отвечать развернуто и аргументировано на каждый вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 25 апреля, 2014 Опубликовано 25 апреля, 2014 · Жалоба есть два вида симуляторов - cycle-accurate и timing-accurate. первые не способны корректно просимулировать синтаксически правильную конструкцию если в ней присутствуют явные указания задержек. т.е. ваш второй вопрос не корректен для однозначного ответа да/нет третий и четвертый вопросы впрочем также не корректны. наука не отвечает на вопрос "зачем" ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sefo 0 25 апреля, 2014 Опубликовано 25 апреля, 2014 · Жалоба есть два вида симуляторов - cycle-accurate и timing-accurate. Приведите, пожалуйста, примеры таких симуляторов каждого вида. Я думаю, что Вы путаете виды моделей с самими симуляторами. Есть cycle-accurate модель и timing-accurate модель чего-нибудь (например DSP-ядра). Причем, эта модель может быть написана как на языке программирования, так и на HDL-языке. Мы ограничимся вопросами симуляции и синтеза того, что написано на HDL-языке (тот факт, что воздействия для DUT могут формироваться с использованием таких языков, как С или SystemC сути не меняет). Есть модуль написанный на Verilog, SV или VHDL и его мы синтезируем и симулируем. т.е. ваш второй вопрос не корректен для однозначного ответа да/нет Мне не интересны однозначные ответы - мне интересно увидеть развернутое мнение/рассуждение. Мои вопросы о том, что на один и тот же код синтезаторы и симуляторы "смотрят" с совершенно разных точек зрения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 3 25 апреля, 2014 Опубликовано 25 апреля, 2014 · Жалоба Я думаю что ответы на ваши вопросы следует начать с рассуждений о том, кто сильнее: кит или бегемот. Порассуждав, можно перейти прочтению вот этих книг (достаточно первых трех) http://www.bsuir.by/vhdl/literature/bibilo/ Там и про проблемы кремниевой компиляции рассказано, и затронуты проблемы симуляции параллельных процессов на последовательных вычислителях. Такой вот план удовлетворения пытливого ума. Мне не интересны однозначные ответы - мне интересно увидеть развернутое мнение/рассуждение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 26 апреля, 2014 Опубликовано 26 апреля, 2014 · Жалоба В соседней теме (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) В чем, на ваш взгляд, заключается разница между задачей синтеза и моделирования (симуляции)? В чем разница написания сценария и съемки фильма? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 26 апреля, 2014 Опубликовано 26 апреля, 2014 · Жалоба не силен в построении концепций :) Но в моделсиме например при компиляции есть ключ (что-то типа -check_synthesys). Лично я всегда думал, что использование этого ключа и помогает в ответе на часть приведенных выше вопросов. При условии грамотного подключения библиотек конечно. Я не прав? P.S.: В задачи моделирование входит построение модели, близкой по своей архитектуре и поведению реально синтезируемому устройству. Близкой, но не идентичной полностью. Построение модели используется, как правило, когда в силу определенного ряда обстоятельств (экономических, физических и т.п.) нет возможности исследовать поведение реального устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
topor_topor 0 28 апреля, 2014 Опубликовано 28 апреля, 2014 · Жалоба В соседней теме (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) интерпретация языка. Синтез - замена заранее предопределённых языковых конструкций элементами схемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться