_Ivan_ 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Добрый день. Подскажите, пожалуйста, а в какой сапр лучше всего отлаживать блоки вычислителя с фиксированной точкой? Видел связку матлаб + моделсим точно, в исиме представление числа с фиксированной точкой не нашел. Еще видел что можно копать в сторону VHDL, но все написано на верилоге. А какие есть еще варианты? Можно конечно попробовать написать что-то свое на систем верилоге, но пока ищу готовые решения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Отлаживать так 1. Делаете модель блока вычислений любыми подходящими средствами: matlab, simulink, c++. 2. Дошлифовываете модель до состояния "bit-accurate" (оно же "bit-exact"), т.е. в конце этого этапа вы знаете, что именно это поведение (последовательность выч. операций) с точностью до бита будет реализовано в rtl. В матлаб и симулинк есть встроенные библиотеки fxp. Для с++ хорошая фиксированная точка есть в библиотеке systemc. Ее можно использовать отдельно без SC-каркаса. 3. Реализуете модель на verilog rtl. Хорошо бы сначала сделать и отладить библиотеку параметризованных блоков базовых операций с fxp. Вероятно можно найти такую готовую. 4. Отладка происходит сравнением векторов в контрольных точках модели с векторами в соотв. точках rtl-реализации при одинаковых входных воздействиях. Здесь вам потребуется любой hdl симулятор. Эту процедуру удобно автоматизировать средствами управляющих скриптов или pli. Эта методика является универсальной. Она хорошо документируется, будет работать практически при любой организационной и IT структуре, а также при минимально необходимом наборе инструментов и лицензий, переносима на любые платформы и применима для любых целевых технологий. Прекрасные варианты "скрестить осла и трепетную лань" годятся, на мой взгляд, лишь для того, чтобы вот-вот сейчас-сейчас что-то сговнякать из того, что есть под руками, или что есть возможность украсть, хотя и они имеют право на жизнь. Подскажите, пожалуйста, а в какой сапр лучше всего отлаживать блоки вычислителя с фиксированной точкой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Подскажите, пожалуйста, а в какой сапр лучше всего отлаживать блоки вычислителя с фиксированной точкой? а что именно вы собрались отлаживать ? правила арифметики с фиксированной точкой просты как 3 рубля. Следуйте им и все будет работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Подскажите, пожалуйста, а в какой сапр лучше всего отлаживать блоки вычислителя с фиксированной точкой? Видел связку матлаб + моделсим точно, в исиме представление числа с фиксированной точкой не нашел. Еще видел что можно копать в сторону VHDL, но все написано на верилоге. А какие есть еще варианты? Можно конечно попробовать написать что-то свое на систем верилоге, но пока ищу готовые решения Лучше всего нарисовать в симулинке (написать в m-скриптах) и сгенерить готовый hdl-код. Это если с нуля. А если уже готовое есть, то все зависит что/как конкретно хотите отлаживать - можно и калькулятором обойтись... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба 2. Дошлифовываете модель до состояния "bit-accurate" (оно же "bit-exact"), т.е. в конце этого этапа вы знаете, что именно это поведение (последовательность выч. операций) с точностью до бита будет реализовано в rtl. Основное искусство в арифметике с фиксированной точкой - избежать переполнений (отчего иногда изобретают режим операций с насыщением - saturation) и, в то же время, сохранить как можно больше значащих бит. Если перестараться (с нормализующими сдвигами), то можно гордо получить еденицу в максимуме, а всё остальное - нули. Арифметика с плавающей точкой неассоциативна относительно сложения и умножения. В арифметике с фиксированной точкой проблемы неассоциативности сложения не существует, но она, так же как и первая, неассоциативна относительно умножения, что порождает нехитрый набор правил, позволяющий получать бит-экзакт результаты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Поясните, пожалуйста, как то, что вы написали, соотносится с методикой разработки и отладки вычислительного блока. Основное искусство в арифметике с фиксированной точкой - избежать .. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewn 0 17 сентября, 2014 Опубликовано 17 сентября, 2014 · Жалоба Поясните, пожалуйста, как то, что вы написали, соотносится с методикой разработки и отладки вычислительного блокаА это расшифровка "дошлифовки" и "последовательности выч. операций" была. Но я не настаиваю. Beauty is in the eye of the beholder... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 18 сентября, 2014 Опубликовано 18 сентября, 2014 · Жалоба Ну да, я сделал модель в симулинке, сгенерил hdl-код, его ручками подправил в некоторых местах, добавив регистры и сигналы valid, видимо простое тестирование hdl кода после всего этого уже избыточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 19 сентября, 2014 Опубликовано 19 сентября, 2014 · Жалоба мне проще по идеальной симулинк модели (возможно с добавлением регистров) сделать RTL, его подцепить в co-simulation и сравнивая опорные точки (с учетом задержек и оверсемплинга RTL модели) сравнить корректность работы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cosworth 0 19 сентября, 2014 Опубликовано 19 сентября, 2014 · Жалоба Основное искусство в арифметике с фиксированной точкой - избежать переполнений (отчего иногда изобретают режим операций с насыщением - saturation) и, в то же время, сохранить как можно больше значащих бит. Если перестараться (с нормализующими сдвигами), то можно гордо получить еденицу в максимуме, а всё остальное - нули. Арифметика с плавающей точкой неассоциативна относительно сложения и умножения. В арифметике с фиксированной точкой проблемы неассоциативности сложения не существует, но она, так же как и первая, неассоциативна относительно умножения, что порождает нехитрый набор правил, позволяющий получать бит-экзакт результаты. Кстати вопрос актуальный. Тоже приходится отлаживать блоки с fp, и иногда хочется посмотреть значения на диаграмме. Проблема в том, что в моделсим есть -radix fpoint#n, но когда я задаю его для сигнала - вижу что-то типа 01011101.0100101. Приходится вооружаться калькулятором и переводить всю эту муть в десятичный вид. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 19 сентября, 2014 Опубликовано 19 сентября, 2014 · Жалоба Приходится вооружаться калькулятором и переводить всю эту муть в десятичный вид. fp_t popa; real pipa; assign pipa = 1.0 * popa/2**scale; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Cosworth 0 19 сентября, 2014 Опубликовано 19 сентября, 2014 · Жалоба fp_t popa; real pipa; assign pipa = 1.0 * popa/2**scale; Красиво, благодарю :rolleyes: А можно еще вопрос, Вы написали про co-simulation - это какой-то компонент в симулинке или это стандартное SV -> C socket -> Matlab? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 19 сентября, 2014 Опубликовано 19 сентября, 2014 · Жалоба А можно еще вопрос, Вы написали про co-simulation - это какой-то компонент в симулинке или это стандартное SV -> C socket -> Matlab? http://embedders.org/content/sovmestnoe-mo...asim-i-simulink Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться