Генерация системных объектов с помощью мастера FIL

Шаг 1: Настройка программного обеспечения Проекта FPGA Инструментов

 Программное обеспечение Xilinx

 Программное обеспечение Intel

 Программное обеспечение Microsemi

Шаг 2: Запуск мастера FIL

Откройте FPGA-in-the-Loop Wizard.

В командном окне MATLAB введите следующее:

>> filWizard

Чтобы восстановить предыдущий сеанс, используйте следующую команду:

filWizard('./Subsystem_fil/Subsystem_fil.mat')

Шаг 3: Установите опции FIL для системного объекта

(Эта страница предназначена для системы FIL object™. Для Simulink® блокируйте опции FIL, см. Шаг 3: Установите Опции FIL для блока FIL.)

На FIL Options странице:

  1. FIL Simulation with: Выбор MATLAB System Object.

  2. Board Name: Выберите плату разработки FPGA. Если вы еще не загрузили пакет поддержки платы HDL Verifier™ FPGA, см. Загрузку пакета поддержки платы FPGA. (Если вы не видите никаких перечисленных плат, то вы еще не загрузили пакет поддержки). Если вы планируете самостоятельно определить пользовательскую плату, см. раздел Индивидуальную настройку платы FPGA.

  3. FPGA-in-the-Loop Connection: Метод соединения симуляции FIL. Опции в раскрывающемся меню обновляются в зависимости от методов подключения, поддерживаемых для выбранной целевой платы. Если целевая плата и HDL Verifier поддерживают подключение, можно выбрать Ethernet, JTAG, или PCI Express.

  4. Advanced Options:

    При выборе соединения Ethernet можно при необходимости настроить IP-адрес и MAC-адрес платы.

    ОпцияИнструкции
    Board IP address

    Используйте эту опцию для настройки IP-адреса платы, если он не является IP-адресом по умолчанию (192.168.0.2).

    Если IP-адрес платы по умолчанию (192.168.0.2) используется другим устройством или вам нужна другая подсеть, измените IP-адрес платы в соответствии со следующими рекомендациями:

    • Адрес подсети, обычно три первых байта IP-адреса платы, должен совпадать с адресом подсети IP-адреса хоста.

    • Последний байт IP-адреса платы должен отличаться от последнего байта IP-адреса узла.

    • IP-адрес платы не должен конфликтовать с IP-адресами других компьютеров.

      Например, если IP-адрес хоста 192.168.8.2, то можно использовать 192.168.8.3, при наличии.

    Board MAC address

    В большинстве случаев вам не нужно менять MAC-адрес платы. Если вы подключите несколько плат разработки FPGA к одному хосту-компьютеру, измените MAC-адрес платы для любых дополнительных плат так, чтобы каждый адрес был уникальным. Для каждой платы необходимо иметь отдельный сетевой адаптер.

    Для изменения MAC-адреса платы щелкните в поле Board MAC address. Укажите адрес, отличный от адреса любого другого устройства, подключенного к компьютеру. Для получения MAC-адреса системной платы для конкретной платы разработки FPGA см. метку, проставленную на плате, или ознакомьтесь с документацией по продукту.

    FPGA system clock frequency (MHz): Введите целевую тактовую частоту. Для плат Intel и плат, поддерживаемых Xilinx ISE, filWizard проверяет требуемую частоту по возможностям для запрашиваемой платы. Если требуемая частота невозможна для этой платы, filWizard возвращает ошибку и предлагает альтернативную частоту. Для плат, поддерживаемых Xilinx Vivado, или PCI Express® платы, filWizard не может проверить частоту. Инструменты синтеза делают максимальную попытку с требуемой частотой, но могут выбрать альтернативную частоту, если заданная частота не была достижима. Значение по умолчанию является 25 МГц.

  5. Нажмите Next.

Шаг 4: Добавьте исходные файлы HDL для системного объекта

(Эта страница предназначена для объекта FIL System. Для блок Simulink HDL исходные файлы, смотрите Шаг 4: Добавить исходные файлы HDL для FIL блока.)

На Source Files странице:

  1. Задайте проект HDL, которая будет косимулирована в FPGA. Эти файлы являются HDL-файлами проекта, подлежащими проверке на плате FPGA.

    Укажите исходные файлы нажав Add. Выберите файлы в диалоговом окне выбора файлов.

    Мастер FIL пытается идентифицировать типы исходных файлов. Если любой из типов файлов не является тем, что вы ожидаете, можно изменить его, выбрав из выпадающего списка File Type. Допустимые типы файлов:

    • VHDL®

    • Verilog®

    • Netlist

    • Скрипт TCL

    • Ограничения

    • Другие

      «Другие» означают следующее:

      • Для Intel файлы указаны как Other добавляются к проекту FPGA, но не влияют на сгенерированный блок. Для примера можно поместить некоторые комментарии в readme и включить его в этот список файлов.

      • Для Xilinx файлы указаны как Other может быть любым файлом, принятым Xilinx ISE. ISE просматривает расширение файла, чтобы определить, как использовать этот файл. Для примера, если вы добавляете foo.vhd в список и укажите его следующим OtherISE обрабатывает файл как VHDL-файл.

  2. Укажите, какой файл содержит HDL-файл верхнего уровня.

    Установите флажок в строке HDL- файла, содержащей HDL-модуль верхнего уровня в столбце под названием Top-level. Мастер FIL автоматически заполняет Top-level module name поле именем выбранного HDL- файла. Если имя модуля верхнего уровня и имя файла не совпадают, можно вручную изменить имя модуля верхнего уровня в этом диалоговом окне. Перед продолжением укажите имя модуля верхнего уровня.

  3. (Необязательно) Чтобы отобразить полные пути к исходным файлам, установите флажок «Show full paths to source files».

  4. Нажмите Next.

Шаг 5: Проверьте порты ввода-вывода DUT для системного объекта

(Эта страница предназначена для FIL с системным объектом. Для Simulink смотрите Шаг 5: Проверьте порты ввода-вывода DUT для блока FIL.)

На DUT I/O Ports странице:

  1. Проверьте список портов. Мастер FIL анализирует HDL-модуль верхнего уровня, получая все порты ввода-вывода и отображая их в таблице Порты ввода-вывода DUT. Анализатор пытается определить типы портов по именам портов. Затем мастер отобразит эти сигналы в разделе «Тип порта».

    Убедитесь, что все входные/выходные/сбросные порты/часы отображены как вы ожидаете. Если анализатор присвоил неправильный тип порта для любого порта, можно вручную изменить сигнал. Для синхронного проекта задайте Часы, Сброс или, при желании, сигнал включения Часы. Типы портов, указанные в этой таблице, должны совпадать с типами в HDL-коде. Должен быть по крайней мере один выходной порт.

    Выберите Manually enter port information, чтобы добавить или удалить сигналы.

    Щелкните Regenerate, чтобы перезагрузить таблицу с исходными определениями портов (из HDL-кода).

  2. Нажмите Next.

Шаг 6. Задайте типы Выхода для системного объекта

(Эта страница предназначена для объекта FIL System. Для выходных типов блоков Simulink, смотрите Шаг 6: Задайте типы Выхода для блока FIL.)

На Output Types странице:

  1. Задайте типы выходных данных. Мастер присваивает типы данных. Если какой-либо выход данных не является тем, что вы ожидаете, вручную измените тип.

    Выберите из:

    • Fixedpoint

    • Integer

    • Logical

    Тип данных может зависеть от заданной ширины бита.

    Можно задать тип выхода, который будет Signed, Unsigned, или Fraction Length.

  2. Нажмите Next.

Шаг 7: Задайте опции сборки для системного объекта

(Эта страница предназначена для объекта FIL System. Для Simulink смотрите Шаг 7: Задайте опции сборки для блока FIL.)

На Build Options странице :

  • Укажите папку для файлов выхода. Можно использовать опцию по умолчанию. Обычно по умолчанию это подпапка, названная в честь модуля верхнего уровня, расположенная под текущей папкой.

  • В Summary отображаются местоположения файла проекта ISE и файла программирования FPGA. Эти два файла могут понадобиться для расширенных операций с маской блоков FIL.

Шаг 8: Инициируйте сборку

Щелкните Build, чтобы инициировать генерацию объекта FIL System.

  1. Мастер FIL создает следующие файлы:

    • В ./ toplevel_fil/ папка, функция MATLAB с именем toplevel_programFPGA.m, где toplevel - имя верхнего уровня HDL. Этот файл содержит код для загрузки файла программирования FPGA в FPGA.

      function toplevel_programFPGA
      
        %Load the bitstream in the FPGA
        filProgramFPGA('Xilinx', '/dir/mybitstream.bit', 1);
      end

    • Файл MATLAB с именем toplevel_fil.m, где toplevel - имя верхнего уровня HDL. Этот файл содержит определение класса, полученное из hdlverifier.FILSimulation и инициализирует частную собственность. Этот файл находится в текущей папке.

      Ниже приведена выборка файла определения класса, сгенерированного с помощью мастера FIL из DUT с именем fft8.

      classdef fft8_fil <  hdlverifier.FILSimulation
      % fft8_fil is a filWizard generated class used for FPGA-In-the-Loop
      %   simulation with the 'fft8' DUT.
      %   fft8_fil connects MATLAB with a FPGA and cosimulate with it by 
      %   writing inputs in the FPGA and reading outputs from the FPGA.
      %
      %   MYFIL = fft8_fil
      %
      %   FIL syntax:
      %
      %   [out1, out2, ...] = MYFIL(in1, in2, ...) connect to the FPGA,
      %   write in1, in2, ... to the FPGA and read out1, out2, ... from 
      %   the FPGA
      %
      %   fft8_fil methods:
      %
      %   release     - Allow property value and input characteristics changes, and
      %                 release connection to FPGA board
      %   clone       - Create fft8_fil object with same property values
      %   isLocked    - Locked status (logical)
      %   programFPGA - Load the programming file in the FPGA
      %
      %   fft8_fil properties:
      %
      %   DUTName                  - DUT top level name
      %   InputSignals             - Input paths in the HDL code
      %   InputBitWidths           - Width in bit of the inputs
      %   OutputSignals            - Output paths in the HDL code
      %   OutputBitWidths          - Width in bit of the outputs
      %   OutputDataTypes          - Data type of the outputs
      %   OutputSigned             - Sign of the outputs
      %   OutputFractionLengths    - Fraction lengths of the outputs
      %   OutputDownsampling       - Downsampling factor and phase of the outputs
      %   OverclockingFactor       - Overclocking factor of the hardware
      %   SourceFrameSize          - Frame size of the source (only for HDL source block) 
      %   Connection               - Parameters for the connection with the board
      %   FPGAVendor               - Name of the FPGA chip vendor
      %   FPGABoard                - Name of the FPGA board
      %   FPGAProgrammingFile      - Path of the Programming file for the FPGA
      %   ScanChainPosition        - Position of the FPGA in the JTAG scan chain
      %
      %   File Name: fft8_fil.m
      %   Created: 26-Apr-2012 18:18:06
      % 
      %   Generated by FIL Wizard
      
          properties (Nontunable)
              DUTName = 'fft8';
          end
          
          methods
              function obj = fft8_fil
                  
                  %THE FOLLOWING PROTECTED PROPERTIES ARE SPECIFIC TO THE HW DUT
                  %AND MUST NOT BE EDITED (RERUN THE FIL WIZARD TO CHANGE THEM)
                  obj.InputSignals = char('Xin_re','Xin_im');
                  obj.InputBitWidths = [10,10];
                  obj.OutputSignals = char('Xout_re','Xout_im');
                  obj.OutputBitWidths = [13,13];
                  obj.Connection = char('UDP','192.168.0.2','00-0A-35-02-21-8A'); 
                  obj.FPGAVendor = 'Xilinx';
                  obj.FPGABoard = 'XUP Atlys Spartan-6 development board';
                  obj.ScanChainPosition = 1 ;
                  
                  %THE FOLLOWING PUBLIC PROPERTIES ARE RELATED TO THE SIMULATION
                  %AND CAN BE EDITED WITHOUT RERUNING THE FIL WIZARD
                  obj.OutputSigned = [true,true];
                  obj.OutputDataTypes = char('fixedpoint','fixedpoint');
                  obj.OutputFractionLengths = [9,9];
                  obj.OutputDownsampling = [1,0];
                  obj.OverclockingFactor = 1;
                  obj.SourceFramieSize = 1;
                  obj.FPGAProgrammingFile = 'S:\MATLAB\demo\fft8_fil\fft8_fil.bit';
              end
          end
      end
      
  2. Мастер FIL открывает командное окно.

    • В этом окне программное обеспечение проекта FPGA выполняет синтез, подгонку, PAR и генерацию файлов программирования FPGA.

    • Когда процесс завершается, сообщение в командном окне предлагает вам закрыть окно.

Шаг 9: Интегрирование и моделирование

Создайте системный объект

Создайте пользовательскую FILSimulation Системный объект из файла определения класса, полученного с помощью мастера FIL. Этот фрагмент кода создает образец класса и инициализирует все свойства.

MYFIL = toplevel_fil

Если вы сгенерировали объект FIL System из HDL Workflow Advisor, вряд ли вам нужно будет настраивать какие-либо настройки. Если вы сгенерировали объект FIL System с помощью Мастера FIL, можно настроить некоторые параметры. Вы можете настроить любое свойство writable одним из следующих методов:

  • Измените свойство с помощью метода set:

    MYFIL.set('FPGAProgrammingFile','c:\work\filfiles')
  • Установите свойство непосредственно:

    MYFIL.FPGAProgrammingFile='c:\work\filfiles'
  • Редактирование toplevel_fil.m непосредственно. Если вы редактируете .m еще раз создайте экземпляр объекта в рабочей области, если это было сделано ранее.

Для получения дополнительной информации о свойствах объекта смотрите hdlverifier.FILSimulation.

Загрузка файлов программирования в FPGA

Программировать FPGA можно используя либо programFPGA function, или programFPGA метод объекта FIL System. Если вы еще не выполнили управляемый аппаратный Setup, сделайте это сейчас, прежде чем загружать файлы программирования.

  • programFPGA функция:

    ./toplevel_fil/toplevel_programFPGA
  • programFPGA метод:

    MYFIL.programFPGA

    MYFIL является образцом FILSimulation объект.

Выполняйте симуляцию

  1. Вызовите системный объект в коде MATLAB.

  2. Запустите свой код MATLAB, как обычно. Убедитесь, что вы выполнили управляемый аппаратный Setup перед началом.

    Первый вызов объекта устанавливает связь с платой FPGA.

Похожие темы