kivl 0 20 мая, 2016 Опубликовано 20 мая, 2016 · Жалоба Доброго всем времени суток! Пытаюсь создать floating-point умножитель с накоплением, пользуясь system generator'ом и набором блоков Floating Point. Схема такая: Аккумулятор сбрасывается единицей. Когда формирую единичный импульс на входе rst аккумулятора и запускаю моделирование, выдается сообщение об ошибке такого содержания: An error occurred while running the simulation and the simulation was terminated Caused by: Error in 'acctst/A' while executing C MEX S-function 'sysgen', (mdlUpdate), at time 0.0. FatalException Если убираю импульс со входа rst, сообщение об ошибке не появляется, но устройство все равно работает некорректно. Если поменять формат входов A и B с floating-point на fixed-point, схема начинает работать: Кто с такой проблемой сталкивался, поделитесь решением, пожалуйста! На форуме и в базе вопросов Xilinx ничего полезного не обнаружено( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Reset для аккумулятора с плавающей запятой - два такта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kivl 0 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба litv, спасибо за ответ! Я ставила и два такта, и три, и больше - результат один и тот же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Я работаю только с фиксированной точкой (и все отлично). Попытки работать с плавающей пока показывают многочисленные проблемы. Вашу с resetom как то можно обойти другой схемой с регистром и сумматором. Все равно Вас ждут многочисленные неприятности :smile3046: , обычно просто вылетает Matlab. Пишите в тех поддержку Xilinx. :laughing: Так Вы пионер и безумству храбрых как говорится .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kivl 0 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Да я тоже работала с фиксированной точкой, и без особых проблем. Сейчас нужна повышенная точность. Пришлось пересесть на Sysgen и Floating-Point. Подозреваю, что у Xilinx Floating-Point блоки еще не отработаны толком. Написала на их форум тоже, пока все глухо. А что за проблемы у вас были, почему MATLAB вылетал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Повышенная точность возможна и без плавающей точки. Главное знать ее размеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Так Вы пионер и безумству храбрых как говорится .... Добавлю... А с opencores взять исходники блока с плавучкой, чтобы было понятно, что там внутри делается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kivl 0 21 мая, 2016 Опубликовано 21 мая, 2016 (изменено) · Жалоба iosifk, на opencores, если я правильно понимаю, можно найти VHDL-исходники арифметических блоков с плавающей точкой. Их еще к своему проекту приспособить надо. Мне сейчас важнее оценить возможности будущего устройства в целом - объем ресурсов, производительность, точность вычислений. Для этого и хотелось бы воспользоваться средствами Sysgen и Simulink. Но при этом, чтобы оценивалось все-таки работающее устройство) Изменено 21 мая, 2016 пользователем kivl Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 21 мая, 2016 Опубликовано 21 мая, 2016 · Жалоба Reset для аккумулятора с плавающей запятой - два такта. На картинке внизу написано - "латентность = 1"... А за сколько тактов срабатывают узлы на схеме? Может быть этим узлам надо больше тактов? Вообще, если говорить глобально о бОльшей точности, то надо сказать на какой частоте приходят данные не обработку и как эта частота соотносится с системной тактовой... Потому как если есть резерв по частоте, то можно быстренько сделать автомат для обработки арифметики в плавучке.... Либо делать арифметику по-байтно для многоразрядных данных.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kivl 0 22 мая, 2016 Опубликовано 22 мая, 2016 · Жалоба А за сколько тактов срабатывают узлы на схеме? Может быть этим узлам надо больше тактов? Я держала длительность сброса до 35 тактов, это максимальная латентность при выбранной разрядности аккумулятора. Результат тот же. Самое интересное, что если убрать умножитель, аккумулятор реагирует на сигнал сброса вполне нормально. Подставляла вместо умножителя и другие блоки, ошибка снова появлялась. можно быстренько сделать автомат для обработки арифметики в плавучке Можно здесь поподробнее? Возможно, небольшой запас по частоте будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 22 мая, 2016 Опубликовано 22 мая, 2016 · Жалоба Я держала длительность сброса до 35 тактов, это максимальная латентность при выбранной разрядности аккумулятора. Результат тот же. Самое интересное, что если убрать умножитель, аккумулятор реагирует на сигнал сброса вполне нормально. Подставляла вместо умножителя и другие блоки, ошибка снова появлялась. Можно здесь поподробнее? Возможно, небольшой запас по частоте будет. Говоря про латентность я имел в виду не сброс, а работу умножителя и аккумулятора. Вы уверены, что они умножают и складывают за 1 такт, а не за 2 или более??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kivl 0 22 мая, 2016 Опубликовано 22 мая, 2016 (изменено) · Жалоба Тут зависит от настроек латентности. У умножителя - от 0 до 9, у аккумулятора - от 1. Максимальная латентность аккумулятора зависит от его разрядности. Судя по результатам моделирования, работают они в соответствии с заданной латентностью. Попробовала reset вообще убрать. Результат тот же( Изменено 22 мая, 2016 пользователем kivl Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
goryn 0 11 января, 2018 Опубликовано 11 января, 2018 · Жалоба Здравствуйте! Нашли ли Вы решение проблемы с аккумулятором с плавающей точкой? У меня весь дизайн с плавающей точкой, и в одном месте есть аккумулятор. Что бы я ни пробовал, проект из Sysgen не просчитывается и дает ошибку. Как только я сделал аккумулятор с фиксированной точкой, все стало прекрасно работать. Удалось ли кому-нибудь заставить работать аккумулятор с плавающей точкой из-под Системного генератора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetspace 0 15 февраля, 2018 Опубликовано 15 февраля, 2018 · Жалоба Подскажите, плиз, где можно взять (скачать) проверенную версию Vivado +System Generator, чтобы гарантированно работала эта связка. Заранее благодарен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex77 4 15 февраля, 2018 Опубликовано 15 февраля, 2018 · Жалоба Подскажите, плиз, где можно взять (скачать) проверенную версию Vivado +System Generator, чтобы гарантированно работала эта связка. Заранее благодарен! Все версии Vivado можно "найти" на сайте Xilinx - это по поводу "где". По теме "гарантировано" качать по очереди и проверять, начиная с крайней свежей. Это при условии гарантировано "правильного исходного текста проекта". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться