56
Mestrado em Sistemas Mecatrônicos Mestrado em Sistemas Mecatrônicos 1 1 Tutorial: Como gerar Tutorial: Como gerar macros para macros para FPGAs FPGAs Xilinx Xilinx Mestrandos: Rodrigo T. P. Oliveira Mestrandos: Rodrigo T. P. Oliveira Andr Andr é é L. S. Braga L. S. Braga Prof. Dr.: Carlos Prof. Dr.: Carlos Llanos Llanos

Xilinx Tutorial: Como gerar macros para FPGAs L. S. Braga ......Mestrado em Sistemas Mecatrônicos 1 Tutorial: Como gerar macros para FPGAs Xilinx Mestrandos: Rodrigo T. P. Oliveira

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    11

    Tutorial: Como gerar

    Tutorial: Como gerar

    macros para

    macros para FPGAs

    FPGAsXilinx

    Xilinx

    Mestrandos: Rodrigo T. P. Oliveira

    Mestrandos: Rodrigo T. P. Oliveira

    Andr

    Andr ééL. S. Braga

    L. S. Braga

    Prof. Dr.: Carlos

    Prof. Dr.: Carlos Llanos

    Llanos

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    22

    Defini

    Defini çções e Propostas

    ões e Propostas

    ��O que

    O que ééuma Macro?

    uma Macro?

    ��ÉÉuma fun

    uma funçç ão l

    ão l óógica que foi criada com componentes

    gica que foi criada com componentes

    espec

    espec ííficos de uma determinada fam

    ficos de uma determinada famíí lia de

    lia de FPGAs

    FPGAs ..

    ��Porque fazer uma Macro?

    Porque fazer uma Macro?

    ��Para que esta possa ser usada como uma

    Para que esta possa ser usada como uma

    delimita

    delimitaçç ão r

    ão ríí gida entre setores reconfigur

    gida entre setores reconfigur ááveis e

    veis e

    não

    não-- reconfigur

    reconfigur ááveis num sistema de reconfigura

    veis num sistema de reconfiguraçç ão

    ão

    dinâmica; j

    dinâmica; j ááque, a mesma pode ser colocada na

    que, a mesma pode ser colocada na

    posi

    posiçç ão desejada durante o processo de

    ão desejada durante o processo de Place

    Place& &

    Route

    Route..

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    33

    Como abrir o programa para

    Como abrir o programa para

    cria

    criaçç ão de Macros

    ão de Macros

    ��No Menu Iniciar (

    No Menu Iniciar ( Start

    Start) do Windows,

    ) do Windows,

    dentro da pasta referente ao ISE

    dentro da pasta referente ao ISE

    encontra

    encontra-- se uma pasta com todos os

    se uma pasta com todos os

    acess

    acessóórios dispon

    rios disponíí veis juntamente ao

    veis juntamente ao

    pacote do ISE, dentre eles encontra

    pacote do ISE, dentre eles encontra-- se o

    se o

    FPGA Editor:

    FPGA Editor:

    ��Menu Iniciar

    Menu Iniciar \\Programas

    Programas \\Xilinx

    XilinxISE

    ISE

    7.1i

    7.1i \\ Accessories

    Accessories \\FPGA Editor

    FPGA Editor

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    44

    Uma Visão Geral do Programa

    Uma Visão Geral do Programa

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    55

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    66

    Selecionar

    Nome/Localização do

    arquivo de Macro

    Selecionar o Dispositivo ao qual

    se destina a Macro:

    Device/ Package/ Speed

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    77

    Situa

    Situaçç ão e Atalhos

    ão e Atalhos

    ��Foram Abertas 3 janelas no FPGA Editor:

    Foram Abertas 3 janelas no FPGA Editor:

    ��Array

    ArrayWindow

    Window

    ��List

    ListWindow

    Window

    ��World

    WorldWindow

    Window

    ��Atalhos para navega

    Atalhos para navegaçç ão r

    ão ráápida dentro da

    pida dentro da Array

    Array

    Window

    Window::

    ��Scroll

    ScrollUpUp// Down

    Down��Pan

    PanDown

    Down// UpUp

    ��Shift

    Shift+ + Scroll

    ScrollUpUp// Down

    Down��Pan

    PanLeft

    Left// Right

    Right

    ��Ctrl

    Ctrl + + Scroll

    ScrollUpUp// Down

    Down��Zoom In/

    Zoom In/Out

    Out

    ��Ctrl

    Ctrl + + Shift

    Shift+ + Scroll

    ScrollUpUp// Down

    Down��Zoom to Box

    Zoom to Box

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    88

    Selecione a região a ser usada

    para a construção da macro

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    99

    Adapte os layersde acordo com o seu

    conforto visual. Caso seja necessário

    saber o que cada ícone representa basta

    posicionar o cursor sobre o ícone e

    um “hint”serámostrado.

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1010

    Selecione a primeira Slice

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1111

    Sele

    Seleçç ão e adi

    ão e adi çção da primeira

    ão da primeira Slice

    Slice

    ao projeto

    ao projeto

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1212

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1313

    Repita o procedimento com

    Repita o procedimento com

    a primeira

    a primeira Slice

    Slicedo segundo

    do segundo

    grupo, selecionando

    grupo, selecionando-- a e

    a e

    adicionando

    adicionando-- a ao projeto

    a ao projeto

    como visto nos slides

    como visto nos slides

    seguintes

    seguintes

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1414

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1515

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1616

    Situa

    Situaçç ão: 2

    ão: 2 Slices

    Slicesinseridas

    inseridas

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1717

    Adicionando os dois pinos

    Adicionando os dois pinos

    externos de entrada da Macro

    externos de entrada da Macro

    na

    na Slice

    Slice11

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1818

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    1919

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2020

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2121

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2222

    Adicionando os fios de

    Adicionando os fios de

    conexão entre as

    conexão entre as Slices

    Slices1 e 2

    1 e 2

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2323

    Cada

    Cada Slice

    Slicepossui as sa

    possui as saíí das X e Y que são

    das X e Y que são

    respectivamente combina

    respectivamente combinaçç ão linear das entradas F1

    ão linear das entradas F1-- F4 e

    F4 e

    G1

    G1-- G4. Selecione usando a tecla

    G4. Selecione usando a tecla shift

    shifta sa

    a saíí da Y da

    da Y da Slice

    Slice1 1

    e a entrada G1 da

    e a entrada G1 da Slice

    Slice22

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2424

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2525

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2626

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2727

    FaFaçç a o mesmo entre a sa

    a o mesmo entre a saíí da

    da

    X da

    X da Slice

    Slice1 e a entrada F1 da

    1 e a entrada F1 da

    Slice

    Slice2 2

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2828

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    2929

    Neste passo devemos

    Neste passo devemos

    adicionar os pinos externos de

    adicionar os pinos externos de

    sasaíí da da Macro na

    da da Macro na Slice

    Slice2. 2.

    Nossas sa

    Nossas saíí das serão os pinos

    das serão os pinos

    X e Y da

    X e Y da Slice

    Slice2. Adicione

    2. Adicione-- os os

    um a cada vez como visto nos

    um a cada vez como visto nos

    slides a seguir.

    slides a seguir.

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3030

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3131

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3232

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3333

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3434

    Dentro de cada

    Dentro de cada Slice

    Slicedevemos

    devemos

    fazer conexões internas que

    fazer conexões internas que

    mapearão a sua sa

    mapearão a sua saíí da de acordo

    da de acordo

    com a sua entrada. Para fazer as

    com a sua entrada. Para fazer as

    conexões internas da

    conexões internas da Slice

    Slice1, dê

    1, dê

    um duplo

    um duplo click

    clickpra visualizar o

    pra visualizar o

    circuito interno da

    circuito interno da Slice

    Slice

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3535

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3636

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3737

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3838

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    3939

    Dentro da Slicetemos 2 tabelas verdades X em função de F1-F4 e Y em função de G1-G4.

    No campo acima colocamos as equações que correspondem Y com G1-G4 e X com F1-F4, no entanto,

    Internamente, em ambos os casos, as entradas são tratadas como A1-A4 e não F ou G como nos pinos externos.

    Então se quisermos uma saída Y que seja uma porta OU entra as 4 entradas G devemos escrever A1+A2+A3+A4

    na linha correspondente a saída G. No nosso caso queremos apenas um seguidor de sinal por tanto temos que

    tanto G como F serão apenas uma repetição do sinal presente em A1

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4040

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4141

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4242

    Selecione (zoom) a região

    pela qual devemos passar

    o sinal desde a tabela verdade

    atéa saída.

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4343

    Para que o sinal possa ser passado desde

    a tabela verdade atéa saída basta clicar

    no pequeno triângulo no qual o fio se conecta

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4444

    Repetir passo para

    este último fio

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4545

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4646

    Repetir o passo anterior para a conexão entre a segunda

    Repetir o passo anterior para a conexão entre a segunda

    tabela verdade e sua respectiva sa

    tabela verdade e sua respectiva saíí dada

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4747

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4848

    Tendo feita a liga

    Tendo feita a ligaçç ão interna

    ão interna

    na

    na Slice

    Slice1, deve

    1, deve-- se repetir o

    se repetir o

    procedimento para a

    procedimento para a Slice

    Slice22

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    4949

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5050

    Setando

    Setandoa referência para a

    a referência para a

    Macro

    Macro

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5151

    Selecione qual seráa referência

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5252

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5353

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5454

    Essa Macro pode ser usada dentro de

    Essa Macro pode ser usada dentro de

    um arquivo VHDL qualquer que esteja

    um arquivo VHDL qualquer que esteja

    sendo especificado para o dispositivo no

    sendo especificado para o dispositivo no

    qual a Macro foi projetada. Deve

    qual a Macro foi projetada. Deve-- se

    se

    colocar o arquivo de macro no mesmo

    colocar o arquivo de macro no mesmo

    diret

    diret óório do arquivo (ou projeto) VHDL.

    rio do arquivo (ou projeto) VHDL.

    De maneira que a Macro pode ser

    De maneira que a Macro pode ser

    facilmente instanciada como um simples

    facilmente instanciada como um simples

    componente VHDL.

    componente VHDL.

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5555

    Instanciando a Macro

    Instanciando a Macro

    Declara

    Declaraçção:

    ão:

    component

    componentMacroTutorial

    MacroTutorial isis

    port

    port((Entrada1

    Entrada1: in

    : in std_logic

    std_logic;;

    Entrada2

    Entrada2: in

    : in std_logic

    std_logic;;

    Saida1

    Saida1

    : : out

    outstd_logic

    std_logic;;

    Saida2

    Saida2

    : : out

    outstd_logic

    std_logic););

    end

    endcomponent

    component ;;

    Instância:

    Instância:

    Nome_da_Instancia

    Nome_da_Instancia: : MacroTutorial

    MacroTutorial port

    portmap

    map((

    Entrada1 => ,

    Entrada1 => ,

    Entrada2 => ,

    Entrada2 => ,

    Saida1 => ,

    Saida1 => ,

    Saida2 => );

    Saida2 => );

  • Mestrado em Sistemas Mecatrônicos

    Mestrado em Sistemas Mecatrônicos

    5656

    FIMFIM

    Versão 2.0 do Tutorial: Revisado pelo Mestrando Anderson Correia

    Versão 2.0 do Tutorial: Revisado pelo Mestrando Anderson Correia