View
222
Download
0
Category
Preview:
Citation preview
Cleiber Marques da Silva
Uma Arquitetura Reconfiguravel Heterogenea para
Radios Definidos por Software utilizando uma
Rede-em-Chip
FLORIANOPOLIS2012
UNIVERSIDADE FEDERAL DE SANTA
CATARINA
PROGRAMA DE POS-GRADUACAO EMAUTOMACAO E SISTEMAS
Uma Arquitetura Reconfiguravel Heterogenea para
Radios Definidos por Software utilizando uma
Rede-em-Chip
Dissertacao submetida aUniversidade Federal de Santa Catarina
como parte dos requisitos para aobtencao do grau de Mestre em Engenharia
de Automacao e Sistemas.
Cleiber Marques da Silva
Florianopolis, Julho, 2012.
Uma Arquitetura Reconfiguravel Heterogenea paraRadios Definidos por Software utilizando uma
Rede-em-Chip
Cleiber Marques da Silva
Esta Dissertacao foi julgada adequada para a obtencao do tıtulo de “Mestre” em
Engenharia de Automacao e Sistemas, Area de Concentracao em Controle,
Automacao e Sistemas, e aprovada em sua forma final pelo Programa de
Pos-Graduacao em Engenharia de Automacao e Sistemas da Universidade Federal de
Santa Catarina.
Leandro Buss Becker, Dr.Orientador
Antonio Augusto M. Frohlich, Dr.Co-orientador
Prof. Jomi Fred Hubner, Dr.Coordenador do Curso
Banca examinadora:
Prof. Mario de Noronha Neto, Dr.Instituto Federal de Santa Catarina
Prof. Carlos Aurelio Faria da Rocha, Dr.Universidade Federal de Santa Catarina
Prof. Marcelo Ricardo Stemmer, Dr.Universidade Federal de Santa Catarina
iii
Aos meus pais e amigos.
v
AGRADECIMENTOS
Em primeiro lugar, gostaria de agradecer aos meus amigos e familiares pelo apoio,
confianca e incentivo.
Um especial agradecimento ao meu orientador professor Leandro Buss Becker pelo apoio
em todos os momentos do desenvolvimento do trabalho.
Ao professor Antonio Augusto Frohlich, pelas oportunidades dadas para realizacao
deste trabalho e a equipe do LISHA por todo o apoio durante a execucao do projeto eSDR.
vii
Resumo da Dissertacao apresentada a UFSC como parte dos requisitos necessariospara obtencao do grau de Mestre em Engenharia de Automacaoo e Sistemas.
Uma Arquitetura Reconfiguravel Heterogenea para
Radios Definidos por Software utilizando uma
Rede-em-Chip
Cleiber Marques da Silva
Junho/2012
Orientador: Leandro Buss Becker, Dr.Co-orientador: Antonio Augusto M. Frohlich, Dr.Area de Concentracao: Controle, Automacao e SistemasLinha de Pesquisa: Arquitetura de ComputadoresPalavras-chave: Radios Definidos por Software, Redes-em-Chip e ArquiteturaNumero de Paginas: xxvi + 86
Radio definido por Software (SDR) e uma tecnologia que permite a reconfiguracao de
um sistema de comunicacao sem a necessidade de alterar qualquer elemento de hard-
ware utilizando uma abordagem baseada em software. Entretanto o crescimento da
complexidade dos novos padroes de comunicacao juntamente com a necessidade da
reducao do consumo de energia sao os desafios para as arquiteturas de SDRs. Abor-
dagens utilizando computacao reconfiguravel com granularidade grossa sao bons can-
didatos para solucao dos problemas, pois possuem alta performance e baixo consumo
de energia. Neste contexto esse trabalho propoe uma arquitetura heterogenea e recon-
figuravel para o desenvolvimento de SDRs com FPGAs utilizando uma Rede-em-chip
(NoC) para a infraestrutura de comunicacao e aceleradores em hardware para o proces-
samento dos principais algoritmos de processamento de sinais. NoC e uma tecnologia
emergente para a interconexao em-chip que propoe a solucao de problemas de escalabil-
idade, reuso e controle dos parametros eletricos. A arquitetura proposta e basicamente
composta por uma interface RF, acelaradores, um bloco de controle e uma interface de
comunicacao de alta velocidade com um host. Para validar a arquitetura proposta foi
desenvolvido um prototipo em FPGA utilizando um PC com GNU Radio como host.
Os testes demonstraram uma melhora significativa no desempenho global do sistema
em termos de uso de CPU e latencia quando comparado com a plataforma USRP.
ix
Abstract of Dissertation presented to UFSC as a partial fulfillment of the requirements forthe degree of Master in Automation and Systems Engineering.
Software-defined Radio Heterogeneous
Reconfigurable Architecture using a
Network-on-Chip
Cleiber Marques da Silva
June/2012
Advisor: Leandro Buss Becker, Dr.Co-advisor: Antonio Augusto M. Frohlich, Dr.Area of Concentration: Control, Automation and SystemsResearch Area: Computer ArchitectureKey words: Software-defined Radio, Network-on-Chip, and ArchitectureNumber of Pages: xxvi + 86
Software Defined Radio (SDR) is a technology that permit the reconfiguration of a
communication system without the need to change any hardware element using a
software-based approach. However, the growing complexity of new communication
standards together with the need to reduce the consumption energy are the challenges
for SDR architectures. Reconfigurable computing using coarse-grained approaches are
good candidates to solving SDR issues, because it have high performance and low
power consumption. In this context the work proposes a heterogeneous reconfigurable
architecture for the development of SDRs with FPGAs that uses a Network-on-Chip
(NoC) to enhance the internal communication infrastructure and hardware acceler-
ators to speed DSP-related algorithms. NoC is an emerging technology for on-chip
interconnect that proposes the solution of scalability, reuse and control of electrical pa-
rameters. The proposed architecture is basically composed of a RF interface, hardware
accelerators, a control block and a high speed communication interface with a host. To
validate the proposed architecture it was developed a prototype in FPGA using a PC
with GNU Radio as host. The performed experiments demonstrate that the proposed
solution presents a significant improvement in the total performance of the system in
terms of CPU usage and latency when comparing with the off-the-shelf USRP.
xi
Sumario
1 Introducao 1
1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Visao Geral do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Tecnologias Relacionadas 5
2.1 Radios definidos por Software . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1.1 RF Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1.2 Digital Down Converter e Digital Up Converter . . . . . . . 8
2.1.2 GNU Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2.1 Universal Hardware Driver . . . . . . . . . . . . . . . . . . . 11
2.2 Computacao Reconfiguravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Dispositivos Reconfiguraveis . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Network on Chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Arquitetura HERMES . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 SoCIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.3 Æthereal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.4 QNoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.5 RTSNoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
xiii
2.3.5.1 Formato dos pacotes na RTSNoC . . . . . . . . . . . . . . . 22
2.3.5.2 Estrutura interna do Roteador . . . . . . . . . . . . . . . . . 23
2.3.5.3 Simulacao funcional do roteador . . . . . . . . . . . . . . . . 25
2.3.5.4 Adaptadores de Canais na RTSNoC . . . . . . . . . . . . . . 26
2.4 Desenvolvimento para FPGA em alto nıvel . . . . . . . . . . . . . . . . . . . 26
2.5 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Trabalhos Relacionados 31
3.1 Arquiteturas com Processador Central . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 LeoCore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.2 Signal-processing On-Demand Architecture . . . . . . . . . . . . . . . 33
3.1.3 Tomahawk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 Arquiteturas Reconfiguraveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 ADRES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 BUTTER e CREMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3 Arquitetura de Canais para SDR de Multiplas Camadas . . . . . . . . 37
3.2.4 CRUSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 Arquitetura Heterogenea e Reconfiguravel 41
4.1 Motivacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Arquitetura Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2.1 Bloco RF Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2.2 Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.3 Interconexao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.4 Aceleradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.5 Interface com o Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Fluxo de projeto para nova aplicacoes . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Resumo da Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
xiv
5 Implementacao e Avaliacao da Proposta 55
5.1 Implementacao da Arquitetura Proposta . . . . . . . . . . . . . . . . . . . . . 55
5.1.1 FPGA Virtex-6 Xilinx . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.2 BESDR - Placa Front-End RF . . . . . . . . . . . . . . . . . . . . . . 56
5.1.2.1 Caminhos de Recepcao e de Transmissao . . . . . . . . . . . 57
5.1.2.2 Placas filhas . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.2.3 Modulo de controle para BESDR . . . . . . . . . . . . . . . . 60
5.1.3 Interfaceamento da Proposta com GNU Radio . . . . . . . . . . . . . 60
5.2 Avaliacao da Arquitetura Proposta . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2.1 Implementacao do experimento . . . . . . . . . . . . . . . . . . . . . . 61
5.3 Avaliacao dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.3.1 Analise de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.3.2 Analise de latencia da RTSNoC . . . . . . . . . . . . . . . . . . . . . . 68
5.3.3 Consumo dos Recursos da FPGA . . . . . . . . . . . . . . . . . . . . . 70
5.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6 Conclusoes 73
6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
A Consideracoes sobre os aceleradores da Arquitetura 75
A.1 Fast Fourier Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A.2 Filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B Geracao ondas FM narrowband 79
Referencias Bibliograficas 81
xv
Lista de Siglas
ADC Analog-to-Digital Converter
ADRES Architecture for Dynamically Reconfigurable Embedded Systems
AGC Automatic Gain Control
AM Amplitude Modulation
ANSI American National Standards Institute
API Application Programming Interface
ARM Advanced RISC Machine
ASIC Aplication Specific Integrated Circuit
ASIP Application Specifc Instruction Set Processor
BESDR Board for Embedded Software-defined Radio
BRAM Block RAM
CIC Cascaded Integrator-Comb
CLICHE Chip-Level Integration of Communicating Heterogeneous Elements
CORDIC COordinate Rotation DIgital Computer
CRC Cyclic Redundant Check
CRUSH Cognitive Radio Universal Software Hardware
DAC Digital-to-Analog Converter
DCM Digital Clock Manager
DCT Discrete Cosine Transform
DDC Digital Down Converter
xvii
DFE Digital Front-end
DFT Discrete Fourier Transform
DMA Direct Memory Access
DSP Digital Signal Processor
DUC Digital Up Converter
DVB-T Digital Video Broadcasting - Terrestrial
EVP Embedded Vector Processor
FEC Forward Error Correction
FFT Fast Fourier Transform
PHY Ethernet Physical Layer
FIFO First-In First-Out
FIR Finite Impulse Response
FMC FPGA Mezzanine Card
FPGA Field Programmable Gate Array
GbE Gigabit Ethernet
GMII Gigabit Medium Independent Interface
GMRS General Mobile Radio Service
GNU GNU’s Not Unix
GPP General Purpose Processor
GPS Global Positioning System
HDL Hardware Description Language
HERS Heterogeneous Reconfigurable System
HPC High Pin Count
I2C Inter-Integrated Circuit
IEEE Institute of Electrical and Eletronic Engineering
IF Frequencia Intermediaria
xviii
IOB Input Output Block
IP Intellectual Property
LISHA Laboratorio de Integracao Software e Hardware
LO Local Oscillator
LTE 3GPP Long Term Evolution
LUT LookUp Table
FM Frequency Modulation
MAC Media Access Control
MDIO Management Data Input/Output
MIMO Multiple-Input and Multiple-Output
MIT Massachusetts Institute of Technology
MPSoC Multiprocessor System on Chip
NCO Numerically Controlled Oslitator
NoC Network on Chip
PCI Peripheral Component Interconnect
PGA Programmable Gain Amplifier
QNoC Quality of Service NoC
RAM Random Access Memory
RF Radio Frequency
RISC Reduced Instruction Set Computing
RPC Remote Procedure Call
ROM Read-only Memory
RSSI Received Signal Strength Indication
RTL Register Transfer Level
RTSNoC Real Time Star Network on Chip
SDR Software-defined Radio
xix
SIMD Single Instruction Multiple Data
SMA SubMiniature version A
SNR Signal-to-Noise Ratio
SPI Serial Peripheral Interface
SPIN Scalable Programmable Integrated Network
SoC System on Chip
SoCIN System on Chip Interconnection Network
SODA Signal-processing On-Demand Architecture
SSB Single-sidedband Modulation
SWIG Simplified Wrapper and Interface Generator
TDM Time Division Multiplexing
UART Universal Asynchronous Receiver Transmitter
UDP User Datagram Protocol
UHD Universal Hardware Driver
USRP Universal Software Radio Peripheral
VHDL VHSIC Hardware Description Languange
VHF Very High Frequency
VHSIC Very High Speed Integrated Circuits
VITA VMEbus International Trade Association
VLIW Very Long Instruction Word
WiMAX Worldwide Interoperability for Microware Access
xx
Lista de Figuras
2.1 Estrutura basica SDR Ideal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Estrutura basica de um SDR Real. . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Arquiteturas de DDC e DUC [22]. . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Flowgrpah tıpico do GNU Radio. . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Diagrama de blocos da estrutura do UHD [23]. . . . . . . . . . . . . . . . . . 12
2.6 Arquitetura basica de um FPGA [44]. . . . . . . . . . . . . . . . . . . . . . . 14
2.7 Elementos de um bloco logico programavel [44]. . . . . . . . . . . . . . . . . . 14
2.8 Arquiteturas interna de um FPGA Xilinx [73]. . . . . . . . . . . . . . . . . . 15
2.9 Estrutura de um pacote de dados em uma NoC [60]. . . . . . . . . . . . . . . 16
2.10 Topologia NoC Hermes [50]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.11 Roteador da NoC Hermes [50]. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.12 As duas topologias para SoCIN: mesh e torus . . . . . . . . . . . . . . . . . . 19
2.13 Link SoCIN [74]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.14 Roteador da NoC Æthreal [26]. . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.15 Arquitetura do roteador Quality of Service NoC (QNoC) [8]. . . . . . . . . . 21
2.16 Topologia do roteador RTSNoC. . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.17 Canais de comunicacao da RTSNoC. . . . . . . . . . . . . . . . . . . . . . . . 22
2.18 Exemplos de redes RTSNoC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.19 Formato dos pacotes da RTSNoC. . . . . . . . . . . . . . . . . . . . . . . . . 23
2.20 Estrutura interna do roteador da RTSNoC. . . . . . . . . . . . . . . . . . . . 24
xxi
2.21 Simulacao de envio de pacotes na RTSNoC. . . . . . . . . . . . . . . . . . . . 25
2.22 Uso de adaptadores na interconexao de roteadores e nucleos. . . . . . . . . . 26
2.23 Exemplo de uma maquin de estados para um adaptador RTSNoC. . . . . . . 27
2.24 Fluxo de desenvolvimento utilizando o System Generator. . . . . . . . . . . . 28
3.1 Categorizacao das solucoes em SDR. . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Arquitetura LeoCore [40]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Visao geral da arquitetura SODA [72]. . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Arquitetura Tomahawk MPSoC [38]. . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 Nucleo da arquitetura ADRES [10]. . . . . . . . . . . . . . . . . . . . . . . . . 35
3.6 Arquitetura Butter e Crema [25]. . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.7 Arquitetura de multiplos canais [17]. . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Diagrama do sistema CRUSH [21]. . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1 Exploracao de arquiteturas de SDR. . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Visao geral da arquitetura proposta. . . . . . . . . . . . . . . . . . . . . . . . 44
4.3 Diagrama de blocos da interface RF. . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Representacao grafica do filtro FIR. . . . . . . . . . . . . . . . . . . . . . . . 47
4.5 Estruturas dos pacotes de configuracao e dados. . . . . . . . . . . . . . . . . . 49
4.6 Diagrama de blocos da interface GbE . . . . . . . . . . . . . . . . . . . . . . 51
4.7 Fluxo de projeto de um Software-defined Radio (SDR) para a arquitetura. . . 53
5.1 Digrama de blocos do kit ML605 [28]. . . . . . . . . . . . . . . . . . . . . . . 56
5.2 Exemplo de utilizacao da BESDR. . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Diagrama de blocos da BESDR. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Caminhos de Recepcao e Transmissao do ADC e DAC. . . . . . . . . . . . . . 59
5.5 Diagrama de Classes simplificado da interface de abstracao da arquitetura com
UHD e GNU Radio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
xxii
5.6 Ambiente de testes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.7 Algoritmo de recepcao do experimento de teste. . . . . . . . . . . . . . . . . . 63
5.8 Domınio da frequencia dos 8 canais transmitidos para a realizacao dos testes. 64
5.9 Ocupacao da CPU no cenario de testes . . . . . . . . . . . . . . . . . . . . . . 66
5.10 Ocupacao media da CPU no cenario de testes. . . . . . . . . . . . . . . . . . 67
5.11 Numero de FFTs por segundo em funcao do tamanho da janela. . . . . . . . 68
5.12 Diagrama de forma de onda da utilizacao da RTSNoC. . . . . . . . . . . . . . 69
A.1 Representacao grafica da FFT. . . . . . . . . . . . . . . . . . . . . . . . . . . 76
A.2 Representacao grafica do filtro FIR. . . . . . . . . . . . . . . . . . . . . . . . 76
B.1 Diagrama de blocos para modulador FM narrowband. . . . . . . . . . . . . . 79
xxiii
Lista de Tabelas
2.1 Tabela de comparacao desenvolvimento FPGA [29]. . . . . . . . . . . . . . . . 29
5.1 Lista dos canais GMRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Analise de tempo para diferentes tamanhos de janela de FFT. . . . . . . . . . 67
5.3 Consumo de recursos para realizacao do experimento. . . . . . . . . . . . . . 70
xxv
Capıtulo 1
Introducao
1.1 Motivacao
No decorrer dos ultimos anos surgiram uma grande quantidade de padroes e protocolos
de comunicacao sem fio, aliados com o aumento de poder de processamento, diminuicao dos
custos e miniaturizacao dos sistemas computacionais. No entanto, nos sistemas tradicionais
de comunicacao sem fio muitas funcoes sao implementadas em cadeias de hardware, por
exemplo, modulacao/demodulacao, codificacao/decodificacao e filtragem. Essas funcoes sao
normalmente imutaveis, projetadas para operar em uma frequencia fixa e de acordo um
padrao especıfico. Para se comunicar com diferentes terminais sem fio e necessarios arranjos
distintos de hardware que suportem os varios protocolos e estruturas de comunicacao.
Neste ponto, mostra-se muito atrativa a possibilidade de se reconfigurar o equipamento,
para que este possa oferecer e ter acesso a diversos servicos, sem a necessidade da incorporacao
de hardware ao dispositivo. Neste contexto, surge a tecnologia de Radios definidos por Soft-
ware (SDR - Software-defined Radio) [46], que utiliza uma abordagem baseada em software
para implementar os diferentes sistemas de comunicacao sem fio, sem a necessidade de al-
terar qualquer elemento de hardware. Essa estrategia de desenvolvimento possibilita que
sistemas de funcionalidade antes definida estaticamente em tempo de projeto sejam trazidos
para um domınio reconfiguravel, isso torna possıvel, por exemplo, a atualizacao de padroes
de modulacoes ou protocolos.
Outra vantagem proporcionada pelo desenvolvimento dos SDRs e a diminuicao dos
custos de producao, pois permitem que toda uma famılia de produtos de radio sejam imple-
mentadas em uma plataforma comum de hardware. Alem disso, reduz o time-to-market para
o lancamento de novos produtos, tira proveito do baixo custo de desenvolvimento e reuso do
software [34].
2 1. Introducao
Atualmente, exitem varias propostas [2, 17, 38, 40, 72] para implementacao de SDRs,
as quais utilizam o conceito de distribuicao de processamento por unidades heterogeneas
como Digital Signal Processor (DSP), Field Programmable Gate Arrays (FPGAs) e General
Purpose Processor (GPP). Uma das arquiteturas mais utilizadas e conhecidas e o GNU’s Not
Unix (GNU) Radio [62], um framework aberto que juntamente com a plataforma Universal
Software Radio Peripheral (USRP) [23], possibilita a criacao de radios funcionais a partir de
modelos de alto nıvel utilizando computadores pessoais.
As tecnologias tradicionais de GPP e DSP, sao baseadas em um nucleo de execucao
de instrucoes sequenciais, falham para atender os requisitos de paralelismo e desempenho
para processar elevadas taxas de dados, que sao intrınsecos de radios, alem de problemas de
eficiencia energetica. Abordagens que utilizam computacao reconfiguravel como os FPGAs,
que sao circuitos digitais de funcionalidade reconfiguravel, permitem a exploracao do par-
alelismo existentes na aplicacoes, enquanto um GPP ou DSP fica restrito a execucao de uma
serie de instrucoes sequencialmente, em hardware e possıvel sintetizar diversas partes de uma
mesma funcao em paralelo ganhando em desempenho.
Sistemas em chip (SoC - System on Chip) consistem de um conjunto de dispositivos
(analogicos ou digitais) com funcao especıfica reunidos em um mesmo componente de hard-
ware, com o objetivo de se obter um sistema integrado. O metodo mais comum para inter-
conexao dos componentes em um SoC e o barramento compartilhado, que e um conjunto de
conexoes comum a um conjunto de dispositivos. Um problema apresentado por esse tipo de
interconexao e a possibilidade de realizacao de uma unica transacao de comunicacao em um
dado instante de tempo, o que e um problema para sistemas de processamento paralelo.
Como alternativa para as interconexoes em SoCs, foram propostas as redes em chip
(NoC - Network on Chip). Baseadas em conceitos de computacao distribuıda e redes de
computadores, as NoCs apresentam maior escalabilidade e confiabilidade [14]. Nesse tipo de
interconexao, cada componente e conectado a um roteador. Todos os roteadores do sistemas
sao interconectados e sao responsaveis por transferir e receber dados dos componentes.
Esta dissertacao apresenta a concepcao de uma arquitetura reconfiguravel e heterogenea
para SDRs, que utiliza computacao reconfiguravel para a criacao de aceleradores em hard-
ware dos principais algoritmos DSPs utilizados em SDRs e uma NoC como infraestrutura de
comunicacao entre os blocos. A arquitetura proposta permite o deslocamento de algoritmos
comumente utilizadas nas camadas fısicas de um radio integralmente para hardware na forma
de aceleradores.
Para avaliar a arquitetura proposta foi desenvolvido um prototipo utilizando a Board
for Embedded Software-defined Radio (BESDR) e a FPGA Xilinx Virtex-6. Alem disso,
realizou-se um cenario de testes, que demonstrou uma melhoria significativa no desempenho
global do sistema.
1.2. Objetivos 3
1.2 Objetivos
O principal objetivo deste trabalho e propor uma arquitetura para radios definidos por
software, que permita a migracao dos algoritmos de processamento de sinais digitais para o
hardware na forma de aceleradores sem perder a flexibilidade intrınseca dos SDRs.
A partir deste objetivo principal, sao definidos os seguintes objetivos especıficos:
• Analisar algoritmos comuns as camadas fısicas de radios.
• Definir uma infraestrutura de comunicacao eficiente para os blocos de processamento
heterogeneos, sem a perda de flexibilidade dos blocos de software, garantindo o aproveita-
mento dos recursos do hardware.
• Propor uma arquitetura para configuracao e controle dos blocos em hardware.
• Definir um fluxo de projeto para de SDRs utilizando a arquitetura proposta.
• Testar e analisar a arquitetura proposta levando em consideracao alguns parametros
como desempenho e ocupacao da FPGA.
1.3 Visao Geral do Texto
O proximo capıtulo apresenta as tecnologias relacionadas com o desenvolvimento deste
trabalho, onde inicialmente e apresentado a fundamentacao teorica da tecnologia SDR, as
estruturas internas do GNU Radio e os conceitos e arquiteturas de Network on Chips (NoCs).
O Capıtulo 3 e referente ao estado da arte das pesquisas em SDR, apresentado os
principais trabalhos relacionados.
O Capıtulo 4 apresenta as principais caracterısticas e fundamentos da arquitetura pro-
posta nesta dissertacao.
O Capıtulo 5 apresenta a implementacao de um cenario de testes para validacao da
arquitetura proposta e uma avaliacao de desempenho comparativa com outras arquiteturas.
Finalmente sao apresentadas no Capıtulo 6 as conclusoes e propostas de trabalhos
futuros.
4 1. Introducao
Capıtulo 2
Tecnologias Relacionadas
Neste capıtulo e feita uma revisao dos principais conceitos e tecnologias relacionados
a este trabalho. Primeiramente e apresentado detalhes sobre Radios definidos por Software,
computacao reconfiguravel, redes-em-chip e suas principais topologias. Por fim, um fluxo
para desenvolvimento de projetos em FPGA baseado em modelos.
2.1 Radios definidos por Software
Radio definido por software (Software-defined Radio (SDR)) [45] e uma tecnologia que
tem sido pesquisada nas ultimas decadas e que esta se tornando uma alternativa aos tradi-
cionais transmissores e receptores de radiocomunicacao. Tem como objetivo flexibilizar a
implementacao dos radios, ao inves de ter sua funcionalidade definida por meio de compo-
nentes de hardware decidido em tempo de projeto, e possıvel a reconfiguracao por meio de
modulos de software. O termo SDR foi introduzido por John Mitola III, sua definicao e dada
como:
“A software radio is a radio whose channel modulation waveforms are defined
in software. That is, waveforms are generated as sampled digital signals, con-
verted from digital to analog via a wideband DAC and then possibly upconverted
from IF to RF. The receiver, similarly, employs a wideband Analog to Digital
Converter (ADC) that captures all of the channels of the software radio node.
The receiver then extracts, downconverts and demodulates the channel waveform
using software on a general purpose processor [48].”
Em uma maneira mais simplificada, um radio definido por software e um transceptor
de radio que tem seu princıpio de funcionamento sendo executado atraves de um software,
6 2. Tecnologias Relacionadas
podendo ter seu funcionamento alterado com uma simples atualizacao deste mesmo software,
sem a necessidade de alteracao nenhuma de hardware. O objetivo principal dessa tecnologia e
conceber um radio que virtualmente possa se comunicar com qualquer nova tecnologia de rede
sem fio apenas atualizando o software, ou seja, a ideia e colocar o software mais proximo da
antena e utiliza-lo para filtrar, modular, demodular e executar outros estagios da transmissao
e recepcao.
Pode-se destacar as seguintes vantagens na utilizacao de um SDR [64]:
• Multifuncionalidade: atualmente existem diversos padroes de comunicacao sem fio. Um
radio reconfiguravel pode adaptar-se aos diversos padroes, enquanto um radio tradi-
cional precisa implementar todos os padroes simultaneamente.
• Flexibilidade: ao contrario dos radios tradicionais, existe a possibilidade de realizar
correcoes de falhas e atualizacoes de funcionalidades.
• Facilidade de producao: com as funcionalidades desenvolvidas por software, nao ha
necessidade de uma grande quantidade de componentes discretos, com um processador
de alto desempenho e possıvel executar diversos estagios da cadeia de processamento
do radio.
O conceito de SDR nao deve ser confundido com radios baseados ou controlados por
software, pois hoje, praticamente todos os radios se utilizam de software em sua concepcao.
Estes radios baseados ou controlados por software necessitam de ajustes no hardware para
qualquer mudanca em interfaces baseadas em software [71]. Ou seja, com o software podem
ser controlados parametros do radio como frequencia de operacao, modo de operacao (Am-
plitude Modulation (AM), Frequency Modulation (FM), Single-sidedband Modulation (SSB)),
controle de ganho, etc. O software e so uma interface para ajustes no proprio hardware.
2.1.1 Arquitetura
Ao propor os radios definidos por software em 1992, John Mitola III comenta sobre o
SDR Ideal (figura 2.1) [47]. Nesse radio, o sinal seria digitalizado imediatamente apos ser
recebido pela antena e imediatamente antes de ser transmitido por ela, e todas as etapas de
processamento Radio Frequency (RF) e de sinais seriam executadas diretamente em software.
c Algumas limitacoes impedem que o modelo ideal de SDR seja implementado, os re-
quisitos necessarios de Analog-to-Digital Converters (ADCs) e Digital-to-Analog Converters
(DACs) ficam muitos alem dos limites praticos existentes no que se refere a taxa de amostragem,
largura de banda e faixa dinamica. Segundo o teorema de Nyquist, um sinal analogico que
foi amostrado so pode ser reconstruıdo sem perdas a partir das suas amostras se a sua taxa
2.1. Radios definidos por Software 7
Figura 2.1: Estrutura basica SDR Ideal.
de amostragem for pelo menos duas vezes maior que a maior frequencia do sinal original [36],
ou seja:
fs ≥ 2B, (2.1)
onde fs e a frequencia de amostragem e B e a maior frequencia do sinal. Por exemplo, para
amostrar um sinal na faixa de 2,4 Ghz, seria necessario uma frequencia de amostragem de
4,8 GHz. Contudo, existem limitacoes quanto a capacidade de amostragem e os custos dos
ADCs de alta taxa. Alem disso, a grande capacidade computacional necessaria para processar
diretamente o sinal torna essa alternativa inviavel.
Para solucao desses problemas sao feitas algumas alteracoes do sinal via hardware,
enquanto diferentes processadores, tais como FPGAs, DSPs e processadores de proposito
geral ficam encarregados do processamento do software, para implementacao de um modelo
real de SDR.
A solucao entao e filtrar a janela de frequencia desejada e converte-la para uma Frequencia
Intermediaria (IF), para entao ser amostrada pelo ADC. A figura 2.2 apresenta os blocos
da estrutura basica de um SDR real.
Figura 2.2: Estrutura basica de um SDR Real.
2.1.1.1 RF Front-end
Nos SDRs reais sao adicionadas interfaces analogicas entre a antena, ADC e DAC,
chamada de RF front-end. Este bloco e responsavel por captar e preparar os sinais para
conversao analogico/digital e preparar os sinais para transmissao apos a conversao digi-
8 2. Tecnologias Relacionadas
tal/analogico. A preparacao dos sinais e feita atraves da amplificacao dos sinais, controle
de ganho, filtragem anti-aliasing 1 e deslocamento para uma IF (no caso de recepcao) ou
para frequencia original do sinal (no caso de transmissao).
O deslocamento do sinal para uma recepcao e realizado seguindo a proposta de Edwin
Armstrong descrita em [31]:
VIF = VRF − VLO, (2.2)
deslocamento para transmissao:
VIF = VRF + VLO, (2.3)
onde e VIF e a frequencia intermediaria, VRF e a radio frequencia e o VLO e o Local Oscillator
(LO). Por exemplo, para digitalizar um sinal que esta na faixa de 87,5-108 MHz, o front-end
seleciona uma janela de 6 MHz e desloca para a IF 0-6 MHz. Dessa forma, o sinal pode ser
amostrado por ADCs com um custo menor. As topologias mais utilizadas para transladacao
dos sinais sao: conversores super heterodino, direto e multiplo.
2.1.1.2 Digital Down Converter e Digital Up Converter
Os SDRs reais ainda possuem um estagio antes da conexao com o processador. Normal-
mente apenas uma faixa do sinal amostrado pelo ADCs e necessaria, por isso esses sistemas
incluem um Digital Down Converter (DDC) e um Digital Up Converter (DUC) que em
comparacao pode ser chamado de um Digital Front-end (DFE).
O DDC e responsavel por converter a frequencia intermediaria para uma frequencia em
banda base. Seu funcionamento consiste em mixar a IF em quadratura com duas sinusoides,
geradas por um oscilador local, decompondo assim o sinal em componentes complexas. Para
selecionar a faixa de frequencia de interesse, o sinal passa por um filtro passa-baixas deci-
mador, reduzindo assim a taxa de dados enviados ao processador [66]. A figura 2.3a apresenta
a arquitetura de um DDC.
O DUC tem a funcao contraria do DDC, ele transporta o sinal em banda base, para
frequencia intermediaria novamente. O sinal complexo e interpolado, para obter um numero
maior de amostras, depois e mixado com duas sinusoides em quadratura convertendo o sinal
de complexo para real. O RF front-end finalmente transmite o sinal na sua frequencia original.
A figura 2.3b apresenta a arquitetura de um DUC.
As sinusoides comentadas nos paragrafos sao geradas pelo Numerically Controlled Osli-
tator (NCO) que, basicamente, tem como entrada um clock e um incremento de fase, a cada
1Um filtro anti-aliasing consiste em um filtro passa-baixas com frequencia de corte igual ou menor quea metade da frequencia de amostragem, com o intuito de retirar componentes de frequencias indesejadassobreponham o espectro do sinal amostrado.
2.1. Radios definidos por Software 9
(a) Arquitetura de um DDC
(b) Arquitetura de um DUC.
Figura 2.3: Arquiteturas de DDC e DUC [22].
ciclo do clock ele incrementa o seu acumulador de fase e apresenta na saıda o seno e o cosseno
da fase armazenada no acumulador [65].
O NCO pode ser implementado em varias arquiteturas, como uma tabela de look-up em
uma memoria Read-only Memory (ROM) ou utilizando um algoritmo COordinate Rotation
DIgital Computer (CORDIC) [41]. O CORDIC e um algoritmo numerico que calcula funcoes
trigonometricas atraves de rotacoes fasoriais iterativas, calculando coordenadas cartesianas
de um vetor que roda sobre um angulo arbitrado, e e de excelente desempenho e uma saıda
para sistemas que nao possuem memoria interna [3].
2.1.2 GNU Radio
O GNU Radio [62] e um framework de software livre, derivado do projeto SpectrumWare
[69] do Massachusetts Institute of Technology (MIT), para desenvolvimento de SDRs em
computadores pessoais combinados com um hardware para conversao analogica/digital e RF
front-end. O GNU Radio suporta o uso de varios dispositivos como RF front-end, entre eles
USRP [23]. Segundo Eric Blosson, um dos fundadores do projeto, o GNU Radio tem como
objetivo
10 2. Tecnologias Relacionadas
“trazer o codigo mais proximo possıvel da antena, transformando assim problemas
de hardware em problemas de software [22].”
O GNU Radio disponibiliza uma biblioteca que possui blocos para processamento digital
de sinal, conta com funcoes basicas ate algoritmos completos de filtros, (de)moduladores,
(de)codificadores, etc. A biblioteca permite conectar os blocos para formar um SDR. Os
blocos do GNU Radio permitem realizar uma abstracao da camada fısica de um radio em um
grafo acıclico, onde os nodos representam os blocos de processamento e as arestas o fluxo dos
dados entre os nodos. A figura 2.4 apresenta um exemplo de um flowgraph de uma cadeia
de recepcao, onde, os dados saem do nodo inicial, o Audio Source, e vao fluindo atraves dos
blocos de processamento, sofrendo transformacoes ate chegar no nodo final.
Figura 2.4: Flowgrpah tıpico do GNU Radio.
Conceitualmente, um bloco de processamento processa um fluxo infinito de dados,
fluindo das suas portas de entrada para as suas portas de saıda. A unica restricao existente
para o fluxo de dados e que eles nao podem conter lacos (loops), significa que a parte que
contem loop deve ser construıda completamente dentro de um bloco [52]. As portas dos
blocos de entrada e saıda servem como fontes e sumidouros de dados no grafo. Por exemplo,
ha fontes que leem dados de um arquivo ou de um ADC, e sumidouros que escrevem em um
arquivo, DAC ou em um display grafico.
A estrutura interna do GNU Radio e formada basicamente por quatro componentes
[18] [43]:
Blocos de processamento: sao os componentes que efetivamente atuam sobre o stream e
podem ser dividos em tres classes: Normal, Fonte e Sumidouros. A grande maioria
dos blocos e do tipo Normal, os quais possuem entradas, saıdas e sao responsaveis pelo
processamento do sinal nas fase intermediarias do flowgraph. Os blocos Fontes possuem
somente saıda e iniciam o flowgraph. Os blocos Sumidouros possuem somente entrada
e consomem a stream processada.
Controlador de flowgraph: e responsavel pela abstracao do fluxo de dados, ou seja, a
sequencia de como o sinal e processado pelos blocos e as conexoes entre eles sendo
utilizado para construcao do flowgraph.
Buffer de Dados: e responsavel pela alocacao dos buffers entre os blocos. A funcao define o
tamanho dos buffers considerando a taxa relativa de consumo e producao e os tamanhos
dos dados de entrada e saıda. Cada buffer e implementado como uma FIFO o que
possibilita multiplas portas de leitura e uma unica porta de escrita.
2.1. Radios definidos por Software 11
Escalonador: e responsavel por movimentar os dados pelo flowgraph, passando repetidas
vezes por cada bloco, ele verifica se ha dados suficientes na entrada e espaco suficiente
na saıda. Se esses requisitos forem satisfeitos o metodo work do bloco e chamado.
A implementacao do GNU Radio e feita em linguagem C++ e Python, e utiliza o
Simplified Wrapper and Interface Generator (SWIG) para criar interfaces entre ambas. A
linguagem C++ e utilizada para programacao onde e necessario desempenho, como nos blocos
de processamento de sinais. Ja a linguagem Python e utilizada para conexao dos blocos de
processamento de sinais. Essa abordagem oferece uma interface de alto nıvel ao desenvolvedor
e um bom desempenho atraves da execucao nativa dos blocos de processamento.
As principais vantagens do GNU Radio estao na utilizacao de plataforma de uso geral
o que facilita a instalacao e desenvolvimento, na quantidade de blocos de processamento
de sinal disponıveis e na grande comunidade de software livre que suporta o framework.
As desvantagens surgem a partir das proprias caracterısticas basicas. Devido as aplicacoes
serem executadas em computador pessoal com um sistema operacional de proposito geral
e se comunicando com RF front-ends atraves de barramentos compartilhados [51]. O uso
desse tipo de sistema insere um atraso nao-determinıstico na cadeia de processamento, o que
impossibilita a implementacao eficiente das camadas mais altas dos protocolos que possuem
requisitos de tempo precisos [56].
2.1.2.1 Universal Hardware Driver
O Universal Hardware Driver (UHD) e um componente mais recente [23], o qual prove
uma Application Programming Interface (API) e device drivers para plataformas de aquisicao
de dados para SDRs, desenvolvidas pela empresa Ettus Research, que normalmente sao uti-
lizados com o GNU Radio. O UHD foi criado com o intuito de criar uma interface padrao para
as diferentes plataformas existentes. Com uma API bem definida permite a portabilidade
para diversas plataformas, atualmente suporta os sistemas operacionais Linux, Windows e
MAC OSX, alem de permitir portabilidade para diversas aplicacoes. A figura 2.5 apresenta
um diagrama em blocos da estrutura interna e funcionamento do UHD.
A API do UHD tem definido um canal de comunicacao um para o envio e recebimento
de dados e outro para mensagens de controle. Por meio dos canais de controle e comunicacao
e possıvel:
• Encontrar dispositivos.
• Configurar propriedades dos dispositivos como: ganho, frequencia central, taxa de
transmissao, selecao de antena e front-end.
12 2. Tecnologias Relacionadas
Figura 2.5: Diagrama de blocos da estrutura do UHD [23].
• Detectar erros no stream como: overflow, underflow, erros de sequencia.
• Sincronizacao de streams com timestamps para sistemas Multiple-Input and Multiple-
Output (MIMO).
O UHD tem suporte ao padrao VMEbus International Trade Association (VITA)-49
que define a transferencia de dados de uma IF digital entre os equipamentos de aquisicao e
de processamento do sinal. O padrao tem o intuito de proporcionar interoperabilidade entre
os diversos fabricantes. O padrao define um pacote para o stream foi projetado para diminuir
o overhead das mensagens, suporta multi-canais e sincronizacao [61].
2.2 Computacao Reconfiguravel
Atualmente, observa-se um grande numero de aplicacoes que necessitam de recursos
computacionais especıficos. Os processadores de uso geral ou DSPs nao conseguem resolver
eficientemente esses problemas devido as generalidades de suas estruturas internas. Ja as
solucoes implementadas totalmente em hardware (ASIC) apresentam problemas em relacao
a flexibilidade, reusabilidade e time-to-market.
Nesse contexto, a computacao reconfiguravel surge como um paradigma de computacao
que combina o hardware com a flexibilidade do software utilizando hardwares reconfiguraveis
[70]. Possibilita uma maior flexibilidade e desempenho em relacao aos paradigmas de hard-
ware e software, como tambem uma efetiva melhora de eficiencia, custo, generalidade e
2.2. Computacao Reconfiguravel 13
tolerancia a falhas [13]. A utilizacao de computacao reconfiguravel e vantajosa para sistemas
de alto desempenho, pois, permite explorar multiplos nıveis de paralelismo [67].
As arquiteturas reconfiguraveis sao formadas por blocos (modulos) logicos que repro-
duzem unidades funcionais de processamento, armazenamento, comunicacao. As arquiteturas
reconfiguraveis nao necessariamente precisam ser todas as partes reconfiguraveis, por isso, po-
dem ser hıbridas. Entre as principais caracterısticas das arquiteturas reconfiguraveis, podem
ser destacadas:
Granularidade: essa caracterıstica esta relacionada aos elementos de processamento, pode-
se definir arquiteturas reconfiguraveis em granularidade fina e grossa. Por granularidade
fina, entende-se que a unidade reconfiguravel mınima seja composta por elementos
bastante simples, por exemplo a nıvel de bit. Enquanto, a granularidade grossa e
aquela se se da em menor escala e o sistema e composto de grandes blocos dispostos
em uma organizacao previamente definida.
Reconfiguracao: essa caracterıstica esta relacionada a capacidade de realizar uma ou varias
configuracoes. O tipo da reconfiguracao estatica ou dinamica, parcial ou total, local
ou remota. A configuracao estatica esta relacionada com a configuracao do dispositivo
antes desse comecar a fazer a computacao dos dados, caso seja necessario reconfigurar,
para que se tenha outra funcionalidade, o dispositivo para de executar as operacoes e e
reconfigurado. Ja a reconfiguracao dinamica o dispositivo realiza uma reconfiguracao de
uma area, onde nao esta sendo processado dados, paralelamente a execucao de operacoes
de computacao [30].
Interconexao: essa caracterıstica esta relacionada a forma de conexao entre os diversos
elementos de processamento. Podendo ser classificadas como conexoes dedicadas e bar-
ramentos compartilhados. As conexoes dedicadas sao um conjunto de ligacoes diretas
entre componentes que irao se comunicar. Os barramentos compartilhados sao quando
um conjunto de nucleos compartilha um mesmo conjunto de conexoes e normalmente
sao controlados por uma logica de arbitragem.
No contexto de SDRs as arquiteturas reconfiguraveis representam um papel importante
e sao largamente utilizadas principalmente na realizacao do RF front-end digital. Nessa
etapa ha uma alta vazao de dados e sao realizadas as funcoes de DDC e DUC e outras com
caracterısticas paralelas como separacao de canais [20] [43].
2.2.1 Dispositivos Reconfiguraveis
Um Field Programmable Gate Array (FPGA) e um dispositivo programavel que possui
blocos e conexoes que podem ser programadas. Esse dispositivo permite a implementacao
14 2. Tecnologias Relacionadas
de circuitos logicos que consistem de um arranjo dos blocos e interconexoes, contidos num
circuito integrado. Sua configuracao pode ser alterada sem que tenham que ser retirados do
circuito eletronico, a capacidade atual dos FPGAs esta na faixa de milhoes de portas logicas
[30].
Um FPGA tıpico e composto por tres componentes basicos: blocos logicos, chaves de
interconexao e blocos de entrada e saıda. A estrutura generica da estrutura e apresentada na
figura 2.6.
Figura 2.6: Arquitetura basica de um FPGA [44].
Os blocos logicos sao implementados atraves de uma estrutura chamada de LookUp
Table (LUT), que representam uma a tabela-verdade de uma determinada funcao logica, um
multiplexador e um flip-flop. A figura 2.7 mostra um exemplo de um bloco logico. A tabela-
verdade e implementada atraves de uma memoria interna e um multiplexador que traduz as
entradas para o elemento correspondente desta memoria interna.
Figura 2.7: Elementos de um bloco logico programavel [44].
2.2. Computacao Reconfiguravel 15
Os FPGAs comerciais possuem outros blocos na sua composicao nao somente LUTs,
que implementam funcoes puramente combinacionais. Esses FPGAs possuem uma matriz
de blocos logicos configuraveis, cercados por uma rede de interconexao programavel, for-
mada por blocos de interconexao. Circundando todo o circuito, existem os Input Output
Blocks (IOBs), que tambem sao programaveis e que servem como interface com o mundo
exterior [70]. Atualmente, tambem existem nos FPGAs uma area de memoria interna Block
RAM (BRAM) e blocos para gerenciamento de clock. Os Digital Clock Managers (DCMs)
fornecem opcoes para tratamento de sinais de clock, como multiplicacao, divisao, calibracao
e o deslocamento de fase. Alem disso e comum encontrar blocos que exercem funcoes es-
pecıficas de processamento de DSP, tais como somadores e acumuladores, pois os FPGAs sao
amplamente utilizados neste domınio de aplicacao. A figura 2.8 apresenta a estrutura de um
FPGA comercial do fabricante Xilinx.
Figura 2.8: Arquiteturas interna de um FPGA Xilinx [73].
A configuracao do comportamento do FPGA, pode ser feita atraves de uma Hardware
Description Language (HDL). Depois que o circuito foi projetado em HDL ele e sintetizado
independente de plataforma gerando o netlist. O proximo passo, no fluxo de geracao da
configuracao do FPGA, e o mapeamento das estruturas em um dispositivo, este processo e
denominado place-and-route. O place-and-route e uma parte importante desta cadeia, pois
esta diretamente ligado com o desempenho e a melhor utilizacao da area do dispositivo . Ao
final e gerado um arquivo binario que configura o FPGA (bitstream) [13].
Atualmente, as linguagens de descricao de hardware mais utilizadas sao o Verilog e
VHSIC Hardware Description Languange (VHDL). Essas linguagens sao de grande utilidade,
pois permitem definir o comportamento do hardware em alto nıvel. VHDL e um acronimo
de Very High Speed Integrated Circuits (VHSIC) + HDL surgiu na de decada de 1980 e em
1987 foi aprovada como padrao da Institute of Electrical and Eletronic Engineering (IEEE)
[5].
16 2. Tecnologias Relacionadas
2.3 Network on Chip
Em barramentos compartilhados, um conjunto de nucleos compartilha uma mesma in-
terconexao. Ha uma perda de desempenho devido ao fato que somente um nucleo por vez pode
acessar o barramento, pode-se utilizar outras topologias de barramento como hierarquicos, em
anel ou crossbars [60]. Em um ambiente com diversos nucleos em barramento compartilhado,
uma serie de problemas surge, como [7]:
• dificuldades para dissipacao de energia.
• efeitos na integridade do sinal causados pelo aumento do ruıdo, interferencia eletro-
magnetica.
• atraso nao-determinıstico na propagacao sinais.
Para solucionar os problemas dos barramentos compartilhados foi proposto as Network
on Chip (NoC) [6]. Em uma NoC, os nucleos sao conectados a um comutador (switch) e
realizam a comunicacao por meio de troca de mensagens. Os comutadores estao conectados
em uma malha (mesh) bidimensional o que permite a comunicacao entre os nucleos.
Sao utilizados dois termos para definir os campos dos pacotes em uma NoC. O termo
flit e utilizado para identificar os bits onde serao executadas as acoes de controle de fluxo nos
enlaces. O corpo de um flit em blocos denominados phit, como apresentado na figura 2.9.
O tamanho de um phit em bits corresponde a largura do enlace de comunicacao entre dois
comutadores [60].
Figura 2.9: Estrutura de um pacote de dados em uma NoC [60].
A disposicao dos nucleos pode determinar o grau de escalabilidade e o desempenho de
um sistema utilizando NoC. A seguir e apresentado as topologias utilizadas encontradas na
literatura para construcao de NoC:
2.3. Network on Chip 17
CLICHE: e uma topologia simples, Chip-Level Integration of Communicating Heterogeneous
Elements (CLICHE) [35] e uma rede em mesh bidimensional, cada roteador e conectado
a um nucleo. A facilidade de roteamento da topologia ajuda diminuir o tamanho do
roteador, aumenta a capacidade dos canais fısicos e melhora a escalabilidade.
Torus: uma topologia similar a mesh, exceto pelo fato de possuir interconexao que ligam
os componentes das extremidades superior com a inferior, e os das direita com os da
esquerda [14].
Butterfly Fat Tree: nessa topologia os nucleos estao dispostos em forma de uma arvore,
cada no e representado por um conjunto de coordenadas nıvel e posicao. Cada roteador
e conectado a outros dois roteadores do nıvel acima e a quatro “filhos” no nıvel abaixo,
que podem ser outros roteadores ou nucleos e sao chamadas de “folhas” [58]
SPIN: esta topologia Scalable Programmable Integrated Network (SPIN) [27] e semelhante
com a Butterfly Fat Tree. Para uma arvore com “N” nucleos, existem um total de
3N/4 roteadores na arvore, todos os nıveis de roteadores possuem o mesmo numero
de roteadores. O tamanho da rede cresce na proporcao de (NlogN)/8. A abordagem
desta topologia e a preservacao data taxa de transmissao no dois sentidos
Octogonal: esta topologia nenhum componente necessita mais do que dois saltos para se
comunicar com outro componente. O modelo basico desta topologia e em anel com
oito componentes. Essa topologia possui vantagens na implementacao do algoritmo de
roteamento e alta taxa de comunicacao [33].
Como vantagens do uso de uma NoC pode-se destacar o reuso, a alta escalabilidade,
melhor controle dos parametros eletricos, devido a estrutura das interconexoes. Como desvan-
tagens o consumo de energia nos comutadores, latencia de comunicacao e o sobre custo de
area em silıcio para geracao dos comutadores.
No restante secao sao apresentadas algumas implementacoes de NoC existentes e as
abordagens que cada implementacao enfoca. As implementacoes apresentadas abordam
questoes particulares de NoC, tais como, topologia, modularidade, reusabilidade entre outros.
2.3.1 Arquitetura HERMES
HERMES e uma infraestrutura para NoC que faz o uso de roteadores bastante simples
para proporcionar um menor sobrecusto de area. O mecanismo de comunicacao e o de
comutacao de pacotes e a topologia do tipo mesh [50]. A topologia da HERMES e mostrada
na figura 2.10
O roteador HERMES possui uma unidade logica de roteamento e cinco portas bidi-
recionais: Norte, Sul, Leste e Oeste, para conexoes com outros roteadores, uma Local para
18 2. Tecnologias Relacionadas
Figura 2.10: Topologia NoC Hermes [50].
estabelecer comunicacao com o nucleo. Cada porta possui um buffer para armazenar da-
dos temporariamente, caso o destino esteja ocupado ou eventuais problemas de conexao. A
unidade logica implementa o roteamento, logica de arbitragem e o algoritmo de comutacao
de pacotes. A figura 2.11 apresenta o roteador da NoC HERMES.
Figura 2.11: Roteador da NoC Hermes [50].
2.3.2 SoCIN
A NoC System on Chip Interconnection Network (SoCIN) [74] foi desenvolvida pela
Universidade Federal do Rio Grande do Sul. Pode ser construıda utilizando topologias 2D
tanto em mesh quanto torus, como apresentado na figura 2.12.
As interconexoes desta NoC possuem dois canais unidirecionais, cada um com seus
dados, controles de fluxo e empacotamento. As mensagens transmitidas possuem dois bits
que indicam o inicio (bop: begin-of-packet) e o final do pacote (eop: end-of-packet). Os bits
2.3. Network on Chip 19
Figura 2.12: As duas topologias para SoCIN: mesh e torus
de controle sao usados para validar os dados do canal (val) e para dar conhecimentos dos
dados recebidos (ack). A figura 2.13 apresenta a estrutura do link do SoCIN.
Figura 2.13: Link SoCIN [74].
2.3.3 Æthereal
A NoC Æthereal [26], foi desenvolvida baseada em servicos diferenciados que garantem
uma comunicacao, com o intuito de facilitar integracao e eliminar incertezas da interconexao.
Os servicos diferenciados sao implementados atraves de configuracoes individuais nas metricas
de comunicacao entre os nucleos, como vazao de dados e latencia.
A Æthereal possui dois componentes roteadores e interfaces de rede. O canal imple-
menta uma comunicacao ponto-a-ponto entre duas interfaces de rede, com a possibilidade
de varios caminhos para a conexao dos nucleos. O canal pode ter garantia de latencia ou
de “melhor esforco” na comunicacao, para garantir a latencia usa uma implementacao Time
Division Multiplexing (TDM) para comutacao do circuito. A figura 2.14 apresenta o roteador
Æthereal trabalhando nas duas abordagens garantia de latencia e “melhor esforco”.
A ordem da entrega das mensagens nao e garantida quando utilizado varios canais,
Æthreal tem a possibilidade de controlar nas conexoes multiplos canais, controle de fluxo e
um reordenacao das mensagens.
20 2. Tecnologias Relacionadas
Figura 2.14: Roteador da NoC Æthreal [26].
2.3.4 QNoC
A rede QNoC foi proposta em [8] e possui uma topologia de malha irregular o mecanismo
de comunicacao e o de comutacao de pacotes, possui controle de fluxo baseado em creditos.
A QNoC oferece classes de servico com diferentes nıveis de prioridade como: (a) Signalling,
nıvel de servico com maior prioridade na rede; (b) Real time, nıvel de servico que garante
largura de banda e latencia para as aplicacoes; (c) Read/Write, nıvel de servico projetado
para suportar acessos curtos a memorias e registradores; (d) Block Transfer, nıvel de servico
usado para transferencia de mensagens e blocos de dados grandes.
A figura 2.15 ilustra a arquitetura do roteador da QNoC, suporta ate cinco conexoes:
quatro para roteadores vizinhos e uma para o nucleo local. O roteador transfere os pacotes
das portas de entrada para as de saıda, os dados sao recebidos em flits e armazenados em
buffers de entrada. Na medida que o roteador envia os dados uma posicao do buffer fica
disponıvel e um credito e enviado ao outro roteador. O gerenciamento das prioridades utiliza
o algoritmo round-robin e os nıveis de servico sao indicados por um canal de controle.
2.3.5 RTSNoC
A Real Time Star Network on Chip (RTSNoC) foi desenvolvida no intuito de criar uma
estrutura de intercomunicacao com previsibilidade de latencia, sendo assim apropriada para
a interconexao de nucleos de tempo real que necessitem deste tipo de garantia. O principal
elemento que compoem esta rede e o seu roteador.
O roteador da rede RTSNoC possui oito pontos de interconexao, conforme ilustra a
figura 2.16. Os oito pontos recebem os nomes de pontos cardeais de uma bussola: NN para
2.3. Network on Chip 21
Figura 2.15: Arquitetura do roteador QNoC [8].
a porta Norte, NE para Nordeste, EE para Leste, SE para Sudoeste, SS para Sul, SW para
Sudoeste, WW para Oeste e finalmente NW para Noroeste.
Figura 2.16: Topologia do roteador RTSNoC.
Em cada ponto de interconexao do roteador da rede RTSNoC estao disponıveis os
enlaces da rede, que constituem os canais de comunicacao da rede. Os enlaces da rede RT-
SNoC sao implementados por dois canais unidirecionais em oposicao, conforme figura 2.17. O
tamanho de cada canal pode ser configurado pelo usuario de acordo com as necessidades da
aplicacao. Os barramentos de sinais denominados de DIN e DOUT referem-se aos barramen-
tos de dados de entrada e saıda de dados, respectivamente. Os sinais RD e WR sao strobes
utilizados para escrever ou ler dados no roteador, respectivamente. Por fim, os sinais WAIT
e ND constituem os sinais utilizados para controle de fluxo na rede. O sinal WAIT indica ao
22 2. Tecnologias Relacionadas
PE que deve aguardar para poder escrever novo dado no canal de entrada do roteador. Ja o
sinal ND indica ao canal de destino do pacote que um novo pacote esta disponıvel para ser
encaminhado.
Figura 2.17: Canais de comunicacao da RTSNoC.
Com um roteador e oito nucleos e constituıda uma subrede RTSNoC. A interconexao de
mais roteadores, alem dos nucleos, permite que sejam estabelecidas redes em malha regular
2-D ou irregular 2-D, conforme apresentado nas figuras 2.18a e 2.18b.
(a) Malha regular comquatro roteadores
(b) Malha irregular comtres roteadores.
Figura 2.18: Exemplos de redes RTSNoC.
2.3.5.1 Formato dos pacotes na RTSNoC
O roteador da Rede RTSNoC e parametrizavel em tempo de projeto. Os parametros
ajustaveis sao o tamanho do campo de dados e as coordenadas cartesianas dos roteadores
envolvidos em uma determinada comunicacao. A figura 2.19 apresenta o formato deste pacote.
Como a rede RTSNoC trabalha em malha regular ou irregular 2-D, sao utilizados dois
campos, denominados de XORI e YORI, que correspondem as coordenadas X e Y do roteador
na malha de onde esta sendo gerado um pacote, ou seja, o seu endereco de origem. O mesmo
2.3. Network on Chip 23
Figura 2.19: Formato dos pacotes da RTSNoC.
acontece para o endereco do roteador de destino do pacote, que possui os campos XDST e
YDST para informar as coordenadas de destino na comunicacao. O campo HORI refere-se
ao endereco da porta dentro do roteador de origem de onde esta sendo enviado o pacote para
a rede. De modo similar, HDST e a informacao do nucleo de destino do pacote a ser roteado.
O campo DATA apresentado na figura 2.19 e a carga util que deve ser entregue aos
nucleos da rede. A limitacao de um phit por pacote esta contida na camada de rede da NoC.
Pacotes com numero ilimitado de dados podem ser constituıdos logicamente entre os nucleos,
de modo transparente para a NoC.
2.3.5.2 Estrutura interna do Roteador
O roteador proposto possui oito canais bi-direcionais, os quais podem ser conectados
a nucleos ou aos canais de outros roteadores. O algoritmo de roteamento adotado e do tipo
XY e por este motivo os canais Norte, Sul, Leste e Oeste sao priorizados para conexao com
os canais de outros roteadores, quando necessario, para formar uma rede em malha 2-D. A
figura 2.20 ilustra a estrutura interna do roteador da RTSNoC.
Cada canal de entrada e composto por uma interface de entrada, uma interface de saıda
e um controlador de fluxo. A interface de entrada possui um registrador capaz de armazenar
um phit. Quando um nucleo deseja enviar pacotes pela rede ele deve escrever o pacote neste
registrador. Em seguida, o controlador de fluxo ira identificar no cabecalho do pacote qual
o destino da mensagem e verificara se o destino esta livre para ser utilizado. Paralelo a
isto, o controlador de fluxo informa ao bloco arbitro da existencia de uma nova requisicao de
roteamento.
O bloco arbitro implementa um algoritmo tipo Round Robin. Ao inicializar, todos os
canais recebem um nıvel de prioridade, diferente dos demais. Um determinado nucleo so
tera sua requisicao de roteamento atendida se tiver prioridade superior aos outros nucleos
que estao enviando requisicoes ao arbitro naquele momento, ou entao se nao houver outra
requisicao pendente no arbitro alem da sua requisicao. Uma vez que a requisicao e atendida,
o canal que solicitou o envio de pacotes passa a ter a menor prioridade na arbitragem e
24 2. Tecnologias Relacionadas
so podera enviar outro pacote na sequencia se nenhum outro canal estiver requisitando um
roteamento.
Figura 2.20: Estrutura interna do roteador da RTSNoC.
Uma vez que foi definido qual canal tera prioridade de roteamento, o bloco arbitro envia
um comando ao bloco de switch, comunicando qual roteamento deve ser realizado naquele
momento. O roteamento adotado e o algoritmo XY. Este algoritmo e utilizado em NoCs com
topologia de malhas regulares, pois em sua operacao um caminho deve primeiro percorre a
coordenada X para entao efetuar o encaminhamento no eixo Y. Esta abordagem e utilizada
para evitar o problema de deadlock causados pela alocacao de recursos feita por dois ou mais
fluxos.
Devido ao fato de o algoritmo XY ser utilizado no roteamento em redes com topologia
malha regular 2-D, e necessario fazer a alocacao de determinados canais dos roteadores para
que se possa garantir o funcionamento deste tipo de algoritmo numa malha irregular. No
exemplo apresentado na figura 2.18b, o canal Oeste do roteador numero sete esta conectado
ao canal Sul do roteador numero cinco. Se esta conexao nao tivesse sido realizada, um
pacote gerado por algum nucleo do roteador numero sete nao conseguiria alcancar nenhum
dos nucleos conectados no roteador numero cinco.
2.3. Network on Chip 25
Uma vez definida a arbitragem, o bloco arbiter envia um comando para o bloco
switch, responsavel por controlar a crossbar que e quem realiza o encaminhamento do pacote
disponıvel no registrador de entrada para o canal de saıda.
O roteador da RTSNoC utiliza quatro ciclos de clock para realizar o encaminhamento
de um pacote. Na versao original sao dois ciclos de clock, mas foi detectado um problema na
estrutura interna de roteamento, para um caso particular de transmissao de dados, e houve a
necessidade de alterar o roteador incluindo dois ciclos a mais, em media. Sera realizado um
trabalho especıfico para que o roteador possa novamente trabalhar apenas com dois ciclos de
clock.
2.3.5.3 Simulacao funcional do roteador
Em um cenario onde foram colocados dois nucleos em um roteador RTSNoC. Um nucleo
conectado na porta Norte (NN) envia cinco pacotes para o nucleo conectado na porta Oeste
(WW). Os sinais do canal de comunicacao sao apresentados na figura 2.21, que e o resultado
desta simulacao realizada na ferramenta ISE do fabricante Xilinx.
Figura 2.21: Simulacao de envio de pacotes na RTSNoC.
Conforme ilustrado na figura 2.21, os dados a serem enviados pelo roteador sao disponi-
bilizados pelo nucleo 1 no barramento i DIN NN[37:0]. Uma vez que os dados estao disponıveis
em i DIN NN, o nucleo gera um pulso de um perıodo de clock em i WR NN para registrar
o dado no roteador. Em seguida, o roteador coloca o sinal o WAIT NN em nıvel 1 ate que
o dado disponibilizado pelo nucleo 1 possa ser encaminhado. Este sinal e um indicativo de
que o nucleo conectado na porta Norte deve esperar para poder enviar novo dado por aquela
porta. Quando o dado fica disponıvel para a porta de destino, neste caso a porta Oeste
(WW), o roteador coloca o pino o ND WW em nıvel logico 1, indicando que existe um dado
26 2. Tecnologias Relacionadas
valido para aquela porta. O nucleo 2 deve entao gerar um pulso de um ciclo de clock em
i RD WW para poder retirar este dado do roteador, que e disponibilizado no barramento
o DOUT WW[37:0].
2.3.5.4 Adaptadores de Canais na RTSNoC
A interconexao entre os canais de dois ou mais roteadores ou a interconexao entre os
nucleos e os roteadores deve ser feita atraves de adaptadores (wrappers). A figura 2.22 ilustra
um exemplo de interconexao entre roteadores e nucleos.
Figura 2.22: Uso de adaptadores na interconexao de roteadores e nucleos.
Os adaptadores sao necessarios devido ao fato de os canais de comunicacao da RTSNoC
terem sido dimensionados para utilizarem o menor numero possıvel de sinais de handshake.
Como os canais de comunicacao da Rede RTSNoC sao bi-direcionais, sao necessarios dois
adaptadores para cada interconexao entre nucleos e roteadores ou entre roteadores.
A figura 2.23 apresenta uma maquina de estados de um exemplo de adaptador para a
RTSNoC. Esta maquina fica aguardando pela chegada de um novo dado no canal de comu-
nicacao (estado idle). Ao receber um novo dado, a maquina registra o pacote internamente,
verifica se o canal de destino esta disponıvel e, se estiver disponıvel, encaminha o pacote.
2.4 Desenvolvimento para FPGA em alto nıvel
Historicamente, os fluxos tradicionais para desenvolvimento de projeto em FPGA sao
espelhados nos processos de desenvolvimento de Aplication Specific Integrated Circuits (ASICs).
2.4. Desenvolvimento para FPGA em alto nıvel 27
Figura 2.23: Exemplo de uma maquin de estados para um adaptador RTSNoC.
Um modelo do sistema e criado a partir de uma linguagem imperativa, como C ou MAT-
LAB. A fase de modelo representa a primeira oportunidade de realizar testes e validacao do
sistema. Tipicamente, a implementacao inicial e descrita em uma linguagem de descricao
hardware como VHDL ou Verilog para Register Transfer Level (RTL), que permite a de-
scricao da logica por comportamento. Normalmente, a descricao RTL envolve a instanciacao
de Intellectual Property (IP) reutilizaveis (por exemplo, decodificador Viterbi, Fast Fourier
Transform (FFT), filtro Finite Impulse Response (FIR)), muitas vezes fornecidos pelo fabri-
cante do FPGA, para assegurar a implementacao eficiente de funcoes complexas.
Testes de conformidade e funcionais, para o modelo original do sistema, sao feitos
atraves de simulacao do HDL com a criacao de testbenchs. Este acoplamento fraco entre o
modelo e a implementacao do sistema faz a depuracao difıcil e demorada. Por exemplo os
testes, proporcionam apenas uma relacao de entrada/saıda, por isso e muitas vezes necessario
refazer o modelo de sistema, que em alguns casos e desenvolvido por uma equipe totalmente
diferente, a fim de extrair estados e sinais internos para a depuracao.
Sytem Generator e um ambiente de projeto em nıvel de sistema para FPGAs. O fluxo
de projeto e integrado ao Matlab/Simulink, permite sıntese de HDL para dispositivos Xilinx,
possui bibliotecas de IPs com blocos de aritmetica, operadores logicos e funcoes DSPs. Gera
testbench, arquivos para simulacao e permite co-simulacao em hardware.
Em contraste, ao desenvolvimento tradicional, o fluxo de desenvolvimento com base
no System Generator, ou ferramentas similares deriva o hardware diretamente do modelo
atraves da geracao automatica de codigo [19] [32]. O metodo utilizado pelo Sytem Generator,
28 2. Tecnologias Relacionadas
tambem conhecido como model-based design, visa aumentar a produtividade, devido o nıvel
de abstracao, e confiabilidade pela geracao automatica de codigos. A figura 2.24 mostra o
fluxo de desenvolvimento utilizando o System Generator, o diagrama apresenta um tıpico
fluxo para co-simulacao do HDL.
Figura 2.24: Fluxo de desenvolvimento utilizando o System Generator.
O System Generator estende a API padrao do Simulink criando uma interface para
a simulacao do HDL diretamente em plataformas de hardware. A ferramenta faz a geracao
do bitstream sem a necessidade da utilizacao de ferramentas de FPGA. Utilizar somente um
sistema permite acelerar significativamente a simulacao e validacao do projeto.
Em [29] (tabela 2.1) e apresentado uma comparacao de “homem-hora” entre o tradi-
cional modelo de desenvolvimento versus a abordagem em alto nıvel. O levantamento dos
dados foram realizados no desenvolvimento um sistema SDR, levando em consideracao as
seguintes categorias: (a) especificacao de interface e algoritmo; (b) projeto dos modulos;
(c) modelagem, simulacao e verificacao; (d) desenvolvimento do VHDL; (e) verificacao com-
portamental do VHDL; (f) integracao dos modulos. As duas abordagens foram realizadas
individualmente por dois desenvolvedores com varios anos de experiencia na implementacao
de sistemas de comunicacao. Mesmo sendo uma avaliacao subjetiva pode-se concluir uma
maior produtividade utilizando desenvolvimento em alto nıvel.
2.5. Consideracoes Finais 29
Tabela 2.1: Tabela de comparacao desenvolvimento FPGA [29].
BlocosEspecif. Projeto Modelagem, Desenv. Verif. Integracao
Fluxode interface dos simulacao e do do dose algoritmo modulos verificacao VHDL VHDL modulos
Reed Solomon Encode1 0,25 2 0 0 0 A2
40 40 0 40 60 20 B3
Reed Solomon Decode1 0,5 3 0 0 0 A20 80 0 60 100 20 B
Scrambler/Descrambler0 0,25 3 0 0 0 A1 1 0 1 6 3 B
Convulotional Encode0 0,25 1,5 0 0 0 A1 1 0 1 1 1 B
Viterbi Decode0 0,5 2 0 0 0 A8 8 0 8 16 24 B
Differential Enc/Dec0 0,25 1 0 0 0 A1 1 0 1 4 2 B
Interleaver/Deinterleaver0 0,5 2 0 0 0 A40 16 0 16 36 60 B
PSK Modulator (2,4,8)1 0,5 4 0 0 0 A5 5 0 4 3 3 B
Frame Sync1 4 16 0 0 0 A4 6 0 4 6 4 B
Totais4 7 34,5 0 0 0 A
120 158 0 135 232 137 B
2.5 Consideracoes Finais
Este capıtulo introduziu conceitos fundamentais para o entendimento da proposta do
trabalho. Apresentou detalhes sobre SDRs, computacao reconfiguravel, redes-em-chip e abor-
dagens de desenvolvimento em FPGA. No proximo capıtulo sera apresentado os trabalhos
relacionados que envolem grande parte desses conceitos.
2Fluxo de projeto utilizando abordagem em alto nıvel.3Fluxo de projeto utilizando abordagem tradicional.
30 2. Tecnologias Relacionadas
Capıtulo 3
Trabalhos Relacionados
Varias arquiteturas de SDR foram propostas pela academia e a industria nos ultimos
anos, segundo [63] existem duas abordagens para arquiteturas de SDR que podem ser seguidas:
(i) baseada em hardware reconfiguravel e (ii) baseada em um processador central, normal-
mente um DSP, com aceleradores para auxiliar a arquitetura. A segunda abordagem garante
uma elevada flexibilidade, mas tambem sofre de problemas relacionados com o consumo de
energia. Para reduzir o consumo de energia, algumas plataformas utilizam varios DSPs ro-
dando a um clock relativamente em baixo. Nesse capıtulo, vamos analisar diferentes solucoes
propostas para arquiteturas de SDR com base nas duas abordagens mencionadas (Figura 3.1)
[4].
Figura 3.1: Categorizacao das solucoes em SDR.
3.1 Arquiteturas com Processador Central
Esta secao fornece uma visao geral de algumas arquiteturas de SDR baseadas em um
processador central (DSPs), que possuem recursos extras, como aceleradores, para explorar o
32 3. Trabalhos Relacionados
paralelismo intrınseco de alguns blocos de radio. Alem disso, algumas das plataformas usam
a ideia de multiplos nucleos, onde tarefas maiores sao divididas em partes menores.
3.1.1 LeoCore
LeoCore [40] e um Application Specifc Instruction Set Processor (ASIP) para pro-
cessamento de sinais de radio em banda base. Este nucleo foi desenvolvido para telefones
celulares, laptops, terminais de radiodifusao, Global Positioning System (GPS) e sistemas em-
barcados. A filosofia basica por tras da arquitetura e primeiro identificar em nıvel algorıtmico
as operacoes de processamento de sinal necessario para a aplicacao, como: FFT, filtros, dec-
imadores, interpoladores, geradores de forma de onda, etc. Em seguida mapear os para um
processamento adequado como um processador Single Instruction Multiple Data (SIMD) ou
um acelerador ASIC.
A arquitetura do LeoCore e dividida em quatro processadores otimizados de maneira
diferente para tratar um conjunto distinto de operacoes. Os processadores sao classificados
como: RF front-end digital, processador SIMD, aceleradores de funcoes, processador para
controle e outras funcoes (3.2).
Figura 3.2: Arquitetura LeoCore [40].
O conjunto de instrucoes dessa arquitetura cobre estritamente funcoes de DSP men-
cionadas anteriormente, nao permitindo executar aplicacoes de uso geral. Ha uma troca
de flexibilidade por eficiencia em nıvel de instrucao. Os principais problemas relacionados
a otimizacao sao latencia dos dados e consumo de energia. Para solucionar problemas de
latencia sao realizados paralelizacao de tarefas, para contornar os problemas de consumo de
energia foi proposto desligar os modulos ociosos [39].
3.1. Arquiteturas com Processador Central 33
Juntamente com o LeoCore e fornecido o Coresonic Developer Studio, uma ferramenta
de desenvolvimento que possui montador e depurador. Em publicacoes ha benchmarks para
sistemas Digital Video Broadcasting - Terrestrial (DVB-T) e Worldwide Interoperability for
Microware Access (WiMAX)
3.1.2 Signal-processing On-Demand Architecture
Signal-processing On-Demand Architecture (SODA) e uma arquitetura para disposi-
tivos moveis com foco em reducao de consumo de energia. A arquitetura e baseada em
dividir as tarefas em dois tipos de processadores, um para dados onde sao realizadas as
operacoes de DSP, outro para controle que destina-se a executar as operacoes de sistema e
gerenciar os processadores de dados, atraves de Remote Procedure Call (RPC) e operacoes
de Direct Memory Access (DMA). A arquitetura e apresentada na figura 3.3 sendo composta
por um processador de controle, quatro processadores de dados e uma memoria scratchpad.
Os componentes sao interconectados por meio de um barramento compartilhado. Os proces-
sadores de dados possuem uma memoria interna para instrucoes e dados, uma unidade de
processamento escalar e uma unidade SIMD para processamento vetorial.
Figura 3.3: Visao geral da arquitetura SODA [72].
34 3. Trabalhos Relacionados
Um aspecto importante desta arquitetura e que ela nao utiliza uma abordagem multi-
threading, cada tarefa e realizada em uma unidade de processamento (PE). Essa abordagem
foi escolhida, devido as observacoes que fizeram durante o desenvolvimento da arquitetura,
onde a taxa de comunicacao inter-unidade e muito mais baixa do que a intra-unidade para
aplicacoes de processamento de sinais em banda base. Os desenvolvedores da SODA desen-
corajam solucoes multithreading para um projeto de processador de comunicacao em banda
base.
3.1.3 Tomahawk
Tomahawk e uma plataforma heterogenea de SDR em um unico chip. Como em muitas
outras solucoes explora e paralelismo no nıvel de tarefa. Sua principal caracterıstica e o seu
CoreManager que e um escalonador dedicado em hardware (3.4). Essa arquitetura utiliza dois
processadores Reduced Instruction Set Computing (RISC) Tensilica para executar um sistema
operacional e funcoes de controle, seis unidades de DSP, um ASIP para decodificadores e
filtros. Todos as unidades do chip utilizam transferencia sıncrona para diminuir o consumo
de energia [12]. Foram realizados testes na arquitetura para WiMAX e 3GPP Long Term
Evolution (LTE).
Figura 3.4: Arquitetura Tomahawk MPSoC [38].
Seu modelo de programacao deve ser mencionado como uma das principais vantagens
da arquitetura, distinguindo-se das outras solucoes. As tarefas sao basicamente convertidos
em descricoes de tarefas em tempo de compilacao. Estas descricoes sao enviadas pela unidade
de controle para CoreManager com uma fila de comprimento maxima de dezesseis tarefas.
O mapeamento espacial e temporal dessas tarefas para as unidades do chip e entao feita
automaticamente pelo CoreManager. Este modelo de programacao facilita o desenvolvimento,
pois nao e necessario o desenvolvimento das tarefas, diminuindo o ciclo de projeto.
3.2. Arquiteturas Reconfiguraveis 35
3.2 Arquiteturas Reconfiguraveis
Esta secao fornece uma visao geral de algumas arquiteturas reconfiguraveis de granu-
laridade grossa voltadas para processamento de fluxo de dados deSDR.
3.2.1 ADRES
A Architecture for Dynamically Reconfigurable Embedded Systems (ADRES) sao unidades
de processamento que possuem uma arquitetura reconfiguravel de granularidade grossa e sao
usados para processamento em banda base.
Figura 3.5: Nucleo da arquitetura ADRES [10].
O diferencial da arquitetura ADRES e a utilizacao de um processador Very Long In-
struction Word (VLIW) em um arranjo de elementos de processamento reconfiguraveis, como
mostrado na figura 3.5 [10]. Os autores apresentam que o uso de um processador VLIW ao
inves de um processador RISC, comum em outras arquiteturas, traz um ganho de velocidade
superior. Isso se da pelo fato que os processadores VLIW sao capazes de explorar eficiente-
mente paralelismo no nıvel de instrucoes.
36 3. Trabalhos Relacionados
Os elementos de processamento do ADRES sao unidades funcionais com bancos de
registradores acoplados que se comunicam atraves de memoria compartilhada. Essa abor-
dagem facilita a geracao de codigo binario por compiladores, mas acarreta problemas de
escalabilidade nos bancos de registradores.
3.2.2 BUTTER e CREMA
BUTTER e uma arquitetura reconfiguravel de granularidade grossa desenvolvida na
Tampere Universtity of Tehcnology [11]. A arquitetura e composta por uma matriz de
unidades de processamento, que pode ter as funcionalidades e interconexoes definidas em
tempo de execucao (figura 3.6). Essa caracterıstica permite alcancar uma alta taxa de dados
necessaria em aplicacoes de SDR.
Figura 3.6: Arquitetura Butter e Crema [25].
Normalmente a matriz de unidades de processamento tem uma dimensao de 4x8 ele-
mentos, sedo que cada elemento pode executar diferentes tipos de operacoes aritmeticas. Essa
matriz foi idealizada para ser utilizada como um co-processador na combinada com um pro-
cessador de proposito geral. Na plataforma dos desenvolvedores e acoplado um processador
open-source chamado COFFE [55], que e utilizado como um controlador global, enquanto a
matriz realiza computacao intensiva.
Um novo nucleo reconfiguravel foi concebido como evolucao do BUTTER. O novo
3.2. Arquiteturas Reconfiguraveis 37
nucleo e chamado CREMA, permite em tempo de projeto adaptar a arquitetura de cada
unidade de processamento de acordo com os requisitos da aplicacao. Esse recurso reduz a
flexibilidade de reproduzir instancias especıficas, mas reduz o tempo de reconfigurabilidade e
o tamanho de uma logica em FPGA.
3.2.3 Arquitetura de Canais para SDR de Multiplas Camadas
A arquitetura proposta por [17] emprega o conceito de multiplos canais entre a interface
fısica (hardware) e as camadas fısicas (PHYs) implementadas em software. A mudanca de
paradigma de “manipulacao do espectro” para “multiplos canais” simplifica a interacao com
o hardware e permite que a dependencia da camada fısica (PHY) passe a ser um canal ou
um grupo de canais e nao mais o hardware como um todo, permitindo o compartilhamento
da mesma janela amostrada pelo ADC por varias camadas fısicas. Essa simplificacao tornou
transparente varias configuracoes do hardware, uma vez que a partir dos canais solicitados
(frequencias centrais e larguras de banda) ao bloco de controle e possıvel inferir todos os
parametros de configuracao. A figura 3.7 apresenta um diagrama de blocos da arquitetura
proposta, a sua prototipacao foi feita utilizando como base a plataforma USRP2 e o GNU
Radio, as alteracoes nao diminuıram a flexibilidade no projeto ou em tempo de execucao se
comparada com a arquitetura tradicional.
Figura 3.7: Arquitetura de multiplos canais [17].
Outro benefıcio proporcionado pelo conceito de canal e a possibilidade da adicao de
uma estrutura de separacao de canais no hardware, o que diminui drasticamente a ocupacao
38 3. Trabalhos Relacionados
do processador de uso geral do sistema (host), uma vez que o paralelismo intrınseco existente
na separacao de diversos canais, que exige o processamento concomitante do mesmo grupo
de dados, e a alta quantidade de amostras por segundo, proveniente das fases iniciais do
radio, sao caracterısticas onerosas para implementacoes em software e sao beneficiados pela
implementacao paralela do hardware.
3.2.4 CRUSH
Cognitive Radio Universal Software Hardware (CRUSH) proposta por [21] e uma ar-
quitetura para SDR com foco em aplicacoes de radio cognitivo, sua principal ideia e mover
o processamento de dados mais proximo do front-end utilizando FPGAs, pois esses com-
ponentes permitem alto desempenho e reconfigurabilidade. A proposta propoe resolver um
problema encontrado atualmente, onde grande parte das amostras sao processadas utilizando
um computador como host impactando muito em radios que possuem tarefas com tempo
crıtico.
A figura 3.8 apresenta um digrama em blocos da arquitetura CRUSH, e composta
por um kit de desenvolvimento FPGA Xilinx ML605 conectado a uma USRP N210, dessa
forma, aumentando os recursos de logica programavel disponıveis. Para um cenario de testes
da plataforma foi implementado um algoritmo de sensoriamento de espectro, utilizado para
determinar a disponibilidade de canais para comunicacoes de radio cognitivos. Os resultados
mostram ganhos significativos na execucao de FFTs e no ciclo completo de sensoriamento do
espectro.
Figura 3.8: Diagrama do sistema CRUSH [21].
3.3. Consideracoes Finais 39
3.3 Consideracoes Finais
Alem das arquiteturas apresentadas existem outras que foram propostas nos ultimos
anos, SandBridge Sandblaster [68], NXP Embedded Vector Processor (EVP) [57], Heteroge-
neous Reconfigurable System (HERS) [54].
Muitas das arquiteturas consistem em um System on Chips (SoCs) que incluem um
processador de proposito geral para implementacao das camadas mais altas dos protocolos e
co-processadores SIMD para fazer processamento dos sinais. Apesar de muitas das arquite-
turas apresentadas atingirem os requisitos de desempenho, elas impoem muitas dificuldades
no desenvolvimento de aplicacoes. Por exemplo, na maioria das arquiteturas o desenvolve-
dor deve dividir as tarefas, definir as partes que rodaram em software, nos aceleradores e
nas unidades DSP. No caso das unidades DSP deve-se escrever as tarefas diretamente na
linguagem assembly para a maioria dos casos.
Segundo [4] num futuro proximo a evolucao dessas arquiteturas e adotar o paradigma de
NoC para integrar um numero crescente de subsistemas com altas demandas computacionais.
Os proximos desafios da area sao aumentar o poder de processamento, limitar o consumo de
energia e tornar mais flexıvel o processo de desenvolvimento dos SDRs.
40 3. Trabalhos Relacionados
Capıtulo 4
Arquitetura Heterogenea e
Reconfiguravel
Neste capıtulo, inicialmente, apresenta-se os fatores que motivaram o desenvolvimento
de uma nova arquitetura para SDR. Em seguida e mostrada a arquitetura e suas carac-
terısticas.
4.1 Motivacoes
Os trabalhos relacionados, apresentados no capıtulo 3, levantam as principais carac-
terısticas que as futuras arquiteturas de SDR devem possuir:
• Alto poder de processamento.
• Baixo consumo de energia.
• Reconfigurabilidade.
• Facilidade de programacao.
A metodologia para desenvolvimento de arquiteturas de SDR proposta em [40] sugere
que o primeiro passo do projeto e especificar os potenciais produtos que a arquitetura pre-
tende atender. Por exemplo, a arquitetura sera utilizada em telefones celulares, terminais
de radiodifusao, sistemas de posicionamento global. Apos a especificacao dos produtos, os
padroes relacionados devem ser coletados (802.11 a/b/g/n, DVB-T), a partir dos padroes sao
definidos os subsistemas como: (a) Digital front-end, (b) sincronizadores, (c) estimadores de
canais, (d) equalizadores de canais e (e) modulos corretores de erros. Por fim, os algoritmos
necessarios pelos subsistemas sao especificados e alocados para o hardware (figura 4.1).
42 4. Arquitetura Heterogenea e Reconfiguravel
Figura 4.1: Exploracao de arquiteturas de SDR.
Segundo analises realizadas por Anjum et al [4] em aplicacoes de radio, cerca de 90%
do tempo de execucao do processamento na camada fısica e usado para executar os seguintes
algoritmos:
• Filtros de dados do tipo inteiro, utilizados para filtragem e correlacao.
• Filtros de dados do tipo complexo, utilizados em filtros passa-baixo e banda-passante,
identificacao de preambulos, adaptacao de taxas, sincronizacao de fase e quadratura.
• Algoritmos de transformacao como FFT, Discrete Cosine Transform (DCT) e trans-
formada de Walsh.
• Processamento de sinais no domınio da frequencia, como filtros, processamento de sub-
portadoras, estimacao de canais e equalizacao.
• Algoritmos de divisao, raiz quadrada de dados inteiros e complexos, geradores de onda.
• Computacao de matrizes em ambos os domınios do tempo e da frequencia incluindo
soma, multiplicacao, transposicao e decomposicao de matrizes.
• Algoritmos de Forward Error Correction (FEC) e Cyclic Redundant Check (CRC).
Varios decodificadores FEC sao amplamente adotados nos sistemas modernos de comu-
nicacao sem fio.
Desta forma, conclui-se que uma arquitetura capaz de otimizar a execucao desta classe
de algoritmos, denominados essenciais, por consequencia ira aumentar o desempenho e eficiencia
do sistema.
4.2. Arquitetura Proposta 43
A arquitetura a ser proposta tem como meta atender alguns requisitos, como desem-
penho e flexibilidade, que podem variar de acordo com a aplicacao e as caracterısticas do
radio a ser implementado. Para alcancar esses requisitos, optou-se por utilizar os recursos de
paralelismo e reconfiguracao utilizando o paradigma de computacao reconfiguravel.
O paralelismo sera alcancado utilizando o processamento simultaneo de varios blocos
de processamento de sinal com o intuito de diminuir o tempo de execucao do fluxo de dados.
A arquitetura possuira um grau de paralelismo variavel, de acordo com a demanda de cada
aplicacao. Ja a utilizacao da reconfiguracao tem o intuito de tornar a arquitetura mais flexıvel
(adaptavel para cada tipo de radio e requisitos da aplicacao), visto que ela permite alterar al-
gumas de suas caracterısticas. Com o aumento da flexibilidade, espera-se, por exemplo, poder
fazer a opcao de realizar o processamento de um bloco em software de proposito geral ou em
um bloco de hardware dedicado, em detrimento de um maior consumo de recursos logicos, ou
vice-versa. As tecnicas de reconfiguracao tambem possibilitam uma maior tolerancia a falhas
no circuito digital, pois no caso de defeito em alguma parte do dispositivo, o circuito pode ser
implementado em outra area do chip. Alem disso, com a computacao reconfiguravel pode-
se obter uma significativa reducao de custos, uma vez que o recurso de reconfigurabilidade
permite a utilizacao do mesmo hardware para diferentes versoes do produto.
4.2 Arquitetura Proposta
A nova arquitetura proposta usa a ideia de paralelismo ao nıvel de tarefa utilizando
uma estrutura heterogenea com componentes de processamento em software e hardware. Os
componentes de hardware sao dedicados para a execucao de uma tarefa, podendo ser chama-
dos de aceleradores, e podem ser reconfigurados dependendo das necessidades da aplicacao.
Essa abordagem propoe o mapeamento de tarefas em hardware com a finalidade de aumentar
o desempenho do sistema.
O diferencial desta proposta e a utilizacao de uma NoC como forma de interconexao e
comunicacao dos blocos de processamento. Como forma de programacao a arquitetura oferece
um framework que possibilita o mapeamento das tarefas de alto nıvel em hardware, por meio
de um bloco de controle, este bloco controla o fluxo de execucao e realiza a configuracao dos
parametros dos nodos em hardware.
A arquitetura proposta e apresentada na figura 4.2 sendo composta dos seguintes blocos:
Interface RF: bloco responsavel por realizar a interface com ADCs e DACs, que fazem a
conversao dos sinais RF, sendo este nodo o fonte para um SDR. O bloco tambem realiza
toda a parte de DFE DDCs e DUCs.
44 4. Arquitetura Heterogenea e Reconfiguravel
Controle: bloco responsavel pelo controle e conexao dos nodos para a formacao do SDR,
tambem do fluxo e da taxa de dados entre os nodos. E composto por um processador,
sof-core arquitetura MicroBlaze, e perifericos conectados pelo barramento AMBA4
AXI-Lite 1.
Interconexao: a comunicacao entre os blocos da arquitetura e realizada por meio de uma
rede-em-chip, os nucleos pertencentes ao bloco de controle se conectam por meio de um
barramento compartilhado. A comunicacao entre o bloco de controle e os outros blocos
se da por uma bridge entre a rede-em-chip e o barramento compartilhado.
Aceleradores: sao blocos que realizam uma tarefa especifica de processamento digital de
sinais, mais especificamente os algoritmos essenciais (citados anteriormente) para ca-
mada fısica de um radio. A arquitetura preve dois aceleradores fixos (FFT e um filtro
FIR) e um espaco em silıcio para ser reconfiguravel com outros aceleradores.
Interface de rede: a arquitetura possui uma interface de rede Ethernet Gigabit que permite
comunicacao com um host.
Interfaces seriais: a arquitetura possui interfaces seriais de baixa velocidade (Universal
Asynchronous Receiver Transmitter (UART), Inter-Integrated Circuit (I2C), Serial Pe-
ripheral Interface (SPI)) que sao utilizadas para realizar depuracoes e configuracoes de
dispositivos externos, por exemplo, um front-end analogico.
Figura 4.2: Visao geral da arquitetura proposta.
A arquitetura proposta nao oferece uma solucao completa para um SDR, pois nao
possui um processador de proposito geral com alto poder de processamento. Desta forma,
e necessario a sua integracao com um host para a implementacao das camadas de mais alto
1AMBA e um padrao aberto de gerenciamento e interconexao intra-chip e de blocos funcionais para umSoC.
4.2. Arquitetura Proposta 45
nıvel de um radio. O bloco de controle poderia substituir o host, mas por ser composto por um
softcore2 de baixo processamento pode realizar eficientemente somente funcoes de controle
e configuracao. Uma futura expansao poderia ser adicionar um hardcore com maior poder
de processamento, como processadores da arquitetura Advanced RISC Machine (ARM) que
atualmente estao sendo utilizados amplamente na industria.
Nas secoes que seguem sera apresentado em mais detalhes os blocos da arquitetura, a
forma de programacao e o mecanismo para controle de fluxo.
4.2.1 Bloco RF Interface
A interface com o mundo RF na arquitetura proposta e realizado por meio do bloco
RF Interface, cujas principais funcoes sao: (a) realizar a interface de aquisicao e transmissao
de dados com os ADCs e DACs configurando e controlando; (b) implementar toda a parte
de Digital Front-end (DFE) (DDC, DUC, filtragem) para converter o sinal de uma IF para
banda base e vice-versa; (c) realizar interface com a rede-em-chip para enviar e receber dados
dos outros blocos, como tambem dados de controle para configuracao dos modulos internos
do bloco.
Na implementacao das funcionalidades de Digital Front-end para essa arquitetura,
foram definidos os seguintes limites a serem atendidos: (a) capacidade de transmissao e
recepcao; (b) taxa de amostragem de 64Mhz e quantificacao de 12 bits para recepcao e
128Mhz de 14 bits para transmissao; (c) suporte para amostras complexas; (d) flexibilidade
de trocar o canal pela mudanca da frequencia central do DDC. Para a implementacao dos
DDCs e DUCs e utilizado o algoritmo CORDIC para geracao das sinusoides para translacao
na frequencia. As mudancas de taxas (interpolacao e decimacao) sao realizadas utilizando a
classe de filtros Cascaded Integrator-Comb (CIC). Ja a filtragem utiliza filtro FIR half-band
com 31 taps e tambem realiza uma decimacao de fator dois.
O bloco RF Interface possui interfaces para dois ADCs e dois DACs, o controle dos
dispositivos pode ser feito pelas interfaces seriais (SPI e I2C) e aquisicao e o envio de dados
e feito por interfaces paralelas sıncronas que utilizam um clock com a taxa de transmissao
para sincronizacao. A recepcao de dados pode ser feita na forma complexa, para cada ADC
ha um barramento de 12 bits para parte real ou imaginaria. A implementacao desse bloco foi
feita baseada na arquitetura da plataforma USRP utilizada amplamente com o GNU Radio,
a figura 4.3 mostra um diagrama de blocos da RF Interface.
O caminho de recepcao dos dados e feito a partir da captura dos dados de um ADC,
em seguida o sinal e decimado, filtrado e convertido para banda base por fim e escrito em
uma First-In First-Out (FIFO) para ser enviado pela NoC. Ja o caminho de transmissao os
2Softcore e o nucleo de um microprocessador todo implementado em logica sintetizavel para ser utilizadoem dispositivos como FPGAs e ASICs.
46 4. Arquitetura Heterogenea e Reconfiguravel
Figura 4.3: Diagrama de blocos da interface RF.
dados sao recebidos em uma FIFO pela NoC, logo apos o sinal e interpolado e filtrado, por
fim enviado para o DAC. A configuracao dos fatores de decimacao, interpolacao e dos filtros
e realizado a partir de registradores de controle.
4.2.2 Controle
O bloco responsavel por configurar os blocos da arquitetura, controlar o roteamento de
dados pela NoC e configurar dispositivos externos (ADCs e DACs) e chamado de Controle.
Este bloco tem um papel importante na arquitetura e para realizar todas essas tarefas neces-
sita ser flexıvel, por isso e formado pelo processador AeMB um softcore e outros perifericos
interligados por um barramento compartilhado o AMBA4, podendo ser programado na lin-
guagem C. A comunicacao entre o processador e a NoC e feita por um bloco chamado NoC
Bridge, este bloco faz a ponte entre NoC e o AMBA4, dessa forma o processador realiza
comunicacao com os outros blocos e recebe os pacotes configuracao do host.
Arquiteturas reconfiguraveis de granularidade grossa apresentam diversas vantagens do
ponto de vista de hardware para exploracao de diversos tipos de paralelismo em aplicacoes. No
entanto, em conjunto com essas arquiteturas e necessario o desenvolvimento de ferramentas
que permitam o mapeamento de aplicacao descritas em alto nıvel para os recursos presentes no
hardware. Park et al. [59] propoem um metodo chamado Modulo Graph Embedding, baseado
em uma tecnica utilizada para layout e visualizacao de grafos. Essa tecnica consiste na
alocacao de um grafo “convidado” em um grafo “hospedeiro”. O escalonamento de aplicacoes
e feito atraves de um grafo de fluxo de dados e de um grafo representando os recursos de
processamento presentes na arquitetura.
4.2. Arquitetura Proposta 47
Um dos problemas das arquiteturas de SDR que utilizam aceleracao em hardware e
a sua forma de programacao, e difıcil para o desenvolvedor mapear as tarefas em alto nıvel
para hardware. Este trabalho propoe uma abordagem semelhante a utilizada por Park et al.,
as tarefas que serao executadas na arquitetura formam um grafo “convidado”, o flowgraph e
constituıdo a partir do host que envia pacotes de configuracao para o bloco de controle, este
entao configura os blocos da arquitetura. A figura 4.4 apresenta um diagrama que mostra um
exemplo do processo de configuracao dos blocos e determinacao do flowgraph e transferencia
dos dados entre os blocos e o host.
Figura 4.4: Representacao grafica do filtro FIR.
No exemplo apresentado na figura 4.4 primeiramente: (1) o host define o flowgraph
enviando pacotes de configuracao para o bloco de controle esse bloco entao envia os pacotes
para os blocos DFE e ACC1; (2) na sequencia o host envia um pacote para iniciar a execucao
do grafo; (3) baseado no flowgraph configurado o bloco DFE comeca enviar dados para o bloco
ACC1 e esse apos realizar o processamento envia para o host ; (4) por fim o host finaliza o
fluxo de dados enviando um pacote para finalizar a execucao.
Na arquitetura proposta utiliza-se a infraestrutura do GNU Radio (vide secao 2.1.2)
para a construcao do grafo “hospedeiro”. Para tanto, e necessario criar blocos do tipo source
sink da arquitetura para o GNU Radio, estes blocos possuem metodos para que a partir
da forma de programacao do GNU Radio seja possıvel configurar os blocos aceleradores da
arquitetura.
Abaixo e apresentado um exemplo de programacao da arquitetura utilizando o GNU
Radio, onde primeiramente e realizado a instanciacao do objeto que se comunica com a ar-
quitetura. Na sequencia sao realizadas configuracoes dos blocos RF Interface e do acelerador
FIR, como taxa de amostragem, frequencia central e o tipo de filtragem. Por fim, e realizado
a definicao do flowgraph configurando a rota de saıda do stream de dados de cada bloco e no
host a gravacao dos dados recebidos.
48 4. Arquitetura Heterogenea e Reconfiguravel
1 from gnuradio import eng_notation
2 from gnuradio import gr
3 from gnuradio import uhd
4
5 class arch_noc_test(gr.top_block):
6 def __init__(self):
7 self.uhd_src = uhd.arch_noc_source(device_addr=’192.168.20.1’)
8
9 # Config DFE
10 self.uhd_src.dfe.set_samp_rate(200000)
11 self.uhd_src.dfe.set_center_freq(450e6, 0)
12 self.uhd_src.dfe.set_gain(0, 0)
13 self.uhd_src.dfe.route(0,0,SE)
14
15 # Config accelerator Filter FIR
16 taps = firdes.low_pass_2(1, 1, 0.4, 0.1, 60)
17 self.uhd_src.filter_fir.taps(10, taps)
18 self.uhd_src.filter_fir.route(0,0,SS)
19
20 # Use file sink to capture data from arch_noc
21 self.fsnk = gr.file_sink (gr.sizeof_gr_complex, test.dat)
22
23 # Connections
24 self.connect((self.uhd_src, 0), (self.fsnk, 0))
25
26 if __name__ == ’__main__’:
27 tb = arch_noc_test()
28 tb.run()
4.2.3 Interconexao
A interconexao entre os nucleos se da atraves da infraestrutura provida pela rede-
em-chip RTSNoC. O proposito deste modelo de interconexao e substituir os barramentos
compartilhados para a comunicacao dos blocos, normalmente utilizados em sistemas em chip.
Os barramentos compartilhados apresentam problemas de escalabilidade, nao determinismo
na comunicacao, dissipacao de energia, ruıdos e interferencia eletromagnetica.
O uso da NoC para interconexao da arquitetura tras as vantagens de melhorar o controle
dos parametros eletricos e escalabilidade, quando comparada com barramentos compartilha-
dos e pipelines. Porem, a principal vantagem que pode ser destacada e a interface padrao de
comunicacao bem definida que permite o reuso, facilidade da migracao de tarefas em software
para aceleradores em hardware. Alem de que a natureza de comunicacao sıncrona adotada
pela RTSNoC diminui o consumo de energia.
O bloco de controle apresentado na secao anterior e responsavel por determinar o
4.2. Arquitetura Proposta 49
roteamento do stream de dados pela infraestrutura da rede, ou seja, realizar a conexao dos
nodos. Para realizar a sincronizacao, o controle de fluxo, configuracao dos blocos e transporte
dos dados, foram definidos dois tipos de pacotes para a NoC: dados e configuracao. O tipo de
pacote enviado para os blocos e identificado por meio de um cabecalho (conforme apresentado
na figura 4.5). Os pacotes de dados possuem somente informacoes referentes ao roteamento
e como carga os dados para processamento de sinais. Ja os pacotes de configuracao podem
ter as seguintes informacoes:
• configuracoes de roteamento para o bloco, isto e, a indicacao dos enderecos de destino,
para onde os dados do bloco que esta sendo configurado devem ser enviados. Essa
informacao e utilizada durante a formacao dos pacotes de dados.
• Configuracoes referentes aos blocos, por exemplo, no bloco interface RF a configuracao
da frequencia central de um DDC.
Figura 4.5: Estruturas dos pacotes de configuracao e dados.
Normalmente as configuracoes de cada bloco sao distintas, inerentes a solucao que
cada bloco se propoe resolver, por isso o pacote de configuracao possui um campo tipo
de configuracao que esta atrelado a cada bloco. Dessa forma, comandos para controle e
configuracao sao disparados pelo host para o bloco de controle e este cria os pacotes da NoC
envia para os blocos da arquitetura.
4.2.4 Aceleradores
A arquitetura propoe a implementacao da classe de algoritmos essenciais (vide secao
4.1), que sao implementados em software nas arquiteturas tradicionais de SDR, na forma
de blocos especıficos em hardware denominados aceleradores. Esse metodo possui as van-
tagens que permite aumentar a eficiencia do algoritmo, alem do que uma abordagem com
aceleradores diminui os problemas de latencia da NoC.
50 4. Arquitetura Heterogenea e Reconfiguravel
A solucao utilizada para o projeto e desenvolvimento dos aceleradores e semelhante ao
desenvolvimento em alto nıvel para FPGA, abordada na secao 2.4. Nessa abordagem o fluxo
de projeto inicia com o desenvolvimento do modelo em blocos e simulacao em MATLAB,
apos a validacao do funcionamento do sistema e feita a troca dos blocos pelos do System
Generator Xilinx, por fim e gerado HDL para integracao na infraestrutura de interconexao
da arquitetura. Alem disso, os fabricantes de FPGA e outras empresas disponibilizam uma
grande variedade algoritmos de DSP na forma de IP tambem conhecidos como nucleos. Esses
IPs sao feitos como modulos pre-definidos para FPGAs, dessa forma podem ser otimizados
para o dispositivo.
Para os aceleradores desenvolvidos foi escolhido remover as operacoes de ponto flutu-
ante, pois este tipo de operacao e bastante custoso do ponto de vista energetico e em area de
silıcio, e a grande maioria das arquiteturas para SDR pesquisadas nao utilizam unidade de
ponto flutuante.
Para demonstrar a solucao proposta, foram escolhidos dois algoritmos amplamente
uitilizados: FFT e um filtro FIR. A FFT tem suporte a uma janela 64-4096 pontos e o filtro
FIR com 64 taps onde e possıvel configura-lo como: passa-baixas; passa-alta; passa-banda e
rejeita-banda. Somente dois aceleradores nao sao suficientes para construir radios modernos,
mas nao e escopo deste trabalho criar aceleradores para os algoritmos essenciais. O uso de
computacao reconfiguravel e uma interface de comunicacao bem definida com NoC, facilita a
adicao e substituicao de aceleradores conforme a necessidade do sistema dessa forma utilizar
uma abordagem orientada a aplicacao.
4.2.5 Interface com o Host
A arquitetura proposta possui um bloco responsavel pela comunicacao com um host,
nesse caso o host realiza a configuracao da arquitetura e a implementacao das camadas de
mais alto nıvel de um SDR. Com o intuito de dar uma maior flexibilidade para a arquitetura e
diminuir o tempo de latencia de comunicacao foi escolhida a interface padrao Gigabit Ethernet
(GbE). O bloco implementa a camada Media Access Control (MAC) do padrao GbE, o
desenvolvimento do bloco foi feita baseada no Tri-mode Ethernet MAC [24] do OpenCores3
e no bloco utilizado pela USRP2. As principais caracterısticas do bloco sao descritas abaixo
e um diagrama de blocos e apresentado na figura 4.6a:
• implementacao completa do MAC seguindo a especificacao IEEE 802.3.
• verificacao e geracao de pacotes com CRC.
• FIFOs para interface de uso do bloco.
3OpenCores e uma comunidade Open Source para o desenvolvimento de hardware digital.
4.2. Arquitetura Proposta 51
• suporte para frames Jumbo (4096 bytes).
• suporte a controle de fluxo com geracao de pause e termination frame (802.3 anexo 31A),
provendo um completo automatizado controle de fluxo sem sobrecarga para aplicacao
de uso.
• interface para gerenciamento da Ethernet Physical Layer (PHY) por Management Data
Input/Output (MDIO).
(a) Arquitetura do bloco GbE
(b) Conexao entre o blocoMAC GbE e o PHY
Figura 4.6: Diagrama de blocos da interface GbE
Para facilitar e tornar mais eficiente a comunicacao com host o bloco GbE possui nos
caminhos de transmissao e recepcao um modulo User Datagram Protocol (UDP), o modulo
realiza o tratamento geracao dos pacotes UDP todo em hardware. O modulo UDP e capaz
de identificar os pacotes de controle e dados, os pacotes de dados sao roteados para o bloco
de controle e os de dados para os aceleradores.
O bloco GbE implementa a camada MAC e para conexao com outros dispositivos
possui a interface Gigabit Medium Independent Interface (GMII), que e um padrao industrial
52 4. Arquitetura Heterogenea e Reconfiguravel
utilizado para conexao com PHYs a figura 4.6b apresenta a o padrao de conexao dos sinais.
Alem disso, o bloco possui uma interface MDIO que permite configurar, controlar e receber
estatısticas da PHY.
4.3 Fluxo de projeto para nova aplicacoes
Atualmente, existem uma serie de dificuldades encontrar blocos (IPs) que implementem
os principais algoritmos utilizados em SDR. Alem disso, e a implementacao de novos IPs difıcil
pois os desenvolvedores devem ter um bom conhecimento do algoritmo a ser desenvolvido e
de computacao reconfiguravel. Tentando minimizar este problema a arquitetura criou uma
interface bem definida utilizando a NoC como infraestrutura de comunicacao e sugeriu uma
abordagem de alto nıvel para desenvolvimento dos aceleradores.
Para utilizacao da arquitetura este trabalho propoe um fluxo de projeto que tem por
objetivo simplificar os procedimentos de criacao de um SDR. A figura 4.7 ilustra as etapas
do fluxo de projetos, as quais sao resumidas a seguir:
1. Definicao da aplicacao pretende-se desenvolver, por exemplo, Radio FM.
2. Especificar os algoritmos que ocupam mais processamento para sua implementacao em
hardware.
3. Implementar os algoritmos em HDL utilizando a abordagem de desenvolvimento em
alto nıvel para FPGA, ou realizar uma pesquisa por IPs que implementem o algoritmo.
4. Criar os wrappers para os aceleradores receberem e enviarem dados pela NoC.
5. Conectar todos os blocos e gerar o bitstream para a arquitetura alvo.
6. Definir os parametros de configuracao e criar um wrapper para o acelerador no GNU
Radio
7. Criar um programa para aplicacao no host.
Este fluxo de projeto simplifica os procedimentos para a criacao de uma aplicacao na
arquitetura proposta e permite criar componentes reutilizaveis para futuras implementacoes.
A principal dificuldade do fluxo e a verificacao e validacao dos aceleradores, mesmo sendo
facilitada utilizando uma abordagem em alto nıvel. As tarefas passıveis de serem automati-
zadas sao as conexoes dos blocos para gerar o bitstream e a criacao dos wrappers para o GNU
Radio.
4.4. Resumo da Proposta 53
Figura 4.7: Fluxo de projeto de um SDR para a arquitetura.
4.4 Resumo da Proposta
A arquitetura proposta no trabalho utiliza o conceito de computacao reconfiguravel
empregando uma NoC para realizar a infraestrutura de comunicacao, esta abordagem melhora
problemas de escalabilidade, reconfigurabilidade e parametros eletricos. A granularidade
adotada e do tipo grossa para a implementacao dos algoritmos de processamento de sinais.
A forma de programacao utilizada pela arquitetura permite mapear tarefas de alto nıvel de
um radio para um grafo, as tarefas sao disparadas por um host para um bloco de controle
que determina o roteamento dos dados. Para se beneficiar das vantagens do GNU Radio a
arquitetura criou uma interface compatıvel que permite o uso deste framework no host.
Outro benefıcio proporcionado pela arquitetura e o processamento em hardware dos
algoritmos essenciais para um SDR, o que diminui drasticamente a ocupacao do processador
de uso geral do sistema (host), uma vez que os aceleradores realizam processamento nas fases
iniciais do radios. Fases onde ha uma maior demanda de processamento e a alta quantidade
de amostras por segundo e sao beneficiados pela implementacao paralela do hardware.
No proximo capıtulo serao abordados os aspectos de implementacao da arquitetura e a
comparacao da proposta com a arquitetura USRP executando o GNU Radio.
54 4. Arquitetura Heterogenea e Reconfiguravel
Capıtulo 5
Implementacao e Avaliacao da
Proposta
Este capıtulo apresenta os resultados obtidos atraves de experimentos realizados com a
implementacao da arquitetura proposta. Para isso, inicialmente e apresentada a plataforma
utilizada para a implementacao da arquitetura proposta, assim como a descricao dos experi-
mentos realizados e os resultados obtidos.
5.1 Implementacao da Arquitetura Proposta
Nesta secao apresenta-se o ambiente de hardware e software utilizado para desenvolver
um prototipo da arquitetura proposta no trabalho. Primeiro, descreve-se as plataformas de
desenvolvimento utilizadas e os modulos de hardware de prototipacao. Em seguida, descreve-
se quais softwares comerciais foram empregados e os aplicativos implementados para habilitar
o desenvolvimento do estudo de caso.
5.1.1 FPGA Virtex-6 Xilinx
O FPGA Virtex-6 da Xilinx foi utilizado para implementar e testar a arquitetura pro-
posta. Essa famılia foi desenvolvida em 2009 para dar sequencia as famılias de alto desem-
penho da Xilinx, utiliza o processo de fabricacao de 40 nm e possui os mais avancados recursos
disponıveis no mercado de FPGA.
O modelo utilizado foi XC6VLX240T, que possui 241.152 celulas logicas, 37680 slices,
768 Block Random Access Memorys (RAMs) de 18 Kb e 720 sinais para entrada e saıda.
Outros blocos tambem sao fornecidos entre eles, o DSP48E1 slices para a implementacao de
56 5. Implementacao e Avaliacao da Proposta
estrutura tıpicas presentes em algoritmos para processamento de sinais, alem de blocos para
gerenciamento de sinais de clock, Peripheral Component Interconnect (PCI) Express e MACs
Ethernet.
Todos os testes utilizaram o kit ML605, a figura 5.1 apresenta seu diagrama de blocos.
A placa possui o FPGA Virtex-6, um soquete SODIMM para memoria DDR3 e diversas
interfaces de comunicacao e conectores para expansao. Para a sintetizacao de hardware, foi
utilizado a ferramenta ISE Foundantion, versao 13.1, fornecida pela Xilinx no seu programa
universitario.
Figura 5.1: Digrama de blocos do kit ML605 [28].
5.1.2 BESDR - Placa Front-End RF
A Board for Embedded Software-defined Radio (BESDR) e uma plataforma aberta, de
baixo custo desenvolvida no contexto deste trabalho pelo Laboratorio de Integracao Software
e Hardware (LISHA) [16], tem como objetivo prover uma interface de RF para kits de de-
senvolvimento FPGA, compatıvel com padrao FPGA Mezzanine Card (FMC) de conexao.
Sendo basicamente composta por:
• dois ADCs com quatro canais de 12-bit, amostragem de 64 MSPS.
• dois DACs com quatro canais de 14-bit, amostragem de 128 MSPS.
• quatro slots para placas filhas que suporta uma grande variedade de placas de RF.
5.1. Implementacao da Arquitetura Proposta 57
• interface auxiliar para controle do radio que suporta padroes como Received Signal
Strength Indication (RSSI) e Automatic Gain Control (AGC).
• um conector para a conexao aos kits de desenvolvimento.
O principal objetivo da BESDR e permitir o desenvolvimento e prototipacao rapida de
SDRs de baixo custo. A figura 5.2 apresenta um exemplo de utilizacao da placa e a figura
5.3 o diagrama de blocos da BESDR.
Figura 5.2: Exemplo de utilizacao da BESDR.
A interface de conexao utilizado pela BESDR o FMC, foi um padrao desenvolvido
pelo consorcio American National Standards Institute (ANSI) / VITA 57.1 formado por
diversas empresas fabricantes e usuarias de FPGA. O proposito e especificar padroes eletricos,
mecanicos de conexao e desta forma permitir a flexibilizacao, reuso do hardware e criar um
mercado de placas de aplicacao para FPGAs [1]. O conector utilizado na BESDR e o tipo
FMC High Pin Count (HPC), por meio dele a placa:
• recebe os sinais de alimentacao: +12V , +3.3V , 2.5V e GND.
• recebe o clock de referencia dos ADCs, DACs e placas filhas.
• recebe os barramentos para configuracao e controle: SPI, I2C e UART.
• externaliza os sinais dos ADCs e DACs.
5.1.2.1 Caminhos de Recepcao e de Transmissao
Os quatro canais de recepcao dos ADCs presentes na placa podem realizar uma amostragem
de ate 64 MSPS. Em teoria, pode-se digitalizar uma banda de ate 32 MHz, caso realize-se
amostragem de uma IF com uma largura de banda maior que 32 MHz ocorrera o fenomeno
de aliasing, e a banda de interesse sera mapeada entre -32 MHz e +32 MHz [42]. Quanto
maior a frequencia do sinal amostrado maior e a degradacao do Signal-to-Noise Ratio (SNR)
por meio do jitter.
58 5. Implementacao e Avaliacao da Proposta
Figura 5.3: Diagrama de blocos da BESDR.
A entrada de tensao dos ADCs e de 2 V pico-a-pico e a impedancia de 50 ohms, ou
seja, potencia de 40 mW ou 16 dBm. Um Programmable Gain Amplifier (PGA) e usado
antes dos ADCs para amplificar o sinal de entrada, e utilizar toda a faixa de entrada do
ADCs, caso o sinal for fraco. A faixa de ganho do PGA e de ate 20 dB. E possıvel utilizar
outras taxas de amostragem submultiplas de 128 MHz, tais como 64 MSPS, 42,66 MSPS,
32 MSPS, 25,6 MSPS e 21,33 MSPS. A figura 5.4a apresenta o caminho de recepcao.
No caminho de transmissao, tambem ha quatro canais como uma taxa de amostragem
de ate 128 MSPS, de modo que a frequencia de Nyquist e de 64 MHz. Entretanto, utilizar
uma faixa de frequencia de ate 50 MHz torna o processo de filtragem mais simples. Os DACs
podem fornecer um 1 V de pico para uma carga de 50 ohms, ou seja potencia de 10 mW ou
10 dBm. Ha tambem um PGA utilizado apos a DAC, fornecendo ate obter 20dB. O PGAs
em ambos os caminhos, recepcao e transmissao, sao programaveis. A figura 5.4b apresenta o
caminho de transmissao.
Em princıpio, os quatro canais de entrada e saıda utilizam amostras reais. Entretanto,
havera mais flexibilidade e banda se amostras complexas forem utilizadas. Desta forma
resultando em dois canais de entrada complexos e dois canais de saıda complexos [15].
5.1. Implementacao da Arquitetura Proposta 59
(a) Caminho de Recepcao do ADC
(b) Caminho de Transmissao do DAC.
Figura 5.4: Caminhos de Recepcao e Transmissao do ADC e DAC.
5.1.2.2 Placas filhas
A BESDR possui quatro slots para placas filhas, onde pode-se conectar ate duas placas
de recepcao e duas de transmissao. As placas implementam o Front-End RF analogico, a
funcao delas e converter as frequencias da portadora de interesse para uma IF possibilitando
a digitalizacao do sinal pelo ADC na recepcao, o caminho inverso e feito para transmissao.
Caso seja utilizada amostragem real, sao disponıveis duas secoes RF independentes em
cada placa filha, podendo ser utilizadas ate quatro antenas em todo o sisetma. Se amostragem
complexa for utilizada, cada placa filha suporta uma interface RF. A BESDR nao utiliza
nenhum filtro anti-aliasing ou de reconstrucao, o que permite uma grande flexibilidade na
escolha da placa filha a ser utilizada.
A interface, para as placas filhas da BESDR, possui compatibilidade com as placas
utilizadas pela USRP [23]. Atualmente existe uma variedade de placas filhas compatıveis
com BESDR, que trabalham com diferentes faixas de frequencia e cobrem todo o espectro
livre. Por exemplo:
BasicTX/RX: placas filhas basicas equipadas com conectores SubMiniature version A (SMA)
que realizam interfaces para a conexao de Front-ends nao compatıveis com a BESDR.
TVRX: placa filha de recepcao equipada com o Microtune 4937 Cable Modem, opera na
faixa de frequencia de 50 MHz a 800 MHz, utilizada em aplicacoes como FM e Very
High Frequency (VHF).
60 5. Implementacao e Avaliacao da Proposta
RFX1800: placa filha com as cadeias de recepcao e transmissao independentes, opera na
faixa de frequencia de 1.5 GHz a 2.1 GHz, utilizada em aplicacoes de telefonia celular.
RFX2400: placa filha com as cadeias de recepcao e transmissao independentes, opera na
faixa de frequencia de 2.3 GHz a 2.9 GHz, utilizada em aplicacoes como Wi-Fi.
5.1.2.3 Modulo de controle para BESDR
Para a utilizacao da placa BESDR sao utilizados os blocos de controle e RF Interface
e da arquitetura proposta, estes permitem o controle, configuracao, recepcao e transmissao
dos dados. O bloco de controle realiza a configuracao dos parametros dos ADCs, DACs e
das placas filhas, por meio das interfaces seriais (I2C e SPI). Ja o bloco RF Interface realiza
a interface paralela com os ADCs e DACs, como tambem todo o processamento DFE que
permite realizar uma gama de configuracoes, como por exemplo, a mudanca da frequencia
central, possibilitando ao sistema a troca de canal instantaneamente.
5.1.3 Interfaceamento da Proposta com GNU Radio
A integracao da arquitetura proposta com o GNU Radio e facilitada devido ao UHD,
que e uma API e um conjunto de device drivers para comunicacao com as plataformas USRP.
Dessa forma, o suporte para arquitetura proposta foi realizado adicionando ao UHD uma
extensao baseada na implementacao da USRP2, que possibilita a comunicacao entre o host
e a arquitetura.
Para tornar possıvel a utilizacao do GNU Radio decidiu-se por fazer uma especial-
izacao do bloco gr-uhd ja existente, pois muitas configuracoes (DDC, filtros, placas filhas)
que sao realizadas nas plataformas USRP tambem sao feitas na arquitetura proposta. A im-
plementacao atual do GNU Radio fornece uma interface que prove uma camada de abstracao
as plataformas USRP, na forma dos blocos source e sink, a esta interface foram adicionadas
classes que implementam os blocos para a arquitetura proposta. Nas classes foram adiciona-
dos metodos que permitem configurar o novo comportamento da plataforma, por exemplo,
configurar o roteamento dos dados entre nucleos da NoC e parametros dos aceleradores em
hardware.
Na figura 5.5 e possıvel ver o diagrama de classes simplificado da nova interface pro-
posta estendida da interface original. Um ponto importante a ser salientado e cada vez que
for adicionado um novo acelerador em hardware, tambem e necessario adicionar metodos
especıficos relativos as suas configuracoes as classes da arquitetura.
5.2. Avaliacao da Arquitetura Proposta 61
Figura 5.5: Diagrama de Classes simplificado da interface de abstracao da arquitetura com UHD eGNU Radio.
5.2 Avaliacao da Arquitetura Proposta
O experimento de teste criado para a avaliacao da arquitetura e a realizacao da inter-
ceptacao de uma comunicacao ponto-a-ponto do tipo General Mobile Radio Service (GMRS),
utilizada nas comunicacoes de radios Walkie-talkie (figura 5.6a). Este tipo de aplicacao e am-
plamente utilizado em acoes militares e de seguranca publica, por exemplo, interceptacao de
comunicacoes entre criminosos. Para a realizacao de uma analise comparativa o cenario de
testes sera implementado de duas formas distintas: (1) utilizando a arquitetura GNU Ra-
dio e USRP; (2) o prototipo da arquitetura proposta utilizando a BESDR com placas-filhas
TVRX2, kit ML605 e um host rodando GNU Radio com as modificacoes realizadas.
Com o intuito de criar um ambiente mais proximo do real e tambem coletar um numero
maior de dados para a analise da arquitetura, foi desenvolvido um cenario de testes com
multiplos canais. Porem, devido a dificuldade de criar um ambiente de experimentacao
composto por varios radios Walkie-talkie se comunicando, utilizou-se uma USRP junto com
o GNU Radio para emular a geracao de multiplos canais como apresentado na figura 5.6b.
A USRP realiza a transmissao de um stream com 8 canais (tabela 5.1) narrowband FM com
12,5 KHz de banda contendo audios distintos.
5.2.1 Implementacao do experimento
Os principais algoritmos utilizados para a implementacao do experimento de teste pro-
posto sao: (a) spectrum sensing ; (b) separacao dos canais de interesse; (c) demodulador
62 5. Implementacao e Avaliacao da Proposta
(a) Testes com canais GMRS
(b) Testes com multiplos canais utilizando USRP.
Figura 5.6: Ambiente de testes.
Tabela 5.1: Lista dos canais GMRS
Canal Frequencia (MHz)
1 462,550
2 462,575
3 462,600
4 462,625
5 462,650
6 462,675
7 462,700
8 467,725
5.2. Avaliacao da Arquitetura Proposta 63
FM narrowband. A figura 5.7 apresenta um fluxograma do algoritmo de recepcao, os blocos
de cor cinza representam as partes que estao sendo executados no hardware, por meio de
aceleradores na arquitetura proposta. O algoritmo pode ser dividido nas seguintes etapas:
1. Recebimento dos dados da janela de interesse e realizacao de DFE (decimacao e fil-
tragem).
2. Analise do espectro para encontrar as portadoras dos canais que estao se comunicando.
3. Separacao dos canais encontrados.
4. Demodulacao dos canais narrowband FM.
5. Gravacao do stream de dados de cada canal em arquivos.
Figura 5.7: Algoritmo de recepcao do experimento de teste.
O algoritmo de spectrum sensing, que e amplamente utilizado em aplicacoes de radios
cognitivos, e baseado em um detector de energia utilizando uma FFT. De forma basica
funciona aplicando uma FFT de 1024 pontos ao sinal que e recebido apos a decimacao e
filtragem. Ao resultado no domınio da frequencia e realizado uma busca para encontrar
frequencias que possuem energia superior a 30 dBm permitindo, dessa forma, encontrar
portadoras ativas. Nas frequencias ativas encontradas e realizado uma correlacao para definir
as frequencias minima e maxima (Fmin-Fmax), para entao identificar os canais que podem
ser comparados com uma base de dados com canais pre-existentes.
Apos determinar os canais ativos e necessario realizar a separacao dos mesmos para
a demodulacao. A separacao dos canais e feita utilizando o algoritmo de DDC, este bloco
recebe a janela de interesse com todos os canais, entao realiza a filtragem e translacao de
frequencia para a banda base de cada canal. Para realizar a separacao dos canais sao feitas
as configuracoes de frequencia central e a taxa de decimacao para os diferentes canais nos
blocos de DDC.
Ja a implementacao que faz a simulacao de multiplos canais se comunicando, utilizando
a USRP e GNU Radio, e feita modulando com FM narrowband arquivos de audio do tipo
64 5. Implementacao e Avaliacao da Proposta
wav com amostragem de 8 KHz, por fim multiplicando cada sinal por um cosseno com a
frequencia referente ao seu canal, dessa forma, e feita uma multiplexacao de todos os canais
na frequencia como e apresentado na figura 5.8.
Figura 5.8: Domınio da frequencia dos 8 canais transmitidos para a realizacao dos testes.
5.3 Avaliacao dos Resultados
Esta secao apresenta os resultados obtidos atraves de experimentos realizados e e or-
ganizado de forma a agrupar os aspectos de analise. A performance foi analisada de forma
comparativa, com e sem a arquitetura proposta. Outro aspecto abordado e o consumo dos
recursos da FPGA para a implementacao dos testes.
5.3.1 Analise de desempenho
Para auxiliar a avaliacao e analise de desempenho dos experimentos foi desenvolvido
o bloco bench graph para o GNU Radio. Esse bloco utiliza o utilitario mpstat do pacote
sysstat do Linux, que apresenta a ocupacao de cada processador disponıvel na maquina ou
a media global do sistema. A porcentagem de uso da CPU e separado pelo mpstat em sete
categorias: user, nice, system, iowait, irq, soft e idle. A duas primeiras categorias (user e nice)
apresentam a porcentagem do uso da CPU em espaco de usuario com aplicacoes, sendo que
a segunda categoria separa o que e executado com prioridade “nice”. As categorias system,
iowait, irq e soft apresentam metricas relacionadas com a porcentagem do uso da CPU pelo
kernel, requisicao de disco, interrupcoes e interrupcoes de software, respectivamente. Por fim,
a categoria (idle) apresenta o tempo em que a CPU fica inativa.
Para simplificar a apresentacao dos resultados a saıda do mpstat foi agrupada em tres
5.3. Avaliacao dos Resultados 65
categorias USR, SYS e IDLE. A USR agrupa as duas primeiras categorias (user e nice)
e representa de forma geral o gasto de CPU pelas implementacoes dos cenarios propostos.
A SYS agrupa os valores do consumo de processamento das tarefas do sistema operacional
(system, iowait, irq e soft). Por fim, o IDLE e o valor direto retirado das medicoes com mpstat.
Para a analise foi utilizado o valor da media global gerada pelo mpstat, que representa melhor
o consumo dos recursos do sistema por cada implementacao.
As medicoes dos testes propostos foram feitas com intervalos de 2 segundos e os testes
foram executadas com prioridade “tempo real” durante 600 segundos (300 medicoes por
teste), o que foi suficiente uma vez que as implementacoes nao apresentam grandes oscilacoes
no processamento dos fluxos de amostra, os quais sao constantes durante todo o teste. O host
utilizado para o ambiente de testes foi composto por um PC com processador Intel QuadCore
de 2.83 GHz, com 4GB de RAM e rodando Ubuntu 11.04 com o kernel 2.6.38-15. A placa de
rede gigabit utilizada para interface com a arquitetura proposta foi a Broadcom BCM5755
integrada.
As figuras 5.9a e 5.9b apresentam os resultados da analise de desempenho para o cenario
de testes, utilizando a arquitetura tradicional e a arquitetura proposta respectivamente. As
medicoes de cada uma das categorias (USR, SYS e IDLE ) foram plotadas levando em consid-
eracao o uso dos quatro nucleos do processador utilizado. Como esperado, as implementacoes
tradicionais mostraram desempenho bastante inferior se comparado a arquitetura proposta.
Isto pode ser observado pela curva USR e SYS que somadas mostram uma ocupacao media
maior que 340% na implementacao com a arquitetura original, o que torna o computador
praticamente sem responsividade para outras possıveis tarefas.
A figura 5.10 apresenta as medias de ocupacao da CPU no cenario de testes. A ocupacao
e dividia em USR e SYS para a implementacao com a arquitetura proposta, respectivamente
27% e 10%. E tambem para implementacao tradicional, respectivamente 310% e 33%. A
diminuicao de 283% de ocupacao da CPU por tarefas em espaco de usuario quando a ar-
quitetura proposta e utilizada mostra um ganho de performance significativo. Alem disso,
a diminuicao do fluxo de dados, que possuem uma parte tratada diretamente no hardware,
possibilita uma diminuicao da ocupacao da CPU pelas tarefas do sistema de 23%.
Foram realizadas medicoes para verificar o desempenho das funcoes aceleradas em hard-
ware comparando-as com suas implementacoes no GNU Radio. Para auxiliar nessa tarefa
foram utilizadas as ferramentas oprofile [37] e ChipScope presente no ISE. Oprofile permite
realizar analise dinamica de programas em execucao em ambientes Linux, permitindo realizar
medicoes do tempo de execucao das funcoes de um programa. A tabela 5.2 apresenta a com-
paracao do tempo medio para a execucao de diferentes tamanhos FFTs entre o acelerador
em hardware e a implementacao no host. Para o tamanho da janela da FFT utilizada no
experimento de 1024 pontos a implementacao em hardware possui um desempenho 28 vezes
maior aproximadamente.
66 5. Implementacao e Avaliacao da Proposta
(a) Implementacao USRP e GNU Radio
(b) Implementacao com a arquitetura proposta
Figura 5.9: Ocupacao da CPU no cenario de testes
5.3. Avaliacao dos Resultados 67
Figura 5.10: Ocupacao media da CPU no cenario de testes.
Tabela 5.2: Analise de tempo para diferentes tamanhos de janela de FFT.
Janela FFT FPGA Media (µs) Host Media (µs)
64 4.21 937.89
128 6.12 912.25
256 10.98 1170.07
512 19.47 944.58
1024 34.61 995.26
2048 68.34 1055.14
4096 125.38 1171.35
68 5. Implementacao e Avaliacao da Proposta
A figura 5.11 apresenta uma comparacao do numero de FFTs por segundo em funcao
do tamanho da janela para as implementacoes em hardware e executadas no host. Como
era esperado ha um grande ganho de performance o que auxilia diminuir a latencia para
implementacao de um radio ja que essa operacao e utilizada em diversas tecnologias de
comunicacoes.
Figura 5.11: Numero de FFTs por segundo em funcao do tamanho da janela.
5.3.2 Analise de latencia da RTSNoC
Para realizar uma analise de latencia do roteador da rede RTSNoC, foram gerados
padroes de trafegos de pacotes e para uma analise foi utilizada a ferramenta de simulacao
presente no ISE.
A figura 5.12 mostra um diagrama de forma de onda da simulacao da comunicacao entre
os nucleos conectados ao roteador RTSNoC. Nessa comunicacao, apos o reset do sistema os
nucleos localizados nos canais NN, NE, ES e SS enviam pacotes simultaneamente para o canal
SE. A ordem de prioridade para acessar o mesmo canal e da mais alta para a mais baixa: NN,
NE, SE, SS, SW, NW e WW. Apos o reset do sistema os nucleos enviam ao mesmo tempo o
pedido para enviar os pacotes. Os pacotes enviados por cada canal de comunicacao sao:
• 08811300AAh (canal NN);
• 08891300CCh (canal NE);
• 08911300EEh (canal EE);
5.3. Avaliacao dos Resultados 69
• 08A11300FFh (canal SS).
Neste caso, dado o criterio de prioridade, o nucleo localizado no canal de NN envia seu
pacote para o canal de SE, como mostrado na figura 5.12 (1). Seguindo a ordem de prioridade,
os outros pacotes sao enviados do NE, EE, e terminando com o envio do pacote de SS, como
mostrado na figura 5.12, (2) ate (4). A ordem de entrega dos pacotes e confirmado na figura
5.12(5).
Figura 5.12: Diagrama de forma de onda da utilizacao da RTSNoC.
A latencia do roteador RTSNoC pode ser visto na figura 5.12 (6), onde o atraso do
pacote enviado pelo canal NN e dois ciclos de clock. Um ciclo devido o processo de arbitragem
e um segundo ciclo devido ao processo de roteamento, ou seja, a latencia para envio de um
pacote e de dois ciclos de clock. Aos pacotes dos canais NE, EE e SS que estao competindo
pelo canal SE e adicionado mais um ciclo para a entrega. Por exemplo, o pacote enviado por
SS tem um ciclo de clock de arbitragem, mais um ciclo de atraso devido o pacote de NN e
mais dois devido os pacotes de NE e EE, por fim, outro devido o envio de seu proprio pacote,
totalizando cinco ciclos de atraso.
Portanto, os limites da latencia de um fluxo de pacotes na RTSNoC, pode ser calculado
considerando que o mınimo de latencia e o dobro do numero de roteadores entre a fonte do
pacote ate o seu destino, como mostra:
LMIN = NROU ∗ 2, (5.1)
onde LMIN e o mınimo de latencia e NROU e o numero de roteadores no caminho entre a
70 5. Implementacao e Avaliacao da Proposta
origem do pacote e o destino do pacote. A latencia maxima e determinada adicionando uma
unidade para o maior numero de nucleos que podem competir por algum canal de destino em
um determinado instante, para cada roteador no caminho entre a fonte de pacote e o destino
do pacote. A expressao que determina a latencia maxima e dada por:
LMAX =∑
(NREQ + 1), (5.2)
onde LMAX e o maximo de latencia e NREQ e o maior numero de canais (ou nucleos) que
pode requerer a mesmo canal de comunicacao como o destino de sua mensagens ao mesmo
tempo, para cada roteador no caminho entre a fonte do pacote e de destino final.
Outros cenarios foram testados utilizando diferentes configuracoes de trafego e difer-
entes topologias de rede usando mais de um roteador. Em todos os casos, a maxima latencia
para a rede foi respeitada, independentemente do trafego ou topologia usada no teste.
5.3.3 Consumo dos Recursos da FPGA
Na tabela 5.3 e apresentado o consumo dos recursos da FPGA Virtex-6 para a im-
plementacao do experimento de testes na arquitetura proposta. Os custos sao separados em
Slices, Flip-Flops, LUTs e blocos DSP48E1 que possuem multiplicadores em hardware (18x18
Mult).
Tabela 5.3: Consumo de recursos para realizacao do experimento.
Implementacao Slices FFs LUTs DSP48E1
RTSNoC 807 1131 429 *
FFT 4089 4794 2461 16
Filtro FIR 1127 1058 1578 4
Controle 1290 2799 2585 *
RF Interface 2946 2252 3285 4
Separacao de canais 8756 6988 12526 18
Gigabit Ethernet 1206 1198 1526 *
5.4 Consideracoes Finais
A principal vantagem da arquitetura proposta perante o sistema que utiliza USRP
juntamente com o GNU Radio e a capacidade da migracao dos algoritmos DSP executados
no host para o hardware sem a perda da flexibilidade para as implementacoes de SDR. Isso
diminuiu drasticamente a ocupacao do processador de uso geral do sistema (host), uma vez
que o paralelismo intrınseco existente na separacao de diversos canais, que exige o processa-
mento concomitante do mesmo grupo de dados, e a alta quantidade de amostras por segundo,
proveniente das fases iniciais do radio, sao caracterısticas onerosas para implementacoes em
software e foram beneficiados pela implementacao paralela do hardware.
5.4. Consideracoes Finais 71
A RTSNoC apresenta uma latencia maxima de dois ciclos de clock independente das
taxas de dados, diferente de outas implementacoes de NoC que mostram um comportamento
exponencial de latencia com o aumento da taxa de dados [9]. Esse comportamento de uma
latencia maxima e a capacidade de rodar a uma frequencia superior de 200 MHz aliado
com a utilizacao de uma abordagem de granularidade grossa dao a arquitetura uma vazao
suficiente para aplicacoes SDR.
A area ocupada pela estrutura de comunicacao e os blocos da arquitetura nao utiliza
muitos recursos das famılias de FPGA de alto desempenho, como e o caso do dispositivo
FPGA Virtex-6 utilizado para a prototipacao. Porem, para o uso de dispositivos de menor
capacidade o valor consumido torna-se um problema como tambem a frequencia de operacao.
72 5. Implementacao e Avaliacao da Proposta
Capıtulo 6
Conclusoes
Este trabalho trabalho foi desenvolvido na direcao de explorar arquiteturas capazes de
atender as demandas de aplicacoes atuais para SDR, como por exemplo radios cognitivos.
O trabalho analisou os algoritmos mais utilizados para implementacao das camadas fısicas
dos radios e propos uma arquitetura para SDRs utilizando uma abordagem de granularidade
grossa baseada em aceleradores em hardware para os algoritmos mais utilizados. Como alter-
nativa de interconexao, foi explorado o uso da RTSNoC devido a vantagem desta tecnologia
para a interconexao de multiplos blocos.
Como pontos positivos da proposta, pode-se considerar a escalabilidade, capacidade de
exploracao de paralelismo e uma interface de comunicacao bem definida para os blocos. A
arquitetura proposta permitiu o deslocamento das fases com alto consumo de processamento,
que necessitam altas taxas de amostragem, para o hardware reconfiguravel. Os testes com-
parativos entre a implementacao tradicional e a arquitetura proposta demonstraram ganhos
significativos no aproveitamento dos recursos do sistema, relacionados mais especificamente
ao desempenho e as interfaces de comunicacao. Como contribuicao destaca-se tambem o de-
senvolvimento da placa BESDR, que realiza um front-end RF para kits de desenvolvimento
FPGA, essa plataforma auxilia no desenvolvimento de futuras arquiteturas para SDR e foi
utilizada para a prototipacao da arquitetura proposta.
A maior desvantagem encontrada foi a falta de aceleradores em hardware e a dificuldade
de implementacao dos mesmos. No entanto, foi proposto a utilizacao de uma abordagem de
desenvolvimento de alto nıvel para FPGAs utilizando as ferramentas System Generator e
Simulink. Outra desvantagem e a necessidade da utilizacao de um host para configuracao,
controle e a implementacao das camadas de mais alto nıvel de um radio.
74 6. Conclusoes
6.1 Trabalhos Futuros
Como perspectivas de trabalhos futuros, no que se refere a arquitetura, as seguintes
atividades podem ser citados:
• Adicionar a arquitetura processadores hardcore de alto desempenho, por exemplo, ARM
Cortex-A8. Esse tipo de processadores ja estao disponıveis nas ultimas geracoes de
FPGA (Virtex 7), podem trazer vantagens como diminuir problemas de latencia, nao ter
a necessidade um host externo. Dessa forma, possibilitar a miniaturizacao do sistema,
diminuir o consumo de energia permitindo a utilizacao em sistemas embarcados.
• Adicionar a arquitetura co-processadores SIMD como blocos conectados na NoC para
permitir o desenvolvimento de algoritmos DSPs especıficos e complexos.
• Criacao de uma ferramenta capaz de gerar o HDL para arquitetura a partir de um
repositorio de aceleradores, semelhante a ferramenta gnuradio-companion que permite
a geracao automatica do flowgraph do GNU Radio a partir de seus blocos.
• Desenvolver mais aceleradores a partir de blocos do GNU Radio com abordagens de
descricao de hardware de alto nıvel como System C.
• Explorar a reconfiguracao parcial e dinamica dos modulos de processamento no FPGA.
Apendice A
Consideracoes sobre os aceleradores
da Arquitetura
A.1 Fast Fourier Transform
A Discrete Fourier Transform (DFT) e um algoritmo fundamental para processamento
digital de sinais e utilizada em muitas aplicacoes, e a representacao finita e discreta da
transformada de Fourier. A DFT do sinal discreto X(k), k = 0, . . . , N − 1 de uma sequencia
x(n), n = 0, . . . , N − 1 e definida como:
X(k) =N−1∑n=0
x(n)e−jnk2π/N k = 0, . . . , N = 1 (A.1)
onde N e o tamanho da transformada e j =√−1. A transformada inversa (IDFT) e dada
por:
x(k) =1
N
N−1∑k=0
X(k)ejnk2π/N n = 0, . . . , N = 1 (A.2)
O calculo direto de uma DFT e de alto custo computacional. Um metodo mais eficiente
para esse calculo e o algoritmo da Fast Fourier Transform (FFT), o qual reduz drasticamente
o numero de operacoes necessarias para se chegar ao mesmo resultado da DFT. Enquanto
numa DFT de N pontos o numero de operacoes necessarias (adicoes, subtracoes e multi-
plicacoes) e proporcional a N2, numa FFT esta razao de proporcao e reduzida para log2N .
A arquitetura possui um acelerador que implementa uma FFT de 256 pontos, para
realizar o calculo utiliza o algoritmo padrao Radix-2 Cooley-Tukey (tambem chamado de
butterfly), ou seja, a FFT de 256 pontos e decomposta em log2(N) estagios, e cada estagio
contem uma Radix-2 butterfly, a figura A.1 apresenta o diagrama de um estagio do acelerador.
O bloco tambem e capaz de calcular a transformada inversa (IFFT).
76 A. Consideracoes sobre os aceleradores da Arquitetura
Figura A.1: Representacao grafica da FFT.
A.2 Filtro FIR
O filtro Finite Impulse Response (FIR) e um dos blocos basicos mais utilizados em
sistemas DSP, e um tipo de filtro digital caracterizado por uma resposta ao impulso que
torna nula apos um tempo finito. A funcao transferencia de um filtro FIR de ordem N e
dada por:
Figura A.2: Representacao grafica do filtro FIR.
Y (n) =N∑i=0
k(i)S(n− 1), (A.3)
A.2. Filtro FIR 77
onde S(n) e o sinal de entrada, Y (n) e o sinal de saıda, N a ordem do filtro e k(i) sao
os coeficientes do filtro que determinam a resposta em frequencia do sistema. A figura A.2
mostra que a mesma funcao pode ser realizada com um grupo de elementos de delay (z−1)
e multiplicadores, com um delay e um multiplicador para cada tap do filtro seguidos por
uma funcao de soma. Esse tipo de filtro em geral e implementado em DSPs com instrucoes
que multiplicam dois operandos e acumulam o resultado (Multiply and Accumulate (MAC))
em um unico ciclo de clock. E possıvel, no entanto, implementa-lo como uma cascata de
operacoes, o que possibilita uma implementacao paralela e mais eficiente [49].
O acelerador da arquitetura implementa um filtro FIR com 64 taps e leva 8 clocks
do FPGA para realizar a operacao. Os coeficientes para esse filtro deve ser carregados por
pacotes de configuracao enviados pelo bloco de controle.
78 A. Consideracoes sobre os aceleradores da Arquitetura
Apendice B
Geracao ondas FM narrowband
Existem, essencialmente, dois metodos basicos de geracao de ondas FM: direto e indireto
[53]. No metodo indireto a onda modulante e usado primeiramente para produzir uma onda
FM de banda estreita, e depois uma multiplicacao de frequencia para a translacao para faixa
desejada. Ja o no metodo direto a frequencia da portadora e variada diretamente de acordo
com o sinal modulante.
Figura B.1: Diagrama de blocos para modulador FM narrowband.
Neste caso entao utilizando o FM indireto considere primeiro a geracao de uma onda
FM de banda estreita. Para isso, a expressao de uma onda FM s1(t) que e escrita na seguinte
forma em funcao da onda modulante m(t):
s1(t) = A1 cos(2πf1t)−A1 sin(2πf1t)φ1(t)
= A1 cos(2πf1t)− 2πk1A1 sin(2πf1t)
t∫0
m(t)dt (B.1)
onde f1 e a frequencia da portadora e A1 e a amplitude da portadora. O argumento angular
φ1 de s1(t) esta relacionado com m(t) onde k1 e a sensibilidade de frequencia do modulador.
A equacao define uma onda FM narrowband e a partir dela e construıdo o diagrama de blocos
apresentado na figura B.1, o fator de escala 2πf1 e tratado pelo multiplicador modulador.
80 B. Geracao ondas FM narrowband
A onda modulada produzida por esse modulador de banda estreita difere de um FM
ideal, pois apresenta modulacao em amplitude residual distorcao harmonica na frequencia
de modulacao. Porem, ao restringir o ındice de modulacao a β ≤ 0.3rad, os efeitos de AM
residual e PM harmonico sao limitados a nıveis negligenciaveis.
O passo seguinte no metodo de FM indireto e o de multiplicacao na frequencia. Basi-
camente, um multiplicador de frequencia consiste num dispositivo nao linear seguido por um
filtro passa-banda.
Referencias Bibliograficas
[1] FPGA Mezzanine Card (FMC) standard. ANSI, New York, NY, 2008. Approved in
2008, revised in 2010.
[2] B. Ackland, D. Raychaudhuri, M. Bushnell, C. Rose, I. Seskar, T. Sizer, D. Samardzija,
J. Pastalan, A. Siegel, J. Laskar, et al. High performance cognitive radio platform with
integrated physical and network layer capabilities. NSF CNS-0435370, 2005.
[3] R. Andraka. A survey of cordic algorithms for fpga based computers. In Proceedings
of the 1998 ACM/SIGDA sixth international symposium on Field programmable gate
arrays, pages 191–200. ACM, 1998.
[4] O. Anjum, T. Ahonen, F. Garzia, J. Nurmi, C. Brunelli, and H. Berg. State of the
art baseband dsp platforms for software defined radio: A survey. EURASIP Journal on
Wireless Communications and Networking, 2011(1):5, 2011.
[5] P.J. Ashenden. The student’s guide to VHDL. Morgan Kaufmann, 2008.
[6] L. Benini and G. De Micheli. Networks on chips: A new soc paradigm. Computer, 35
(1):70–78, 2002.
[7] L. Benini and G. De Micheli. Networks on chips: Technology and Tools. Morgan Kauf-
mann, 2006.
[8] E. Bolotin, I. Cidon, R. Ginosar, and A. Kolodny. Qnoc: Qos architecture and design
process for network on chip. Journal of Systems Architecture, 50(2):105–128, 2004.
[9] L. Bononi and N. Concer. Simulation and analysis of network on chip architectures:
ring, spidergon and 2d mesh. In Proceedings of the conference on Design, automation
and test in Europe: Designers’ forum, pages 154–159. European Design and Automation
Association, 2006.
[10] F. Bouwens, M. Berekovic, A. Kanstein, and G. Gaydadjiev. Architectural exploration of
the adres coarse-grained reconfigurable array. Reconfigurable Computing: Architectures,
Tools and Applications, pages 1–13, 2007.
82 REFERENCIAS BIBLIOGRAFICAS
[11] C. Brunelli, F. Cinelli, D. Rossi, and J. Nurmi. A vhdl model and implementation of a
coarse-grain reconfigurable coprocessor for a risc core. In Research in Microelectronics
and Electronics 2006, Ph. D., pages 229–232. IEEE, 2006.
[12] G. Cichon, P. Robelly, H. Seidel, E. Matus, M. Bronzel, and G. Fettweis. Synchronous
transfer architecture (sta). Computer Systems: Architectures, Modeling, and Simulation,
pages 193–207, 2004.
[13] K. Compton and S. Hauck. Reconfigurable computing: a survey of systems and software.
ACM Computing Surveys (csuR), 34(2):171–210, 2002.
[14] W.J. Dally and B. Towles. Route packets, not wires: On-chip interconnection networks.
In Design Automation Conference, 2001. Proceedings, pages 684–689. IEEE, 2001.
[15] A.D. Datasheet. Mixed-signal front-end (mxfe) processor for broadband communica-
tions, 2002.
[16] Laboratorio de Integracao de Software e Hardware. Board for embedded software-defined
radio, 2012. URL http://www.lisha.ufsc.br/Project+eSDR.
[17] Roberto de Matos, Antonio Augusto Frohlich, and Leandro Buss Becker. Using Multiple
Channels to Improve SDR Flexibility and Performance. In International Conference on
Computing, Networking and Communications, pages 1031–1035, Maui, U.S.A., January
2012. ISBN 978-1-4673-0009-4.
[18] R. Dhar, G. George, A. Malani, and P. Steenkiste. Supporting integrated mac and phy
software development for the usrp sdr. In Networking Technologies for Software Defined
Radio Networks, 2006. SDR’06.1 st IEEE Workshop on, pages 68–77. IEEE, 2006.
[19] C. Dick and J. Hwang. Fpgas: A platform-based approach to software radios. Software
Defined Radio, pages 235–272, 2004.
[20] C.H. Dick, S. Jose, and H.M. Pedersen. Design and implementation of high-performance
fpga signal processing datapaths for software defined radios. In Embedded Systems Con-
ference, pages 1–16, 2001.
[21] G. Eichinger, M. Leeser, and K. Chowdhury. An fpga spectrum sensing accelerator for
cognitive radio. 2011.
[22] Blossom Eric. Exploring gnu radio, 2012. URL
http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html.
[23] M. Ettus. Universal software radio peripheral. Ettus Research, Mountain View, CA,
2009.
[24] J. Gao. 10 100 1000 mbps tri-mode ethernet mac specification, 2006.
REFERENCIAS BIBLIOGRAFICAS 83
[25] F. Garzia, C. Brunelli, C. Giliberto, and J. Nurmi. Implementation of w-cdma cell search
on a runtime reconfigurable coarse-grain array. In EUROCON 2009, EUROCON’09.
IEEE, pages 411–415. IEEE, 2009.
[26] K. Goossens, J. Dielissen, and A. Radulescu. Æthereal network on chip: concepts,
architectures, and implementations. Design & Test of Computers, IEEE, 22(5):414–421,
2005.
[27] P. Guerrier and A. Greiner. A generic architecture for on-chip packet-switched intercon-
nections. In Proceedings of the conference on Design, automation and test in Europe,
pages 250–256. ACM, 2000.
[28] M.L.H.U. Guide. 1. overview. ML605 Hardware User Guide, 2009.
[29] D. Haessig, J. Hwang, S. Gallagher, and M. Uhm. Case-study of a xilinx system generator
design flow for rapid development of sdr waveforms. In SDR technical conference, pages
14–18, 2005.
[30] S. Hauck and A. DeHon. Reconfigurable computing: the theory and practice of FPGA-
based computation. Morgan Kaufmann Pub, 2008.
[31] S. Haykin. Sistemas de Comunicacao-Analogicos e Digitais. Artmed, 2004.
[32] J. Hwang, B. Milne, N. Shirazi, and J. Stroomer. System level tools for fpgas. Proceedings
FPL 2001, 2001.
[33] F. Karim, A. Nguyen, and S. Dey. An interconnect architecture for networking systems
on chips. Micro, IEEE, 22(5):36–45, 2002.
[34] P.B. Kenington. RF and baseband techniques for software defined radio. Artech House,
2005.
[35] S. Kumar, A. Jantsch, J.P. Soininen, M. Forsell, M. Millberg, J. Oberg, K. Tiensyrja,
and A. Hemani. A network on chip architecture and design methodology. In VLSI, 2002.
Proceedings. IEEE Computer Society Annual Symposium on, pages 105–112. IEEE, 2002.
[36] B.P. Lathi. Sinais e sistemas lineares. Bookman, 2007.
[37] J. Levon. Oprofile manual. Victoria University of Manchester, 2004.
[38] T. Limberg, M. Winter, M. Bimberg, R. Klemm, MBS Tavares, H. Ahlendorf, E. Matus,
G. Fettweis, H. Eisenreich, G. Ellguth, et al. A heterogeneous mpsoc with hardware
supported dynamic task scheduling for software defined radio. In Design Automation
Conference (DAC’09). Citeseer, 2009.
[39] D. Liu. Embedded DSP processor design: application specific instruction set processors,
volume 2. Morgan Kaufmann, 2008.
84 REFERENCIAS BIBLIOGRAFICAS
[40] D. Liu, A. Nilsson, E. Tell, D. Wu, and J. Eilert. Bridging dream and reality: pro-
grammable baseband processors for software-defined radio. Communications Magazine,
IEEE, 47(9):134–140, 2009.
[41] M. Lohning, T. Hentschel, and G. Fettweis. Digital down conversion in software radio
terminals. In Proceedings of the 10. European Signal Processing Conference (EUSIPCO,
volume 3, pages 1517–1520. Citeseer, 2000.
[42] R.G. Lyons. Understanding digital signal processing. Prentice Hall PTR, 2004.
[43] R. Matos. Uma arquitetura de canais para radios definidos por software de multiplas
camadas. 2010.
[44] C. Maxfield. The Design warrior’s guide to FPGAs: Devices, tools and flows, volume 1.
Elsevier, 2004.
[45] J. Mitola. The software radio architecture. Communications Magazine, IEEE, 33(5):
26–38, 1995.
[46] J. Mitola. Software radio architecture. Wiley Online Library, 2000.
[47] J. Mitola III. Software radios: Survey, critical evaluation and future directions. Aerospace
and Electronic Systems Magazine, IEEE, 8(4):25–36, 1993.
[48] J. Mitola III. What is a software defined radio?, 2012. URL
http://gnu.feld-it.at/software/gnuradio/gnuradio.html.
[49] S.K. Mitra and Y. Kuo. Digital signal processing: a computer-based approach, volume 2.
McGraw-Hill New York, 2006.
[50] F. Moraes, N. Calazans, A. Mello, L. Moller, and L. Ost. Hermes: an infrastructure for
low area overhead packet-switching networks on chip. Integration, the VLSI Journal, 38
(1):69–93, 2004.
[51] T.R. Muck. Uma arquitetura para implementacao de sdrs em sistemas embarcados.
2009.
[52] A. Muller. Dab software receiver implementation. Swiss Federal Institute of Technology
Zurich, 2008.
[53] V.S. Neto. Telecomunicacoes: sistemas de modulacao. Erica, 2005.
[54] A. Niktash, H.T. Parizi, and N. Bagherzadeh. Application of a heterogeneous recon-
figurable architecture to ofdm wireless systems. In Circuits and Systems, 2007. ISCAS
2007. IEEE International Symposium on, pages 2586–2589. IEEE, 2007.
[55] J. Nurmi. Processor design: system-on-chip computing for ASICs and FPGAs. Springer
Verlag, 2007.
REFERENCIAS BIBLIOGRAFICAS 85
[56] G. Nychis, T. Hottelier, Z. Yang, S. Seshan, and P. Steenkiste. Enabling mac pro-
tocol implementations on software-defined radios. In Proceedings of the 6th USENIX
symposium on Networked systems design and implementation, pages 91–105. USENIX
Association, 2009.
[57] O. Paker, K. van Berkel, and K. Moerman. Hardware and software implementations of
an mmse equalizer for mimo-ofdm based wlan. In Signal Processing Systems Design and
Implementation, 2005. IEEE Workshop on, pages 1–6. IEEE, 2005.
[58] P.P. Pande, C. Grecu, A. Ivanov, and R. Saleh. Design of a switch for network on
chip applications. In Circuits and Systems, 2003. ISCAS’03. Proceedings of the 2003
International Symposium on, volume 5, pages V–217. IEEE, 2003.
[59] H. Park, K. Fan, M. Kudlur, and S. Mahlke. Modulo graph embedding: mapping
applications onto coarse-grained reconfigurable architectures. In Proceedings of the 2006
international conference on Compilers, architecture and synthesis for embedded systems,
pages 136–146. ACM, 2006.
[60] S. Pasricha and N. Dutt. On-chip communication architectures: system on chip inter-
connect. Morgan Kaufmann, 2008.
[61] S.M. Pereira. Standardizing digital if data transfer with vita 49. RTC Magazine, 2006.
[62] GNU FSF Projec. The gnu radio, 2012. URL http://gnuradio.org.
[63] U. Ramacher. Software-defined radio prospects for multistandard mobile phones. Com-
puter, 40(10):62–69, 2007.
[64] J.H. Reed. Software radio: a modern approach to radio engineering. Prentice Hall
Professional, 2002.
[65] R. Schena. Desenvolvimento de um digital down converter (ddc) para um prototipo
embarcado de radio definido por software. 2007.
[66] M. Schwartz. Information transmission, modulation and noise. a unified approach to
communication systems. New York: McGraw-Hill, 1970, 1, 1970.
[67] M.C. Smith and G.D. Peterson. Programming high performance reconfigurable comput-
ers. SPIE ITCon Reconfigurable Technology: FPGAs and Reconfigurable Processors for
Computing and Communications, 2001.
[68] V. Surducan, M. Moudgill, G. Nacer, E. Surducan, P. Balzola, J. Glossner, S. Stanley,
M. Yu, D. Iancu, et al. The sandblaster software-defined radio platform for mobile
4g wireless communications. International Journal of Digital Multimedia Broadcasting,
2009, 2009.
86 REFERENCIAS BIBLIOGRAFICAS
[69] D.L. Tennenhouse and V.G. Bose. Spectrumware: a software-oriented approach to wire-
less signal processing. In Proceedings of the 1st annual international conference on Mobile
computing and networking, pages 37–47. ACM, 1995.
[70] T.J. Todman, G.A. Constantinides, S.J.E. Wilton, O. Mencer, W. Luk, and P.Y.K.
Cheung. Reconfigurable computing: architectures and design methods. In Computers
and Digital Techniques, IEE Proceedings-, volume 152, pages 193–207. Iet, 2005.
[71] W.H.W. Tuttlebee. Software defined radio: origins, drivers, and international perspec-
tives. Wiley, 2002.
[72] M. Woh, Y. Lin, S. Seo, S. Mahlke, T. Mudge, C. Chakrabarti, R. Bruce, D. Kershaw,
A. Reid, M. Wilder, et al. From soda to scotch: The evolution of a wireless baseband
processor. In Microarchitecture, 2008. MICRO-41. 2008 41st IEEE/ACM International
Symposium on, pages 152–163. Ieee, 2008.
[73] V.I.I. Xilinx. Platform fpgas: Complete data sheet. DS031 (v3. 4), March, 2005.
[74] C.A. Zeferino and A.A. Susin. Socin: a parametric and scalable network-on-chip. In In-
tegrated Circuits and Systems Design, 2003. SBCCI 2003. Proceedings. 16th Symposium
on, pages 169–174. IEEE, 2003.
Recommended