Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Не подскажите как можно в Verilog Hdl работать с дробями или вещественными числами? Мне нужно реализовать СЛАУ методом Гаусса, только вот как я понял без этих вещей там не обойтись, или как то можно?)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба ... Мне нужно реализовать СЛАУ методом Гаусса ... Найти решение в общем виде что ли? Покорректнее вопрос пожалуйста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба ... Мне нужно реализовать СЛАУ методом Гаусса ... Найти решение в общем виде что ли? Покорректнее вопрос пожалуйста Для начало меня интересует прямой ход, над обратным я еще не думал) Как матрицу привести к ступенчатой или треугольной форме. Там же нужно работать с дробями либо с вещественными числами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Для начало меня интересует прямой ход, над обратным я еще не думал) Как матрицу привести к ступенчатой или треугольной форме. Там же нужно работать с дробями либо с вещественными числами. Вы для начала определитесь с форматом, добные числа или плав. точка. Что-то мне подсказывает, что в общем виде с дробными будет куча проблем из-за малого динамического диапазона. А вообще, лучше с самого начала, как стоит задача? Решать очень быстро уравнения, как быстро? Какая размерность уравнений? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 (изменено) · Жалоба Вы для начала определитесь с форматом, добные числа или плав. точка. Что-то мне подсказывает, что в общем виде с дробными будет куча проблем из-за малого динамического диапазона. А вообще, лучше с самого начала, как стоит задача? Решать очень быстро уравнения, как быстро? Какая размерность уравнений? Размер матрицы 10^2, решать их нужно как можно быстрей, а точнее выжать максимум, в том числе использовать конвейер=) Задача стоит в том чтобы реализовать на ПЛИС СЛАУ методом Гаусса и оценить производительность. Что касается дробных, то мне приходит на ум использование двух матриц, в одной из которых будет числитель, а в другой знаменатель. Только при таком раскладе слишком много памяти придется потратить... Так что пусть будет плавающая точка, только тут у меня вообще идей нету... Изменено 3 февраля, 2009 пользователем Kadaj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Размер матрицы 10^2, решать их нужно как можно быстрей, а точнее выжать максимум, в том числе использовать конвейер=) Задача стоит в том чтобы реализовать на ПЛИС СЛАУ методом Гаусса и оценить производительность. Что касается дробных, то мне приходит на ум использование двух матриц, в одной из которых будет числитель, а в другой знаменатель. Только при таком раскладе слишком много памяти придется потратить... Так что пусть будет плавающая точка, только тут у меня вообще идей нету... По моему правильнее определить требования, а уже потом смотреть какой метод туда подходит. Озвучте исходные данные: 1) матрица 10х10, правильно? 2) точность представления чисел? 3) требуемое время решения, какой порядок хотя-бы, 1 мкс, 1 мс, 1 сек? 4) как будет встроено в систему, или это чисто академическая задача? 5) что по требованиям к финансам для задачи, в ПЛИС дорого будет. 6) - мож ещё чего скажете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба 1) матрица 10х10, правильно? Матрица 100х100 2) точность представления чисел? Я думаю 4 знака после запятой хватит 3) требуемое время решения, какой порядок хотя-бы, 1 мкс, 1 мс, 1 сек? 1 мкс наверно) 4) как будет встроено в систему, или это чисто академическая задача? Никак не будет встрояно, академическая задача. 5) что по требованиям к финансам для задачи, в ПЛИС дорого будет. Так как ни как не будет встрояно, то бесплатно) 6) - мож ещё чего скажете. Да вроде больше нечего) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба 1) матрица 10х10, правильно? Матрица 100х100 2) точность представления чисел? Я думаю 4 знака после запятой хватит А до знака сколько? Хотя учитывая п. 4 не важно, см. п.4. 3) требуемое время решения, какой порядок хотя-бы, 1 мкс, 1 мс, 1 сек? 1 мкс наверно) 4) как будет встроено в систему, или это чисто академическая задача? Никак не будет встрояно, академическая задача. Ну, раз академическая и реально в железе делаться не будет, то берите формат стандартного float и не майтесь, задача сведётся к собственно алгоритму, а не форматам чисел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Ну, раз академическая и реально в железе делаться не будет, то берите формат стандартного float и не майтесь, задача сведётся к собственно алгоритму, а не форматам чисел. А что значит берите формат стандартного float?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба А что значит берите формат стандартного float?? В исходном поте Вы спрашивали: Не подскажите как можно в Verilog Hdl работать с дробями или вещественными числами? Вот я и говорю - берите стандартное вечественное число, float или double. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба В исходном поте Вы спрашивали: Вот я и говорю - берите стандартное вечественное число, float или double. Насколько я знаю в верилоге вещественные переменные объявляются как real x, только синтезатор квартус не поддерживает работу с таким типом... Выдает ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Насколько я знаю в верилоге вещественные переменные объявляются как real x, только синтезатор квартус не поддерживает работу с таким типом... Выдает ошибку. Вы меня не поняли, возьмите намример на http://opencores.org какой нибуть проект с плавающей точкой, выдерите из него реализацию элементарных операций и в путь.... А поводу синтеза Вы сказали что это Вам не нужно, делайте всё на модели, там в ActiveHDL или в ModelSim. Хотя в таком варианте можно и скомпилять в микруху, но кажись в лоб - не зватит ресурсов :) Вы-ж ещё по хорошему должны будете делать и оценку результата на правильность, смотреть там дискреминанты и т.п. без таких проверок результат IMHO не интересен, если только это заранее не проверено. Это кто делать будет? Может по ресурсам всё-же придумать какой векторный сопроцессор + обычный проц для управления процессом, внешний или внутренний? 1) матрица 10х10, правильно? Матрица 100х100 Кстати, а на таких размерностях Гаус применяется? Ошибки округления не сводят всё на нет? Может лучше численно как? В некоторых задачах матрицы можно разложить на матрыцы меньшей размерности - задача заметно уменьшает зазмерность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба В исходном поте Вы спрашивали: Вот я и говорю - берите стандартное вечественное число, float или double. в верилоге оно называется real если это задача студенческая - то напишите влоб стандартный алгоритм Гауса (как на С) и все если делать модель вычислителя, то real использовать нельзя, и писать надо по-другому (типа векторно) то есть сразу домножаем строку и вычитаем как векторную операцию основная проблема - не поделить на 0 и переставлять строки (по моему это уже модифицированный алгоритм Гаусса) ну и проверять, что не загнулся алгоритм (система совместна (?) уже не помню, как это называется) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kadaj 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба 2Builder Ну естественно я использую ModelSim, у меня там ошибка за ошибкой, без отладки такую вещь помоему не написать) Что касается больших размерностей то да, над этим я не подумал, может и вправду там уже не получится) 2yes Задача не совсем академическая, скорее научная, так что real не подходит, мне нужно чтобы синтезировалось с очень хорошей частотой, потом придется еще конвейер делать. А можно по подробней насчет векторов. Там же при домножении дроби получаются, как с ними быть?) Вобщем мне нужно реализовать что то типо этого Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба Вобщем мне нужно реализовать что то типо этого ну так берите за основу ту статью - по сути, векторный сопроцессор. Формат там скорее всего обычный float подразумевается (4 байта). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться