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

 
 
 
Reply to this topicStart new topic
> Vivado 16.1 + System Generator, Ошибка моделирования схемы на блоках Floating Point
kivl
сообщение May 20 2016, 16:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



Доброго всем времени суток!

Пытаюсь создать 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 ничего полезного не обнаружено(


Go to the top of the page
 
+Quote Post
litv
сообщение May 21 2016, 07:10
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



Reset для аккумулятора с плавающей запятой - два такта.

Go to the top of the page
 
+Quote Post
kivl
сообщение May 21 2016, 10:21
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



litv, спасибо за ответ! Я ставила и два такта, и три, и больше - результат один и тот же.
Go to the top of the page
 
+Quote Post
litv
сообщение May 21 2016, 11:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



Я работаю только с фиксированной точкой (и все отлично).
Попытки работать с плавающей пока показывают многочисленные проблемы.
Вашу с resetom как то можно обойти другой схемой с регистром и сумматором.
Все равно Вас ждут многочисленные неприятности smile3046.gif , обычно просто вылетает Matlab.
Пишите в тех поддержку Xilinx. laughing.gif
Так Вы пионер и безумству храбрых как говорится ....
Go to the top of the page
 
+Quote Post
kivl
сообщение May 21 2016, 11:45
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



Да я тоже работала с фиксированной точкой, и без особых проблем.
Сейчас нужна повышенная точность. Пришлось пересесть на Sysgen и Floating-Point.
Подозреваю, что у Xilinx Floating-Point блоки еще не отработаны толком.
Написала на их форум тоже, пока все глухо.
А что за проблемы у вас были, почему MATLAB вылетал?
Go to the top of the page
 
+Quote Post
litv
сообщение May 21 2016, 13:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 6-10-04
Из: Воронеж
Пользователь №: 806



Повышенная точность возможна и без плавающей точки.
Главное знать ее размеры.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 21 2016, 13:52
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 3 923
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(litv @ May 21 2016, 14:26) *
Так Вы пионер и безумству храбрых как говорится ....

Добавлю...
А с opencores взять исходники блока с плавучкой, чтобы было понятно, что там внутри делается?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
kivl
сообщение May 21 2016, 17:01
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



iosifk, на opencores, если я правильно понимаю, можно найти VHDL-исходники
арифметических блоков с плавающей точкой. Их еще к своему проекту приспособить надо.

Мне сейчас важнее оценить возможности будущего устройства в целом - объем ресурсов,
производительность, точность вычислений. Для этого и хотелось бы воспользоваться
средствами Sysgen и Simulink. Но при этом, чтобы оценивалось все-таки работающее устройство)

Сообщение отредактировал kivl - May 21 2016, 17:04
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 21 2016, 19:11
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 3 923
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(litv @ May 21 2016, 10:10) *
Reset для аккумулятора с плавающей запятой - два такта.

На картинке внизу написано - "латентность = 1"...
А за сколько тактов срабатывают узлы на схеме? Может быть этим узлам надо больше тактов?
Вообще, если говорить глобально о бОльшей точности, то надо сказать на какой частоте приходят данные не обработку и как эта частота соотносится с системной тактовой...
Потому как если есть резерв по частоте, то можно быстренько сделать автомат для обработки арифметики в плавучке.... Либо делать арифметику по-байтно для многоразрядных данных....


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
kivl
сообщение May 22 2016, 10:52
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



Цитата
А за сколько тактов срабатывают узлы на схеме? Может быть этим узлам надо больше тактов?

Я держала длительность сброса до 35 тактов, это максимальная латентность при выбранной разрядности аккумулятора.
Результат тот же.
Самое интересное, что если убрать умножитель, аккумулятор реагирует на сигнал сброса вполне нормально.
Подставляла вместо умножителя и другие блоки, ошибка снова появлялась.

Цитата
можно быстренько сделать автомат для обработки арифметики в плавучке

Можно здесь поподробнее? Возможно, небольшой запас по частоте будет.
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 22 2016, 10:58
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 3 923
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(kivl @ May 22 2016, 13:52) *
Я держала длительность сброса до 35 тактов, это максимальная латентность при выбранной разрядности аккумулятора.
Результат тот же.
Самое интересное, что если убрать умножитель, аккумулятор реагирует на сигнал сброса вполне нормально.
Подставляла вместо умножителя и другие блоки, ошибка снова появлялась.


Можно здесь поподробнее? Возможно, небольшой запас по частоте будет.

Говоря про латентность я имел в виду не сброс, а работу умножителя и аккумулятора. Вы уверены, что они умножают и складывают за 1 такт, а не за 2 или более???


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
kivl
сообщение May 22 2016, 12:57
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 22-05-06
Из: Пенза
Пользователь №: 17 345



Тут зависит от настроек латентности. У умножителя - от 0 до 9, у аккумулятора - от 1. Максимальная латентность аккумулятора зависит от
его разрядности. Судя по результатам моделирования, работают они в соответствии с заданной латентностью.

Попробовала reset вообще убрать. Результат тот же(

Сообщение отредактировал kivl - May 22 2016, 17:56
Go to the top of the page
 
+Quote Post
goryn
сообщение Jan 11 2018, 11:58
Сообщение #13





Группа: Участник
Сообщений: 10
Регистрация: 17-09-06
Пользователь №: 20 468



Здравствуйте!
Нашли ли Вы решение проблемы с аккумулятором с плавающей точкой?
У меня весь дизайн с плавающей точкой, и в одном месте есть аккумулятор. Что бы я ни пробовал, проект из Sysgen не просчитывается и дает ошибку. Как только я сделал аккумулятор с фиксированной точкой, все стало прекрасно работать. Удалось ли кому-нибудь заставить работать аккумулятор с плавающей точкой из-под Системного генератора?
Go to the top of the page
 
+Quote Post
vetspace
сообщение Feb 15 2018, 13:24
Сообщение #14





Группа: Новичок
Сообщений: 2
Регистрация: 3-11-14
Пользователь №: 83 506



Подскажите, плиз, где можно взять (скачать) проверенную версию Vivado +System Generator, чтобы гарантированно работала эта связка. Заранее благодарен!
Go to the top of the page
 
+Quote Post
Alex77
сообщение Feb 15 2018, 14:45
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 292
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(vetspace @ Feb 15 2018, 16:24) *
Подскажите, плиз, где можно взять (скачать) проверенную версию Vivado +System Generator, чтобы гарантированно работала эта связка. Заранее благодарен!

Все версии Vivado можно "найти" на сайте Xilinx - это по поводу "где".
По теме "гарантировано" качать по очереди и проверять, начиная с крайней свежей.
Это при условии гарантировано "правильного исходного текста проекта".
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2018 - 07:25
Рейтинг@Mail.ru


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