Kluwer 0 22 мая, 2019 Опубликовано 22 мая, 2019 (изменено) · Жалоба Коллеги, а никто не знает какого-нибудь кастомного препроцессора, к-рый бы переводил несинтезируемые конструкции в синтезируемые? Поясню мысль. Например, вам просто хочется сгенерировать меандр длиной N импульсов, и частотой в 5 раз меньше тактовой. Какие варианты? Первый: написать руками на 2х счётчиках - не бог весть как сложно, но, блин, сколько ж можно. Второй: использовать готовый модуль, написанный на стороне, или заложенный, например, в Квартусовские шаблоны. Свои плюсы и минусы. А третий - просто написать repeat (N) #5 a = !a; - но это не синтезируемая конструкция. Но, в обычном программинге сплошь и рядом сейчас используются пользовательские конструкции. Перед тем, как скормить код компилятору, код прогоняется через "кастомный" препроцессор, к-рый эти конструкции заменяет на понятное компилятору. В нашем случае, заменить это repeat на некий модуль - элементарно. Вот, ну наверняка же есть уже что-то (полу)готовое? Изменено 22 мая, 2019 пользователем Kluwer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба Leka делал подобное) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба 2 minutes ago, des00 said: Leka делал подобное) Спасибо, что хоть кто-то ответил :) Leka, я так понимаю, один из форумчан? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба Приветствую! 2 hours ago, Kluwer said: Коллеги, а никто не знает какого-нибудь кастомного препроцессора, к-рый бы переводил несинтезируемые конструкции в синтезируемые? ... Вот, ну наверняка же есть уже что-то (полу)готовое? IMHO тупиковый путь - не синтезируемые конструкции на то и НЕ синтезируемые что нет однозначного способа отобразить эту конструкцию в железо. Поэтому препроцессор будет всегда требовать специфичного синтаксиса/ограничений для использования этих конструкций. В чем тогда будет выгода? Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба в свое время был очень доволен verilog-mode - это плагин для emacs писанный на лиспе. имхо, функции полезнее приведенного примера. https://www.veripool.org/projects/verilog-mode/wiki/Examples можно взять любой препроцессор - тот же m4 - труЪ подход (когда-то я таким маялся, например, генерация документации, С кода (хидера) и верилога для интерфейсных регистров у IP), да и питон есть, в конце концов. для VHDL есть такая хрень в GRLIBe - там всякие xconfig и т.п. в стиле олдскульных линуксных конфигураторов но стоит ли ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба 1 hour ago, RobFPGA said: Приветствую! IMHO тупиковый путь - не синтезируемые конструкции на то и НЕ синтезируемые что нет однозначного способа отобразить эту конструкцию в железо. Поэтому препроцессор будет всегда требовать специфичного синтаксиса/ограничений для использования этих конструкций. В чем тогда будет выгода? Удачи! Rob. Коллега, я извиняюсь, но мой пост был не с целью обсудить "выгоду". Я просто написал, что существует такой способ, точка. И хотелось бы понять есть ли какие-то инструменты для реализации данного способа. Если у вас есть что на примете - буду благодарен, а обсуждать "да зачем оно нужно..." я не намерен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 мая, 2019 Опубликовано 22 мая, 2019 · Жалоба Приветствую! 35 minutes ago, Kluwer said: Коллега, я извиняюсь, но мой пост был не с целью обсудить "выгоду". Я просто написал, что существует такой способ, точка. И хотелось бы понять есть ли какие-то инструменты для реализации данного способа. Если у вас есть что на примете - буду благодарен, а обсуждать "да зачем оно нужно..." я не намерен. Да на здоровье. Я как раз вам и ответил что НЕТ инструмента для конверсии не синтезируемых стандартных конструкций языка в синтезируемые. Окромя написания собственного полноценного синтезатора со всеми вытекающими. Ну а для пре-процессинга собственных макросов можно и на `define много чего наваять. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 23 мая, 2019 Опубликовано 23 мая, 2019 · Жалоба 17 часов назад, yes сказал: да и питон есть Не препроцессор, но генератор кода: COG. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться