Современная электроника №7/2023

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 56 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА • № 7 / 2023 не содержит информации об аннота - ции заголовка . Задаём параметры генерации фай - ла битового потока , как показано на рис . 12, и кликаем по кнопке «OK». Наш проект настроен . Теперь заполним содержимое фай - ла модуля верхнего уровня нашего про - екта FPGA_modul.v каким - либо исход - ным кодом на языке Verilog HDL. Для примера в исходном коде нашего про - екта реализуем несколько контролле - ров , обслуживающих вывод данных в символьный двухстрочный жидко - кристаллический индикатор ( ЖКИ ), совместимый со стандартом HD44780. Принципиальная схема макета с под - ключением такого ЖКИ к ПЛИС пла - ты Tang Nano 9K показана на рис . 13. Помимо символьного ЖКИ ( на схеме – HG1), на рисунке показано подключе - ние к ПЛИС штатных кнопок S2, S3, светодиодов LED1–LED6 и генерато - ра синхросигнала 27 МГц платы Tang Nano 9K, а также внешние для пла - ты Tang Nano 9K узлы : преобразова - тель уровней «UART-RS-232» для обе - спечения обмена ПЛИС с внешними устройствами по интерфейсу RS-232 ( на схеме – ИМС D1, разъём X2 типа DB-9), узел генерации звуковых сигна - лов ( на схеме – транзистор VT1, зву - коизлучатель BF1 электромагнитного типа ). Также на схеме несколько выво - дов GPIO ПЛИС подтянуты к плюсу питания +3,3 В и к общему проводу с помощью внешних резисторов R1–R7 и соединены с контактами внешне - го по отношению к плате Tang Nano 9K разъёма форм - фактора интерфейса JTAG ( на схеме – разъём X1). Этот разъ - ём планируется использовать в целях отладки встроенного ПО программ - ного процессорного IP- ядра при его добавлении к проекту ПЛИС . Прочие штатные элементы платы Tang Nano 9K, в том числе штатные источники питания , на схеме условно не показа - ны . Линии GPIO ПЛИС выводов 85, 86 соединены между собой внешней короткозамкнутой перемычкой , назна - чение которой будет объяснено позд - нее . Кнопка S2 используется в проекте ПЛИС в качестве кнопки сброса . Внешний видмакета показанна рис . 14. Теперь создадим файл физической привязки линий ввода - вывода моду - ля верхнего уровня к ножкам нашей ПЛИС согласно схеме рис . 13. Снова открываем окно создания новых исход - ных файлов , показанное на рис . 6, выбрав в этом окне позицию Physical Constraints File. Аналогичным обра - зом задаём имя (FPGA_constr) и путь к этому файлу ( каталог /src нашего про - екта ), кликаем на кнопке «OK», после чего заполняем содержимое нашего файла описанием линий ввода - выво - да . На первоначальном этапе разработ - ки проекта этот файл создаётся вруч - ную . Указываем для всех цепей входов и выходов нашего проекта ПЛИС номе - ра выводов ПЛИС и прочие параметры : наличие подтяжки к плюсу питания или к общему проводу , максималь - ный ток для выходов , тип логики для входов в приведённом ниже форма - те . В каждой такой записи за словом «IO_LOC» следует имя цепи проекта ПЛИС в кавычках , а затем задаваемый для этой цепи номер ножки ПЛИС . За словом «IO_PORT» следует имя цепи проекта ПЛИС в кавычках , а затем задаваемые для этой цепи параметры ( тип логики , наличие и тип внутрен - них подтяжек , максимальный ток в мА для выхода ), например : // Вход синхросигнала, номер вывода GPIO ПЛИС - 52 IO_LOC “sys_clk” 52; IO_PORT “sys_clk” IO_ TYPE=LVCMOS33 PULL_MODE=UP; // Выход подключения светодио- да, номер вывода GPIO ПЛИС - 10 IO_LOC “led_0” 10; IO_PORT “led_0” IO_ TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8; Отдельные параметры в каждой такой записи разделяются пробелами , в конце каждой записи ставится точ - ка с запятой , строка с комментариями предваряется символами «//». После заполнения сохраняем файл кликом по иконке « дискета ». Теперь добавим в наш проект ПЛИС аппаратную систему PLL в расчёте на перспективное использование в проек - те процессорного IP- ядра . Для этого в главном меню выберем Tools > IP Core Generator. В открывшемся окне гене - ратора IP- ядер в разделе Hard Module выберем подраздел CLOCK, а в нём позицию аппаратного IP- ядра PLL – «rPLL» ( рис . 15). После клика по ней откроется окно настройки параметров PLL, которое следует заполнить , как показано на рис . 16. Входную частоту для нашей PLL задаём равной 27 МГц , поскольку мы будем тактировать PLL от нашего системного синхросигнала 27 МГц . Выходную частоту PLL зададим в два раза больше входной (54 МГц ) в расчёте на тактирование программно - го процессорного IP- ядра . После клика на кнопке «OK» нам будет предложено включить PLL в наш проект . Соглашаем - ся . После этого в нашем проекте будут Рис . 13. Принципиальная схема макета с платой Tang Nano 9K Рис . 14. Внешний вид макета с платой Tang Nano 9K

RkJQdWJsaXNoZXIy MTQ4NjUy