Как установить xilinx ise на windows 10

Обновлено: 06.07.2024

Xilinx ISE - это пакет инструментов для программирования ПЛИС Xilinx на VHDL и Verilog.

Я получаю эту ошибку в своем коде о блокирующих и неблокирующих назначениях. Я изначально поставил несколько назначений блокировки при инициализации, но переместил их в раздел initial. Однако я все еще сталкиваюсь с проблемой и не знаю, что еще изменить. Любая помощь в решении этого вопроса будет.

Мне нужна помощь в программировании регистров efuse на Spartan 6 из Windows 10. У нас есть множество досок, разработанных с использованием Spartan 6. В настоящее время мы программируем их на старой машине с Windows XP, которую необходимо вывести из эксплуатации и заменить на Windows 10. Новое прог.

Я пытаюсь смоделировать генератор сигналов с широтно-импульсной модуляцией (PMW) и получаю синтаксическую ошибку в ISE. Проверил fuse.xmsgs и обнаружил, что он рядом с прилавком. Кто-нибудь может указать на синтаксическую ошибку, пожалуйста? library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.nume.

Я пытаюсь написать код в vhdl для создания мультиплексора 16: 1, используя мультиплексор 2: 1. На самом деле я подумал, что для этого нам может понадобиться 15 мультиплексоров два в один, и, соединив их вместе и используя структурную модель, я написал код ниже. Сначала я написал мультиплексор 2 к .

Я хочу написать код умножения 16 бит * 16 бит. Вот мой код: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity mul is port ( A, B: IN INTEGER RANGE -32768 TO 32767; C: OUT INTEGER RANGE -2147483648 TO +2147483647 ); end mul; architecture Behavioral of mul is begin C <= A .

У меня есть счетчик VHDL BCD, вывод которого представляет собой целое значение (цифру). Но когда я моделирую код в Xilinx ISE, он показывает форму волны кода в двоичном значении. Код работает, но вывод должен быть .

У нас есть установка, в которой два устройства Xilinx FPGA индивидуально подключены к компьютеру. Мы используем Vivado Tcl Console для программирования ПЛИС в нашей среде автоматизации. Я могу успешно программировать два устройства одно за другим. Однако я пытаюсь сократить время программирования.

Я пытаюсь реализовать контроллер с функцией, которая отправляет тот же тактовый сигнал, что и его входные часы. Но контроллер также может остановить выходной сигнал, если это необходимо. Реализую на Xilinx ISE. Моя идея такова: в начале входных часов выходной тактовый сигнал установлен на 0. Если .

Я совершенно не знаком с VHDL и хочу реализовать следующий MUX для логического импликации S0 => S1 без использования других ворот. Я хочу использовать структурный дизайн , но одна из моих основных проблем заключается в том, что я не понимаю, как правильно сопоставьте порты, чтобы я реализов.

Я работаю над проектом и не могу его понять. Я просто не понимаю, что делаю не так. Любые предложения приветствуются. Этот проект находится на VHDL, и это примерно 4-значный кодовый замок на стартовой плате Spartan 3e. Я впервые делаю проект на VHDL. И я получаю предупреждения: WARNING:Xst:2677 .

Я новичок в мире программирования VHDL, и у меня возникли проблемы с реализацией делителя частоты вместе с обнаружением краев сигнала. Код состоит из 6 кнопочных входов, каждый из которых будет работать и выводить импульс с частотой 1 кГц от 50 МГц. Проблема, над которой я экспериментирую, видна на.

Я пишу программу VHDL для MUX 4: 1, и я столкнулся с ошибкой в ​​строке, где начинается предложение процесса. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity mux_41 is Port ( inp : in STD_LOGIC_VECTOR (0 downto 3); outp : out STD_LOGIC; sel : in STD_LOGIC_VECTOR (1 d.

Я программирую coolrunner2 (xc2c64a) cpld с программным обеспечением ISE Project Navigator. На данный момент он должен действовать только как логические или ворота (вывод = O_Buzzer) между контактом с PIC32 (вход = I_PIC) и RPI CM3 (вход = I_CM). o_buzzer <= i_pic or i_cm; Проблема в том, что при по.

В настоящее время я работаю над проектом, который требует использования встроенного мягкого ядра. Я написал игру PONG, используя VHDL (ISE) и синтезировал его на FPGA, следующий шаг собирается переместить численную расчетную часть для мягкого сердечника, что означает, что мне нужно для перезарядки э.

Я хочу реализовать протокол открытого коллектора. Когда я пытаюсь установить для порта типа inout значение «Z», которое подтягивается, он просто продолжает сохранять свое предыдущее значение. Чтобы прояснить, я только что написал следующий код VHDL, который сначала установил o_sample_trig в 0, а з.

Я написал простой код счетчика в Verilog (xilix 14.2). Код в isim работает правильно, но я не могу сбросить его на spartan6. Когда я пытаюсь сделать дамп кода, на спартанском 6 горит красный свет и код не выгружается. Пожалуйста, дайте мне знать, какие изменения мне нужно внести. module clk(int_c.

Когда я пытаюсь использовать такую ​​конструкцию, мой синтез не удался. `define defLOMIC 0 //For example `define rd(LOMIC) `def``LOMIC Поздно: wire lod = `rd(LOMIC); Ошибка: E CS231 Unknown macro def VDF_TOP.v (368) syntax.log (13) 09:14:32 Thu Dec 06 Synthesis Check E CS234 expecting id.

Мы разрабатываем систему со специальным процессором, Microblaze и некоторыми периферийными устройствами на VC709 FPGA с использованием Xilinx Vivado. Мы используем два «PCIe: BAR» в «Мосте AXI для PCI Express Gen 3». Изменения, которые мы вносим в конфигурацию блока PCI Express, не отражаются на ст.

Мы разрабатываем систему со специальным процессором, Microblaze и некоторыми периферийными устройствами на VC709 FPGA с использованием Xilinx Vivado. Мы используем два «PCIe: BAR» в «AXI Bridge for PCI Express». Первоначально команда lspci -vv использовалась для отображения областей памяти в темина.

В настоящее время я делаю проект, связанный с протоколом обмена данными между двумя ПЛИС. Когда я читаю информацию о TCP / IP Ethernet, в окне появляется информация о количестве данных, которые компьютер может принять. И есть взаимосвязь между скоростью приема и передачи данных Window. Но в своем пр.

Сейчас я делаю проект, связанный с MGT (Multi-Gigabit Transceiver) GTP. Поскольку я новичок в языке программирования Verilog, у меня есть один вопрос по MGT GTP. В документе Xilinx ( приемопередатчик Virtex-5 FPGA ROCKETIO GTP ) стороны TX (рисунок) имеют один буфер FIFO-TX (регулировка фазы FiFo .

Приветствую тех, кто хочет освоить ПЛИС!
Сегодня я расскажу про установку и использование основной программной оболочки фирмы Xilinx – ISE Studio.
Для начала, ее нужно скачать.
Бесплатная версия называется WebPack ISE и качается отсюда
Я использую версию 12.1, но не думаю, что в последующих версиях что то сильно изменится.
Ставим.

Внимание! ISE не переносит в путях файлов пробелов и символов, отличных от латиницы! Поэтому в Program Files ее не ставить!

Но вот, установочные перипетии позади. Можно расслабится и посмотреть, что же оно поставило.
ISE Design Tools\Project Navigator – основная оболочка, именно здесь мы будем работать
ISE Design Tools\Tools – вспомогательные утилиты (обычно запускаются прямо из Project Navigator)
ChipScope Pro\ — здесь расположены утилиты для работы со встраиваемым логическим анализатором
EDK\ — набор разработчика для программирования встраиваемого микропроцессорного ядра
PlanAhead\ — настройка ограничений синтезатора и прочее низкоуровневое копание
System Generator\ — позволяет интегрироваться с матлабом и генерировать проект по мат модели


Теперь попробуем создать проект. Для этого запустим Project Navigator и получим такое окно:


Нажмем File – New Project

Собственно, назначение всех полей понятно из описаний. Единственный интерес представляет поле выбора типа исходника – в нем указывается тип, который будет иметь исходник, непосредственно представляющий устройство, вшитое в ПЛИС.

Внимание! Пути до файлов должны содержать только латиницу и не содержать пробелов!


Жмем Next


Синтезатор – это фактически компилятор с высокоуровнего языка на низкоуровневый, в поставку ISE он уже входит, но при желании можно прикрутить и сторонний.
Тоже самое и симулятором – по дефолту есть Isim, простой, но зачастую достаточный симулятор.
Стандарт VHDL – у данного языка есть 2 основных стандарта, и здесь можно указать – по какому из них мы хотим работать.
Жмем Next.


И Finish.


Так выглядит совершенно пустой проект. Создадим файл с исходниками.
ПКМ на файлах проекта – New Source


Здесь выбираем тип файла, задаем имя и путь до него.
Особый интерес представляют тип IP(Core generator), позволяющий добавить уже готовый блок логики, и тип Embedded Processor, позволяющий добавить процессорное ядро(вот для программирования этого ядра и нужен EDK).
Выберем VHDL Module и нажмем Next.


Этот мастер позволяет сразу задать входы и выходы нашего модуля, но их можно будет и потом в исходнике набрать, поэтому пропускаем и жмем Next и Finish.


Так выглядит проект в режиме компиляции. Обратите внимание на кнопку с зеленым треугольником – она запускает процесс компиляции головного файла проекта. Сразу под ней находится кнопка ручного запуска нужной стадии – она пригодится для запуска процесса прошивки.
Перейдем в режим симуляции:

Как видите, список этапов изменился – теперь доступен запуск файла на симуляторе.

Набор инструментария ISE Design Tools для проектирования CPLD/FPGA от Xilinx позволяет установить и использовать некоторые функции и возможности бесплатно. Этот режим установки пакета ISE Design Tools называется ISE WebPack.

Xilinx ISE это интегрированная среда разработки (ISE расшифровывается как Integrated Synthesis Environment), набор программных инструментов от компании Xilinx, предназначенный для синтеза и анализа разработок на языке описания логических схем HDL. Этот набор инструментов позволяет разработчику синтезировать ("компилировать") свои разработки, выполнять анализ их работы по интервалам времени, проверять диаграммы RTL (register-transfer level), симулировать реакцию разрабатываемой логики на разные воздействия, и конфигурировать целевое программируемое устройство (CPLD, FPGA) с помощью программатора (адаптера JTAG, так называемого "кабеля Xilinx").

Система разработки Xilinx ISE жестко привязана к архитектуре чипов программируемой логики компании Xilinx, и она не может использоваться для чипов логики других производителей. Xilinx ISE главным образом используется для синтеза и разработки схем, в то время как ISIM или ModelSim logic simulator используется для тестирования на уровне системы. Другие программные компоненты, поставляемые с Xilinx ISE, включают Embedded Development Kit (EDK), a Software Development Kit (SDK) и ChipScope Pro.

С 2012 года Xilinx ISE больше не поддерживается, так как усилия специалистов Xilinx были перемещены на разработку продукта разработки Vivado Design Suite, который выполняет те же самые функции, что и ISE, с некоторыми дополнительными возможностями для разработки систем и чипов. Xilinx выпустила последнюю версию ISE в октябре 2013 (версия 14.7).

[Интерфейс пользователя]

Основной интерфейс пользователя в ISE представляет Project Navigator, который включает отображение иерархии разработки (Sources), редактор исходного кода (Workplace), выходную консоль (Transcript) и дерево процессов (Processes).

Иерархия дизайна состоит из файлов дизайна или модулей, зависимости которых друг от друга в ISE отображаются структурой дерева. Для разработок в одном чипе может быть один главный модуль, и все другие модули подключаются к нему, что похоже на функцию main() в программах C/C++. Привязка логики к выводам чипа и ограничения по времени называется "ограничениями дизайна" (Design Constraints), что указывается в модулях.

Иерархия процессов описывает операции, которые ISE выполняет для текущего активного модуля. Иерархия включает функции компиляции, их функции зависимости (dependency functions) и другие утилиты. Это окно также обозначает проблемы или ошибки, которые возникают с каждой функцией.

Окно консоли (Transcript) предоставляет информацию о состоянии текущих выполняющихся операций, и информируют инженеров о проблемах дизайна. Отображение проблем может быть отфильтровано для того, чтобы показывать только предупреждения (Warnings) или только ошибки (Errors), или показывать все вместе.

[Симуляция]

Тестирование на уровне системы может выполняться с помощью утилиты ISIM или ModelSim logic simulator, и такие тест-программы могут также быть написаны на языках HDL. Программы тестирования могут включать симулированные входные сигналы определенной формы, или точки мониторинга, в которых можно наблюдать или проверять выходные сигналы устройства, проходящего тест.

ModelSim или ISIM могу использоваться для выполнения следующих типов симуляций:

• Проверка работы логики, чтобы гарантировать получения от модуля ожидаемых результатов.
• Проверка поведения схемы, чтобы убедиться в отсутствии ошибок логики и проблем с интервалами времени.
• Симуляция размещения и маршрутизации логики на кристалле (Post-place & route simulation), чтобы проверить поведение системы после размещения логики в ресурсах кристалла перепрограммируемой логики CPLD или FPGA.

[Синтез]

Патентованные алгоритмы Xilinx для синтеза логики позволяют реализовывать дизайн на 30% быстрее аналогичных конкурирующих программ. Высокая плотность упаковки логики на кристалле уменьшают время разработки и стоимость готовых изделий. Также из-за усложнения фабрики FPGA, включая блоки памяти и блоки I/O, были разработаны более сложные алгоритмы синтеза, которые разделяют не связанные модули на части, уменьшая тем самым ошибки конечного размещения (post-placement).

Ядра интегрированных процессоров (IP Cores) предоставляются компанией Xilinx и другими сторонними производителями, чтобы можно было реализовать на системном уровне такие функции, как цифровая обработка сигналов (digital signal processing, DSP), интерфейсы различных стандартных шин, сетевые протоколы, обработку изображений, встраиваемые процессоры и периферийные устройства. У компании Xilinx есть инструментальные средства для перемещения ASIC-реализаций на аппаратные средства FPGA.

[Редакции Xilinx ISE]

Для загрузки доступны версии Subscription Edition, которая является лицензированной версией Xilinx ISE, также бесплатные trial-версии с ограниченным временем использования и версии с ограничениями функционала без ограничения срока действия.

Web Edition (ISE WebPack) является бесплатной версией Xilinx ISE, которую можно загрузить и использовать (для этого требуется регистрация на сайте Xilinx). Она дает возможность синтеза и программирования ограниченного количества устройств Xilinx. В частности, нельзя работать с устройствами, имеющими большое количество выводов I/O и большими матрицами элементов. Этой редакцией полностью поддерживаются недорогие семейства Spartan FPGA, а также семейство CPLD, таким образом небольшие компании и учебные организации могут использовать инструментарий разработки без дополнительных затрат.

Ниже в таблице приведена информация по поддержке микросхем Xilinx основными редакциями Xilinx ISE.

Virtex-5
LX: XC5VLX30, XC5VLX50
LXT: XC5VLX20T - XC5VLX50T
FXT: XC5VFX30T

Virtex-5
LX: All
LXT: All
SXT: All
FXT: All

Spartan-3A
все
Spartan-3AN
все
Spartan-3A DSP
XC3SD1800A
Spartan-3E
все
Spartan-6
XC6SLX4 - XC6SLX75T
XA (Xilinx Automotive) Spartan-6
все

Spartan-3A
все
Spartan-3AN
все
Spartan-3 DSP
все
Spartan-3E
все
Spartan-6
все
XA (Xilinx Automotive)

[Поддержка операционных систем]

Xilinx официально поддерживает Microsoft Windows, рабочие станции Red Hat Enterprise 4, 5 и 6 (32 и 64 бита) и SUSE Linux Enterprise 11 (32 и 64 бита). Некоторые другие дистрибутивы GNU/Linux могут запускать Xilinx ISE WebPack с некоторыми модификациями или дополнительным конфигурированием, включая Gentoo Linux, Arch Linux, FreeBSD и Fedora.

Далее рассмотрен процесс установки ISE WebPack и получение для него бесплатной лицензии по шагам.

2. Скачайте дистрибутив ISE Design Tools. Ссылки на закачку можно найти на странице Xilinx - All Programmable -> Developer Zone -> ISE Design Suite -> %20Developer%20Zone%20->%20ISE%20Design%20Suite%20->%20ISE%20WebPACK%20Design%20Software">ISE WebPACK Design Software. Дистрибутив поставляется в виде разделенного на части TAR/GZIP-архива, и занимает около 8 гигабайт. Этот дистрибутив подходит для установки как на Linux, так и на Windows 32 и 64 бита (я пробовал устанавливать на Windows XP 32 бита и на Windows 7 64 бита).

Примечание: после того, как Вы кликните по ссылке, введете логин и пароль, запустится Xilinx download manager, написанный на Java. Он работает довольно хорошо, и позволяет быстро закачать 4 части TAR-архива. Однако закачку этих частей придется запускать по отдельности, кликая по ссылкам All Platforms - Split Installer Base Image - File 1/4, Install Data A - File 2/4, Install Data B - File 3/4, Install Data C - File 4/4. Рекомендую обратить внимание на ссылку немного ниже, в разделе "Having trouble downloading?". Она позволяет сразу загрузить весь TAR-архив целиком, не разделенный на части (Full DVD Single File Download Image). После закачки архива не будет лишним проверить его целостность по контрольной сумме MD5. Можете также скачать архив Xilinx ISE 14.7 целиком по ссылке [1]. Обращаю Ваше внимание, что архив размером порядка 8 гигабайт всегда нужно сохранять на диск с файловой системой NTFS.

3. Распакуйте архив в любую временную папку. Запустите cmd с правами системного администратора, и запустите в нем установщик xsetup.exe.

4. Когда установщик запросит вариант установки, выберите ISE WebPack. Этот вариант предусматривает получение бесплатной постоянной лицензии от Xilinx на большинство инструментов проектирования Xilinx. В процессе установки на все вопросы мастера отвечайте по умолчанию, пока не дойдет очередь до получения лицензии.

Примечание: во время установки будут установлены драйвера для USB-адаптеров программирования Xilinx, поэтому перед установкой убедитесь, что все адаптеры отключены от компьютера.

5. Когда установка завершится, запустится Xilinx License Configuration Manager. На первой закладке Acquire a License выберите вариант Get Free Vivado/ISE WebPack License и кликните Next. Запустится браузер, который (после ввода логина и пароля учетной записи Xilinx) откроет страничку Product Licensing. На первой закладке Create New Licenses, в разделе Certificate Based Licenses поставьте галочку на ISE WebPACK License, и нажмите на кнопку Generate Node-Locked License. Сгенерируется файл лицензии, и лицензию можно будет просмотреть на закладке Manage Licenses (в списке будет лицензия ISE WebPACK License).

6. Файл лицензии Xilinx.lic автоматически будет выслан Вам на указанный при регистрации e-mail. Если это почему-то не произошло, то можно в любой момент запросить повторную высылку файла лицензии, если нажать на кнопку E-mail на страничке Product Licensing -> Manage Licenses (кнопка с красным конвертиком в нижней части экрана, ниже списка лицензий). Сохраните этот файл в любое удобное место на диске, например в папку инсталляции (обычно это папка наподобие C:\Xilinx\14.7\ISE_DS\).

7. Перейдите в окно Xilinx License Configuration Manager, откройте закладку Manage Licenses. Нажмите на кнопку Load License. и выберите присланный Вам файл лицензии Xilinx.lic. После этого список установленных лицензий обновится, и Вы сможете бесплатно пользоваться большинством возможностей Xilinx ISE WebPack.

Примечание: для пользователей WebPACK всегда активируется функция WebTalk. WebTalk игнорирует настройки пользователя и процедуры установки, когда генерируются конфигурационные данные программируемых схем логики (bitstream) под управлением лицензии WebPACK. Если Ваша разработка основана на устройстве, включенном в WebPACK, и доступна лицензия WebPACK, то всегда будет использоваться лицензия WebPACK. Чтобы изменить это, пожалуйста просмотрите Answer Record 34746.

ISE WebPack147 tar 7zip unpack1

Закачанный файл это tar-архив, который в среде Windows можно распаковать с помощью Total Commander или архиватора 7Zip. Распакуйте содержимое архива в любую временную папку на диске.

ISE WebPack147 tar 7zip unpack2

ISE WebPack147 tar 7zip unpack3

2. В папке, которая распакована из архива, находится исполняемый файл xsetup.exe, запустите его.

ISE WebPack147 xsetup01

Откроется мастер, который будет вести Вас по процессу установки. Ничего сложного, просто устанавливайте галочки, подтверждающие согласие с условиями лицензии, и кликайте на кнопку Next.

ISE WebPack147 install03

ISE WebPack147 install04

3. На следующем окне выберите для установки вариант ISE WebPack и кликните на кнопку Next.

ISE WebPack147 install05

4. Следующее окно предложит выбрать вариант установки лицензии и установку драйверов WinPCap и драйверов кабеля (это адаптер программирования микросхем Xilinx). Оставьте все галочки установленными по умолчанию и кликните Next.

ISE WebPack147 install06

5. Следующее окно предлагает выбрать каталог на диске, куда будет установлена система ISE WebPack, и выбор места для размещения ярлыков запуска.

ISE WebPack147 install07

Все предварительные установки выбраны, нажатие кнопки Install начнет установку:

ISE WebPack147 install08

Процесс установки долгий, может идти почти полчаса.

ISE WebPack147 install09

ISE WebPack147 WinPcap10

Я выбрал "Запуск программы без получения справки", и успешно прошел все шаги установки драйвера WinPCap.

ISE WebPack147 WinPcap11

ISE WebPack147 WinPcap12

ISE WebPack147 WinPcap13

ISE WebPack147 WinPcap14

7. После установки драйвера WinPCap будет устанавливаться драйвер для JTAG-адаптеров программирования устройств Xilinx. Убедитесь, что на этом шаге у Вас отключены от компьютера адаптеры такого рода.

ISE WebPack147 Xilinx cable driver15

В установке драйвера нет никаких особенностей, следует выбрать "Всегда доверять . ", "Установить".

ISE WebPack147 Xilinx cable driver16

ISE WebPack147 install17

8. После установки "драйвера кабеля" начинается завершающий шаг - установка бесплатной лицензии ISE WebPack. Для этого должно быть подключение к Интернету. Сначала откроется окно диалога менеджера конфигурации лицензии Xilinx, где Вам предложат выбрать вариант устанавливаемой лицензии. Для бесплатной лицензии выберите "Get Free Vivado/ISE WebPack License", и кликните на кнопку Next.

ISE WebPack147 install free licence18

В этом окне кликните "Connect Now" (должно быть доступно подключение к Интернет), произойдет запуск браузера со страничкой диалога создания нового файла лицензии.

ISE WebPack147 install free licence19

Выберите нужный вариант лицензии. Для бесплатной лицензии без ограничения срока действия нужно выбрать "ISE WebPack License", и кликнуть на кнопке "Generate Node-Locked Licence" (лицензия, действие которой привязано к рабочей станции).

ISE WebPack147 install free licence20

На следующих двух окнах диалога (стадии просмотра лицензии 1, 2, 3, 4) просто кликните Next.

ISE WebPack147 install free licence21

ISE WebPack147 install free licence22

Сгенерируется файл лицензии Xilinx.lic.

ISE WebPack147 install free licence23

Загрузите файл лицензии Xilinx.lic. Он будет доступен в папке "Загрузки".

ISE WebPack147 install free licence24

Перейдите обратно в окно Xilinx License Configuration Manager. В этом окне нужно будет загрузить полученный файл лицензии.

ISE WebPack147 install free licence25

Кликните на кнопку "Load License. " и выберите загруженный файл Xilinx.lic.

ISE WebPack147 install free licence26

Менеджер подтвердит, что лицензия была успешно установлена:

ISE WebPack147 install free licence27

ISE WebPack147 install free licence28

9. После установки лицензии установка пакета ISE WebPack завершена.

Используйте генератор системы Xilinx для реализации простой DDS

В этой статье мы обсудим внедрение простого прямого цифрового синтезатора (DDS) с использованием генератора системы Xilinx.

System Generator - это мощный инструмент, который интегрирует процесс проектирования FPGA Xilinx с Simulink MATLAB, который использует описание высокого уровня, чтобы легко реализовать сложную систему. Сначала мы проектируем систему и проверяем ее функциональность в среде Simulink. Графическое высокоуровневое описание Simulink значительно облегчает моделирование, моделирование и анализ дизайна. Затем мы можем сгенерировать описание проекта VHDL и добавить его в наш проект в программном обеспечении Xilinx ISE.

В этой статье мы обсудим внедрение простого прямого цифрового синтезатора (DDS) с использованием генератора системы Xilinx.

Запуск системного генератора

Перед запуском системного генератора вы должны отметить два момента:

  1. Убедитесь, что версия вашего системного генератора совместима с версией MATLAB, которую вы собираетесь использовать.
  2. Свяжите программное обеспечение MATLAB с вашим системным генератором.

В этой статье я буду использовать ISE 14.7 с MATLAB 2013. Рекомендуемым способом запуска генератора системы является выбор «Xilinx Design Tools \ ISE Design Suite 14.7 \ System Generator \ Sysgen Generator» из меню «Все программы» Windows. Это откроет «Simulink Library Browser», который показан на рисунке 1.

Image

Рисунок 1

Как показано на рисунке, в список библиотек добавляются следующие три категории Xilinx:

  1. Xilinx Blockset
  2. Xilinx Reference Blockset
  3. Комплект Xilinx XtremeDSP

В этой статье мы будем использовать блоки, предусмотренные в «Xilinx Blockset», чтобы реализовать простой DDS, как показано на рисунке 2.

Image

фигура 2

Создание модели генератора системы для DDS

Чтобы создать новую модель Simulink, выберите «Файл \ Новый \ Модель». Это откроет следующее пустое окно, которое позволит нам описать блок-схему на рисунке 2.

Image

Рисунок 3

В остальной части статьи мы добавим необходимые строительные блоки и рассмотрим важные параметры в диалоговом окне каждого блока. Для получения дополнительной информации о настраиваемых параметрах различных блоков см. Этот документ Xilinx.

Блок AddSub

Первый блок, который нам нужен, является сумматором. Мы можем использовать блок «AddSub», который можно найти в категории «Xilinx Blockset \ math». На рисунке 4 ниже показан символ и вкладка «Основные» настраиваемых параметров для этого блока.

Image

Рисунок 4

Блок имеет два входа (a и b) и один выход, который дает + b. Мы оставим параметры вкладки «Основные», как есть. Настройки вкладки «Выход» показаны на рисунке 5. Эта вкладка устанавливает параметры вывода. Чтобы иметь 16-разрядный аккумулятор, мы выбираем опцию «User Defined», которая позволяет нам установить «Число бит» равным 16, а «Двоичная точка» - нулю. Это означает, что выход представляет собой 16-разрядное целое число. Для DDS на рисунке 2 нам не нужно определять дробный вывод, но если мы установили «Число бит» равным 16, а «Двоичная точка» - 14, 14 бит из всех 16 бит выход будет рассматриваться справа от двоичной точки. Чтобы узнать больше о представлении с фиксированной точкой в ​​целом, обратитесь к этой статье.

Image

Рисунок 5

«Арифметический тип» и «Переполнение» - еще два важных для нас параметра. «Арифметический тип» должен быть неподписанным, поскольку вывод аккумулятора интерпретируется как беззнаковое число. «Overflow» должен быть установлен на «Wrap», потому что накопитель должен опрокинуться при достижении максимума.

На рисунке 6 показана вкладка «Реализация» блока. На этой странице вы можете реализовать реализацию сумматора, используя фрагменты Fabric или DSP48. Для обсуждения различий между двумя вариантами см. Упомянутую статью. Мы оставим его по умолчанию, т. Е. Реализуем с использованием Fabric.

Image

Рисунок 6

Регистры

Затем добавим набор регистров на выходе сумматора. Регистры могут быть реализованы с использованием блока «Задержка», найденного в категории «Xilinx Blockset \ Basic Elements». Мы сохраним все настройки этого блока, как есть.

Подключив блок «AddSub» к блоку «Задержка», мы получим схему, показанную на рисунке 7.

Image

Рисунок 7

квантователь

Теперь нам нужно добавить «Quantizer» на рисунке 2, который передает p наиболее значимых бит (MSB) аккумулятора в таблицу поиска (LUT) и отбрасывает другие биты. Эта функциональность может быть достигнута с помощью блока «Slice», который находится в категории «Xilinx Blockset \ Basic Elements». Диалоговое окно «Конфигурируемые параметры» для «Slice» показано на рисунке 8.

Image

Рисунок 8

Параметр «Ширина среза (количество бит)» указывает количество битов, извлекаемых из ввода. Предполагая, что восемь MSB выходного сигнала аккумулятора должны быть переданы в LUT, мы знаем, что ширина выхода равна восьми, поэтому мы устанавливаем «Ширина среза» на восемь, как показано на рисунке.

Мы добавим «ПЗУ» из категории «Xilinx Blockset \ memory». Диалоговое окно с символом и настраиваемыми параметрами для «ПЗУ» показано на рисунке 9. Поскольку адресный адрес ПЗУ равен p = 8 бит, мы должны установить «Глубина» ПЗУ равным $$ 2 ^ 8 = 256 $$. Как показано на рисунке, мы можем легко написать математическое выражение для указания содержимого ПЗУ. Математическое выражение на рисунке 9 генерирует 256 выборок из одного периода синусоиды. Эти образцы будут взяты на основе точности данных, которая будет указана на вкладке «Выход». Вы также можете выбрать тип памяти, который может быть реализован как «распределенная память» или «блочная память». Мы будем использовать Block RAM для реализации требуемой памяти.

Формат данных сохраненных значений можно выбрать на вкладке «Выход». Мы будем использовать параметры по умолчанию, как показано на рисунке 10. Обратите внимание, что «Арифметический тип» «подписан (2-х ком)», потому что наши образцы содержат отрицательные значения. Из всех 16 бит вывода только две биты выделяются целой части, потому что максимум и минимум образцов равны +1 и -1 соответственно. Остальные биты используются для представления дробного значения выборок.

Image

Рисунок 9

Image

Рисунок 10

Преобразование типа данных между порцией Xilinx и Simulink

Соединив обсуждаемые блоки согласно рисунку 2, мы получим схему, показанную на рисунке 11.

Image

Рисунок 11

Модель почти завершена, но нам нужны некоторые другие блоки для имитации системы. В отличие от блока Xilinx, который использует числа с фиксированной точкой для представления разных значений; среда Simulink имеет собственный тип данных. Например, Simulink может использовать «двойной» тип данных, который представляет собой число с плавающей запятой, дополняющее 64-битное число. Вот почему нам нужны некоторые блоки для преобразования данных данных при передаче данных из Simulink в часть Xilinx на рисунке 11 или при передаче вывода на рисунке 11 в среду Simulink. Этого можно достичь, используя блоки «Gateway In» и «Gateway Out», как показано на рисунке 12.

Image

Рисунок 12

Мы рассмотрим параметры блоков «Gateway In» и «Gateway Out» за минуту, но до этого вам следует отметить, что два других блока «Step» на входе и «Scope» на выходе: добавлен в модель. Как вы можете видеть, добавив блоки «Gateway In» и «Gateway Out», мы можем применить ввод к нашей модели с использованием общих блоков «Источник» Simulink. Или мы можем отслеживать выходы системы с помощью общих блоков «Sink» Simulink. На рисунке 12 мы применили «Шаг» к входному фазовому приращению DDS. Кроме того, вывод ПЗУ контролируется с использованием блока «Масштаб» Simulink.

В дополнение к преобразованию типа данных блоки «Gateway In» и «Gateway Out» определяют порты верхнего уровня конструкции HDL, которые позже будут получены из модели Simulink. Например, помещая блок «Gateway In» перед входом «a» сумматора, мы даем системному генератору знать, что вход «a» фактически является входом в проект верхнего уровня. Аналогично, «Gateway Out» определяет выходные данные верхнего уровня в дизайне HDL.

Диалоговое окно настраиваемых параметров для блока «Gateway In» показано на рисунке 13.

Image

Рисунок 13

Мы должны установить «Арифметический тип» на «Без знака» и выбрать «Число бит», равное 16, без дробных битов, то есть «Двоичная точка» = 0. Следовательно, любой вход из среды Simulink будет представлен как 16-битное беззнаковое число с фиксированной точкой в ​​части Xilinx проекта. Обратите внимание, что формат, который мы здесь специфицируем, соответствует формату данных блока Add / Sub. Остальные параметры блока мы оставим по умолчанию.

Блок «Gateway Out» автоматически определяет формат фиксированной точки на своем этапе. Вот почему здесь мы можем использовать настройки по умолчанию для блока.

Блок генератора системы Xilinx

Любая модель Simulink, использующая блоки Xilinx, должна включать блок «System Generator». Этот блок позволяет нам контролировать параметры системы и моделирования. Он также обрабатывает генерации HDL-кода. Символ и диалоговое окно для блока «Генератор системы» показаны на рисунке 14.

Image

Рисунок 14

Генератор системы компилирует проект в низкоуровневые представления. Мы можем выбрать тип низкоуровневого представления из параметра «Компиляция» диалогового окна. В этой статье мы выберем «HDL Netlist», как показано на рисунке. Это создает коллекцию HDL и некоторых вспомогательных файлов, которые могут быть обработаны инструментом синтеза. Как вы можете видеть на рисунке, мы выбрали «XST» и «VHDL» как инструмент синтеза и HDL, соответственно.

Вы также должны выбрать целевое устройство из параметра «Part» диалогового окна и предоставить программе папку назначения для хранения сгенерированных файлов. На рисунке 15 ниже показана вкладка «Синхронизация» диалогового окна.

Image

Рисунок 15

Первый параметр «FPGA clock period (ns)» определяет период требуемых часов для дизайна. Этот параметр может быть передан инструменту синтеза на следующих этапах проектирования. Он может помочь программному обеспечению синтеза выбрать подходящую реализацию, основанную на требованиях к часам проектирования. На приведенном выше рисунке период «FPGA clock» установлен на 10 наносекунд. Это означает, что мы ожидаем, что дизайн будет запущен с тактовой частотой 10 нс на плате. Simulink может использовать нормализованную форму этого периода времени в своих симуляциях. Эта нормализация задается параметром «Симулинковый системный период (сек)» на рисунке 15. Установив этот параметр равным 1, каждые 10 нс аппаратной реализации будут представлены на 1 секунду в среде Simulink.

моделирование

Чтобы имитировать проект, мы устанавливаем вход «Шаг» для перехода от 264 до 528 в «Шаг времени» 500. Вы можете использовать другие произвольные параметры для этого блока. Наконец, мы готовы имитировать нашу модель DDS, которая показана на рисунке 16.

Image

Рисунок 16

Нажимая кнопку «Выполнить» Simulink, мы получаем следующую кривую «Область».

Image

Рисунок 17

Так как в «Шаг времени» = 500 вход идет от 264 до 528, выходная частота увеличивается в два раза.

Добавление проекта в проект ISE

После установки всех параметров дизайна мы можем сгенерировать описание модели VHDL, нажав кнопку «Создать» на рисунке 14. Это приведет к созданию файла «.sgp», который можно добавить в проект ISE.

Выбрав «Добавить источник» из проекта ISE, мы можем включить файл .sgp в наш проект верхнего уровня. Теперь добавленный файл можно использовать только так, как мы используем ядро ​​IP. Нажимая на добавленный файл и выбрав «View HDL Instantiation Template», мы можем найти шаблон для использования этого компонента.

Для ознакомления с использованием IP-ядер и компонентов VHDL обратитесь к разделу Использование Xilinx CORDIC Core для простого создания функций синуса и косинуса и использования компонентов VHDL для создания рационального иерархического дизайна соответственно.

Вывод

В этой статье мы использовали «Генератор системы» для реализации простой DDS. Высокоуровневые графические возможности Simulink позволяют легко моделировать сложную цифровую систему. После проверки функциональности дизайна в среде Simulink мы можем создать описание VHDL проекта и добавить его в наш проект в программном обеспечении Xilinx ISE.

Читайте также: