Sie sind auf Seite 1von 51

Pontifcia Universidade Catlica do Rio Grande do Sul Faculdade de Engenharia Faculdade de Informtica Curso de Engenharia de Computao

Desenvolvimento de Mdulos de Hardware para Recepo e Transmisso de Quadros OTN


Volume Final do Trabalho de Concluso

Autores Roberto Germani Paiva Samuel dos Santos Marczak

Orientador Prof. Dr. Fernando Gehm Moraes

Porto Alegre, dezembro de 2007.

ndice
1 Introduo................................................................................................................................... 1 1.1 Objetivos ..............................................................................................................................2 1.2 Mdulos do Projeto Transponder.........................................................................................2 1.3 Estrutura do Documento ......................................................................................................4 2 Padro OTN G.709..................................................................................................................... 5 2.1 A Abrangncia do Padro G.709 .........................................................................................5 2.2 Estrutura Lgica do Padro OTN G.709..............................................................................6 2.2.1 Cabealho.....................................................................................................................8 2.2.1.1 Frame Alignment Overhead.....................................................................................9 2.2.1.2 Optical Channel Payload Unit Overhead (OPU OH).............................................10 2.2.1.3 Optical Channel Data Unit Overhead (ODU OH) .................................................10 2.2.1.4 Optical Channel Transport Unit Overhead (OTU OH)..........................................11 2.2.2 Carga til...................................................................................................................11 2.3 Vantagens do OTN em Relao aos Padres SONET/SDH..............................................12 2.3.1 Forward Error Correction (FEC)................................................................................12 2.3.2 Tandem Connection Monitoring (TCM)....................................................................12 2.3.3 Transporte Transparente dos Sinais do Cliente..........................................................13 2.3.4 Switching Scalability .................................................................................................13 3 Fluxo de Projeto ....................................................................................................................... 15 3.1 Captura ...............................................................................................................................16 3.2 Implementao Fsica ........................................................................................................16 3.3 Validao ...........................................................................................................................18 4 Mdulo Alinhador de Quadro .................................................................................................. 19 4.1 Arquitetura .........................................................................................................................20 4.1.1 Comparador Parcial....................................................................................................22 4.1.2 Gerador de Endereo..................................................................................................23 4.1.3 Deslocador .................................................................................................................24 4.1.4 Comparador Completo...............................................................................................25 4.2 Validao ...........................................................................................................................25 4.3 Resultado de rea ..............................................................................................................27 5 Mdulo Embaralhador e Desembaralhador.............................................................................. 28 5.1 Arquitetura Utilizando Gerador LFSR...............................................................................28 5.2 Arquitetura Utilizando Memrias BRAM .........................................................................30 5.3 Validao ...........................................................................................................................31 5.4 Resultado de rea ..............................................................................................................32 6 Mdulo Extrator de Cabealhos ............................................................................................... 33 6.1 Arquitetura .........................................................................................................................33 7 Integrao e Prototipao ......................................................................................................... 35 7.1 Estrutura de Teste...............................................................................................................36 7.2 Validao em Simulao com Atraso ................................................................................37 7.3 Validao em Hardware.....................................................................................................38 7.4 Resultados ..........................................................................................................................39 7.5 Integrao com o Mdulo FEC..........................................................................................39 8 Concluso ................................................................................................................................. 42 Referncias ....................................................................................................................................... 43 Apndice I Cdigo do Sub-mdulo Comparador Parcial.............................................................. 45

ii

ndice de Figuras
Figura 1 Estrutura geral do transponder OTN a ser desenvolvida. ...................................................3 Figura 2 Dispositivo OTN ligado a dispositivos clientes [ALE06]. .................................................5 Figura 3 Classes de interface do padro G.709 [KAZ06].................................................................6 Figura 4 Quadro OTN com 4080 bytes, mostrando a ordem de transmisso dos bytes. ..................7 Figura 5 Multi-quadro OTN: composto por quatro quadros OTN....................................................7 Figura 6 Multi-quadro OTN dividido em camadas [VIS02].............................................................8 Figura 7 Encapsulamento do multi-quadro OTN [GEN06]..............................................................8 Figura 8 Terminao OPU, ODU e OTU [NAK05]. ........................................................................9 Figura 9 Bytes que compem o cabealho e seus nomes [VIS02]. ..................................................9 Figura 10 Campos OA1 e OA2 do FAS. ........................................................................................10 Figura 11 Possveis valores do JC e o comportamento dos bytes NJO e PJO................................10 Figura 12 O polinmio gerador 1 + x + x 3 + x 12 + x 16 [ITU02]. ...................................................11 Figura 13 Tandem Connection Monitoring [VIS02]. .....................................................................13 Figura 14 Fluxo de projeto utilizado no desenvolvimento dos mdulos propostos no trabalho. ...15 Figura 15 Planejamento topolgico do circuito [WHA04].............................................................17 Figura 16 Interface com a fibra ptica. ...........................................................................................19 Figura 17 Exemplo de desalinhamento e posterior alinhamento. ...................................................20 Figura 18 Arquitetura do mdulo alinhador de quadro com pipeline.............................................21 Figura 19 Instncia do Comparador Parcial sem deslocamento. ....................................................22 Figura 20 Instncia do Comparador Parcial com deslocamento de 63 bits. ...................................22 Figura 21 Exemplo de converso realizada pelo Gerador de Endereo. ........................................23 Figura 22 Instancias do Gerador de Endereo. ...............................................................................23 Figura 23 Deslocador de 8 bits. ......................................................................................................24 Figura 24 Comparador Completo. ..................................................................................................25 Figura 25 Simulao do mdulo Alinhador de Quadro com atraso................................................26 Figura 26 Arquitetura de embaralhamento utilizando LFSR [SAW02]. ........................................28 Figura 27 Arquitetura de embaralhamento utilizando LFSR replicada e interligada. ....................29 Figura 28 Arquitetura de embaralhamento utilizando memrias BRAM.......................................30 Figura 29 Simulao do mdulo embaralhador com atraso............................................................31 Figura 30 Organizao dos cabealhos nas memrias....................................................................33 Figura 31 Diagrama de blocos da arquitetura integrada. ................................................................35 Figura 32 Ferramenta geradora de multi-quadros...........................................................................36 Figura 33 Estrutura de teste da arquitetura. ....................................................................................37 Figura 34 Simulao da arquitetura integrada com atraso, no dispositivo XCV4FX100-10. ........37 Figura 35 Validao em hardware atravs do ChipScope. .............................................................38 Figura 36 Integrao dos mdulos do transponder. .......................................................................39 Figura 37 Mdulos Decoder e Encoder FEC integrados. ...............................................................40

iii

ndice de Tabelas
Tabela 1 Taxas de comunicao utilizadas nas interfaces dos padres G.709 e SONET/SDH. ......6 Tabela 2 Utilizao do FPGA pelo mdulo alinhador de quadro. ..................................................27 Tabela 3 Desempenho do embaralhador para palavras de tamanhos diferentes [SAW02]. ...........29 Tabela 4 Utilizao do FPGA pelo mdulo embaralhador. ............................................................32 Tabela 5 Localizao dos cabealhos no multi-quadro ..................................................................34

iv

Lista de Siglas
3R 10GbE ATM BIP BRAM CBR DWDM EDA FAS FPGA FEC FTFL GbE GFP IaDI IP IrDI ISE ITUT JC LAN LAN PHY LFSR LUT LVDS MAN MFAS MHz NJO ODU ODU OH OPU OPU OH OTN OTU OTU OH PJO PSI PT SDF SDH SerDes SM SONET STA TCM TDM TTI VHDL Reamplification, Reshaping and Retiming 10-Gigabit Ethernet Asynchronous Transfer Mode Bit Interleaved Parity Block Ram Constant Bit Rate Dense Wavelength Division Multiplexing Electronic Design Automation Frame Alignment Signal Field Programmable Gate Array Forward Error Correction Fault Type & Fault Location Gigabit Ethernet Generic Framing Procedure Intra-Domain Interface Internet Protocol Inter-Domain Interface Integrated Software Environment ITU Telecommunication Standardization Sector Justification Control Local Area Network LAN Physical Layer Linear Feedback Shift Register Lookup Table Low-Voltage Differential Signaling Metropolitan Area Network Multi Frame Alignment Signal Megahertz Negative Justification Opportunity Optical Channel Data Unit Optical Channel Data Unit Overhead Optical Channel Payload Unit Optical Channel Payload Unit Overhead Optical Transport Network Optical Channel Transport Unit Optical Channel Transport Unit Overhead Positive Justification Opportunity Payload Structure Identifier Payload Type Standard Delay Format Synchronous Digital Hierarchy Serializer-Deserializer Section Monitoring Synchronous Optical Network Static Timing Analysis Tandem Connection Monitoring Time-Division Multiplexing Trail Trace Identifier VHSIC Hardware Description Language v

1 Introduo

Com o aumento da globalizao, a troca de informaes tornou-se uma ferramenta fundamental no andamento da economia, impulsionando a formao de redes metropolitanas rpidas, flexveis e confiveis. Com a demanda sempre crescente por novos servios, a capacidade de transferir informaes diversificadas e de diferentes nveis de complexidade em uma mesma infra-estrutura tornou-se o foco das operadoras de telecomunicaes que prevem uma acentuada demanda por servios que exigem alta largura de banda, tais como: videoconferncia, educao distncia, telemedicina, voz sobre IP (VoIP), entre outros. Com a migrao de tecnologias de rede para protocolos de maior velocidade (Gigabit Ethernet e 10 Gigabit Ethernet), passou-se a utilizar fibra ptica para transmisso de informaes em redes locais (LANs) e metropolitanas (MANs). A fibra ptica no sofre interferncias eletromagnticas, o que significa que os dados que esto sendo transferidos correm menos riscos de serem corrompidos durante a transmisso. Outra vantagem que a perda de potncia do sinal por quilmetro muito menor do que em sistemas que utilizam cabos coaxiais. Nas transmisses por fibras pticas, as portadoras possuem freqncias na faixa de infravermelho, valores da ordem de centenas de TeraHertz, fato que permite prever o emprego de elevadssimas taxas de transmisso, de at milhares de Gigabits/s. A capacidade do sistema ptico pode ser aumentada ainda mais, utilizando-se tcnicas de multiplexao por comprimento de onda. Nos canais de fibra ptica utilizada a tcnica de multiplexao por comprimento de onda, WDM (Wavelength Division Multiplexing). Para um nmero elevado de canais multiplexados, a tcnica WDM chamada de DWDM (Dense Wavelength Division Multiplexing). Este um sistema que multiplexa mltiplos comprimentos de onda que sero transmitidos atravs de uma nica fibra ptica, independente das diferentes taxas de bits e formatos. Devido capacidade de transportar diversas tecnologias e possibilitar o maior transporte de trfego sobre a fibra, o DWDM torna-se uma pea importante na integrao das redes de dados, voz e imagem de altssima capacidade [NET02]. Este tipo de sistema tem como vantagem a alta flexibilidade em expanso de largura de banda, uma grande escalabilidade e a reduo de funes custosas de multiplexao e demultiplexao eltrica. Para atender a crescente demanda por banda com transporte de Tbps por fibra em enlaces DWDM e dar suporte a servios de banda larga com taxas de 2,5 Gbps, 10 Gbps e 40 Gbps, uma nova camada de rede de transporte ptico foi implantada, a Optical Transport Network (OTN). A OTN definida pela ITU-T [ITU03] como um composto de elementos de redes pticas (Optical Network Elements) conectados por uma fibra ptica, capaz de fornecer funcionalidades de transporte, multiplexao, roteamento, gerncia e supervisionamento dos canais pticos transportando os sinais provenientes do cliente. A rede OTN no impe limites nas taxas de comutao, tornando-a muito flexvel no quesito largura de banda. Quando a taxa dos enlaces de 1

dados aumenta, novas taxas de comutao podem ser adicionadas. A necessidade de suprir a crescente demanda por canais de comunicao de banda larga faz com que empresas desenvolvedoras de equipamentos de telecomunicao gerem solues que suportem cada vez mais banda com um menor custo. Os enlaces de fibra tica devem dar suporte a taxas de 10 Gbit/s ou superiores, e novas tcnicas so necessrias para suprir esta expectativa e seu crescimento futuro. A motivao do presente trabalho surgiu a partir do projeto realizado em parceria entre a TERACOM, empresa desenvolvedora de equipamentos de telecomunicao, e o Grupo de Apoio ao Projeto de Hardware (GAPH), da Faculdade de Informtica (FACIN) da Pontifcia Universidade Catlica do Rio Grande do Sul (PUCRS). O projeto X10GIGA visa desenvolver um transponder capaz de transmitir sinais SDH e Gigabit Ethernet sobre redes do tipo OTN com enlaces pticos em longas distncias. O desenvolvimento ser em prottipos de hardware que permitiro realizar a depurao e a validao de todos os mdulos implementados. 1.1 Objetivos

O presente trabalho tem por objetivo desenvolver mdulos utilizados no desenvolvimento do transponder. Estes devem ser capazes de transmitir e receber sinais sobre redes do tipo OTN, a uma taxa de comunicao de 10.7 Gbps. Ao final do trabalho de concluso espera-se que os mdulos desenvolvidos sejam capazes de: Alinhar as palavras de entrada, de modo que contenham a seqncia de alinhamento comeando no bit zero. Quando identificado o FAS, um sinal de fullmatch deve ser gerado para alimentar a mquina de estados de alinhamento; Receber quadros OTN embaralhados e realizar o desembaralhamento e vice-versa; Extrair os cabealhos dos quadros OTN e armazen-los em memrias.

1.2

Mdulos do Projeto Transponder A arquitetura do projeto do transponder OTN apresentada na Figura 1. Os mdulos

desenvolvidos no presente trabalho esto destacados com uma linha mais espessa, sendo eles: Alinhador de Quadro, Embaralhador, Desembaralhador e Extrator de Cabealhos. Os mdulos Ajuste dos cabealhos e Insero/Remoo de dados sero desenvolvidos futuramente, devido s limitaes de tempo intrnsecas a um Trabalho de Concluso de curso. Apesar de fazerem parte do projeto, os mdulos de decodificao e insero de FEC so de responsabilidade de outro grupo de TC.

Figura 1 Estrutura geral do transponder OTN a ser desenvolvida.

O mdulo alinhador de quadro tem como restrio de projeto trabalhar com um fluxo de dados de largura 64 bits, operando a uma freqncia de 167,33 MHz. Essa restrio ocorre devido ao FPGA receber fluxos de dados de um mdulo de interface com fibra ptica, externo ao contexto deste trabalho. Este, responsvel por paralelizar o fluxo de dados a 10,688 Gbps em 16 canais diferenciais (LVDS), cada um a uma taxa de 669,3125 Mbps. No decorrer do trabalho adotado como freqncia interna de operao 200 MHz, o que resulta em uma taxa de 12,8 Gbps. Esta maior taxa de operao adotada como cenrio de pior caso, permitindo o desenvolvimento de um projeto mais robusto. O mdulo alinhador de quadro composto por sub-mdulos que consistem em identificar a ocorrncia da seqncia de alinhamento, identificar em qual bit a seqncia est comeando, realizar o deslocamento de modo que a seqncia de alinhamento comece no incio da palavra de 64 bits e alimentar uma mquina de estados que realiza o sincronismo. Para ser atendida a restrio de tempo de propagao combinacional do projeto de 5 ns, cada sub-mdulo separado por um registrador, formando assim um pipeline. O mdulo embaralhador consiste em embaralhar os dados a serem transmitidos utilizando a tcnica de gerao de dados pseudo-aleatrios, conhecida como um LFSR (Linear Feedback Shift Register). Com isto, tem-se uma proteo para que no ocorram longas seqncias de 0s ou de 1s, o que garante suficiente troca de estado dos bits para facilitar a regenerao do relgio e tambm evita uma possvel repetio da seqncia de alinhamento. A operao de embaralhar realizada em todo o multi-quadro OTN G.709, com exceo do campo FAS. A funcionalidade de desembaralhar a mesma de embaralhar, visto que a operao de embaralhamento reversa. Basta passar um dado previamente embaralhado pelo mdulo embaralhador que ele sair desembaralhado. Sero abordadas duas arquiteturas diferentes para implementao dos mdulos embaralhador e desembaralhador. Primeiramente, para realizar o desenvolvimento do mdulo utilizou-se a arquitetura padro referida em [ITU03], onde a gerao da seqncia de embaralhamento feita em hardware por LFSRs. Tendo em vista um ganho no desempenho do mdulo, foi utilizada uma abordagem mais simples, em que todas as seqncias do polinmio embaralhador foram inicializadas em memrias BRAM (Block RAM). 3

O mdulo de extrao dos cabealhos utilizado para extrair o contedo dos cabealhos para uma memria, possibilitando a identificao de falhas, alarmes, tipo de dado transportado, origem e destino contidos nos quadros OTN G.709, o que ser feito por um software embarcado externo ao contexto deste trabalho. 1.3 Estrutura do Documento Este trabalho dividido em nove captulos. Alm da presente introduo, temos dois captulos tericos: um sobre o padro OTN G.709 e o outro sobre fluxo de projeto de sistemas digitais, quatro captulos descrevem o projeto desenvolvido e os dois ltimos captulos contemplam a concluso e as referncias bibliogrficas utilizadas. Os Captulos 2 e 3 incluem conceitos bsicos necessrios compreenso deste documento. O Captulo 2 apresenta conceitos bsicos sobre o padro OTN G.709. No Captulo 3 so apresentadas as etapas e ferramentas do fluxo de projeto utilizado para desenvolvimento do presente trabalho. Os Captulos 4, 5 e 6 descrevem os mdulos desenvolvidos. No Captulo 4 descrito o mdulo Alinhador de Quadro e seus sub-mdulos, assim como sua arquitetura. No captulo 5 apresentado o mdulo Embaralhador e Desembaralhador bem como seu resultado em nvel de validao e rea. O mdulo Extrator de Cabealhos apresentado no Captulo 6. O Captulo 7 apresenta a integrao dos mdulos descritos nos Captulos anteriores, bem como os resultados da validao em nvel de simulao e prototipao dos mesmos. Este ainda apresenta a estrutura de teste aplicada para validar os mdulos e a integrao com o mdulo FEC. As concluses obtidas pelo grupo ao fim deste trabalho e as referncias auxiliares para o desenvolvimento do mesmo so apresentadas nos Captulos 8 e 9.

2 Padro OTN G.709

A ITU-T define Optical Transport Network (OTN) [ITU03] [WAL03] como um composto de elementos de redes pticas (Optical Network Elements) conectados por uma fibra ptica, capaz de fornecer funcionalidades de transporte, multiplexao, roteamento, gerncia e supervisionamento dos canais pticos transportando os sinais provenientes do cliente. Os dados a serem transportados por redes OTN podem ter diversas origens. Cada dispositivo cliente se relaciona com a rede OTN atravs de seu protocolo nativo (Figura 2, ndice 1). Um dispositivo OTN encapsula informaes de mltiplos clientes (Figura 2, ndice 2) em uma carga til OTU1, OTU2 ou OTU3 e adiciona um cabealho de controle. Administradores podem monitorar e obter informaes variadas em vrios pontos da rede, atravs de interfaces de gerenciamento de rede (Figura 2, ndice 3).

Figura 2 Dispositivo OTN ligado a dispositivos clientes [ALE06].

O OTN G.709 encapsula os dados da carga til e o cabealho provenientes do cliente em sua prpria carga til. Este comportamento garante a preservao das caractersticas originais dos dados enquanto eles esto sendo transportados por uma rede ptica. 2.1 A Abrangncia do Padro G.709 A arquitetura OTN [ITU05] define duas classes de interfaces: IrDI (Inter-domain interface) e IaDI (Intra-domain interface), apresentadas na Figura 3. A interface OTN IrDI definida com o processamento 3R (Reamplification, Reshaping e Retiming) em cada terminao da interface. Esta a interface entre operadores e usurios. A interface OTN IaDI definida como a interface dentro do domnio de um operador e um usurio. O padro de protocolos de interface G.709 aplicado nas informaes transferidas pelas interfaces IrDI e IaDI. importante notar que o G.709 define somente a interface lgica, sem especificar interfaces pticas ou eltricas. 5

Figura 3 Classes de interface do padro G.709 [KAZ06].

2.2

Estrutura Lgica do Padro OTN G.709 O quadro OTN G.709 inclui um cabealho de transporte que prov funcionalidades de

administrao, manuteno e o FEC (Forward Error Correction). O FEC ajuda a reduzir o nmero de erros na transmisso em enlaces com rudo, o que por sua vez possibilita o uso de cabos pticos de maior comprimento. A norma G.709 define um padro para as interfaces e suas taxas de transmisso. Estas taxas foram derivadas das taxas j existentes dos padres SONET/SDH [ITU00] onde o cabealho e a informao do FEC do G.709 foram levados em considerao. Assim, a interface resultante opera a taxas de transmisso aproximadamente 7% maiores que as taxas correspondentes dos padres SONET/SDH. A Tabela 1 lista as interfaces OTU1, OTU2 e OTU3 e suas taxas de transmisso definidas na G.709, comparando essas com as taxas correspondentes nos padres SONET/SDH.
Tabela 1 Taxas de comunicao utilizadas nas interfaces dos padres G.709 e SONET/SDH.

Interfaces do padro G.709 OTU-1 OTU-2 OTU-3

Taxas de Transmisso 2.666 Gbps 10.709 Gbps 43.018 Gbps

Interfaces dos padres SONET/SDH OC-48/STM-16 OC-192/STM-64 OC-768/STM-256

Taxas de Transmisso 2.488 Gbps 9.953 Gbps 39.813 Gbps

Ao contrrio dos padres SDH/SONET, o OTN pode ser modificado para atuar com taxas de transmisso especiais, podendo ento, por exemplo, transportar pacotes do tipo 10G LAN PHY provenientes de chaveadores e roteadores IP/Ethernet com taxa de transmisso mxima. Isto importante porque pacotes LAN PHY normalmente incluem cabealhos proprietrios que aumentam a taxa de transmisso alm de 10 Gbps. O quadro OTN G.709 (Figura 4) formado por 4080 bytes, constitudos de 16 subquadros. Cada subquadro 1 linha de 255 bytes. Os 4080 bytes do quadro OTN esto divididos em: cabealho, que contm 16 bytes, carga til, que contm 3808 bytes e o FEC, que contm os 256 6

bytes restantes. A ordem de transmisso representada pelos nmeros dentro de cada byte na Figura 4.

Figura 4 Quadro OTN com 4080 bytes, mostrando a ordem de transmisso dos bytes.

O padro G.709 [ITU02] define o multi-quadro OTN (Figura 5) como sendo quatro quadros OTN (Figura 4) agrupados em 4 linhas, cada uma com 4080 colunas. Cada quadro representado como sendo uma linha na estrutura multi-quadro. Esta formao denominada digital wrapper multi-frame. O multi-quadro composto por 16320 bytes, sendo: 64 bytes de cabealho, 15232 bytes de carga til e 1024 bytes, de FEC.

Figura 5 Multi-quadro OTN: composto por quatro quadros OTN.

Ao contrrio do padro SDH/SONET, a taxa de transmisso elevada mantendo-se a estrutura multi-quadro do G.709 (4 linhas x 4080 colunas). Isto possvel diminuindo o perodo em que o quadro transmitido (no padro SDH/SONET a estrutura do quadro aumentada e o perodo do quadro de 125 s mantido). No caso da G.709, tem-se para a interface OTU1/ODU1/OPU1 o perodo definido em 48,971 s, para OTU2/ODU2/OPU2 definido em 12,191 s e para OTU3/ODU3/OPU3 definido em 3,035 s. O multi-quadro G.709 OTN constitudo por trs camadas denominadas: OPU (Optical Channel Payload Unit), que a camada utilizada para adaptar a informao que vem do cliente para 7

o transporte em um canal ptico; ODU (Optical Channel Data Unit), que a camada utilizada para controlar o caminho percorrido pelos quadros e OTU (Optical Channel Transport Unit), que a camada de transporte. Estas camadas esto representadas na Figura 6. Estas camadas so encapsuladas como mostrado na Figura 7. O OTU, por ser a camada de transporte, a mais externa, ela encapsula o OPU e o ODU. O ODU a camada de controle e encapsula o OPU, que a camada inferior composta pela carga til. Pode-se dividir o quadro G.709 OTN em trs distintas reas denominadas cabealho, carga til e FEC que sero discutidas a seguir.

Figura 6 Multi-quadro OTN dividido em camadas [VIS02].

Figura 7 Encapsulamento do multi-quadro OTN [GEN06].

2.2.1

Cabealho

O cabealho (overhead) representa a rea do quadro onde esto definidos os bytes de controle da comunicao OTN. Como partes destes controles podem-se citar: funes supervisoras, condicionamento do transporte entre canais pticos, monitoramento de conexes, adaptao do sinal do cliente para transporte sobre um canal ptico, controle de falhas e alarmes. Na G.709 o cabealho dividido em quatro partes denominadas: Frame Alignment Overhead, Optical Channel Payload Unit Overhead (OPU OH), Optical Channel Data Unit Overhead (ODU OH) e Optical Channel Transport Unit Overhead (OTU OH). A Figura 8 ilustra os pontos de terminao de cada 8

uma das partes em uma rede OTN e a Figura 9 ilustra todos os campos do cabealho e suas nomenclaturas.

Figura 8 Terminao OPU, ODU e OTU [NAK05].

Figura 9 Bytes que compem o cabealho e seus nomes [VIS02].

2.2.1.1

Frame Alignment Overhead

O Frame Alignment Overhead responsvel por identificar os quadros OTN G.709 no sistema de transmisso, ou seja, utilizado para determinar onde um quadro comea e onde ele termina. Ele composto por dois campos com funcionalidades distintas. O campo FAS (Frame Alignment Signal) ilustrado na Figura 10 composto por 6 bytes que contm um valor fixo igual a F6F6F6282828 (hexadecimal), sendo F6 definido como OA1 e 28 como OA2. O campo MFAS (Multiframe Alignment Signal) continuamente incrementado multi-quadro aps multi-quadro de 0 at 255. Isto til em estruturas compostas a partir de mais de um multi-quadro, onde o significado da mensagem determinado pela composio da informao ao longo de um perodo que pode 9

variar de 64 a 256 multi-quadros.

Figura 10 Campos OA1 e OA2 do FAS.

2.2.1.2

Optical Channel Payload Unit Overhead (OPU OH)

O Optical Channel Payload Unit Overhead (OPU OH) a estrutura utilizada para adaptar a informao que vem do cliente para o transporte em um canal ptico. Ele contm informaes necessrias para executar a adaptao entre as taxas de transmisso do sinal do cliente e as taxas de recepo do sinal da carga til do OPU. O cabealho do OPU possui: Payload Structure Identifier (PSI), o qual contm 1 byte. No entanto, a informao total do PSI composta por 256 bytes, sendo formada por vrios multiquadros. O primeiro byte do PSI o Payload Type (PT), os demais bytes esto reservados para futura padronizao. O OPU possui tambm cabealhos associados com o mapeamento do sinal do cliente dentro da carga til (JC, PJO e NJO). O byte JC (Justification Control) um cabealho que utilizado quando h jitter entre o relgio do cliente e o relgio do OTU. Trs bytes JC so utilizados para realizar o controle, sendo que utilizado o voto majoritrio, significando que necessrio ter dois entre os trs bytes igualmente assinalados para realizar a justificativa positiva PJO (Positive Justification Opportunity) ou negativa NJO (Negative Justification Opportunity). A justificativa consiste em adicionar ou remover um byte da carga til. possvel realizar a justificativa at um byte positivo (no caso do OPU ter recebido um byte a menos do que o esperado) ou um byte negativo (no caso do OPU ter recebido um byte a mais do que o esperado). O objetivo deixar a carga til sempre do mesmo tamanho. Se a diferena da freqncia do relgio do cliente e do relgio do OPU estiver fora do intervalo de bit rate em que possvel realizar a justificativa enviado um sinal de alarme para o cliente. A Figura 11 descreve os possveis valores de JC. JC 00 01 10* 11 NJO justification byte data byte justification byte justification byte PJO data byte data byte data byte justification byte

* O mdulo que realiza o mapeamento no gera esta sequncia. Devido a erros na transmisso dos bits, o mdulo que realiza o desmapeamento poder recebe-l . Figura 11 Possveis valores do JC e o comportamento dos bytes NJO e PJO.

2.2.1.3

Optical Channel Data Unit Overhead (ODU OH)

O Optical Channel Data Unit Overhead (ODU OH) a estrutura utilizada para controlar o caminho percorrido pelo quadro. Ele inclui informao para manuteno de funes operacionais 10

para dar suporte a canais pticos. O ODU OH formado por bytes de controle dedicados a realizar superviso ponto a ponto para os seis nveis de monitoramento TCM (Tandem Connection Monitoring), estrutura responsvel pelo monitoramento dos sinais que ser apresentada no item 2.3.2.
2.2.1.4 Optical Channel Transport Unit Overhead (OTU OH)

O Optical Channel Transport Unit Overhead (OTU OH) a estrutura utilizada para transportar um ODU por um ou mais pontos de terminao dos canais de conexo ptica, onde a regenerao 3R entra em cena. O cabealho do OTU composto pelo SM (Section Monitoring), o qual contm o Trail Trace Identifier (TTI), que um byte composto por 64 multi-quadros que indica a origem e o destino dos quadros trafegando na rede, o Bit Interleaved Parity (BIP-8), que um byte usado para deteco de erros, o SM contm tambm vrios bits referentes a alarmes, sendo eles: Backward Error Indicator (BEI), Backward Iincoming Alignment Error (BIAE), Backward Defect Indicator (BDI) e Incoming Alignment Error (IAE). O OTU OH tambm composto pelo GCC (General Communication Channel) que um cabealho utilizado para a transmisso de informaes entre pontos de terminao OTU e pelo FEC, que um mtodo de gerao de cdigo de correo de erros. O OTU possui uma caracterstica diferente dos demais cabealhos que o embaralhamento (scrambling) dos seus bytes. O scrambling consiste em embaralhar a informao a ser transmitida utilizando um LFSR, de modo que no seja adicionado nenhum cabealho adicional. Com isto, temse uma proteo para que no ocorram longas seqncias de 0s ou de 1s, o que garante suficiente troca de estado dos bits para facilitar a regenerao do relgio e tambm evita uma possvel repetio da seqncia de alinhamento. A operao de embaralhar realizada em todo o multiquadro OTN G.709, com exceo do campo FAS, e realizada aps a computao do FEC. A Figura 12 ilustra o LFSR, obtido a partir do polinmio gerador 1 + x + x 3 + x 12 + x 16 .

Figura 12 O polinmio gerador

1 + x + x 3 + x 12 + x 16

[ITU02].

2.2.2

Carga til

A carga til (payload) contm as informaes e os controles provenientes dos clientes a serem transportados pela rede OTN. O protocolo a ser encapsulado pode ser SONET/SDH, GbE, 10GbE, ATM, IP e assim por diante. Esta facilidade de poder encapsular diversos protocolos devida caracterstica do OTN, que permite o transporte transparente dos sinais do cliente. 11

2.3

Vantagens do OTN em Relao aos Padres SONET/SDH OTN oferece as seguintes vantagens em comparao com os padres SONET/SDH: Correo de erro mais robusta; Mais nveis de Tandem Connection Monitoring (TCM); Transporte transparente dos sinais do cliente; Switching Scalability (Escalabilidade no chaveamento).

2.3.1

Forward Error Correction (FEC)

O FEC uma das maiores justificativas para a utilizao do padro OTN G.709. A integridade da informao um dos pontos fortes do G.709, que ainda conta com o cdigo de paridade BIP-8 (Bit Interleaved Parity) aplicado sobre a carga til. O FEC utiliza o mtodo de gerao de cdigo de correo de erros Reed-Solomon para produzir informao redundante a ser transmitida sendo utilizada para localizar e corrigir erros pelo receptor. O ganho gerado pela utilizao de correo de erros FEC pode ser de at 6.2 dB, ou seja, devido ao menor nmero de erros na comunicao possvel transmitir um sinal a certa taxa BER (Bit Error Rate) utilizando 6.2 dB a menos de potncia. Tal ganho pode ser utilizado para: Aumentar o comprimento mximo de um nodo ou o nmero de nodos resultando em uma extenso maior da fibra ptica; Aumentar o nmero de canais em um sistema DWDM o qual limitado pela potncia de sada dos amplificadores, isto possvel devido menor potncia por canal; Porm o mais importante que o FEC aumenta o nmero de elementos de redes pticas que podem ser cruzados por um caminho ptico antes que a regenerao 3R seja necessria. Isto possibilita a evoluo dos enlaces ponto a ponto de hoje em dia para redes pticas transparentes utilizando topologia malha.
2.3.2 Tandem Connection Monitoring (TCM)

O monitoramento dos sinais dos padres SONET/SDH dividido em seo, linha e caminho. Um problema surge quando se tem uma situao como mostrada na Figura 13, onde necessrio monitorar um segmento do caminho que passa por outro operador. Na Figura 13 o Operador A precisa que o Operador B carregue o seu sinal. No entanto ele tambm precisa uma forma de monitorar o sinal quando ele passa pela rede do Operador B. Esta a funo do tandem connection. uma camada entre monitorao de linha e monitorao de caminho. SONET/SDH foram modificados para permitir uma nica tandem connection, o G.709 permite seis. 12

Figura 13 Tandem Connection Monitoring [VIS02].

2.3.3

Transporte Transparente dos Sinais do Cliente

O G.709 define o OPUk [ITU03] o qual pode conter um sinal SONET/SDH inteiro. Isto significa que possvel transportar quatro sinais STM-16/OC-48 em um OTU2 sem precisar modificar nenhum cabealho do SONET/SDH. Assim, pode-se dizer que o transporte de sinais do cliente no OTN : Bit-transparent, ou seja, a integridade de todo o sinal do cliente mantida; Timing-transparent, significa que o modo de mapeamento assncrono transfere o tempo de entrada para a outra extremidade; Delay-transparent, por exemplo, se quatro sinais STM-16/OC-48 so mapeados em sinais ODU1 e depois multiplexados em sinais ODU2, suas relaes de tempo so preservadas at que sejam demapeados de volta para ODU1.
2.3.4 Switching Scalability

Quando o padro SONET/SDH foi desenvolvido na dcada de oitenta, sua principal funo era prover tecnologia de transporte para servios de voz. Foram definidos dois nveis de chaveamento: (i) de ordem baixa a 1.5/2 Mbit/s para suportar diretamente os sinais de voz T1/E1 e (ii) de ordem alta a 50/150 Mbit/s para engenharia de trfego. Nveis de chaveamento em maiores taxas de bit no foram pensados [ITU03]. Ao longo do tempo, a taxa de transmisso cresceu enquanto a taxa de chaveamento permaneceu fixa. Concatenaes virtuais e contguas foram introduzidas para solucionar parte dos problemas, j que elas suportam servios acima das taxas de bit dos padres SONET/SDH. Porm, a diferena entre as taxas de bit das linhas ou servios e as taxas de bit de chaveamento continua a existir, mesmo com concatenao. O OTN fornece uma soluo para este problema, sem que seja 13

colocada alguma restrio na taxa de chaveamento de bit. medida que cresce a taxa de bit das linhas, novas taxas de chaveamento de bit so adicionadas. Um operador pode oferecer servios a vrias taxas de bit (2.5G, 10G, etc) independentemente da taxa de bit do comprimento de onda utilizado na transmisso ptica, utilizando as funes de multiplexao e multiplexao inversa contidas no padro OTN.

14

3 Fluxo de Projeto
Devido alta taxa de transmisso do padro G.709, o projeto requer um controle cuidadoso da sntese de hardware. necessrio realizar o projeto dos mdulos visando um alto desempenho para que os requisitos de timing sejam cumpridos. Para melhorar o desempenho de mdulos codificados em VHDL a serem prototipados em FPGA, necessrio realizar uma codificao apropriada e realizar otimizaes durante a sntese fsica. Este processo conhecido como timing closure [WHA04]. A maioria das otimizaes so realizadas por ferramentas EDA (Electronic Design Automation), tendo como base diretivas informadas pelo projetista. Dentre estas otimizaes podese citar o planejamento topolgico otimizado dos mdulos no FPGA (planta baixa) e a sntese da rvore de relgio, bem como a otimizao do roteamento e do posicionamento das clulas. Para verificar o cumprimento dos requisitos do projeto, necessria a anlise esttica de timing (Static Timing Analysis), STA. utilizada a plataforma ISE (Integrated Software Environment) como ferramenta para o ambiente de projeto. A ferramenta engloba as etapas necessrias para a implementao de dispositivos reconfigurveis da Xilinx: sntese lgica, sntese fsica, STA e simulaes realizadas durante as diversas etapas do desenvolvimento do projeto. Cada etapa realizada por uma ferramenta especfica. O fluxo utilizado para que o projeto alcance o desempenho requisitado apresentado na [WHA04].

Figura 14 Fluxo de projeto utilizado no desenvolvimento dos mdulos propostos no trabalho.

15

Para realizar o projeto da arquitetura em um dispositivo reconfigurvel de modo a atender as restries de temporizao e de rea necessrio realizar trs atividades de projeto, sendo elas: captura, implementao fsica e validao. 3.1 Captura Durante a atividade de captura, o projeto desenvolvido (codificado) e sintetizado. Durante a realizao desta atividade verifica-se o correto comportamento do projeto em relao codificao. Utiliza-se o simulador ModelSim para tal verificao. A prxima etapa a realizao da sntese lgica, etapa executada pela ferramenta XST (Xilinx Synthesis Technology). A sntese lgica tem como objetivo principal fazer o mapeamento de descrio abstrata, tipicamente no nvel de RTL (Register Transfer Level) para elementos de hardware de uma tecnologia especfica, obtendo uma descrio mais detalhada do circuito em termos de portas lgicas [CAR01]. Espera-se ainda nesta etapa que ocorra uma minimizao lgica do circuito, de forma a reduzir rea do mesmo. Este processo guiado por restries (constraints). Existem diferentes requisitos e restries tais como de rea e de temporizao onde possvel, por exemplo, definir a freqncia de relgio. Obtido o circuito mapeado possvel realizar a simulao lgica, a qual consiste em verificar o correto funcionamento do circuito mapeado para uma tecnologia especfica, ou seja, verificar se o mesmo realiza a funo desejada. Nesta etapa podem ser analisados os atrasos dos caminhos crticos do circuito, verificando se o circuito atende as restries temporais do projeto. Caso o circuito no funcione corretamente o projetista deve voltar para etapa de sntese lgica e ajustar algumas restries ( a: ajuste de restries), ou para a etapa de codificao HDL e recodificar o circuito para atender as restries do projeto ( b: ajuste de restries).

3.2

Implementao Fsica A segunda atividade a de implementao fsica do projeto. Nesta atividade inserem-se

restries de temporizao referentes aos atrasos dos caminhos crticos verificados na etapa de simulao lgica, de forma a guiar o posicionamento e roteamento do projeto. Neste estgio realizada a sntese fsica, a qual realiza o mapeamento fsico em um dispositivo reconfigurvel. Este processo tem por objetivo especificar a rea em que os mdulos se localizaro no dispositivo (planta baixa), em seguida realizando o posicionamento das clulas e definio da geometria das interconexes entre estas clulas (posicionamento e roteamento). A planta baixa tem como objetivo determinar a geometria dos componentes fsicos e o posicionamento dos pinos, procurando atender as restries especificadas no projeto. Estes procedimentos consistem em identificar os blocos ou mdulos que devem ficar juntos e organizlos () a fim de aumentar o desempenho do circuito como um todo [WHA04]. Uma planta baixa 16

inicial criada aps a etapa de sntese lgica servindo de guia para o projeto fsico. Se os tamanhos dos componentes ou dos fios verificados aps a sntese fsica forem significativamente diferentes dos estimados na planta baixa inicial, pode-se realizar uma nova etapa de planta baixa de forma que as restries impostas sejam posteriormente atendidas [WOL94].

Figura 15 Planejamento topolgico do circuito [WHA04].

As etapas de posicionamento e roteamento so realizadas automaticamente pelas ferramentas de CAD [BRO92]. O posicionamento atribui uma localizao especfica para os diversos blocos do projeto dentro do dispositivo reconfigurvel a partir de estimativas dos tamanhos dos blocos e dos nmeros de fios entre esses blocos [WOL94]. A busca por uma minimizao dos atrasos em caminhos crticos, do comprimento total, da densidade mxima e do nmero de conexes faz parte desta etapa. A qualidade do posicionamento define a dificuldade do roteamento. O roteamento estabelece rotas de conexo entre as portas lgicas e entre estas e os pinos de E/S. Esta etapa geralmente dividida em roteamento global e roteamento detalhado. O roteamento global divide a regio de roteamento em menores sees que podem ser projetadas independentemente, simplificando assim o roteamento detalhado dessas sees. O roteamento detalhado realiza a conexo propriamente dita entre clulas e pinos. H ainda outras etapas de roteamento, realizadas por ferramentas especficas, como roteamento de alimentao e roteamento de relgio. Aps o posicionamento das clulas e a definio da geometria das conexes possvel conhecer o atraso de cada clula e conexo do circuito. Com isso, possvel realizar a simulao 17

ps-layout, o qual contm informaes de atraso do circuito, a fim de realizar uma simulao com atrasos reais, conhecida como simulao SDF (Standard Delay Format). 3.3 Validao A atividade final do fluxo de projeto a validao do projeto atravs de simulao com atrasos e prototipao, a qual consiste em validar o projeto em hardware. Considera-se a simulao com atraso uma etapa importantssima no desenvolvimento do projeto, pois onde so considerados os atrasos de cada clula e de conexes. Aps realizar uma anlise ser possvel saber se os requisitos de temporizao do projeto foram ou no cumpridos. Caso as restries do projeto no venham a ser cumpridas, o projetista deve voltar para as etapas de planta baixa e sntese fsica para ajustar estes requisitos ( c: ajuste de requisitos). Na validao, a anlise de timing esttico determina se o projeto alcana o desempenho desejado. A partir da atividade de validao o projetista descobre em que etapas do fluxo de projeto possvel fazer alteraes para que ocorra um aumento no desempenho do circuito. A validao em hardware o processo que determina se o projeto est funcionando corretamente em um dispositivo reconfigurvel. Esta etapa realizada em nvel de implementao fsica, atravs de testes em um dispositivo reconfigurvel. A anlise lgica dos sinais internos do circuito que se encontram no dispositivo realizada com o uso da ferramenta ChipScope. Esta permite ao projetista visualizar o funcionamento do hardware da mesma forma que faria com um analisador lgico, sem a necessidade da utilizao de equipamentos de teste. Para realizar as simulaes apresentadas neste documento foi desenvolvido um testbench, este responsvel pela gerao de estmulos de entrada para verificao do comportamento do circuito. importante a utilizao do mesmo testbench para a simulao comportamental e temporal, pois necessrio verificar se os atrasos introduzidos pela implementao do circuito numa dada tecnologia no alteram a sua funcionalidade. Para o presente trabalho as etapas de sntese e simulaes foram realizadas tendo como alvo o dispositivo FPGA Virtex4 XC4VFX100 com speed grade -10.

18

4 Mdulo Alinhador de Quadro


Um mdulo de interface com a fibra ptica, externo ao contexto deste trabalho, responsvel por paralelizar o fluxo de dados a 10,688 Gbps em 16 canais diferenciais (LVDS), cada um a uma taxa de 669,3125 Mbps. O FPGA responsvel por receber cada um destes fluxos, paralelizando-os em 4 bits (Figura 16). Desta forma, a freqncia interna de trabalho reduzida a 167,33 MHz, e os dados disponibilizados em uma largura de 64 bits.

Figura 16 Interface com a fibra ptica.

O mdulo alinhador de quadro tem ento como restrio de projeto trabalhar com um fluxo de dados de largura 64 bits, operando a uma freqncia de 167,33 MHz. No decorrer do trabalho adotada como freqncia de operao 200 MHz, o que resulta em uma taxa de 12,8 Gbps. Esta maior taxa de operao adotada como cenrio de pior caso, permitindo o desenvolvimento de um projeto mais robusto, levando em conta que as principais consideraes quanto ao alinhamento de multi-quadros so alta confiabilidade e resposta rpida [CHO03]. Para delimitar o incio de cada multi-quadro OTN utilizada uma seqncia de bytes definida pela palavra em hexadecimal F6F6F6282828. De acordo com o padro OTN, pode-se utilizar um subconjunto destes seis bytes para realizar o alinhamento e o sincronismo inicial. Optou-se por utilizar um subconjunto de trs bytes, sendo eles os seguintes: F6XXF628XXXX, sendo que X representa posies inicialmente desconsideradas na procura pela seqncia de alinhamento. Esta seqncia de bytes pode estar comeando em qualquer bit dos 64 bits recebidos nos pinos de entrada, inclusive o caso de estar comeando nos ltimos bits. O que nos levar a ter os bits restantes no incio da prxima palavra de 64 bits recebida pelos pinos de entrada (Figura 17, caso 1) denominada palavra futura. O incio de cada multi-quadro composto por esta seqncia, por isso ento ter que se 19

realizar a identificao bem como o deslocamento dos bits das palavras de 64 bits recebidas. O mdulo alinhador de quadro formado por sub-mdulos que consistem em identificar a ocorrncia da seqncia de alinhamento, identificar em qual bit a seqncia est comeando, realizar o deslocamento de modo que a seqncia de alinhamento comece no incio da palavra de 64 bits (Figura 17, caso 2) e alimentar a mquina de estados que realiza o sincronismo.

Figura 17 Exemplo de desalinhamento e posterior alinhamento.

Uma vez realizado o alinhamento, todas as palavras seguintes do multi-quadro tero que ser deslocadas o mesmo nmero de bits. 4.1 Arquitetura

Como citado anteriormente, o alinhador de quadro dividido em sub-mdulos. Cada submdulo foi separado por um registrador, formando ento um pipeline (Figura 18). Esta diviso necessria para que seja atendida a restrio de tempo de propagao combinacional do projeto, igual a 5 ns. Primeiramente, os 64 bits da palavra atual (palavra armazenada no registrador do 1 estgio) e os 64 bits da palavra futura (palavra que ainda no entrou no primeiro estgio) so processados pelo sub-mdulo comparador parcial, que responsvel por identificar a ocorrncia da seqncia de alinhamento a partir da verificao de um subconjunto de trs bytes. necessrio realizar esta verificao 64 vezes, pois a seqncia de alinhamento pode estar comeando em qualquer bit da palavra atual. Uma vez identificada esta subseqncia de alinhamento, so passados 64 bits ao submdulo gerador de endereo. Havendo alinhamento um destes bits estar em nvel lgico 1 indicando onde o incio da seqncia de alinhamento comeou. De posse do ndice onde este bit est localizado gerado o endereo em que o mesmo se encontra e o sinal match indica a ocorrncia da seqncia de alinhamento atuando como enable do registrador de endereo. O mdulo deslocador utiliza este endereo, que corresponde ao nmero de bits a serem deslocados para realizar o deslocamento correto entre a palavra atual e a palavra futura. Por fim, realizada uma ltima verificao pelo comparador completo, que confere se os 6 bytes da seqncia de alinhamento esto corretos e alimenta a mquina de estados que realiza o controle do sincronismo de multi-quadros, que ser apresentada posteriormente na integrao dos mdulos desenvolvidos.

20

Figura 18 Arquitetura do mdulo alinhador de quadro com pipeline.

Para a implementao dos mdulos que compem o alinhador de quadro fez-se uso de lgica combinacional tanto na sua arquitetura como na codificao, para ganho de desempenho tanto em rea utilizada como em velocidade de processamento. Devido aos requisitos do projeto, esta no foi uma escolha, e sim, uma necessidade. A partir de estudos realizados utilizando a opo FPGA EDITOR presente na ferramenta ISE, foi possvel identificar como a codificao estava sendo mapeada fisicamente. Foi verificado que a ferramenta de sntese inferia multiplexadores quando eram realizadas operaes lgicas com mais de quatro entradas, o que resultava em um acrscimo no caminho crtico. Assim, optou-se por utilizar portas lgicas de quatro entradas nos mdulos desenvolvidos.

21

4.1.1

Comparador Parcial

O sub-mdulo comparador parcial, cujo cdigo VHDL encontra-se no Apndice I, responsvel pela identificao de um subconjunto de trs dos seis bytes da seqncia de alinhamento, sendo estes F6XXF628XXXX. Como a seqncia de alinhamento pode estar comeando em qualquer bit dos 64 bits da palavra recebida, so necessrias 64 instncias deste submdulo. O sinal de sada, que indica a ocorrncia da seqncia de alinhamento, um vetor de 64 posies onde cada posio do vetor corresponde ao nmero de bits deslocados em que a seqncia foi encontrada. Cada bit deste vetor a sada de uma instncia do comparador parcial. A Figura 19 ilustra uma instncia em que a verificao feita exatamente nos primeiros bits da palavra atual. Neste caso, se a sada indicada por C[0] estiver em nvel lgico 1, significa que a seqncia de alinhamento j est na posio correta e no precisa ser deslocada. J a Figura 20 ilustra uma instncia em que a verificao est comeando no ltimo bit da palavra atual, o bit 63. Os demais bits, do 64 ao 94 so da palavra futura, sendo o bit 64 equivalente ao bit 0 da palavra futura e o bit 94 equivalente ao bit 30 da palavra futura. Neste caso, se a sada indicada por C[63] estiver em nvel lgico 1, significa que a seqncia de alinhamento est desalinhada em 63 bits.

Figura 19 Instncia do Comparador Parcial sem deslocamento.

Figura 20 Instncia do Comparador Parcial com deslocamento de 63 bits.

Portanto, no sinal de sada composto por 64 bits, o bit que estiver em nvel lgico 1 indica o bit de incio da seqncia de alinhamento. A prxima etapa consiste em transformar o ndice onde este bit se encontra em um endereo para realizar o deslocamento necessrio.

63 64 65 66 67 68 69 70 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

22

4.1.2

Gerador de Endereo

O sub-mdulo gerador de endereo responsvel pela converso do sinal controle, proveniente da sada do comparador parcial, para um endereo de 6 bits. Este endereo corresponde ao ndice em que a sada do comparador parcial estava em nvel lgico 1 (Figura 21). Tambm cabe ao gerador de endereo a tarefa de acionar o sinal match toda vez que o sinal controle tiver um de seus bits em nvel lgico 1.

Figura 21 Exemplo de converso realizada pelo Gerador de Endereo.

A arquitetura utilizada no sub-mdulo gerador de endereo est representada na Figura 22. Cada instncia computa um bit do endereo atravs da operao lgica OU. As entradas das portas lgicas OU correspondem aos bits que, para sua identificao por um endereo binrio, iro utilizar aquele bit de endereo.
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46 47 50 51 54 55 58 59 62 63

endereo(0)

endereo(1)

4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 62 63

endereo(2)

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

endereo(4)

Figura 22 Instancias do Gerador de Endereo.

O endereo gerado pelo mdulo corresponde ao bit em que a seqncia de alinhamento est iniciando, que por sua vez indica tambm o nmero de bits que devero ser deslocados pelo submdulo deslocador. 23

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45 46 47 56 57 58 59 60 61 62 63

endereo(3)

endereo(5)

4.1.3

Deslocador

O sub-mdulo deslocador tem como objetivo realizar o deslocamento da seqncia de alinhamento de N posies, onde N varia de 0 a 63. O nmero de posies a serem deslocadas passado pelo gerador de endereo. Usou-se um arranjo logartmico de multiplexadores 2x1, pois uma LUT (LookUp Table) tem 4 entradas. Assim, otimizou-se a rea e o tempo de processamento. A Figura 23 ilustra um deslocador de 8 bits, o qual possui trs estgios (colunas de multiplexadores). Neste caso, cada estgio realiza o deslocamento de 1, 2 ou 4 bits. Para o deslocamento de 64 bits so necessrios seis estgios ( 2 6 = 64 ). O princpio de funcionamento do deslocador de 64 bits exatamente o mesmo do de 8 bits, porm o nmero de multiplexadores cresce exponencialmente, o que torna sua ilustrao grfica muito complicada. O endereo recebido entra como controle dos multiplexadores. Tendo como exemplo a Figura 23, teramos um endereo de 3 bits, sendo que as entradas identificadas pelos nmeros 1 at 8 podem ser entendidas como a palavra atual, e as entradas identificadas por N_1 at N_7 podem ser entendidas como a palavra futura. Caso se tivesse, por exemplo, o endereo 010, teramos que deslocar 2 bits pois 010 em binrio corresponde a 2 em decimal. De acordo com a figura, o bit menos significativo o controle dos multiplexadores que esto ligados diretamente a sada, o bit mais significativo o controle dos multiplexadores que esto ligados na entrada e o bit intermedirio o controle dos multiplexadores intermedirios. Neste exemplo, colocando os multiplexadores intermedirios em nvel lgico 1 se ter um deslocamento de 2 bits, o que est de acordo com a figura.

Figura 23 Deslocador de 8 bits.

24

Devido restrio de timing deste projeto, dividiu-se o deslocador de 64 bits em trs estgios de pipeline para diminuir o tempo de processamento, sendo que cada estgio do pipeline formado por duas colunas de multiplexadores.
4.1.4 Comparador Completo

O sub-mdulo Comparador Completo muito parecido com o Comparador Parcial. A diferena est na quantidade de bytes verificados, que no caso do comparador completo so verificados todos os 6 bytes da seqncia de alinhamento, sendo estes F6F6F6282828. Outra diferena est no nmero de instncias. Como o comparador completo encontra-se aps o mdulo que realiza o deslocamento, ele s precisa verificar a ocorrncia da seqncia de alinhamento no incio da palavra atual. Essa verificao assegura que a seqncia de alinhamento est com todos os seus bytes corretos, uma vez que no mdulo comparador parcial so verificados apenas 3 dos 6 bytes. Se fossem utilizadas 64 instncias do comparador completo haveria alm do acrscimo de rea, um tempo de processamento muito elevado caso fossem verificados todos os 6 bytes. A Figura 24 ilustra o mdulo Comparador Completo, o qual gera na sada o sinal fullmatch, este sinal alimenta a mquina de estados que controla o sincronismo dos multi-quadros sinalizando a ocorrncia da seqncia de alinhamento.

4.2

Validao A validao do mdulo Alinhador de Quadro se d atravs de simulao com atraso, a qual

contm os tempos de atraso das portas lgicas utilizadas para a implementao do mdulo e tambm tempos de atraso referentes ao roteamento, permitindo assim uma verificao do mdulo bastante realista. Para realizar a verificao do mdulo Alinhador de Quadro preciso gerar estmulos externos como entrada do mdulo. No caso do mdulo sendo validado tm-se como entradas os seguintes sinais: clock, reset e palavra futura (de fato o D_in da Figura 18, pgina 21). A forma de onda apresentada na Figura 25 mostra a simulao com atraso do Alinhador de 25

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

Figura 24 Comparador Completo.

Quadro.

Figura 25 Simulao do mdulo Alinhador de Quadro com atraso.

Para verificar o correto funcionamento do mdulo, inicialmente foi gerada a seqncia de alinhamento deslocada 63 bits de sua posio original (Figura 25, ndice 1). Temos na palavra atual o valor 0000000000000001 (hexadecimal), que corresponde a 0000000000000000000000000000000000000000000000000000000000000001 (binrio) e EDEDEC505051FFFE (hexadecimal) na palavra futura, que corresponde a 1110110111101101111011000101000001010000010100011111111111111110 (binrio). Da mesma maneira que foi mostrado na Figura 17 (pgina 20) possvel observar a seqncia de alinhamento deslocada, neste caso em 63 bits. Aps um ciclo de relgio indicado o bit inicial da seqncia de alinhamento pelo sinal controle (Figura 25, ndice 2), que aparece com valor 0000000000000001 (hexadecimal) que corresponde a 0000000000000000000000000000000000000000000000000000000000000001 (binrio), e tambm o sinal match passa a ter nvel lgico 1 (Figura 25, ndice 3), indicando que a seqncia de alinhamento foi encontrada. A prxima etapa consiste em gerar o endereo a ser utilizado pelo deslocador (Figura 25, ndice 4). O endereo gerado 63, valor que confere com o ndice do bit com valor lgico 1 no sinal controle e com o nmero de bits que a seqncia de sincronismo est deslocada. Tendo o endereo, tm-se os trs estgios do deslocador (Figura 25, ndices 5, 6 e 7). A palavra de sada do sub-mdulo deslocador tem o valor F6F6F6282828FFFF (hexadecimal) que corresponde a 1111011011110110111101100010100000101000001010001111111111111111 (binrio), demonstrando que o deslocamento das palavras atual e futura foi feito corretamente. Por fim, o alinhamento confirmado pelo sinal fullmatch (Figura 25, ndice 8) em nvel lgico 1. Tendo ento a sua funcionalidade validada, tambm mostrado na Figura 25 o tempo de propagao combinacional do mdulo alinhador de quadro, que 2,830 ns, indicado entre dois cursores amarelos. Tempo que est de acordo com o requisito que se tem no projeto, que de 5 ns.

26

4.3

Resultado de rea No atual projeto, alm do requisito de tempo de propagao combinacional tem-se tambm

um requisito que diz respeito utilizao de rea da placa em que os mdulos sero prototipados. Os dados de utilizao de rea do FPGA referentes ao mdulo alinhador de quadro so apresentados na Tabela 2.

Tabela 2 Utilizao do FPGA pelo mdulo alinhador de quadro.

Resumo da utilizao do dispositivo Xilinx Virtex4 XCV4FX100 (valores estimados) Utilizao Lgica Utilizado Disponvel Utilizao Nmero de Slices 632 42176 1% Nmero de Slice Flip Flops 478 84352 0% Nmero de LUTs de 4 entradas 903 84352 1% possvel observar que o mdulo alinhador de quadro utiliza apenas 903 LUTs de um total de 83352 LUTs disponveis no dispositivo, o que representa uma utilizao de aproximadamente 1%.

27

5 Mdulo Embaralhador e Desembaralhador

Como visto anteriormente, a operao de scrambling consiste em embaralhar a informao a ser transmitida utilizando um LFSR, que uma tcnica de gerao de dados pseudo-aleatrio. Com isto, tem-se uma proteo para que no ocorram longas seqncias de 0s ou de 1s, o que garante suficiente troca de estado dos bits para facilitar a regenerao do relgio e tambm evita uma possvel repetio da seqncia de alinhamento. A operao de embaralhar realizada em todo o multi-quadro OTN G.709, com exceo do campo FAS. A funcionalidade do embaralhador e do desembaralhador idntica, uma vez que a operao de embaralhamento simtrica. Basta passar um dado previamente embaralhado pelo sub-mdulo que ele sair desembaralhado. Neste sub-mdulo sero abordadas duas arquiteturas diferentes para a implementao do embaralhador e do desembaralhador.

5.1

Arquitetura Utilizando Gerador LFSR Primeiramente, para se realizar a implementao do mdulo embaralhador utilizou-se a

arquitetura padro referida em [ITU03], onde a gerao da seqncia de embaralhamento feita em hardware por LFSRs. Para o embaralhador do OTN foi definido como padro o polinmio gerador 1 + x + x 3 + x 12 + x 16 . A Figura 26 mostra um diagrama de blocos do mdulo LFSR em hardware.

Figura 26 Arquitetura de embaralhamento utilizando LFSR [SAW02].

Por se tratar de um LFSR serial, esta arquitetura tem de ser replicada 64 vezes para que os 64 bits de entrada possam ser embaralhados em um nico ciclo de relgio. As instncias replicadas precisam tambm estar interligadas para que haja propagao dos sinais. A Figura 27 ilustra um exemplo da arquitetura replicada, neste caso para uma entrada de 8 bits.

28

Figura 27 Arquitetura de embaralhamento utilizando LFSR replicada e interligada.

Contudo, devido ao caminho crtico esta arquitetura no conseguiu cumprir o requisito de timing do projeto. A Tabela 3 apresenta uma comparao do desempenho da arquitetura de embaralhamento utilizando LFSR entre diferentes tamanhos de palavras. O FPGA utilizado para as medies foi um Virtex-II com speed grade -5.
Tabela 3 Desempenho do embaralhador para palavras de tamanhos diferentes [SAW02].

possvel observar que no caso do padro OTN, para uma palavra de 32 bits a mxima freqncia de relgio 85 MHz. Poder-se-ia concluir que para 64 bits este valor ficaria em aproximadamente 40 MHz. Utilizando uma Virtex-4 esta freqncia provavelmente aumentar, mas mesmo assim no suficiente para se chegar aos 200 MHz requeridos no projeto. Portanto, teve-se que elaborar uma nova arquitetura que tivesse um tempo de processamento menor.

29

5.2

Arquitetura Utilizando Memrias BRAM Esta arquitetura foi desenvolvida tendo em vista um ganho no desempenho. Para isto, ao invs

de se computar as seqncias do polinmio utilizando LFSR em hardware, o que realmente demanda certo processamento, foi utilizada uma abordagem mais simples em que todas as seqncias do polinmio embaralhador foram inicializadas em memrias BRAM (Block RAM). Dado que o polinmio gerador padro do OTN de grau 16, tem-se ento 216 1 bits, o que equivale a 65535 bits pseudo-aleatrios. Para se alocar 65535 bits foram utilizadas quatro BRAM de 1024 x 16 bits. A Figura 28 mostra a arquitetura desenvolvida, onde o sinal entrada a palavra de 64 bits proveniente do deslocador e ser submetida operao lgica XOR com a palavra de 64 bits proveniente das memrias BRAM, identificada na figura pelo sinal s tambm de 64 bits.
BRAM (1024 X 16)
entrada s

BRAM (1024 X 16) BRAM (1024 X 16) BRAM (1024 X 16)


CONTADOR address

saida
CK

Figura 28 Arquitetura de embaralhamento utilizando memrias BRAM.

As seqncia do polinmio contidas nas memrias foram organizados de forma a otimizar o acesso, portanto cada palavra de 64 bits foi dividida entre as quatro BRAM, sendo ento 16 bits por memria. Desta forma possvel ter os 64 bits com leituras em paralelo. Para realizar o endereamento das memrias utilizou-se um contador. Este contador parte do sub-mdulo chamado gerador de endereo da memria. Este mdulo tem tambm a tarefa de realizar a repetio da seqncia do polinmio quando necessria, pois como pde ser visto anteriormente, o multi-quadro OTN tem 16320 bytes, ou seja, 130560 bits, o que no fecha com os 65535 bits gerados pelo polinmio. Portanto aps 65535 bits a seqncia ter que ser repetida, completando quase duas seqncias em um multi-quadro. Ainda h um pequeno detalhe, por serem 65535 bits gerados pelo polinmio, fica faltando um ltimo bit na ltima palavra de 64 bits. Esta ausncia de um bit requer que seja executada uma operao de deslocamento de um bit entre a palavra em que este bit est faltando e a prxima palavra, que por sua vez a primeira palavra a ser repetida. Para tornar esta operao possvel foram utilizadas memrias com dupla porta, permitindo leituras de posies distintas de uma mesma memria em paralelo. Esta operao feita em todos os multi-quadros.

30

5.3

Validao Para a validao do sub-mdulo embaralhador utilizou-se da seguinte estratgia: usar a

prpria seqncia do polinmio como entrada do sub-mdulo embaralhador acrescida da seqncia de alinhamento. Assim, como visto na Figura 28, tem-se uma operao lgica XOR entre duas palavras que sero sempre iguais, resultando em uma sada sempre em zero com exceo da seqncia de alinhamento que no embaralhada. Utilizando esta estratgia conseguiu-se realizar a visualizao e a validao das formas de ondas mais facilmente. A Figura 29 mostra o comportamento do mdulo embaralhador em uma simulao com atraso utilizando a estratgia adotada.

Figura 29 Simulao do mdulo embaralhador com atraso.

Aps a identificao da seqncia e alinhamento, representada pelo sinal fullmatch proveniente do sub-mdulo alinhador de quadro (Figura 29, ndice 1), o gerador de endereo do embaralhador resetado e comea a incrementar o seu valor (Figura 29, ndice 2). O sinal sa comea a receber o contedo da memria, o sinal sb o primeiro bit da prxima palavra na memria e somente utilizado no momento de realizar o deslocamento devido ausncia de um bit mencionada anteriormente. O sinal s ento a composio do sinal sa e sb, de acordo a existncia, ou no, do deslocamento. Um ciclo de relgio depois de identificada a seqncia de alinhamento, a mesma pode ser observada na entrada do sub-mdulo embaralhador (Figura 29, ndice 4) e o sinal init, que responsvel pela inicializao do embaralhamento, acionado. A sada ento comea a ser gerada, primeiramente com a seqncia de alinhamento, que no embaralhada (Figura 29, ndice 5). Um ciclo de relgio aps a seqncia de alinhamento aparecer na sada percebe-se que o embaralhador comeou a atuar, deixando a sada do sub-mdulo sempre em zero. possvel observar no ciclo anterior a sada zerada, o sinal s e o sinal entrada com o mesmo valor, no caso, 31

4E9105D2131F77E7. Com isto possvel validar o sub-mdulo embaralhador e por conseqncia o desembaralhador, que so na prtica o mesmo. Para se obter o valor original sem embaralhamento basta colocar a sada gerada pelo embaralhamento como entrada no desembaralhamento. Tendo ento a sua funcionalidade validada, tambm mostrado na Figura 29 o tempo de propagao combinacional do mdulo Embaralhador, que 3,284 ns, indicado entre dois cursores amarelos. Tempo que est de acordo com o requisito que se tem no projeto, que de 5 ns. 5.4 Resultado de rea Seguindo o mesmo procedimento apresentado no mdulo alinhador de quadro. Temos os dados de utilizao referentes ao mdulo embaralhador apresentados na Tabela 4.

Tabela 4 Utilizao do FPGA pelo mdulo embaralhador.

Resumo da utilizao do dispositivo Xilinx Virtex4 XCV4FX100 (valores estimados) Utilizao Lgica Utilizado Disponvel Utilizao Nmero de Slices 115 42176 0% Nmero de Slice Flip Flops 180 84352 0% Nmero de LUTs de 4 entradas 205 84352 0% Nmero de RAMB16s 4 376 1% Assim como ocorreu no mdulo alinhador de quadro, o nmero de LUTs utilizadas representa muito pouco, neste caso foram utilizadas 205 LUTs, quantidade que inferior a 1% da quantidade total disponvel no dispositivo. Neste caso tambm foram utilizadas 4 memrias RAMB16, o que representa 1% da quantidade total de RAMB16 disponvel.

32

6 Mdulo Extrator de Cabealhos


Como visto anteriormente, o cabealho representa a rea do quadro onde esto definidos os bytes de controle da comunicao OTN. As informaes contidas no cabealho esto divididas em quatro quadros OTN, sendo 16 bytes por quadro, totalizando 64 bytes por multi-quadro OTN (Figura 9, pgina 9). Nestes bytes existem campos relacionados a informaes de identificao da origem e do destino, identificao do operador, identificao do tipo de dado a ser ou sendo transportado bem como identificao de falhas e alarmes variados. Estas informaes precisam ser interpretadas e processadas, o que ser feito pelo software embarcado presente na plataforma de prototipao externa ao contexto deste trabalho a qual este projeto ser integrado. A extrao dos cabealhos consiste em identificar em quais palavras do quadro cada tipo de cabealho se encontra e armazen-los em memrias BRAMs. Os cabealhos sero armazenados em trs memrias lgicas distintas, referente aos trs diferentes tipos de cabealhos (ODU, OTU e OPU). Nestas memrias estaro armazenados os dados referentes aos ltimos 256 multi-quadros. 6.1 Arquitetura

A arquitetura responsvel pela extrao dos cabealhos composta por sete BRAMs de 2048x1 bytes. Estas memrias possuem duas portas de 8 bits disponveis para escrita e leitura dos dados. Os cabealhos foram organizados nas memrias de forma a otimizar a escrita em paralelo dos dados, tornando possvel a extrao dos cabealhos contidos nas palavras de entrada em no mximo trs ciclos de relgios. A Figura 30 ilustra as sete memrias com seus cabealhos associados.

Figura 30 Organizao dos cabealhos nas memrias.

33

Para que seja possvel realizar a extrao dos cabealhos devemos saber em quais bytes eles se encontram. A partir das informaes apresentadas nas Figura 5 e Figura 9 (pginas 7 e 9) obtiveram-se os dados apresentados na Tabela 5. Esta tabela indica em qual palavra, byte e quadro esto localizados os dados referentes aos cabealhos em um multi-quadro. Alm de indicar quantos ciclos de relgio so necessrios para realizar o armazenamento nas memrias.

Tabela 5 Localizao dos cabealhos no multi-quadro

Palavra 1 2 511 512 1021 1022 1531 1532

Bytes 0a7 8 a 15 4080 a 4087 4088 a 4095 8160 a 8167 8168 a 8175 12240 a 12247 12248 a 12255

Parte do Cabealho OH1 OH2 OH1 OH2 OH1 OH2 OH1 OH2

Quadro 1 1 2 2 3 3 4 4

Ciclos de Relgio 1 2 2 3

Como visto anteriormente, cada quadro OTN contm 16 bytes de cabealhos. O campo indicado como Parte do Cabealho indica se esta palavra esta localizada nos primeiros 8 bytes (OH1) ou nos 8 bytes seguintes (OH2). Lembrando, cada quadro possui 255 colunas por 16 linhas. A cada ciclo de relgio recebe-se simultaneamente 8 bytes, ou seja, meia coluna. Assim, o tempo total para a recepo de um quadro inteiro de 510 ciclos de relgio. A cada quadro tem-se ento 508 ciclos de relgio para que a extrao seja realizada. Estes ciclos correspondem ao tempo que o transponder fica recebendo a carga til e o FEC. Na arquitetura desenvolvida utiliza-se no pior caso 3 ciclos por quadro para a extrao. A partir destas informaes possvel extrair todos os bytes do cabealho, no entanto precisamos extrair cada campo separadamente, uma vez que temos campos de uma mesma palavra que so armazenados em memrias distintas. Esta operao realizada de acordo com a separao dos campos do cabealho apresentada na Figura 9 e o armazenamento nas memrias feito de acordo com a Figura 30. Com isto tem-se um sinal para cada campo do cabealho contendo o seu endereo atual na memria, uma vez que so armazenados os ltimos 256 valores. Campos do cabealho em que suas informaes so compostas a partir de mais de um multi-quadro necessitam de um sinal que avise quando estas informaes esto prontas para serem lidas, como o caso dos campos FTFL e TTI. Esta arquitetura encontra-se codificada quase que em sua totalidade, faltando pequenos detalhes. Porm, devido s limitaes de tempo intrnsecas a um Trabalho de Concluso de curso no foi possvel realizar a validao do mdulo Extrator de Cabealhos at o momento da entrega do presente documento. 34

7 Integrao e Prototipao
Aps a validao individual de cada um dos mdulos que compe o projeto, realizou-se a integrao dos mesmos, o que inclui tambm a mquina de estados que controla o sincronismo dos multi-quadros. A Figura 31 ilustra o diagrama de blocos da arquitetura integrada. Lembrando que o sub-mdulo deslocador possui trs estgios de pipeline internos.

63..0

entrada

63..0

FF1

Comparador es Parciais
controle

63..0

FF2

63..0

FF3

63..0

Deslocador
end

63..0

Comparador Completo
fullmatch

FF4

63..0

FF5

63..0

Desembaralhador 63..0 FF6


sa sb address rst init

63..0

Extrator de cabealhos
63..0 63..0 63..0

63..0

saida

ODU memrias

63..33

63..1 9..0 5..0

63..0 63..0

63..0

FFC 63..0

Gerador de Endereo
match

5..0

FFEND

Gerador de endA Endereo da Memria


endB

sa

Memria
sb

FFULL 1

FFULL 2

EN

No achou o FAS
N lu g o a c h qu ar ce ou o ad ros rto e FAS co m 5 no ns ec mul uti tivo s

OOF 1
o u ho m ltiac m u mu o e N AS imo F rx ro p uad q

Achou o FAS

OOF 2

IF Achou FAS no lugar certo

Figura 31 Diagrama de blocos da arquitetura integrada.

A mquina de estados ilustrada na Figura 31 responsvel pelo sincronismo dos multiquadros. Ela foi elaborada de acordo com sua especificao em [ITU04]. O estagio inicial o outof-frame, indicado na figura por OOF 1. Neste estado, no haver transio enquanto no for encontrada a seqncia de alinhamento, referida na figura como FAS. Uma vez encontrada a seqncia de alinhamento entra-se no estado OOF 2. Este estado deve confirmar a presena da seqncia de alinhamento no prximo multi-quadro, entrando ento no estado inframe, referido na figura como IF. Caso a seqncia de alinhamento no seja confirmada em OOF 2, o prximo estado volta a ser o OOF 1. Ao se entrar no estado IF, assume-se que os multi-quadros esto sincronizados. A mquina de estados continuar no estado IF enquanto no encontrar cinco multi-quadros consecutivos sem a seqncia de alinhamento. Neste caso o prximo estado ser o OOF 1, caracterizando a perda do sincronismo.

35

A u ch m m p ou o ul r F ti- x qu im AS ad o em ro

OPU

OTU

7.1

Estrutura de Teste Para realizar a validao dos mdulos integrados foi desenvolvido um programa em C++

capaz de gerar multi-quadros para serem inseridos como entrada dos mdulos. O programa gerador de quadros foi desenvolvido para facilitar a criao dos arquivos texto contendo os multi-quadros utilizados nas simulaes feitas da arquitetura, visto que seria praticamente impossvel a criao manual destes arquivos. Para utilizar a ferramenta necessrio fornecer algumas informaes a respeito dos multi-quadros, como: quantidade de multi-quadros a serem gerados; tipo de sinal de teste (nulo ou pseudo-aleatrio); gerar o multi-quadro com ou sem embaralhamento e a quantidade de bits de desalinhamento desejada. A partir desta ferramenta podem-se testar todas as funcionalidades da arquitetura gerando multi-quadros de forma automatizada. A Figura 32 mostra a interface da ferramenta geradora de multi-quadros.

Figura 32 Ferramenta geradora de multi-quadros.

Aps ser facilitada a criao de estmulos para a arquitetura, queria-se facilitar a sua validao. Foi com esta finalidade que foi criado o mdulo de teste chamado assinatura. Este mdulo tem como funo calcular uma assinatura para todas as palavras de 64 bits que sarem da arquitetura. Assim como no embaralhador, a assinatura formada por um LFSR, s que neste caso um LFSR paralelo que utiliza o polinmio 1 + x 3 + x 4 + x 64 . A vantagem de se ter uma assinatura que no necessrio analisar todas as sadas geradas. Com a assinatura basta analisar a ltima assinatura para se validar todas as sadas geradas pela arquitetura desde o ltimo reset, porm esta abordagem s faz sentido se a assinatura for tambm gerada por software para se poder realizar a comparao. Esta funcionalidade foi includa no programa gerador de multi-quadros. De posse do gerador de multi-quadros e da assinatura foi criada a estrutura de teste apresentada na Figura 33.

36

SOFTWARE Gerador de multi-quadros

Arquivo texto com assinaturas de todas as palavras antes de serem embaralhadas e desalinhadas

Comparao das assinaturas

Validao

FPGA Multi-quadros gerados com embaralhamento e desalinhamento Alinhador e embaralhador Assinatura criada a partir das sadas

Figura 33 Estrutura de teste da arquitetura.

7.2

Validao em Simulao com Atraso Utilizando a estrutura de teste apresentada foi realizada a validao por simulao dos

mdulos integrados. Assim como foi realizado nos mdulos separados, realizou-se simulao com atraso de portas lgicas e roteamento. O software gerador de multi-quadros gerou as assinaturas para um sinal nulo acrescido da seqncia de alinhamento e posteriormente foram gerados os multiquadros com deslocamento embaralhamento que sero utilizados como estmulos de entrada na simulao. A Figura 34 ilustra as formas de ondas obtidas pela simulao com atraso.

Figura 34 Simulao da arquitetura integrada com atraso, no dispositivo XCV4FX100-10.

Assim como na validao do mdulo embaralhador, a entrada a prpria seqncia do 37

polinmio embaralhador, uma vez que um sinal nulo foi embaralhado. A diferena que agora a entrada, alm de embaralhada, est com desalinhamento. possvel observar na Figura 34 (ndice nmero 1) o mesmo estmulo utilizado nas simulaes anteriores, que a seqncia de alinhamento deslocada em 63 bits. Aps passar por alguns estgios de pipeline possvel observar no sinal sada a seqncia de alinhamento devidamente deslocada bem como a assinatura calculada (Figura 34, ndices 2 e 3). O tempo de propagao combinacional da arquitetura com os mdulos integrados foi de aproximadamente 4,5 ns. 7.3 Validao em Hardware Aps a validao em nvel de simulao, foi realizada a validao em hardware dos mdulos j integrados. Para tanto, utilizou-se o FPGA Xilinx Virtex4 XCV4FX100 com speed grade -10 rodando na freqncia de 200 MHz. A estrutura de teste para a validao em hardware se manteve a mesma, diferenciando somente no modo de injetar os estmulos de entrada. Ao invs de se ler os multi-quadros de um arquivo texto, os estmulos de entrada foram lidos de BRAMs inicializadas com o mesmo contedo. Para a visualizao dos sinais dos mdulos prototipados, utilizou-se a ferramenta ChipScope Pro Analyzer de verso 8.1.02i da Xilinx Inc. (Figura 35).

Figura 35 Validao em hardware atravs do ChipScope.

No ChipScope foram conferidos os sinais sada e assinatura. A arquitetura foi validada de acordo com a estrutura de teste apresentada na Figura 33. Futuramente ser utilizado um analisador de protocolo, o qual capaz de gerar quadros OTN utilizados de estmulos para a arquitetura desenvolvida bem como analisar a sada da mesma, verificando assim a correta implementao do padro OTN.

38

7.4

Resultados Os mdulos integrados foram sintetizados, lgica e fisicamente, no software ISE verso

9.1i da Xilinx, fazendo uso da ferramenta de sntese XST. Um dos principais requisitos deste projeto o desempenho. Por meio dos resultados obtidos nas validaes realizadas pode-se afirmar que a arquitetura desenvolvida se mostrou muito eficiente, conseguindo operar na freqncia adotada como referncia no incio do projeto: 200 MHz. Outro importante requisito deste projeto a ocupao de rea. Em FPGA a rea medida por utilizao de LUTs. Tento em vista que o mdulo responsvel pela codificao e decodificao do FEC, sob responsabilidade de outro grupo, requer muita rea, precisa-se utilizar o menor nmero possvel de LUTs. A arquitetura desenvolvida se mostrou novamente eficiente ocupando 1222, ou 1%, de 84352 LUTs disponveis na Virtex4 XCV4FX100. 7.5 Integrao com o Mdulo FEC Um dos objetivos da atual parceria entre a TERACOM Telemtica Ltda e o Grupo de Apoio ao Projeto de Hardware (GAPH) a integrao dos mdulos codificador e decodificador FEC com os mdulos desenvolvidos neste trabalho. Na Figura 36 pode-se observar a integrao de todos os mdulos do projeto entre a TERACOM e GAPH.

Figura 36 Integrao dos mdulos do transponder.

O objetivo do mdulo SerDes receber o fluxo de dados provenientes da fibra ptica a 10.7 Gbps e disponibiliz-los em palavras de 64 bits a uma freqncia de 200 MHz. Este mdulo tambm realiza a operao inversa, ou seja, transmite fibra ptica os dados provenientes do mdulo Embaralhador. Como visto anteriormente, o mdulo Alinhador de quadro responsvel por identificar a ocorrncia da seqncia de alinhamento e realizar o deslocamento, de modo que esta seqncia de alinhamento comece no incio da palavra de 64 bits. Os mdulos Embaralhador e 39

Desembaralhador so responsveis por embaralhar e desembaralhar os dados, de forma que no ocorram longas seqncias de 0s ou de 1s, o que garante uma suficiente troca de estado dos bits facilitando a regenerao do relgio e evitando uma possvel repetio da seqncia de alinhamento. O mdulo Extrao dos Cabealhos utilizado para extrair o contedo dos cabealhos possibilitando a identificao de falhas, alarmes, tipo de dado transportado, origem e destino contidos nos quadros OTN G.709. O mdulo Insero/Remoo Dados responsvel pelo mapeamento e demapeamento do sinal do cliente dentro da carga til do quadro OTN. O mdulo Ajuste dos cabealhos responsvel pela montagem dos cabealhos dos quadros a serem transmitidos. Os mdulos Decoder e Encoder FEC correspondem a bancos de 16 codificadores e 16 decodificadores, pois um quadro possui o total de 16 sub-quadros com clculos de FEC independentes. Na Figura 37 encontra-se a arquitetura empregada nos mdulos Decoder e Encoder FEC. Como comentado anteriormente, os dados so disponibilizados em palavras de 64 bits por ciclo da freqncia de 200 MHz. Como existem 16 clculos de FEC independente, a freqncia de operao do codificador e decodificador foi reduzida para 100 MHz. Isto significa que duas palavras de 64 bits, ou uma coluna do quadro, so entregues aos mdulos por ciclo da freqncia de 100 MHz. Dessa forma, possvel calcular o FEC dos 16 sub-quadros paralelamente e independentemente.

200 MHz
Decoder FEC
64 bits REG Desembaralhador 64 64 bits REG

100 MHz

200 MHz

8 mdulos DECODIFICADOR 64 8 mdulos DECODIFICADOR Extrao dos Cabealhos

Encoder FEC
64 bits Embaralhador 8 mdulos CODIFICADOR 64 64 bits 8 mdulos CODIFICADOR REG REG 64 Ajustes dos Cabealhos

Figura 37 Mdulos Decoder e Encoder FEC integrados.

Esta tarefa de integrao encontra-se em andamento e ainda no foi plenamente concluda. Podemos dizer que j temos toda a estrutura de integrao montada e em fase de simulao funcional, porm ela ainda no foi plenamente testada, pois para esta tarefa seria necessria uma 40

ferramenta de gerao de multi-quadros OTN completos, com a incluso dos bytes do FEC, que tambm est em desenvolvimento. Para um teste completo do transponder, tambm seria necessrio um domnio de transmisso de dados em fibra ptica no FPGA, que ainda no possumos.

41

8 Concluso
O presente Trabalho de Concluso apresentou o estudo detalhado que foi realizado sobre a norma OTN G.709, o qual foi indispensvel para o posterior desenvolvimento de mdulos utilizados no projeto de um transponder OTN. Este trabalho teve por caracterstica a multidisciplinaridade, requerendo dos autores a aplicao de conhecimentos apreendidos durante todo o curso de Engenharia de Computao. Podem ser citadas as disciplinas de arquiteturas e organizao de computadores, algoritmos de programao, laboratrio de programao, teste e confiabilidade de sistemas e redes de computadores entre outras. A arquitetura desenvolvida adotou como mtodo de projeto o uso de lgica combinacional dividida por estgios de pipeline, permitindo a construo de um sistema com alto desempenho que atendesse s restries de rea e desempenho existentes no projeto. O trabalho envolveu o desenvolvimento de software, utilizado na criao de estmulos para os mdulos e tambm na estrutura de teste, bem como o desenvolvimento de todo o hardware referente aos mdulos Alinhador de Quadro, Embaralhador, Desembaralhador e Extrator de Cabealhos. Destacam-se como dificuldades encontradas ao longo do trabalho a elaborao, desenvolvimento e codificao das arquiteturas de forma a otimizar o desempenho dos mdulos, uma vez que o requisito principal do projeto diz respeito ao tempo de propagao combinacional do sinal. Algumas arquiteturas, por no atenderem a este requisito, tiveram que ser reprojetadas ou adequadas. Ao final deste trabalho podemos dizer que praticamente todos os nossos objetivos foram atingidos. Os mdulos Alinhador de Quadro, Embaralhador e Desembaralhador foram desenvolvidos e esto funcionando corretamente em FPGA na freqncia adotada como freqncia de operao, necessria para a comunicao a 10.7 Gbps. Ficando pendente somente a validao do mdulo Extrator de Cabealhos, o qual j possui sua arquitetura definida e a mesma est quase totalmente codificada. Como trabalhos futuros, alm de almejarmos realizar algumas otimizaes no projeto, teremos a validao do mdulo Extrator de Cabealhos bem como o desenvolvimento dos mdulos Insero/Remoo de Dados e Ajuste dos Cabealhos. Ainda teremos a validao completa dos mdulos do transponder aps a integrao com os mdulos FEC e o estudo das tcnicas de transmisso e recepo de dados em fibra-ptica usando FPGAs. Acreditamos que atravs destas atividades ser possvel concluir o projeto X10GIGA.

42

Referncias
[ALE06] Alexander, S. OTN offers transparent service delivery. Capturado http://www.networkworld.com/news/tech/2006/020606-techupdate.html#graphic, Ago 2007. em:

[BRO92] Brown, S. et al. Field-programmable gate arrays. Boston: Kluwer Academic, 1992, pp. 43. [CAR01] Carro, L. Projeto e Prototipao de Sistemas Digitais. Porto Alegre: Editora da UFRGS, 2001, 176p. [CHO03] Choi, D. Frame Alignment in a Digital Carrier - A Tutorial. IEEE Communications Magazine, Vol. 28, No 2. Fev 1990. [GEN06] Gendron, R; Gidaro, A. The G.709 Optical Transport Network - An Overview. Capturado em: http://documents.exfo.com/appnotes/anote153-ang.pdf, Nov 2007. [ITU00] ITU-T. Network node interface for the synchronous digital hierarchy (SDH). ITU-T Recommendation G.707, Out 2000. ITU-T. Interfaces for the Optical Transport Network (OTN). ITU-T Recommendation G.709/Y.1331, Mar 2003. ITU-T. Characteristics of optical transport network hierarchy equipment functional blocks. ITU-T Recommendation G.798, Jun 2004. ITU-T. Architecture for the Optical Transport Network. ITU-T Recommendation G.872, Set 2001.

[ITU03]

[ITU04]

[ITU05]

[KAZ06] Kazi, K. Optical Networking Standards: A Comprehensive Guide. New York: Springer, 2006, 109p. [NAK05] Nakamura, R. Novas Tecnologias de Comunicaes pticas. Capturado em: http://www.rnp.br/_arquivo/sci/2005/nakamura-roberto_novas-tecnologias.pdf, Ago 2007. [NET02] Neto, J. DWDM Dense Wavelength Division Multiplexing. Capturado em: http://www.gta.ufrj.br/grad/02_2/dwdm/, Nov 2007. [SAW02] Sawyer, N. SONET and OTN Scramblers/Descramblers. Xilinx, Nov 2002. Capturado em: www.xilinx.com/bvdocs/appnotes/xapp651.pdf, Nov 2007. [VIS02] Vissers, M. Optical Transport Network & Optical Transport Module. Capturado em: http://ties.itu.ch/ftp/public/itu-t/tsg15opticaltransport/OTN/g709-intro-v2.ppt, Ago 2007. 43

[WAL03]

Walker, T. Optical Transport Network (OTN) Tutorial. Capturado http://www.itu.int/ITU-T/studygroups/com15/otn/OTNtutorial.pdf, Ago 2007.

em:

[WHA04] Whatcott, R. Timing Closure - 6.1i. Capturado em: http://www.xilinx.com/xlnx/xweb/xil_tx_display.jsp?iLanguageID=1&category=&sGlo balNavPick=&sSecondaryNavPick=&multPartNum=1&sTechX_ID=rw_tim_closure_6 1i#statictiming, Ago 2007. [WOL94] Wolf, W. Modern VLSI Design: A Systems Approach. Englewood Cliffs (NJ): PTR Prentice Hall, 1994, pp. 257-268.

44

Apndice I Cdigo do Sub-mdulo Comparador Parcial


Cdigo VHDL do sub-mdulo comparador parcial: --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Comparadores parciais --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_unsigned.all; entity comparador is port( controle : out std_logic_vector(63 downto 0) ; atual : in std_logic_vector(63 downto 0) ; futuro : in std_logic_vector(30 downto 0) ); end comparador; architecture comparador of comparador is signal p0,p1,p2,p3,p4,p5: std_logic_vector(63 downto 0); signal comp : std_logic_vector(63 downto 0); signal compara : std_logic_vector(63 downto 0); signal atualefuturo : std_logic_vector(94 downto 0); begin atualefuturo <= atual & futuro(30 downto 0); add:for i in 0 to 63 generate begin p0(i) <=(atualefuturo(94-i) and atualefuturo(93-i) and atualefuturo(92-i) and -- F atualefuturo(91-i)); p1(i) <=((not atualefuturo(90-i)) and atualefuturo(89-i) and atualefuturo(88-i) and -- 6 (not atualefuturo(87-i))); p2(i) <=(atualefuturo(78-i) and atualefuturo(77-i) and atualefuturo(76-i) and -- F atualefuturo(75-i)); p3(i) <=((not atualefuturo(74-i)) and atualefuturo(73-i) and atualefuturo(72-i) and -- 6 (not atualefuturo(71-i))); p4(i) <=((not atualefuturo(70-i)) and (not atualefuturo(69-i)) and atualefuturo(68-i) and -- 2 (not atualefuturo(67-i))); p5(i) <=(atualefuturo(66-i) and 45

(not atualefuturo(65-i)) and (not atualefuturo(64-i)) and -- 8 (not atualefuturo(63-i))); comp(i) <= (p0(i) and p1(i) and p2(i) and p3(i)); compara(i) <= (comp(i) and p4(i) and p5(i)); end generate; controle <= compara; end comparador;

46

Das könnte Ihnen auch gefallen