Implementando sistemas DSP em FPGA

Tamanho: px
Começar a partir da página:

Download "Implementando sistemas DSP em FPGA"

Transcrição

1 Implementando sistemas DSP em FPGA Neste artigo são apresentadas as bases teóricas e práticas para implementar sistemas de processamento digital de sinais (DSP) em dispositivos lógicos programáveis FPGA (Field-Programable-Gate-Array), apresentando as principais vantagens deste tipo de implementação sobre o uso de processadores DSP convencionais. São apresentados ainda os principais recursos e sistemas de desenvolvimento e simulação disponíveis para o desenvolvimento destes sistemas para dispositivos da Altera. Introdução Os modernos algoritmos necessários para a implementação dos novos padrões de sistemas de comunicação de dados com e sem fios, compressão de som e imagem, sistemas criptográficos e sistemas de transmissão de imagens com resoluções cada vez maiores, exigem capacidade de processamento DSP cada vez maiores. Os processadores DSP atuais apresentam desempenho cada vez maior [1], mas ainda assim a complexidade crescente necessária a implementação destes algoritmos exige um número cada vez maior de processadores DSPs convencionais para a implementação destes novos algoritmos, aumentando muito o custo destas soluções. Alguns exemplos de sistemas que exigem capacidade de processamento muito superior à capacidade dos processadores DSP atuais de alto desempenho são sistemas de compressão de imagem em tempo real para imagens de alta resolução, tais como compressão nos padrões H.264 [2] (AVC) para as resoluções mais altas (1920x1080), sistemas de modulação e demodulação OFDM [3] para comunicação sem fio e transmissão de sinais de TV digital em banda larga e sistemas criptográficos necessários à implementação de VPNs em sistemas ethernet de banda larga (1Gbps e 10 Gbps). A principal alternativa disponível hoje para implementar sistemas de DSP de alto desempenho, como os citados acima, é a utilização de FPGAs para implementá-los. A principal característica desta alternativa é a possibilidade de executar sistemas com capacidade de processamento e ordens de grandeza superior se comparadas com a implementação destes sitemas utilizando processadores DSPs convencionais, em um único dispositivo e a um custo muito menor. Neste artigo serão apresentados os conceitos básicos de desenvolvimento de sistemas de processamento DSP em FPGAs, as ferramentas de desenvolvimento e simulação disponíveis e será apresentado um exemplo de implementação de um sistema simples em FPGA. Arquitetura das FPGAs Altera Antes de apresentar os conceitos e as ferramentas envolvidas na implementação de sistemas de processamento DSP em FPGAs, será feita uma breve revisão dos recursos disponívies em FPGAs da Altera voltadas para implementação de sistemas DSP, apresentando para cada recurso quais as principais aplicações em tais sistemas. A família de componentes com maior capacidade de processamento DSP da Altera é a família Stratix II [4], família de FPGA implementada em tecnologia de 90 nm, com interconexão em cobre, freqüência interna de operação máxima de 500 MHz para a lógica e de 1 GHz para interfaces seriais rápidas. Os dispositivos que compõem esta família são apresentados na Tabela 1 a seguir. Tab. 1 : Dispositivos Da família Stratix II Na Fig. 1 pode-se ver o diagrama de uma FPGA da família Stratix II, mostrando a localização dos principais recursos do dispositivo. Fig. 1 : Diagrama de um dispositivo Stratix II Os pricipais recursos disponíveis nas FPGAs da família Stratix II são:

2 ALMs : Adaptative Logic Modules são os módulos individuais que implementam os circuitos lógicos combinatórios e registrados de um circuito digital. É composto por uma tabela adaptativa com duas saídas (ALUT Adaptative Look Up Table), que implementa lógica combinatória, podendo implementar funções lógicas de 1 até 7 entradas, um somador por hardware e dois flip-flops,conectados à saída da ALUT ou à saída dos somadores. O diagrama de uma ALM pode ser visto na Fig. 2 abaixo. Fig. 2 : Diagrama de um ALM As ALMs são capazes de implementar circuitos lógicos e registrados de projetos de processamento DSP, além de somadores e, de forma menos eficiente, multiplicadores. É nas ALMs também que são implementadas as máquinas de estados necessárias à implementação de circuitos seqüenciais complexos, tais como controle de loops, sistemas de tomada de decisão e outros circuitos similares. MACs : As MACs (Multiply-Add-Accumulate) são sistemas complexos, capazes de executar operações de multiplicação, soma, deslocamento e acumular o resultado em pipeline, com a execução em média de uma operação por ciclo de relógio, em freqüências de até 370 MHz. Cada MAC pode ser usada como uma única MAC de 36x36 bits de entrada e 72 bits de saída, quatro MACs de 18x18 e 36 bits de saída ou como 8 MACs de 9x9 e com 18 bits de saída. Podem ainda ser configuradas para não executar a soma e o deslocamento, operando assim apenas como multiplicadores. Na Fig. 3 pode ser visto o diagrama de uma MAC. As MACs são os elementos centrais de processamento DSP, sendo cada MAC equivalente a uma unidade de processamento de um processador DSP. Na Família Stratix II, o menor dispositivo tem 16 MACs e o maior 96. Memória : A família Stratix II tem um sistema interno de memória baseado no conceito TriMatrix, com módulos de memória de três tamanhos diferentes : M512, com 512 bits, M4K, com 4K bits e M-RAM com 512 Kbits de memória. Os blocos de memória podem ser utilizados para implementar memória do tipo Simple-Port, Simple Dual-Port e True Dual-port, sendo que cada bloco de memória pode ser configurado para acessos de 1 a 36 bits, com sinais de byte enable ao se configurar o bloco de memória com acesso de 16 bits ou mais. Quando configurados com tamanho de palavra de 8 bits ou mais, pode-se configurar o bloco de memória para incluir um bit extra por byte, usado como paridade para o referido byte. O número de blocos de memória de cada densidade é inversamente proporcional à capacidade do bloco, sendo o número de blocos M512 grande, menor de M4K e poucos blocos M- RAM disponíveis. A capacidade de transferência de dados para cada tipo de bloco é proporcional ao número de blocos de memória disponíveis, conforme pode ser visto na Fig. 4. Fig. 4 : Densidade e capacidade de trasnferência dos blocos de RAM Na Fig. 5 são mostrados os recursos disponíveis em cada tipo de bloco de memória. Fig. 5 : Recursos dos blocos de memória Fig. 3 : Diagrama de uma MAC

3 Pinos de Entrada e Saída : Os dispositivos da família Stratix II têm pinos de entrada e saída capazes de serem configurados para fazer interface com circuitos externos em uma série de padrões elétricos diferentes, tais como LVTTL, LVCMOS, PCI, PCI-X, LVDS, LVPECL, HyperTransport, SSTL e HSTL classe I e II. O circuito de entrada e saída permite ainda que se implementem circuitos de interface com memória rápida, do tipo SDRAM (Syncronous DRAM), DDR (Double Data Rate) e DDR2 (Double Data Rate de segunda geração), QDR (Quad Data Rate) e QDR2. além de interface com processadores normais e DSP externos. Relógios globais e Locais : Um dos grandes desafios no projeto de dispositivos do tipo Gate Array é o controle do atraso dos sinais de relógio para que todos os flip-flops do circuito sejam sincronizados corretamente. Nas FPGAs da família Stratix II este desafio foi resolvido com a implementação em hardware de 16 sinais de relógio globais, que tem o tempo de propagação ajustado para que chegue com diferença de tempo de atraso mínimo a todos os flip-flops. Além dos 16 sinais de relógio global, há ainda 32 sinais de relógio chamados sinais de relógio regional, que são distribuídos 8 por cada quadrante do dispositivo e tem as mesmas características de tempo de propagação que os sinais globais. Na Fig. 8 pode-se ver a distribuição dos sinais de relógio globais e regionais. Fig. 6 : Diagrama de um pino de ES Alguns dos pinos de entrada e saída podem ainda ser utilizados para implementar interfaces seriais rápidas, com taxa de transferência de até 1 Gbps por pino. Nos dispositivos Stratix II, a interface SerDes rápida é implementada em hardware, no próprio pino de entrada e saída, permitindo a transferência de dados à taxa máxima de 1 Gbps. O sistema tem ainda implementado em hardware um circuito de alinhamento de fase automático, conforme pode ser visto na Fig. 7. Fig. 8 : Diagrama de distribuição de relógios Globais e Locais em uma FPGA Stratix II Os sinais de relógio globais e regionais são utilizados na implementação de qualquer circuito registrado síncrono, garantindo o funcionamento correto do mesmo independente do número de flip-flops presente no circuito e da posição dos mesmos no dispositivo. Fig. 7 : Interface Serial rápida Os pinos de entrada e saída são utilizados para implementar a interface com dispositivos externos à FPGA, além de implementarem sistemas de interface com dispositivos de memória externa do tipo SDRAM, DDR, DDR2, QDR, QDR2, RAM e FLASH, entre outros. Permitem ainda implementar interface com dispositivos como conversores A/D e D/A, codecs de áudio e vídeo, PLLs : Circuitos complexos de processamento DSP em geral necessitam de mais de uma freqüência de relógio para operar. Para gerar as diversas freqüências de relógio necessárias à operação de diferentes módulos dos circuitos, os dispositivos Stratix II têm seis ou doze PLLs disponíveis, sendo 2 ou 4 PLLs do tipo Enhanced PLL e 4 ou 8 do tipo Fast PLL. As principais diferenças entre os dois tipos de PLLs são os recursos de cada PLL e quais parâmetros podem ser configurados durante a operação em cada um

4 deles. Os PLLs do tipo Enhanced têm como recursos extras a possibilidade de chaveamento automático do sinal de referência, a possibilidade de implementar Spread Spectrum (+/- 500 KHz em torno da freqüência central de operação) e duas saídas a mais que os PLLs do tipo Fast. Nas Fig. 9 e 10 são apresentados os diagramas de blocos dos PLLs do tipo Enhanced e Fast, respectivamente. próprio ambiente do MATLAB, e um ambiente para desenvolvimento de sistemas, um ambiente gráfico, onde podem ser instanciados blocos desenvolvidos em.m, chamado SIMULINK [6]. O uso integrado destas duas ferramentas permite o desenvolvimento de algoritmos e sistemas de forma muito eficiente, permitindo desenvolver partes do algoritmo em.m, simular estas partes individualmente e depois integrá-las no sistema completo, simular o sistema e verificar o resultado final. O sistema de desenvolvimento permite ainda, uma vez concluído o desenvolvimento e a simulação do sistema, gerar programas em C ou código de descrição de hardware com a implementação do sistema completo utilizando ferramentas de implementação. Na Fig. 11 pode-se ver o fluxo de projeto completo utlizando o MATLAB e o SIMULINK. Fig. 9 : Diagrama de blocos de um PLL do tipo Enhanced Fig. 10 : Diagrama de blocos de um PLL do tipo Fast O desenvolvimento de algoritmos DSP O processo de desenvolvimento de um novo algoritmo DSP é feito, normalmente, com o auxílio de ferramentas de desenvolvimento voltadas para aplicações matemáticas, utilizando sistemas de desenvolvimento tais como MATLAB, da Mathworks, Matematica, MatCad e afins. No processo de desenvolvimento, a função destes softwares é a de prover um ambiente de simulação para desenvolver o algoritmo utilizando uma linguagem de desenvolvimento, simular o algoritmo e comparar o resultado da simulação com os valores esperados validando assim o algoritmo desenvolvido. O sistema de desenvolvimento mais utilizado hoje é o MATLAB [5], da Mathworks, empresa fundada em O MATLAB oferece um ambiente para desenvimento de algoritmos em dois níveis, o desenvolvimento do algoritmo utilizando uma linguagem proprietária para descrição de algoritmos, semelhante ao C, com arquivos.m no Fig. 11 : Desenvolvimento de sistemas no MATLAB/SIMULINK Outros recursos oferecidos pelo MATLAB são interface com sistemas de aquisição de dados e geração de sinais, interface com aplicativos para geração automática de relatórios e visualização gráfica dos resultados de simulação e conjuntos de funções prontas para aplicações específicas chamadas Toolboxes. Para o SIMULINK, dispõe ainda de conjuntos de funções pré-definidas, tais como geradores de funções, sistemas de verificação de resultados e diversas outras funções específicas, tais como funções de controle, de processamento DSP voltadas para aplicações específicas como redes neurais, organizadas em blocksets. Na Fig. 12 pode-se ver a organização funcional do MATLAB e do SIMULINK.

5 Implementando algoritmos DSP em FPGAs Fig. 12 : Organização funcional do sistema O MATLAB oferece um ambiente de desenvolvimento voltado para desenvimento de arquivos em formato.m, arquivos escritos em linguagem de descrição de funções e operações proprietária da Mathworks. Na Fig. 13 pode ser vista uma janela do MALAB com os diversos elementos presentes na interface. A implementação de algoritmos DSP em FPGAs é normalmente feita em duas etapas: na primeira etapa o algoritmo é desenvolvido e simulado em um ambiente de desenvolvimento como o MATLAB. Uma vez concluída a etapa de desenvolvimento, e estando a simulação do algoritmo concluída e de acordo com as especificações iniciais do algoritmo, inicia-se a segunda etapa que é a conversão do algoritmo para uma linguagem de descrição de hardware e a implementação do mesmo em hardware. Como todo desenvolvimento para FPGA, esta etapa é desenvolvida em diversas fases, conforme mostra a Fig. 14 a seguir. Fig. 12 : Janela do MATLAB O SIMULINK é o ambiente gráfico de desenvolvimento de sistemas que roda utilizando os recursos do MATLAB. Do MATLAB ele pode ser iniciado, como pode ser visto no detalhe em vermelho da Fig. 12. A janela do SIMULINK com um modelo implementado pode ser vista na Fig. 13 a seguir, mostrando ainda uma janela gráfica de resultados, uma janela com a conversão do sistema para um programa em C e uma janela do MATLAB utilizada para enviar comandos para o sistema. Fig. 13 : Janelas do SIMULINK Fig. 14 : Fases do desenvolvimento de um projeto em FPGA A especificação do projeto é a implementação do algoritmo desenvolvida no MATLAB e no SIMULINK. A partir desta especificação se cria um código HDL (Linguagem de Descrição de Hardware) em RTL (Regiter Transfer Level), simula-se o código RTL gerado, e a partir do momento que a simulação do código RTL está coerente com o resultado da simulação obtida no MATLAB/SIMULINK, compila-se o código RTL, faz-se a análise de tempos do projeto, simula-se o resultado da compilação já com os atrasos internos do componente incluídos nesta simulação, gravase o componente e testa-se o sistema completo. Este é o fluxo de projeto natural para implementação de algoritmos e funções DSP em FPGA. O que será apresentado a seguir é o DSP Builder, ferramenta que permite integrar os dois fluxos de desenvolvimento em uma única ferramenta.

6 O DSP Builder O DSP Builder é uma ferramenta de desenvolvimento que integra em um único ambiente os fluxos de projeto do MATLAB e de FPGA, permitindo de forma simples e direta implementar um algoritmo DSP utilizando recusos do DSP Builder (Blocos para o SIMULINK) no SIMULINK, simular o sistema criado e, uma vez que a fase do desenvolvimento tenha sido concluída, converter o algoritmo para código RTL em HDL, simular o código RTL utilizando os mesmos vetores de teste utilizados no SIMULINK e finalmente compilar o projeto, carregá-lo em hardware e testar em hardware o sistema completo. Na Fig. 15 pode ser visto o fluxo de projeto completo utilizando o DSP Builder. Fig. 15 : Bibliotecas disponíveis no DSP Builder As principais bibliotecas disponíveis são: Fig. 15 : Fluxo de projeto com o DSP Builder Após a instalação, o DSP Builder acrescenta uma nova biblioteca de blocksets ao SIMULINK, chamada DSP Builder, onde são incluídos modelos.m e.mdl (Linguagem de descrição dos blocos do SIMULINK) ao sistema. Estes blocos contêm a descrição das funções básicas disponíveis em.mdl e.m, além de terem associadas a respectiva descrição em HDL da funcionalidade equivalente a ser implementada em hardware. Além dos blocos que implementam funções básicas, o DSP Builder permite a inclusão de blocos que permitem converter o projeto para HDL, compilar o código HDL gerado, configurar o componente e simular o código RTL gerado utilizando o ModelSim, ferramenta de simulação da Mentor Graphics. Inclui ainda blocos que permitem fazer a interface direta com as placas de desenvolvimento DSP disponíveis na Altera, tais como utilizar pinos de entrada específicos, utilizar de forma direta os conversores A/D e D/A disponíveis na placa, acessar os LEDs e chaves da placa, entre outros recursos. Na Fig. 16 é mostrada a relação das bibliotecas de blocksets disponíveis no SIMULINK após a instalação do DSP Builder. Será a seguir feita uma breve descrição das funções disponíveis em cada biblioteca do DSP Builder. AltLab Biblioteca de sistemas específicos de dispositivos Altera, que permitem controlar a compilação, simulação e verificação dos dispositivos, criar novos modelos, importar modelos VHDL para formato.m/.mdl e criar subsistemas novos. Arithmetic Biblioteca com as funções aritméticas básicas para valores inteiros. Boards : Biblioteca com as especificações das placas existentes para as quais há suporte direto no DSP Builder e os recursos disponíveis em cada placa. Complex Type Nesta biblioteca estão presentes as funções para tratamento de números complexos, incluindo a formação de um valor complexo a partir de dois valores inteiros, o desmembramento de um número complexo em dois valores inteiros, um com a parte real e outro com a imaginária, e as operações aritméticas entre valores complexos. Gate & Control : Biblioteca com blocos lógicos básicos (AND, OR, XOR, FF, etc...) e módulos de controle digitais simples, tais como MUX, decodificadores e geradores de padrão. IO & Bus : Incluem os módulos de interface com entrada e saída (Sinais de entrada, saída e entrada/saída do dispositivo) e os sistemas de conversão e manipulação de barramentos de dados.

7 Rate Change : Biblioteca com os módulos que permitem alterar a freqüência de operação de uma determinada parte do projeto. Inclui PLLs, geradores de taxa de amostragem e conjuntos de flip-flops operando em freqüências diferentes. SOPC Builder Links: Uma das funcionalidades disponíveis no DSP Builder é a geração de módulos para o NIOS II, processador do tipo SoftCore da Altera. Esta biblioteca permite incluir os sinais de interface necessários à criação de um periférico ou de uma instrução proprietária para o NIOS II. State Machine Functions : Permite implementar máquinas de estado, permitindo definir os sinais de entrada, saída e os estados, bem como as condições de transição de estado. Storage : Inclui os elementos de armazenamento disponíveis, como blocos de RAM, ROM, FIFO, Shift Registers, LUT, LFSR, entre outros. Megacore Functions : Muitas vezes é necessário o uso de funções complexas no projeto para as quais já existem implementações prontas, tais como filtros FIR, NCOs (Numerically Controlled Oscilator), FFTs, IFFTs, entre outros. Nesta categoria de funções estão incluídas as funções complexas de DSP desenvolvidas pela Altera e que podem ser inclusas no projeto de forma imediata, bastando configurar os parâmetros da função e incluí-la no projeto como um novo bloco. Para avaliar o DSP Builder, inicialmente precisase de um PC rodando Windows versões 2000 ou XP, o Quartus II e o Matlab instalados e habilitados rodando na máquina. Para instalar o Quartus II, baixe-o gratuitamente do site da Altera [7] e instale a licença para o Quartus pedida também no site da Altera [8]. Uma versão de avaliação do Matlab pode ser obtido gratuitamente no site da Matworks [9]. Esta versão de avaliação do Matlab funcionará por 30 dias após ser baixada e instalada. Uma versão gratuita do DSP Builder pode ser baixada gratuitamente do site da Altera [10]. O DSP Builder deve ser o último pacote de software a ser instalado. Após completar a instalação do DSP Builder, um passo extra deve ser feito para completar sua instalação no Matlab. As instruções deste passo final se encontram em uma janela aberta pelo programa de instalação do DSP Builder ao final da execução do mesmo. A versão gratuita do DSP Builder é completamente funcional para o Matlab, permitindo a construção de modelos e a simulação dos mesmos, mas não gera código VHDL que possa ser implementado em FPGAs como a versão completa. Após baixar e instalar todos os pacotes de software acima em um PC rodando Windows 2000 ou XP e com o Matlab instalado e habilitado, pode-se iniciar a construção de modelos e a simulação dos mesmos. Vantagens e limitações do uso de FPGAs na implementação de algoritmos DSP Na implementação de um algoritmo DSP utilizando um processador DSP o algoritmo é implementado inicialmente em uma linguagem de programação, geralmente C/C++, compilado para o processador DSP a ser usado e executado. O processador DSP atualmente com maior poder de processamento tem implementadas internamente seis MACs que operam em paralelo sobre conjuntos de dados, permitindo a execução simultânea de seis operações de processamento DSP em um ciclo de relógio. Um exemplo de processadores DSP com esta característica são os processadores da linha TMS320C6xx, da Texas Instruments. A maioria dos processadores DSP disponíveis no mercado, entretanto, tem apenas uma MAC, e apenas uma operação DSP pode ser implementada em um determinado ciclo de relógio. Além desta limitação, antes de executar uma operação sobre um conjunto de dados, o dado ou conjunto de dados deve inicialmente ser carregado em um registrador ou em uma memória interna do DSP antes de ser processado, o que acarreta em um tempo maior de processamento. As principais vantagens da implementação em FPGA sobre processadores DSP de algoritmos DSP são: 1) Uso paralelo de recursos. Em implementações em FPGA de algoritmos DSP, pode-se implementar o número de MACs desejado para implementar o algoritmo, sendo que cada MAC ou conjunto de MACs pode ser usado para implementar partes do algoritmo seqüencialmente ou em paralelo. O maior dispositivo Altera disponível hoje, o EP2S180, com 180K LEs, disponibiliza 96 MACs de 36 bits, e estas MACs podem ser utilizadas como recurso de processamento. 2) Implementação de algoritmos em pipeline. É a capacidade de se implementar uma série de operações necessárias a implementação do algoritmo de forma seqüencial, sendo cada MAC ou conjunto de MACs responsável pela

8 implementação de uma parte do algoritmo e o algoritmo sendo implementado de forma seqüencial, onde cada parte da seqüência do algoritmo é realizada em uma parte do dispositivo e o processamento completo sendo realizado seqüencialmente. Neste tipo de arquitetura, cada etapa do algoritmo é executada ao mesmo tempo que as etapas anteriores são executadas para outros conjuntos de dados, de modo que em um determinado instante todas as estapas do algoritmo estão sendo executadas ao mesmo tempo sobre conjuntos de dados diferentes. 3) Maior capacidade de processamento paralelo pelo uso conjunto de MACs e blocos de memória. Além da vantagem de possuir maior numero de MACs que um processador DSP, as FPGAs ainda contam com memória interna que pode ser utilizada em conjunto com as MACs permitindo assim a criação de módulos de processamento compostos por memória, lógica de controle e blocos de memória que armazenam blocos de dados de entrada e de saída, permitindo reduzir em muito o tempo gasto por um processador DSP normal para ler os dados a serem processados e escrever os resultados na memória. Para se ter uma idéia do ganho de performance que pode ser obtido com este recurso, imaginemos a implementação de um filtro FIR. Em um filtro FIR, cada dado de saída é o resultado da somatória da seqüência de dados de entrada multiplicada por um coeficiente para cada dado de entrada. Para um filtro fir de 16 TAPs, a equação da saída é: D out = D i *C i para i=0 até 15. Em um DSP normal, para cada interação são gastos pelo menos 3 ciclos de relógio, sendo um para ler um dado da memória e armazenar o dado em um registrador, outro para ler o coeficiente da memória e armazenar em outro registrador e finalmente um terceiro ciclo de relógio para calcular o resultado intermediário e armazenar na MAC o resultado. Em uma FPGA toda operação seria realizada em um único ciclo de relógio, sendo o dado lido de um registrador de deslocamento, o coeficiente de uma memória e o resultado armazenado na MAC em um único ciclo de relógio. Se forem usadas 16 MACs para criar uma implementação paralela do filtro, o cálculo de uma nova saída do filtro gastaria apenas um ciclo de relógio na implementação em FPGA contra 48 ciclos de relógio gastos para calcular o mesmo resultado em um processador DSP. 4) Uso de recursos da FPGA para implementar novas MACs. Além das MACs disponíveis na FPGAs, os elementos lógicos e blocos de memória da FPGA podem ainda ser utilizados para criar novas MACs, com desempenho um pouco inferior as MACs implementadas em hardware já disponíveis na FPGA mas ainda assim operando em freqüências acima de 200 MHz e sendo capaz de aumentar a capacidade de processamento DSP da FPGA. 5) Uso da lógica da FPGA para criar sistemas de controle de operação e do fluxo de dados para permitir a implementação dos algoritmos em paralelo e/ou em pipeline. A implementação de algoritmos DSP em FPGAs tem, também, algumas limitações se comparadas à implementação do mesmo algoritmo em DSP, e as principais são: 1) O tempo de desenvolvimento para a implementação de algoritmos DSP em FPGA é, em geral, muito maior que a implementação do mesmo algoritmo DSP em processamedores DSP. Entretanto, o uso do DSP Builder pode reduzir significativamente este tempo de desenvolvimento. 2) A complexidade da implementação de um algoritmo em FPGA é bem maior que a implementação do mesmo algoritmo em processadores DSP, por envolver além do fluxo de projeto normal do algoritmo, o fluxo de projeto de hardware em FPGA. 3) Existem disponíveis, de forma gratuita, inclusive, muito mais projetos e programas referência de implementação de algoritmos para DSP que modelos HDL de implementação destes algoritmos para FPGA. 4) Para processamento de algoritmos que envolvam baixa capacidade de processamento, como para processamento de som para poucos canais e de imagem de baixa resolução, a solução utilizando processadores DSP tem um custo menor que a implementação do mesmo algoritmo em FPGA. Criando e Simulando modelos com o DSP Builder Com todo o sistema de desenvolvimento instalado, pode-se finalmente iniciar a construção e simulação de modelos utilizando do DSP Builder. A construção e simulação de um modelo no SIMULINK utilizando os blocos do DSP Builder é muito simples e direta. Inicialmente abre-se um novo modelo.mdl no SIMULINK, salva-se o

9 modelo no diretório desejado e com o nome desejado. A seguir arrastam-se os blocos desejados para o novo modelo em construção. A interligação dos blocos entre si para montar o modelo desejado é feita utilizando-se os recursos do SIMULINK. Uma vez o modelo tenha sido construído, a simulação é feita com o uso do botão de simulação da barra de ferramentas do SIMULINK. Alguns cuidados devem ser tomados ao se construir um modelo com o DSP Builder para permitir a implementação em FPGA do mesmo. Os principais cuidados são: Somente se deve utilizar no modelo em construção que será convertido para VHDL a ser utilizado na implementação em FPGA posteriormente blocos disponíveis no DSP Builder. Se forem utilizados blocos de outros Toolbox que não o DSP Builder, estes blocos não serão implementados em VHDL. Podem ser utilizados os Sinks e Sources do Toolbox Simulink sem problemas, desde que os blocos utilizados seja utilizados apenas para gerar os sinais de entrada e para monitorar os resutados intermediários e finais do modelo em construção. Para analisar o que ocorre efetivamente no modelo implementado em FPGA devem ser utilizados os recursos do SignalTap II disponíveis, que permitem monitorar sinais na implementação em FPGA do modelo. No SIMULINK, a criação de submódulos a partir de uma parte do circuito é feita de forma automática, e é muito simples de ser usada, mas a criação de submódulos para o DSP Builder não pode ser feita utilizando esta ferramenta. A forma correta de implementar submódulos para o DSP Builder é utilizando o bloco HDL SubSystem disponível na bliblioteca AltLab do DSP Builder. Utilizando esta opção pode-se criar um ou mais submódulos que serão corretamente inseridos no sistema final e convertidos para VHDL. Para se trabalhar com uma placa específica, além do bloco SignalCompiler, deve-se inserir no modelo o símbolo da placa a ser usada. Por exemplo, para se desenvolver um projeto para a placa DSP Development Board Cyclone II Edition, deve-se inserir o bloco Altera Cyclone II EP2C35 DSP Development Board disponível na biblioteca Altera Cyclone II EP2C35 DSP Development Board da biblioteca Boards do DSP Builder. Outro cuidado a ser tomado para que os recursos sejam utilizados corretamente e as especificações de pinagem sejam feitas de forma correta é que ao se executar o SignalCompiler, seja selecionado como dispositivo a ser usado (Opção Device da janela principal) a opção Development Board, associando assim o projeto a uma placa de desenvolvimento. Ao se selecionar uma placa de desenvolvimento específica, só se pode usar PLLs em um modelo dentro de submódulos. A melhor forma de se aprender a utilizar uma nova ferramenta é através da implementação de um projeto exemplo, onde todos os passos necessários à implementação do sistema são mostrados. Como exemplos completos da implementação de sistemas no DSP Builder, estão disponíveis os seguintes recursos: 1) No próprio DSP Builder há um projeto exemplo, um Tutorial de um sistema de modulação AM (Só o modulador). Este tutorial pode ser acessado no Help do SIMULINK, selecionando a opção Help on Selected Book. Selecionar a orelha Demos e nesta orelha selecionar DSP Builder. Em DSP Builder, selecionar DSP Builder Tutorial e seguir passo a passo as instruções ali contidas. 2) Baixar do site da Altera o exemplo NCO [11], que vem com instrução detalhada de como montar o sistema. Para tal, baixar o arquivo NCO.ZIP do site da PI Componentes e o documento de instruções InstrucoesNCO.PDF e instalar em C:/NCO. Este exemplo implementa um oscilador NCO (Numerically Controlled Oscilator) baseado em uma ROM. Este modelo pode ser simulado e implementado em FPGA. 3) Baixar do site da PI Componentes o arquivo MODULADORAM.ZIP [12] e instalar em C:\MODULADORAM. A seguir, simular o modelo. Este modelo implementa um transmissor AM completo, composto por dois moduladores NCO e um modulador AM. Este modelo foi implementado para uma placa DSP Development Board Cyclone II Edition. Conclusão

10 Para implementar sistemas com alta capacidade de processamento DSP necessários à implementação dos novos algoritmos existentes que exigem alto desempenho, as FPGAs são uma das melhores opções disponíveis hoje. A solução da Altera para implementação de algoritmos DSP em FPGA inclui novas famílias de FPGA com uma série de recursos voltados para implementação destes algoritmos e um sistema de desenvolvimento que integra os ciclos de projeto do algoritmo na ferramenta de projeto de alto nível e simulação, o MATLAB/SIMULINK e de desenvolvimento de FPGA, o Quartus II, o DSP Builder. Neste artigo foram apresentados os recursos existentes nas novas FPGAs da família Stratix II para implementação de algoritmos DSP, foram abordadas as pricipais etapas de desenvolvimento do ciclo de projeto de algoritmos DSP e de projetos em FPGA e como o DSP Builder é capaz de integrar em um único ambiente as duas etapas do ciclo de desenvolvimento. Bibliografia [1] TMS320C6727, Floating-Point Digital Signal Processor Disponível em <http://focus.ti.com/docs/prod/folders/print/tms320c6727.html> [2] H.264 / MPEG-4 Part 10 Tutorials Disponível em <http://www.vcodex.com/h264.html> [3] Orthogonal Frequency Division Multiplexing (OFDM) Disponível em <http://www.complextoreal.com/chapters/ofdm2.pdf> [4] Stratix II Devices: The Biggest & Fastest FPGAs Disponível em <http://www.altera.com/products/devices/stratix2/st2-index.jsp> [5] MATLAB - The Language of Technical Computing Disponível em <http://www.mathworks.com/products/matlab/> [6] Simulink - Simulation and Model-Based Design Disponível em <http://www.mathworks.com/products/simulink/> [DSPBuilder] DSP Builder Disponível em <http://www.altera.com/products/software/products/dsp/dsp-builder.html> [7] Versão gratuita do Quartus II para ser baixada da internet Disponível em <http://www.altera.com/products/software/products/quartus2web/sof-quarwebmain.html> [8] Licença do Quartus II : Selecionar opção Quartus II Web Edition Software Disponível em <http://www.altera.com/support/licensing/lic-index.html> [9] Versão de avaliação do Matlab para ser baixada da internet Disponível em <http://www.mathworks.com/web_downloads/download_trials.html> [10] Versão do DSP Builder para ser baixada da internet Disponível em <http://www.altera.com/products/software/products/dsp/dsp-builder.html> [11] Exemplo com instruções para a construção passo a passo de um NCO usando o DSP Builder Disponível em <http://www.picomponentes.com.br/downloads> [12] Exemplo de um modulador AM baseado no exemplo do NCO usando o DSP Builder Disponível em <http://www.picomponentes.com.br/downloads>

Simplifique a complexidade do sistema

Simplifique a complexidade do sistema 1 2 Simplifique a complexidade do sistema Com o novo controlador de alto desempenho CompactRIO Rodrigo Schneiater Engenheiro de Vendas National Instruments Leonardo Lemes Engenheiro de Sistemas National

Leia mais

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória Introdução Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e O Nível de lógica digital é o nível mais baixo da Arquitetura. Responsável pela interpretação de instruções do nível

Leia mais

Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera

Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera Ricardo Menotti Orientador: Prof. Dr. Eduardo Marques Instituto de Ciências Matemáticas e de Computação

Leia mais

Estrutura interna de um microcontrolador

Estrutura interna de um microcontrolador Estrutura interna de um microcontrolador Um microcontrolador é composto por um conjunto de periféricos interligados a uma unidade de processamento e todo este conjunto confere a este componente uma versatilidade

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

SSC 741 - Projeto e Implementação de Sistemas Embarcados I

SSC 741 - Projeto e Implementação de Sistemas Embarcados I INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO ICMC UNIVERSIDADE DE SÃO PAULO - USP SSC 741 - Projeto e Implementação de Sistemas Embarcados I Projeto Final Responsáveis: Prof. Dr. Eduardo Marques e

Leia mais

PROGRAMAÇÃO EM VHDL DE CIRCUITOS LÓGICOS PARA IMPLEMENTAÇÃO EM FPGA RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA

PROGRAMAÇÃO EM VHDL DE CIRCUITOS LÓGICOS PARA IMPLEMENTAÇÃO EM FPGA RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA PROGRAMAÇÃO EM VHDL DE CIRCUITOS LÓGICOS PARA IMPLEMENTAÇÃO EM FPGA RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE) Yegor Gomes de Mello (UFRN, Bolsista PIBIC/CNPq) E-mail: yegor_melo@crn.inpe.br

Leia mais

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

AULA1 Introdução a Microprocessadores gerais

AULA1 Introdução a Microprocessadores gerais AULA1 Introdução a Microprocessadores gerais Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Prof. Eduardo Henrique Couto ehcouto@hotmail.com 2014/1 Apresentação do Professor: Cronograma:

Leia mais

5 Entrada e Saída de Dados:

5 Entrada e Saída de Dados: 5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr hlima@cbpf.br

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr hlima@cbpf.br G03 Eletrônica Digital para Instrumentação Prof: hlima@cbpf.br Centro Brasileiro de Pesquisas Físicas Ministério da Ciência, Tecnologia e Inovação (MCTI) Eletrônica Digital para Instrumentação Objetivo

Leia mais

Processadores. Prof. Alexandre Beletti Ferreira

Processadores. Prof. Alexandre Beletti Ferreira Processadores Prof. Alexandre Beletti Ferreira Introdução O processador é um circuito integrado de controle das funções de cálculos e tomadas de decisão de um computador. Também é chamado de cérebro do

Leia mais

3.a Aula Prática Projeto de Circuitos Sequenciais com FPGA. Projeto e simulação de um gerador de frequência

3.a Aula Prática Projeto de Circuitos Sequenciais com FPGA. Projeto e simulação de um gerador de frequência 3.a Aula Prática Projeto de Circuitos Sequenciais com FPGA Prof. Cesar da Costa Projeto e simulação de um gerador de frequência Muitas vezes, várias frequências de clock são necessárias em um circuito

Leia mais

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO Agosto/2004 V2 INTRODUÇÃO Este guia foi preparado para auxilio às aulas de laboratório para o curso de Engenharia

Leia mais

O AMPLIFICADOR LOCK-IN

O AMPLIFICADOR LOCK-IN O AMPLIFICADOR LOCK-IN AUTORES: MARCELO PORTES DE ALBUQUERQUE LEONARDO CORREIA RESENDE JORGE LUÍS GONZALEZ RAFAEL ASTUTO AROUCHE NUNES MAURÍCIO BOCHNER FEVEREIRO 2008 SUMÁRIO RESUMO... 3 1. INTRODUÇÃO...

Leia mais

4.a Aula Prática Projeto de um Somador de 16 bits com a Linguagem VHDL

4.a Aula Prática Projeto de um Somador de 16 bits com a Linguagem VHDL 4.a Aula Prática Projeto de um Somador de 16 bits com a Linguagem VHDL Prof. Cesar da Costa VHDL é uma linguagem para descrever sistemas digitais utilizada universalmente. VHDL é proveniente de VHSIC Hardware

Leia mais

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 7ª Experiência Síntese de Circuitos Sequenciais Síncronos 1. Objetivos

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Implementação dos Principais Algoritmos de um Sistema OFDM em Plataforma de Desenvolvimento DSP-FPGA.

Implementação dos Principais Algoritmos de um Sistema OFDM em Plataforma de Desenvolvimento DSP-FPGA. Implementação dos Principais Algoritmos de um Sistema OFDM em Plataforma de Desenvolvimento DSP-FPGA. Marcos N. Prates e Moisés V. Ribeiro Resumo O presente artigo tem como objetivo a descrição da implementação

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

SISTEMAS DIGITAIS INTRODUÇÃO AO AMBIENTE DE PROJECTO DO XILINX ISE 10.1 PEDRO TOMÁS, PAULO LOPES, HORÁCIO NETO

SISTEMAS DIGITAIS INTRODUÇÃO AO AMBIENTE DE PROJECTO DO XILINX ISE 10.1 PEDRO TOMÁS, PAULO LOPES, HORÁCIO NETO INTRODUÇÃO AO AMBIENTE DE PROJECTO DO XILINX ISE 10.1 PEDRO TOMÁS, PAULO LOPES, HORÁCIO NETO REVISÃO DE NOVEMBRO DE 2012 INTRODUÇÃO O Xilinx ISE é um ambiente integrado de projecto de circuitos digitais.

Leia mais

Fundamentos em Informática

Fundamentos em Informática Fundamentos em Informática 04 Organização de Computadores nov/2011 Componentes básicos de um computador Memória Processador Periféricos Barramento Processador (ou microprocessador) responsável pelo tratamento

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista EXPERIMENTO 1 INTRODUÇÃO AO LABORATÓRIO A. Introdução O Quartus II é um software utilizado para

Leia mais

Dispositivos Lógicos Programáveis

Dispositivos Lógicos Programáveis PARTE 1 - TEORIA Dispositivos Lógicos Programáveis Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis, que possuem um grande número de portas lógicas,

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO Wagner de Oliveira SUMÁRIO Hardware Definição de Computador Computador Digital Componentes Básicos CPU Processador Memória Barramento Unidades de Entrada e

Leia mais

EA773 - Experimento 5

EA773 - Experimento 5 EA773 - Experimento 5 Wu Shin - Ting DCA - FEEC - Unicamp 19 de Novembro de 2009 O projeto consiste em implementar uma calculadora com memória com uso de barramento de 8 bits. Neste documento são discutidos

Leia mais

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Fundamentos de Arquitetura de Computadores Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Hardware de um Sistema Computacional Hardware: são os componentes

Leia mais

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO O seguinte artigo apresenta uma UCP hipotética construída no software simulador DEMOWARE Digital Works 3.04.39. A UCP (Unidade Central de Processamento)

Leia mais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 7ª Prática: Introdução à Verilog-HDL e á Lógica Sequencial Data: 22/05/2014 Nome: Adrián

Leia mais

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba.

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba. Universidade Federal da Bahia Escola Politécnica Programa de Pós Graduação em Engenharia Elétrica Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável

Leia mais

- Aula 1 - ARQUITETURA DE COMPUTADORES

- Aula 1 - ARQUITETURA DE COMPUTADORES - Aula 1 - ARQUITETURA DE COMPUTADORES Em arquitetura de computadores serão estudados aspectos da estrutura e do funcionamento dos computadores. O objetivo é apresentar de forma clara e abrangente a natureza

Leia mais

3 Gerência de Inventário utilizando RFID em Redes Ópticas

3 Gerência de Inventário utilizando RFID em Redes Ópticas 3 Gerência de Inventário utilizando RFID em Redes Ópticas O presente capítulo descreve como a tecnologia RFID é associada às tecnologias de redes de telecomunicações, de forma a ser utilizada na avaliação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Ler e interpretar simbologias elétricas. Elaborar diagramas elétricos em planta baixa. Ler e interpretar Planta Baixa.

Ler e interpretar simbologias elétricas. Elaborar diagramas elétricos em planta baixa. Ler e interpretar Planta Baixa. : Técnico em Informática Descrição do Perfil Profissional: O profissional com habilitação Técnica em Microinformática, certificado pelo SENAI-MG, deverá ser capaz de: preparar ambientes para a instalação

Leia mais

Microelectrónica (ME)

Microelectrónica (ME) Microelectrónica (ME) LEEC (opção) Lic. Lic. Engª. AeroEspacial (Aviónica) Tipos de projecto de CIs Marcelino Santos (marcelino.santos@ist.utl.pt) 2004/05 Tipos de projecto de CIs ASIC - Application Specific

Leia mais

O sucesso alcançado pelos computadores pessoais fica a dever-se aos seguintes factos:

O sucesso alcançado pelos computadores pessoais fica a dever-se aos seguintes factos: O processador 8080 da intel é tido como o precursor dos microprocessadores, uma vez que o primeiro computador pessoal foi baseado neste tipo de processador Mas o que significa família x86? O termo família

Leia mais

Arquitetura de Computadores - Revisão -

Arquitetura de Computadores - Revisão - Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S

Leia mais

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação

TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação TABELA DE EQUIVALÊNCIA FECOMP Curso de Engenharia de Computação Disciplina A Disciplina B Código Disciplina C/H Curso Disciplina C/H Código Curso Ano do Currículo 66303 ESTRUTURA DE DADOS I 68/0 ENG. DE

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

Leia mais

Aula 04 A. Barramentos. Prof. Ricardo Palma

Aula 04 A. Barramentos. Prof. Ricardo Palma Aula 04 A Barramentos Prof. Ricardo Palma Definição Em ciência da computação barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como o CPU, a memória e outros

Leia mais

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000

Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 2000 Laboratório de Sistemas Digitais /0 Exercício Opcional: FAMILIARIZAÇÃO COM O SOFTWARE CIRCUIT MAKER 000 OBJETIVO Aprender a utilizar o Editor de Esquemáticos e o Simulador Lógico Criar e simular os esquemáticos

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Unidade Central de Processamento

Unidade Central de Processamento Unidade Central de Processamento heloar.alves@gmail.com Site: heloina.com.br 1 CPU A Unidade Central de Processamento (UCP) ou CPU (Central Processing Unit), também conhecida como processador, é responsável

Leia mais

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO 28 CAPÍTULO 5 INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO Interfaces para periféricos de armazenamento: Periféricos de armazenamento,

Leia mais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 9ª Pratica: Computador de 16 bits Data:17/07/2014 Nome: Adrián Agüero Faraldo RA: 612227

Leia mais

Somador e subtrator de 8 bits

Somador e subtrator de 8 bits Somador e subtrator de 8 bits Nota: Para desenvolver o somador e subtrator de 8 bits na Plataforma Windows, utilize preferencialmente Windows XP ou Vista. Você poderá encontrar problemas durante algumas

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Sistema de Aquisição de Dados

Sistema de Aquisição de Dados Sistema de Aquisição de Dados Versão 2013 RESUMO Nesta experiência será desenvolvido o projeto de um sistema de aquisição e armazenamento de dados analógicos em formato digital. O sinal de um sensor de

Leia mais

Prof. Sandrina Correia

Prof. Sandrina Correia Tecnologias de I informação de C omunicação 9º ANO Prof. Sandrina Correia TIC Prof. Sandrina Correia 1 Objectivos Definir os conceitos de Hardware e Software Identificar os elementos que compõem um computador

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

Arquitetura de Sistemas Embarcados: Controladores Industriais

Arquitetura de Sistemas Embarcados: Controladores Industriais Arquitetura de Sistemas Embarcados: Controladores Industriais Heber A. Scachetti RA 004933 heber_augusto@yahoo.com.br RESUMO Este artigo apresenta algumas das principais características encontradas em

Leia mais

IE-344B - Tópicos em Comunicações Leitura Complementar Aula 5: FPGA e Fluxo de Projeto

IE-344B - Tópicos em Comunicações Leitura Complementar Aula 5: FPGA e Fluxo de Projeto IE-344B - Tópicos em Comunicações Leitura Complementar Aula 5: FPGA e Fluxo de Projeto 2º Semestre/2007 Fabbryccio A. C. M. Cardoso Marcelo Augusto Costa Fernandes Prof. Responsável: Dalton S. Arantes

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 3.1 EXECUÇÃO DAS INSTRUÇÕES A UCP tem duas seções: Unidade de Controle Unidade Lógica e Aritmética Um programa se caracteriza por: uma série de instruções

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 3ª Prática: Rotação de uma palavra nos Displays de 7 segmentos Data: 10/04/2014 Nome: Adrián

Leia mais

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto Fundamentos de Arquitetura de Computadores Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 4. i. Introdução ii. O Trabalho de um Processador iii. Barramentos iv. Clock Interno e Externo v. Bits do Processador

Leia mais

ÁREA: CV ( ) CHSA ( ) ECET ( )

ÁREA: CV ( ) CHSA ( ) ECET ( ) ADAPTAÇÃO E INTEGRAÇÃO DO PROCESSADOR RISCO A UMA ARQUITETURA MULTI-CORE PARA SISTEMAS EMBARCADOS DE PROPOSITO GERAL Laysson Oliveira Luz (Bolsista PIBIC/CNPq), Ivan Saraiva Silva (Orientador, Departamento

Leia mais

DISCIPLINA: Sistemas Digitais

DISCIPLINA: Sistemas Digitais DISCIPLINA: Sistemas Digitais Vigência: a partir de 2007/1 Período Letivo: 4º semestre Carga Horária Total: 45h Código: EE.212 Ementa: Implementação Física. Tecnologia de CIs programáveis. FPGA. Atraso

Leia mais

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP 13083-860, Campinas, SP, Brasil. grace@fem.unicamp.

Circuitos Lógicos. Profa. Grace S. Deaecto. Faculdade de Engenharia Mecânica / UNICAMP 13083-860, Campinas, SP, Brasil. grace@fem.unicamp. Circuitos Lógicos Profa. Grace S. Deaecto Faculdade de Engenharia Mecânica / UNICAMP 13083-860, Campinas, SP, Brasil. grace@fem.unicamp.br Segundo Semestre de 2013 Profa. Grace S. Deaecto ES572 DMC / FEM

Leia mais

CerVANTES. Co-VAlidatioN Tool for Embedded Systems. Autor: José Cabrita. Orientadores: José Costa e Paulo Flores. INESC-ID, grupo ALGOS

CerVANTES. Co-VAlidatioN Tool for Embedded Systems. Autor: José Cabrita. Orientadores: José Costa e Paulo Flores. INESC-ID, grupo ALGOS CerVANTES Co-VAlidatioN Tool for Embedded Systems Autor: José Cabrita Orientadores: José Costa e Paulo Flores INESC-ID, grupo ALGOS 1 1 Objectivo Este projecto tem como objectivo a implementação de um

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição. retrospectiva. 2010 Pearson Prentice Hall. Todos os direitos reservados.

William Stallings Arquitetura e Organização de Computadores 8 a Edição. retrospectiva. 2010 Pearson Prentice Hall. Todos os direitos reservados. William Stallings Arquitetura e Organização de Computadores 8 a Edição retrospectiva slide 1 Organização e arquitetura Arquitetura são os atributos visíveis ao programador. Conjunto de instruções, número

Leia mais

- Arquitetura de sistemas digitais- Cap 1 - Introdução

- Arquitetura de sistemas digitais- Cap 1 - Introdução - Arquitetura de sistemas digitais- Cap 1 - Introdução Prof. Alan Petrônio - www.ufsj.edu.br/alan - 2012 Conteúdos/propósitos deste capítulo: 1.1 - Relembrando conceitos 1.2 - Arquitetura de computadores

Leia mais

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão. 14 3.2 Projeto da Unidade de Controle (VHDL) 3.2.1 Diagrama ASM (Algorithmic State Machine) ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema

Leia mais

Sistemas Embarcados. Introdução aos sistemas embarcados

Sistemas Embarcados. Introdução aos sistemas embarcados Sistemas Embarcados Introdução aos sistemas embarcados Introdução aos Sistemas embarcados Definição de um sistema embarcado Exemplos de sistemas embarcados Processadores utilizados em sistemas embarcados

Leia mais

Filtros Digitais Reconfiguráveis

Filtros Digitais Reconfiguráveis Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas - NCET Engenharia da Computação Eli Renato Barbosa Filtros Digitais Reconfiguráveis Curitiba 2006 Centro Universitário Positivo

Leia mais

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP Estrutura de um Computador Linguagem de Programação Rone Ilídio UFSJ - CAP Hardware e Software HARDWARE: Objetos Físicos que compões o computador Circuitos Integrados, placas, cabos, memórias, dispositivos

Leia mais

O que há de novo no LabVIEW Real- Time e LabVIEW FPGA

O que há de novo no LabVIEW Real- Time e LabVIEW FPGA O que há de novo no LabVIEW Real- Time e LabVIEW FPGA Vá do design a implementação mais rapidamente Filipe Sacchi da Silva Engenheiro de Aplicações em Campo Plínio Costa Engenheiro de Aplicações Agenda

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2012 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

Módulo 1 Introdução às Redes

Módulo 1 Introdução às Redes CCNA 1 Conceitos Básicos de Redes Módulo 1 Introdução às Redes Ligação à Internet Ligação à Internet Uma ligação à Internet pode ser dividida em: ligação física; ligação lógica; aplicação. Ligação física

Leia mais

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores. Ivan Saraiva Silva Arquitetura de Computadores Introdução Ivan Saraiva Silva Sumário Introdução Bibliografia Recomendada O que é um computador Organização de um Computador Modelo de Von Neumann IAS Máquina de Von Neuman

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 02: Conceitos Básicos Conceitos Básicos Conceitos fundamentais: dado, informação e processamento de dados Conceitos de algoritmo, algoritmo ótimo, hardware. Software e

Leia mais

NI FlexRIO - Tecnologia e Aplicações

NI FlexRIO - Tecnologia e Aplicações NI FlexRIO - Tecnologia e Aplicações Mike Munhato Marketing Técnico André Oliveira Gerente de Vendas Agenda O que é FPGA e por que ele é tão útil? Vantagens do FPGA em sistemas de teste Plataforma NI FlexRIO

Leia mais

Processadores clock, bits, memória cachê e múltiplos núcleos

Processadores clock, bits, memória cachê e múltiplos núcleos Processadores clock, bits, memória cachê e múltiplos núcleos Introdução Os processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

SIS17 - Arquitetura de Computadores

SIS17 - Arquitetura de Computadores SIS17 - Arquitetura de Computadores Organização Básica B de Computadores (Parte I) Organização Básica B de Computadores Composição básica b de um Computador eletrônico digital Processador Memória Memória

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Entrada/Saída Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Problemas Entrada/Saída Grande

Leia mais

SIS17-Arquitetura de Computadores

SIS17-Arquitetura de Computadores Sistema de Computação SIS17-Arquitetura de Computadores Apresentação da Disciplina Peopleware Hardware Software Carga Horária: 40 horas 2 Computadores atuais Unidade Central de Processamento Entrada Computadores

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

APRESENTAÇÃO SOBRE O DSP ADSP-21160M

APRESENTAÇÃO SOBRE O DSP ADSP-21160M [ ADSP-21160M ] APRESENTAÇÃO SOBRE O DSP ADSP-21160M RAFAEL ASTUTO AROUCHE NUNES ORIENTADOR Marcelo Portes de Albuquerque (CBPF) LPS Laboratório de Processamento de Sinais (UFRJ) CAT - Coordenação de Atividades

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais Circuitos Digitais Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais Circuito combinacional: Possui portas lógicas conectadas para produzir valor dos sinais de saída Não possui

Leia mais

28/9/2010. Unidade de Controle Funcionamento e Implementação

28/9/2010. Unidade de Controle Funcionamento e Implementação Arquitetura de Computadores Unidade de Controle Funcionamento e Implementação Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Operação da Unidade de Controle Unidade de controle: parte do

Leia mais

Desenvolvimento de Modelo ESL para Controlador de Acesso Direto à Memória (DMA)

Desenvolvimento de Modelo ESL para Controlador de Acesso Direto à Memória (DMA) UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2012.1 Desenvolvimento de Modelo ESL para Controlador de Acesso Direto à Memória (DMA) PROPOSTA DE TRABALHO

Leia mais

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Pulsos Digitais Pulso positivo: executa sua função quando está em nível alto Pulso negativo: executa sua função quando

Leia mais

Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES

Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES Escola Europeia de t Ensino Profissional ARQUITETURA DE COMPUTADORES TRABALHO REALIZADO: ANDRÉ RIOS DA CRUZ ANO LETIVO: 2012/ 2013 TÉCNICO DE GESTÃO DE EQUIPAMENTOS INFORMÁTICOS 2012 / 2013 3902 Escola

Leia mais

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas: Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; - pesquisa em fusão de energia; - diagnóstico médico; - simulações

Leia mais

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento CPU - Significado CPU Central Processing Unit Unidade Central de Processamento CPU - Função Na CPU são executadas as instruções Instrução: comando que define integralmente uma operação a ser executada

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Fernando Fonseca Ramos Faculdade de Ciência e Tecnologia de Montes Claros Fundação Educacional Montes Claros 1 Índice 1- Introdução 3- Memórias 4- Dispositivos

Leia mais

Ministério da Educação Universidade Federal do Ceará Pró-Reitoria de Graduação

Ministério da Educação Universidade Federal do Ceará Pró-Reitoria de Graduação Ministério da Educação Universidade Federal do Ceará Pró-Reitoria de Graduação PROGRAMA DA DISCIPLINA 1 2 Curso: Engenharia Elétrica Código: 20 3 4 Modalidade(s): Bacharelado Currículo(s): 2005/1 5 Turno(s):

Leia mais