Как стать автором
Обновить

Комментарии 27

Открыл видео на весь экран, присмотрелся и на 0:52 секунде словил переполнение буфера ушел в баг мод.

/теперь хочу на новый год плюшевого мишку, верю в деда мороза, заново обучился печатать на клавиатуре, водить по столу мышку, хочу в школу, жду выхода новой сеги мега драйв/

Как вернуться обратно и стоит ли вообще это делать?
Глубина-глубина, я не твой… Отпусти меня, глубина…
Дайверы на хабре?
Да, совсем забыл про главное. Слава Гипножабе!
Зря вы на квартус наговариваете, по-моему. Вот хотя бы ресурс, где человек выкладывает самостоятельно переведенную документацию на это ПО. Слышать про него «неинтуитивен», тоже довольно странно. Я в свое время начинал работу С ПЛИС-ами тоже на квартусе, ну так вот я понял насколько в нем удобно сделана работа с симуляцией только когда перешел на Xilinx. Внезапно оказалось что чтобы создать тестбенч и подать тестовые воздействия, нужно написать отдельный модуль. В квартусе все решалось рисованием вэйвов в графическом интерфейсе мышкой… Сейчас работаю с профессиональными тулами irun и vcs… короче, мне вот наоборот кажется, что квартус создавали именно для энтузиастов и не очень опытных RTL-разработчиков
По-моему тестбенч в виде отдельного модуля это хорошо и правильно. Хотя бы потому, что любой человек может взять ваш модуль и протестировать его без квартуса.
Полностью с вами согласен, именно поэтому я и считаю, что квартус — это хороший вариант именно для вхождения в тему, для начинающих. Да и квартус, кстати, по-моему сам генерит тесбенчи по нарисованным вами вэйвам… Так что отдельный модуль где-то в проекте должен присутствовать…
Тоже не возникало проблем с Квартусом, да и с заливкой прошивки в DE1 проблем не было. Хотя конечно по сравнению с разными VS и прочим кажется сложней но это ИМХО из за не понимания с чем имеешь дело и что к чему относитcя, потом становится всё понятно.
Так я не обвиняю собственно Quartus или verilog, в конце концов, всё что тут показано, сделано с их помощью. Я хочу сказать, что вся экосистема схемотехники менее дружелюбна. И дело тут не только в специфике работы железа, например, хорошо написанная функция на С++ документирует саму себя, а когда смотришь на исходник на HDL взгляд теряется в служебных конструкциях. И я считаю, что более удобные и простые в освоении средства описания вызовут прорыв в разработке железа, в том числе, сделав её демократичнее.
По сравнению с другими CAD-ами очень может быть, но не по сравнению со скажем, MS Visual Studio. Я, конечно, привык к последней, но и с квартусом я уже два года работаю, так в нём я тропинку себе протоптал и не схожу с неё. Потому как шаг в сторону требует непонятных ритуалов. Вот вам Model Sim удобен, я к нему тоже было приноровился, а в очередной версии квартус его вынесли отдельно, и каждый чих в отладке превратился в головную боль. С тех пор отлаживаюсь через VGA (тоже плохо, проект перекомпилировать приходится). Можете с этим не соглашаться, но одна из основных посылок моей статьи, — схемотехника нуждается в более удобном инструментарии.
У меня вопрос касательно CORDIC. Сам недавно его сделал для sin&cos, но столкнулся с несколькими проблемами. Во-первых, мне пришлось считать все углы в первой четверти и потом их «вращать» на 90, 180, 270 градусов, потому что случались переполнения из-за арифметического сдвига отрицательного числа, например -1 >>> 10 = -1. Проблему можно было бы решить, уменьшив множитель cordic gain, но это был бы хак. Причем моя реализация на си и на verilog вели себя одинаково плохо. Во-вторых меня интересует погрешность в нуле для синуса, опять же из-за арифметического сдвига отрицательного числа эталонный нуль не получается, а получается "-6", в остальных точках дельта достигает так же пикового значения в 6 по модулю.
image
Как у Вас обстоят дела с подобными проблемами? ЗЫ слова 16 бит, 15 итераций на точку, конвеер
Прошу прощения что влазию в диалог, я никогда не работал с CORDIC. Хочу поинтересоваться, чем этот метод лучше использования формулы Эйлера? Я просто не вижу на первый взгляд каких-то принципиальных ограничений в реализации вычислений с комплексными числами на verilog-e. Кстати и на opencores даже есть уже готовый модуль комплексной арифметики
Метод CORDIC использует только сдвиги и сложения, без умножений.
Совершенно верно, и когда в ПЛИС-е хватает встроенных умножителей, лучше использовать их.
А ещё лучше использовать пзу, в которой будет таблица брадиса. Стабильно 1 такт и никаких вычислений. Наш спутник буран использовал такую оптимизацию. Хотя на сегодняшних мощностях может уже и не актуально.
Знакомая картина. Рекомендую посмотреть сигнал первой итерации потом второй и т.д.
А какую функцию/алгоритм Вы использовали для получения изображения, как на картинке?
Это "**" (X*Y*T), то есть, перемножаем координаты ( изменяются от -1 до 1 ), результат умножаем на номер кадра. Дробная часть даёт яркость, целая — цвет. Подробнее в спецификации ibniz
А вот к этому не присматривались? habrahabr.ru/post/133291/
144 ядра, нетактируемый (асинхронный) forth-процессор, $20.
Да, очень интересная архитектура, надо будет почитать. Хотя я пока не представляю, как можно было бы дерево комбинаторной программы разложить на такой структуре, а потом поддерживать. На двухстековой машине можно довольно изящно выполнять аппликативную программу, был у нас даже такой проект в аспирантуре. Но разнести её на распределённую сеть весьма нетривиально.
Интересный язык программирования. Интересна плис. Интересно, имеет ли ПЛИС преимущество, если использовать её в качестве видеоадаптера?
Это не язык программирования, а язык описания аппаратуры. ПЛИС без высокоскоростной DDR на периферии не имеет никаких преимуществ, если использовать её в качестве видеоадаптера.
И сможет ли такой чип обойти GPU ядра по скорости выполнения операций с плавающей точкой?
Скорее нет чем да. Нужна очень специализированная задача, чтобы ПЛИС обогнала GPU. За пределами вариаций того, что я продемонстрировал в данной статье, даже в голову ничего особенно не приходит. Разве что вы захотите чего-то странного, типа 128-битной плавучки.
Странно, что вы ссылаетесь на viznut'а и демосцену, но совсем не упомянули lft, который сделал на fpga свой процессор с шейдерными ядрами, fm-синтезатором, написал тулчейн и херачит на это всём 3d графон: www.youtube.com/watch?v=h42neZVvoMY

В остальном, добро.
Ну так ведь там совсем другой подход. У меня ведь нет процессора, всё что есть это, говоря грубо, один пиксельный шейдер на весь экран. А именно viznut, потому что он предлагает язык, спецификацию, а значит я могу взять готовую демо, сделать реализацию и сравнить с программной.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации