Jump to content

    
Sign in to follow this  
Aleksey_Serov

CORDIC и отрицательные числа, как правильно преобразовать

Recommended Posts

2 hours ago, des00 said:

Много в BD делается быстрее и проще чем кодом, особенно если собирать систему из готовых компонентов.

Наполовину соглашусь. Наполовину, потому что есть метод намного быстрее и "для Гита полезнее" да и редактирование потом проще, чем скроллинг по схеме.

Можно после создания BD руками, скопировать весь вывод из консоли Тикля в отдельный файл и... правильно, сделать файл генерации BD из скрипта. Плюсы очевидны - значительно меньше места + ведение ревизий, редактирование при определённой сноровке тоже в разы быстрее и прощею И самое главное - меньше проблем с обновлением IP, достаточно обновить библиотеки в проекте и перегенерить подключение/размещение. Да на выходе будет не такая красивая схема, как поправленная руками, за то на 100% правильная и понятная из кода. А при скиле можно и с нуля руками писать схемы)

Так что не совсем схемный подход, но значительно оправданней.

2 hours ago, andrew_b said:

С этим я согласен. Если рисование BD тоже называть схемным вводом, то тоже согласен. Но всё-таки IP и примитивы несколько разные сущности. Я по схемным вводом подразумевал именно "рисование" проекта из примитивов.

Тут можно вставить НО - для начинающих в целях "разобраться" почем что и как, тогда можно потыкать палкой и в схематик, не более. Потом необходимость скорости и понимание дизайнинга само выведет разработчика в блокнот и понесётся :smile:

Share this post


Link to post
Share on other sites
3 часа назад, andrew_b сказал:

Писал не раз и ещё раз повторю: изучение языка состоит из двух частей: 1) изучение самого языка, его синтаксиса и семантики и 2) изучение стандартных библиотек (если они есть). В VHDL такие библиотеки есть, и они много чего позволяют делать. Не надо изобретать велосипеды, да ещё с некруглыми колёсами.

Про схематик забудьте сразу. Только язык. Схемный ввод умер.

Так под тем, чтобы разобраться со всеми типами и подтипами языка VHDL - я и имел виду разобраться со стандартными библиотеками...

Share this post


Link to post
Share on other sites
2 часа назад, Nick_K сказал:

Плюсы очевидны - значительно меньше места + ведение ревизий, редактирование при определённой сноровке тоже в разы быстрее и прощею И самое главное - меньше проблем с обновлением IP, достаточно обновить библиотеки в проекте и перегенерить подключение/размещение.

С обновлением ядер при хранении бд в скрипте тсл как раз проблемы - вы не сможете восстановить бд из скрипта при смене версии хотя бы одного ядра - получите ошибку. Можно конечно поправить скрипт, но при смене набора параметров или пинов в новой версии ядра то же будут ошибки. Так что удовольствие сомнительное.

Share this post


Link to post
Share on other sites
8 minutes ago, fguy said:

но при смене набора параметров или пинов в новой версии ядра то же будут ошибки

Про это я согласен. Мой посыл скорее был к обновлению User IP, когда интерфейсная часть остаётся такой же. Да и впринципе если интерфейс Xilinx'овских IP не менялся, проблем сильных не должно бить. Перегенерить только IP и в бой)

Share this post


Link to post
Share on other sites
13 минут назад, Nick_K сказал:

Про это я согласен. Мой посыл скорее был к обновлению User IP, когда интерфейсная часть остаётся такой же. Да и впринципе если интерфейс Xilinx'овских IP не менялся, проблем сильных не должно бить. Перегенерить только IP и в бой)

В своих ядрах интерфейс тоже легко меняется - я ядра пишу на хлс-е, дык там даже при смене версии вивады можно огрести небольшое переименование портов со всеми вытекающими - после обновления таких ядер от портов все связи пропадают.

Share this post


Link to post
Share on other sites

Начал читать учебник по VHDL https://pandia.ru/text/78/416/49421.php, а там с самого начала начинают приводить примеры где прописаны временные задержки, я чувствую что-то не то. Как и зачем мне в проекте на ПЛИС их прописывать. В ПЛИС таймер что ли как в МК? Ну как, так? Может это для симуляции надо? Если да, то как и где симуляцию открыть? У меня ISE Webpack 12.1

Share this post


Link to post
Share on other sites
17 minutes ago, Aleksey_Serov said:

Начал читать учебник по VHDL https://pandia.ru/text/78/416/49421.php,

Какой-то сборник вредных советов, как по мне...

 

Задержки используются в симуляции. В ISE ищите в верхнем левом углу. Там где иерархия проекта. Одна из вкладок - симуляция. Точнее уже и не вспомню.

 

Edited by Strob

Share this post


Link to post
Share on other sites
6 hours ago, Nick_K said:

Можно после создания BD руками, скопировать весь вывод из консоли Тикля в отдельный файл 

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

1 hour ago, Aleksey_Serov said:

Начал читать учебник по VHDL https://pandia.ru/text/78/416/49421.php, а там с самого начала начинают приводить примеры где прописаны временные задержки, я чувствую что-то не то. Как и зачем мне в проекте на ПЛИС их прописывать. В ПЛИС таймер что ли как в МК? Ну как, так? Может это для симуляции надо? Если да, то как и где симуляцию открыть? У меня ISE Webpack 12.1

вам лучше создать отдельную, собственную тему по VHDL. Это все же форум, а не чат. Модератор.

Share this post


Link to post
Share on other sites
36 минут назад, des00 сказал:

Вот когда вы систему с нуля соберете полностью в тикле, ни разу не воспользовавшись BD

Нивапрос.

https://github.com/analogdevicesinc/hdl

Только make и tcl.

Share this post


Link to post
Share on other sites
2 hours ago, andrew_b said:

Нивапрос.

https://github.com/analogdevicesinc/hdl

Только make и tcl.

ну и вы туда же. Речь не про хранение результата, речь про процесс разработки. Выложить как результат своего труда вы можете все что угодно, но сам результат я сомневаюсь что создается текстово. Что в тикле описывается вся система, все соединения, карта адресов и т.д. без использования графического представления. А вот набросать BD(пусть даже командами tcl), все соединить  на автомате и вручную, верифицировать, отладить и только потом сохранить результат в виде готового скрипта сборки системы, почему бы и нет.

Share this post


Link to post
Share on other sites
9 часов назад, des00 сказал:

ну и вы туда же

Я вас не понимаю. По ссылке делается именно

9 часов назад, des00 сказал:

в тикле описывается вся система, все соединения, карта адресов и т.д. без использования графического представления

Это именно процесс разработки. Я делал проект на базе AD-го для Цинка, встраивал туда свои IP-ядра, написанные в этой же методологии. AD-шники написали массу тиклевых функций, которые сильно облегчают жизнь.

В результате создаётся Вивадовский проект, который можно открыть и всё в нём рассмотреть.

Share this post


Link to post
Share on other sites
2 hours ago, andrew_b said:

В результате создаётся Вивадовский проект, который можно открыть и всё в нём рассмотреть.

ну в итоге после вот этого, https://github.com/analogdevicesinc/hdl/blob/master/projects/ad9656_fmc/common/ad9656_fmc_bd.tcl

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

On 12/9/2020 at 2:15 PM, andrew_b said:

С этим я согласен. Если рисование BD тоже называть схемным вводом, то тоже согласен. Но всё-таки IP и примитивы несколько разные сущности. Я по схемным вводом подразумевал именно "рисование" проекта из примитивов.

вы сами писали об этом. по сути это схемный ввод, а не кодирование. пусть и средствами тикла

Share this post


Link to post
Share on other sites
19 hours ago, Aleksey_Serov said:

Начал читать учебник по VHDL https://pandia.ru/text/78/416/49421.php, а там с самого начала начинают приводить примеры где прописаны временные задержки

Это какие-то устаревшие практики. Сейчас есть для таких целей бэк-аннотейтед симуляция в ходе которой для нетлиста "скармливаются" ещё и реальные задержки компонентов. Полезно для тайминг анализа (как альтернатива STA).

А то что они там описывают ещё очень похоже на библиотеки. Когда для ASIC'ов характеризируют разные элементы, тогда для конкретного корнера могут представлять в Верилог/VHDL исходниках ещё и временные задержки. Хотя это никто уже не пользует и берут данные из других бибдлиотек.

Share this post


Link to post
Share on other sites

А как быть с делением? для X и Y надо деление на 2, 4 и т.д. по идее нужен арифметический сдвиг, который сохраняет знак, но с unsigned и std_logic_vector выдается ошибка, я вообще где-то прочитал что они изначально глючные, там целая история как комиссия IEEE их приняла или оставила чтобы старый код не переписывать везде, нигде примеров sla не нашел как назло (может и правда с ними что-то не то), я сделал просто - конкатенацией, например a(32)&a(32)..и так 12 раз....&a(32 downto 20), что-то мне подсказывает что это тоже не очень "стиль"

Колонку Z я модернизировал - сумматор с арифметическими операциями и с unsigned, знак нужного слагаемого определяет вычитание делать или сложение, сигналы - массивы векторов, по сравнению ст тем что было просто красота. Вобщем код теперь не на 1000 строк а менее 100, но вот уперся в деление X и Y

Edited by Aleksey_Serov

Share this post


Link to post
Share on other sites

Aleksey_Serov

я сделал просто - конкатенацией, например a(32)&a(32)..и так 12 раз....&a(32 downto 20), что-то мне подсказывает что это тоже не очень "стиль"

Это нормальный стиль, описана правильная схема - это главное, а не красота описания. Если хотите компактнее описывать, автоматизировать генерацию, пишете свою универсальную функцию размножения сигнала в своём PACKAGE, подключаете, как вы numeric_std подключаете, тогда вам будет достаточно одного оператора "&" для приклеивания вектора с размноженным битом.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this