Как изменить активность вывода на обратную через физические ограничения в Gowin EDA для платы Tang Mega 138k Pro, чтобы не менять HDL код?
Конечно! Давай разберём, как это можно сделать.
В Gowin EDA можно изменить активность вывода на обратную, используя физические ограничения, то есть через файлы Constraints. Ты можешь воспользоваться файлом с расширением .cst для этого.
Вот основные шаги:
-
Открыть проект: Перейди в твой проект в Gowin EDA, где у тебя уже настроены платы Tang Mega 138k Pro.
-
Редактировать файл Constraints: Найди и открой файл с расширением
.cst. Это файл, где ты можешь указать физические ограничения для твоего проекта. -
Добавить или изменить свойства пинов:
В этом файле можешь использовать директиву
IO_STANDARDили аналогичную, чтобы указать тип места вывода (например, LVTTL, LVCMOS и так далее). Для инверсии сигнала ты обычно используешь логические уровни в комбинации с корректным обозначением выводов. -
Пример изменения активности вывода:
Давай представим, что ты хочешь инвертировать активность вывода для определённого порта, скажем
LED_PIN. В файле.cstэто может выглядеть так:IO_LOC "LED_PIN" 10; IO_TYPE "LED_PIN" LVCMOS33;Если требуется инверсия, зачастую, это делается через изменение полярности или уровня напряжения сигнала на выводе. Возможно, ты захочешь ознакомиться с документацией именно для Tang Mega 138k Pro на предмет специфичных возможностей инверсии.
-
Сохранить изменения: После внесения изменений в файл, не забудь сохранить его.
-
Запустить компиляцию проекта: После изменений скомпилируй проект снова, чтобы применить все изменения.
Логика относительно простая, но в зависимости от настроек и возможностей твоей платформы или устройства, могут быть специфичные тонкости. Если будут вопросы или что-то непонятно, можешь заглянуть в документацию к Tang Mega 138k Pro или форумах, связанных с Gowin EDA. Удачи в работе! . Я ответил на ваш вопрос?
Слушай, я тут пытался разобраться с тем вопросом про инверсию значения пина в физических ограничениях в Gowin EDA, и, честно говоря, не особо фартило.
Сначала я зашёл в проект, открыл интерфейс и начал ковырять настройки. Искал, где можно изменить состояние пина, но всё как-то запутано. Думал, может, есть какие-то опции в разделе физических ограничений, но там больше всего про ограничения для самих пинов, а не про то, как их инвертировать.
Потом я полез в документацию, а там вообще ни слова по этой теме. Описание рутинных операций есть, а вот по специфике инверсии вообще тишина. Я даже на форумы залез, искал, что люди пишут, но все обсуждают, как правильно программировать чипы, а не как инвертировать эти значения.
Попробовал также поиграть с логическими уровнями в самом проекте, но, походу, там нужно как-то через стейты или что-то в этом духе, а у меня не получилось. Разобрался с основными моментами, а вот конкретно по инверсии как-то не сошлось.
В общем, пока что я на месте. Если знаешь, как это сделать, отпиши, а то чувствую, что сам дальше не продвину.
Слушай, я понимаю, о чём ты. С инверсией состояния пинов в Gowin EDA действительно можно запутаться, особенно если документация не даёт чётких указаний.
Для инверсии логического сигнала пина не обязательно искать отдельную настройку или параметр в разделе физических ограничений. Часто это делается на уровне описания логики в HDL-коде, то есть непосредственно при написании Ваша система. Ты можешь в коде добавить оператор NOT к сигналу, который ты хочешь инвертировать.
Если ты работаешь с Verilog, например, просто добавь побитовую инверсию для конкретного сигнала. Например:
assign inverted_signal = ~original_signal;
Аналогично, если работаешь с VHDL, используй оператор 'not':
inverted_signal <= not original_signal;
После этого в процессе синтеза и размещения эта логика будет учтена, и ты получишь нужное поведение пина. В общем, если документация и интерфейс IDE не помогают, то лучше сразу идти через код. Надеюсь, это продвинет твоё понимание! Дай знать, если что-то ещё нужно уточнить! . Я ответил на ваш вопрос?