PTC2528 Laboratório de Comunicações: Projeto de Formatura. Orientador Prof. Dr. Cristiano Magalhães Panazio

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

Download "PTC2528 Laboratório de Comunicações: Projeto de Formatura. Orientador Prof. Dr. Cristiano Magalhães Panazio"

Transcrição

1 PTC2528 Laboratório de Comunicações: Projeto de Formatura Receptor SIC Successive Interference Cancellation Cancelamento Sucessivo das Interferências Orientador Prof. Dr. Cristiano Magalhães Panazio Vinicius Pavanelli Vianna de dezembro de 2011

2

3 Sumário 1 Implementação de um detector SIC em FPGA 1 2 Descrição CDMA 1 3 Descrição SIC 1 4 Desempenho 2 5 Códigos MATLAB dsss.m dsss_sic.m do_sic.m walsh.m Implementação em lógica digital (FPGA) Geração do ruído AWGN Códigos VHDL do projeto atrasa64.vhd Codificador.vhd Compensador.vhd ControlaBuffer.vhd debounce.vhd DecodificadorSIC.vhd DecodificadorSoft.vhd GanhoUsuario.vhd LCD.vhd LFSR.vhd nibble2hex.vhd Placa.vhd ProvaAtrasoSoft.vhd ProvaSIC.vhd SomaCanal.vhd TF.vhd Teste Benches VHDL Scripts de testes VHDL tb_codificador.vhd tb_placa.vhd tb_provaatrasosoft.vhd tb_provasic.vhd i

4

5 1 Implementação de um detector SIC em FPGA O projeto consistirá na geração de múltiplos usuários, cada qual com a sua sequência de espalhamento, e da superamostragem do sinal para transmissão num canal AWGN. Cada usuário terá ganho e atrasos específicos. O sinal resultante será aplicado a um detector SIC para realizadação da decodificação. A implementação se dará numa placa FPGA. Em um primeiro estágio o canal com os usuários espalhados e o ruído será gerado internamente por um barramento lógico da FPGA, sendo ligado com o receptor SIC, junto com as informações do ganho dos usuários e seus atrasos. As informações da simulação, como probabilidade de erro encontrada, será informada por meio do visor LED da placa de desenvolvimento FPGA. Se for possível será feita uma interface por meio do barramento USB ou via saída VGA para um monitor diretamente, isso se for possível construir ou utilizar uma biblioteca fácil de caracteres e controle VGA para a FPGA. Um cenário altamente otimista para o projeto seria a construção do receptor CDMA inteiro para utilização do SIC, porém isto envolve uma complexidade maior do que o projeto, como sincronismos de amostragem e equalização do canal de audio da placa FPGA. 2 Descrição CDMA Um sistema CDMA é um sistema multiplexado por códigos onde cada usuário tem sua sequência de dados multiplicada por um código de espalhamento espectral composto por vários chips, o canal teórico de um sistema CDMA é composto da soma destes usuários mais um eventual ruído branco que pode ser somado (não mostrado na figura 1). Se os dois códigos utilizados forem ortogonais não se tem sobreposição dos dois usuários, eliminando assim as interferências entre usuários e podendo ser idealizado um receptor como o da figura 2. Figura 1: Diagrama de blocos básico de um receptor CDMA 3 Descrição SIC Como na realidade se tem usuários com potências diferentes e em distâncias diferentes, os dados destes usuários espalhados não chegarão ao receptor em sincronia, existirá um eventual atraso entre os usuários e uma eventual diferença de potência. Para lidar com esta interferência entre usuários pode ser utilizado um receptor SIC, que irá decodificar os usuários em ordem decrescente de potência, eliminando-os sucessivamente do canal, teoricamente eliminando qualquer sinal gerado por estes usuários na decodificação dos usuários subsequentes. No caso da figura 3 temos uma realização conceitual, aonde temos dois usuários no sistema e primeiros decodificamos o usuário 1 para então retirar seu código do canal antes de decodificar os dados do usuário 2. Temos neste caso duas situação importantes: 1

6 O usuário 1 ter maior potência que o usuário 2. Com isto a probabilidade de se ter acertado na decodificação do usuário 1 é alta e provavelmente teremos retirado do canal a sequência que este usuário colocou, reduzindo a interferência no usuário 2. O usuário 1 ter menor potência que o usuário 2. Com isto a probabilidade de se ter errado na decodificação do usuário 1 é alta e provavelmente teremos acrescentado no canal uma nova sequência, aumentando a interferência no usuário 2. Figura 2: Diagrama de blocos básico de um receptor SIC Por estas razões parte da implementação real de um receptor SIC é a classificação dos usuários pela sua potência, garantindo que estaremos retirando a interferência do canal e não introduzindo mais interferência no canal. Esta é uma das maiores dificuldades da implementação deste receptor em um cenário real, tornando-o muito complexo computacionalmente. 4 Desempenho Na figura 4 temos os resultados da simulação computacional feita no MATLAB de um receptor SIC e de um receptor comum, no eixo horizontal temos a relação sinal/ruído, em db, e no eixo vertical temos a probabilidade de erro, em escala logaritmica. Pode-se ver que o receptor SIC é vantajoso quando se tem uma relação sinal/ruído maior, como por exemplo acima de 10dB, para níveis menores o efeito da interferência entre usuários começa a se comparar com o ruído de fundo do canal. Para níveis de sinal/ruído acima de 12dB existe um ganho aproximado de 3dB ao se utilizar o SIC, ou seja, um sinal de 9dB com SIC gera o mesmo desempenho que um sinal de 12dB com um receptor normal. 2

7 Figura 3: Simulações da taxa de erro recebida (BER) em relação ao nível de ruído do sinal, utilizando 4 usuários no canal com pesos diferentes, de modo a otimizar a resposta do sistema SIC 5 Códigos MATLAB Para realizar esta simulação foram construídos os seguintes códigos MATLAB: dsss.m Realiza o espalhamento espectral e o posterior desespalhamento espectral utilizando o modelo do receptor normal. dsss_sic.m Realiza o desespalhamento espectral, utilizando o mesmo canal exportado pela função dsss.m, com o modelo do receptor SIC. do_sic.m Script que chama as duas funções acima, gera as matrizes com os resultados das simulações e plota um gráfico como o apresentado na figura 4. walsh.m Função que gera os códigos Walsh-Hadamard para o espalhamento espectral. Aonde possível foram utilizadas matrizes dentro do MATLAB, com as funções reshape e repmat foi possível, a partir de uma matriz I de informações, gerar uma matriz I contendo 8 réplicas de cada bit dentro de I, multiplicando esta matriz por uma matriz que contenha quantas réplicas forem necessária do código temos a saída espalhada do sinal. Depois reformatando esta matriz, utilizando a função reshape, foi possível colocar esta matriz com um bit de informação por linha, contendo em cada linha vários chips correspondentes deste bit espalhado, um por coluna. Então fazendo o produto interno desta matriz com os códigos, somando as linhas e comparando com 0 podemos achar a decodificação dos dados dos usuários. Este processo parece complicado e a princípio exigir muita memória por criar matrizes grandes, mas se mostrou bem rápido nas simulações feitas. 3

8 5.1 dsss.m dsss.m 1 function [O,Canal] = dsss(i,usuarios, super, Rc, snr,delay) 2 global H; 3 global Canal; 4 bits = size(i,2); % numero de bits é o número de colunas de I 5 Canal = zeros (1,bits*Rc*super); 6 O = zeros (usuarios,bits); 7 H = walsh(rc); 8 H = reshape(repmat(h,1,super), Rc, super*rc); 9 10 Canal = zeros (1,bits*Rc*super+max(delay)); 11 Espalhado = zeros (usuarios,bits*rc*super+max(delay)); % No loop abaixo: 14 % tmp contem a matriz com os dados repetidos, uma coluna por eventual chip 15 % repmat(h(u,:),1,bits) contem uma matriz com o código repetido varias vezes 16 % Espalhado irá conter o produto interno destas duas matrizes 17 % Este produto interno é a sequencia espalhada do usuario. 18 for u=1:usuarios 19 tmp = reshape(repmat(i(u,:),rc*super,1),1,rc*bits*super); 20 Espalhado(u,(1:bits*Rc*super)+delay(u)) = tmp.*repmat(h(u,:),1,bits); 21 Canal(1,:) = Canal(1,:) + Espalhado(u,:); 22 end Ruido = sqrt(rc/(2*10^(.1*snr)))*randn(1,bits*rc*super+max(delay)); 25 Canal(1,:) = Canal(1,:) + Ruido(1,:); for u=1:usuarios 28 % a saida O é o sinal da soma da matriz gerado pela reformatação de 29 % Canal e a repeticão da matriz H o número de bits necessários 30 O(u,:) = sign(sum( reshape(canal(1,(1:bits*rc*super)+delay(u)).* repmat(h(u,:),1,bits),rc*super,bits), ) ); 34 end 4

9 5.2 dsss_sic.m dsss_sic.m 1 function [O] = dsss_sic(canal,i,usuarios, super, Rc, snr,peso,delay) 2 3 bits = size(i,2); % numero de bits é o número de colunas de I 4 5 H = walsh(rc); 6 7 H = reshape(repmat(h,1,super), Rc, super*rc); O = zeros (usuarios,bits); 11 % a funcao sign realiza o detector comparando com zero do sinal recebido 12 % tmp contem a sequencia decodificado, reespalhada com o codigo deste usuario 13 % em seguida retira-se do canal esta sequencia contida em tmp 14 for u=1:usuarios 15 O(u,:) = sign(sum(reshape(canal(1,(1:bits*rc*super)+delay(u)).*repmat(h(u,:), ,bits),Rc*super,bits),1) ); 17 tmp = reshape(repmat(o(u,:),rc*super,1),1,rc*bits*super); 18 Canal(1,(1:bits*Rc*super)+delay(u)) = Canal(1,(1:bits*Rc*super)+delay(u)) Peso(u)*(tmp.*repmat(H(u,:),1,bits)); 20 end 5

10 5.3 do_sic.m 1 usuarios = 2; 2 bits = 1e3; 3 % super amostragem? 4 super = 1; do_sic.m 5 % rc = rate chip, taxa de chips ou fator de espalhamento 6 rc = 8; 7 resultado = []; 8 9 % sinal ruido inicial e final 10 SNR = 0:0.5:16; 11 nsnr = size(snr,2); % cores dos gráficos 14 cores = jet(4); 15 linhas = { -, --, :, -. }; %Pesos = [1 0.2]; 18 Pesos = [ ]; 19 Pesos = Pesos/norm(Pesos); 20 delay = [ ]; 21 Inorm = (rand(usuarios,bits)>0.5)*2-1; 22 bernor = zeros (usuarios,nsnr); 23 bersic = zeros (usuarios,nsnr); 24 ber = zeros (usuarios,nsnr); % I é a matrix I normalizada vezes a matriz Peso transposta e replicada 27 % bits vezes 28 I = Inorm.*repmat(Pesos,1,bits); for i=1:size(snr,2) 31 fprintf( SNR=%d\t %d bits\t, SNR(i), bits*usuarios); [O Canal]= dsss(i,usuarios,super,rc,snr(i),delay); 34 bernor(:,i) = sum(abs(o-inorm)>0,2)/(bits); 35 fprintf( BERnor=%.5g\t,sum(bernor(:,i))); O2 = dsss_sic(canal,i,usuarios,super,rc,snr(i),pesos,delay); 38 bersic(:,i) = sum(abs(o2-inorm)>0,2)/(bits); 39 fprintf( BERsic=%.5g\n,sum(bersic(:,i))); end % SNR do primeiro 45 % SNR = Eb/(No+Eb2+Eb3+Eb4) 46 for j=1:usuarios 47 ber(j,:)=qfunc(sqrt(2*(10.^(snr/10)))*pesos(j)); 48 end hold off; 51 semilogy(snr,ber, - ); 52 hold on; 53 semilogy(snr,bernor, x- ); 6

11 54 semilogy(snr,bersic, o- ); legend( Teórico1, Teórico2, Teórico3, Teórico4, Normal1, Normal2, Normal3, Normal4, SIC1, SIC2, SIC3, SIC4, location, SouthWest ); 59 %semilogy(resultado(:,1),resultado(:,2), b-, % resultado(:,1),ber, k- ); 61 hold off; 7

12 5.4 walsh.m 1 function [H] = walsh(n) 2 H = [1]; 3 while n>1 4 H = [ H H; H -H]; 5 n = n/2; 6 end 7 tmp = H(1,:); 8 H(1,:) = H(size(H,1),:); 9 H(size(H,1),:) = tmp; walsh.m 8

13 6 Implementação em lógica digital (FPGA) A implementação em FPGA foi feita totalmente em código VHDL, sem o uso de esquemáticos, seguindo a orientação atual do mercado. Foram utilizados algumas técnicas aprendidas nas disciplinas da EPUSP, como por exemplo buffers circulares, para armazenar o canal temporariamente até que o sistema pudesse eliminar a interferência do usuário atual do canal. Todo o processo foi feito utilizando Test Benches em VHDL, que são scripts iguais aos processos normais de VHDL, mas que permitem ajuste de entradas e esperas por tempos determinados, como por exemplo esperar 10ms para tornar um sinal alto, o que auxilia em muito os testes, liberando mais recursos para a solução do problema, pois basta rodá-lo, sem intervenções para que todas as entradas sejam processadas. 6.1 Geração do ruído AWGN Um dos maiores problemas na migração do MATLAB para a FPGA se consiste numa geração de ruído do tipo gaussiano (AWGN), foi feito um ruído parecido usando um gerador aleatório baseado em LFSR, estes tipos de geradores são razoavelmente bem discutidos nos documentos da própria Xilinx (fabricante do FPGA), inclusive com tabelas dos polinômios geradores de mais comprimento, em particular foram utilizadas duas referências que se complementar: Registradores de deslocamento eficientes, contadores LFSR e geradores de seqüências longas pseudoaleatórias, de código XAPP 052, encontrado em application_notes/xapp052.pdf Registradores de deslocamento linear com realimentação em dispositivos Virtex, de código XAPP 210, encontrado em pdf. Para tentar entender melhor e também validar esse recurso de gerar um ruído a partir de uma LFSR foram feitos alguns estudos, seguindo as orientações do Prof. Panazio, para verificar o comprimento da sequência e também seu espectro. No projeto final foi adotada uma LFSR de 64 bits, seguida de um processo que permitia reduzir o ruído gerado, dividindo o mesmo por potências de 2 (2 x ), assim pode-se fazer um ajuste mais fino das condições de SNR desejadas, evitando problemas de quantização na passagem do ambiente analógico real (simulado pelo MATLAB), e o ambiente digital da FPGA. Todos os canais que simulassem um meio analógico foram feitos utilizando 64 bits de precisão, mas por uma facilidade maior de design, o resultado da soma dos 4 usuários e do ruído gera um canal também de 64 bits, por isso é preciso tomar um cuidado maior para evitar estouros nesses sinais, entretanto com menos de 64 bits já é possível representar o canal com precisão, sobrando alguns bits para eventuais estouros (por exemplo utilizando ganhos e ruídos de no máximo 32 bits, tendo espaço para que a soma destes sinais caiba em 64 bits sem nenhuma distorção). 9

14 Figura 4: Autocorrelação de um ruído gerado por uma LFSR de 32 bits 10

15 Figura 5: Autocorrelação de um ruído gerado por uma LFSR de 64 bits, foram tomadas amostras e não foi encontrado o máximo comprimento. 7 Códigos VHDL do projeto A seguir estão inclusos os códigos VHDL usados no projeto, em ordem alfabética. Para facilitar o leitor, os códigos de maior importância são os seguintes: placa.vhd Contém o código da visão mais ampla do projeto, integrando sub-módulos como o controle do display LCD e o módulo chamado TF, que contém tanto o sistema de espalhamento espectral normal quanto o SIC. lcd.vhd Contém o módulo de controle do display LCD, este módulo irá acessar uma memória com a tela do display, esta memória deve ser pré-programada como no caso feito pelo módulo compensador. compensador.vhd Contém o módulo de controle geral do projeto, controlando o módulo TF com os dois transmissores/receptores, e também com a programação necessária para preencher a memória do display com os dados. TF.vhd Módulo principal do projeto, contendo tanto o transmissor/receptor normal quanto o SIC, tem como saída os números de bits transmitidos e os erros associados. ProvaSoft.vhd Contém o transmissor/receptor normal utilizando detector soft. ProvaSIC.vhd Contém o transmissor/receptor SIC. Uma atenção especial deve ser dada aos testbenches, que conforme já explicado automatiza o processo de testes e formação de resultados. Neste projeto foram utilizadas as bibliotecas std.textio.all e também ieee.std_logic_textio.all, estas bibliotecas permitem a comunicação entre códigos VHDL e arquivos de texto na simulação, podendo assim gerar saídas em texto para posterior carga no MATLAB 11

16 ou outro software para seu processamento adequado, além disto estas bibliotecas também permitem importar dados de arquivos textos como entradas para o código VHDL, podendo assim simular um canal CDMA armazenado em texto, para validar um receptor. 7.1 atrasa64.vhd atrasa64.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 entity atrasa64 is 9 Port ( clk : in STD_LOGIC; 10 entrada : in STD_LOGIC; 11 saida : out STD_LOGIC); 12 end atrasa64; architecture Behavioral of atrasa64 is begin 17 process (clk) 18 variable tmp : STD_LOGIC_VECTOR (127 downto 0) := ( others => 0 ); 19 begin 20 if (CLK event and CLK= 1 ) then 21 saida <= tmp(62); 22 tmp(127 downto 1) := tmp(126 downto 0); 23 tmp(0) := entrada; 24 end if; 25 end process; end Behavioral; 7.2 Codificador.vhd Codificador.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity Codificador is 11 Port ( CLK : in STD_LOGIC; 12 DADO : in STD_LOGIC; 13 CHIP : in STD_LOGIC_VECTOR (63 downto 0); 14 CHIPCNT : in STD_LOGIC_VECTOR (5 downto 0); 15 CHIPCL : in STD_LOGIC; 16 ENABLE : in STD_LOGIC; 17 SAIDA : out STD_LOGIC; 12

17 18 SINC : out STD_LOGIC; 19 C : out STD_LOGIC_VECTOR(5 downto 0)); 20 end Codificador; architecture Behavioral of Codificador is 23 signal memchip : std_logic_vector(63 downto 0); 24 signal cnt : integer range 0 to 63 := 0; 25 signal d : std_logic := 0 ; 26 begin 27 process (d,cnt) begin 28 SAIDA <= (d xor CHIP(cnt)); 29 C <= STD_LOGIC_VECTOR(to_unsigned(cnt,6)); 30 if (cnt = 0) then 31 SINC <= 1 ; 32 else SINC <= 0 ; 33 end if; 34 end process; process (CHIP) 37 begin 38 memchip <= CHIP; 39 end process; process (CLK) 42 begin 43 if CLK event and CLK= 1 then 44 if CHIPCL = 1 then 45 CNT <= to_integer(unsigned(chipcnt)); 46 d <= DADO; 47 else 48 if cnt = 63 then 49 cnt <= 0; 50 else 51 cnt <= cnt + 1; 52 end if; 53 end if; 54 if (cnt = 0) then 55 d <= DADO; 56 end if; 57 end if; 58 end process; 59 end Behavioral; 7.3 Compensador.vhd Compensador.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 13

18 10 entity Compensador is 11 Port ( 12 CLK : in STD_LOGIC; 13 CH_N : in STD_LOGIC; 14 CH_S : in STD_LOGIC; 15 CH_E : in STD_LOGIC; 16 CH_W : in STD_LOGIC; 17 CH_C : in STD_LOGIC; 18 AN1 : in std_logic_vector(63 DOWNTO 0); 19 AN2 : in std_logic_vector(63 DOWNTO 0); 20 AN3 : in std_logic_vector(63 DOWNTO 0); 21 AN4 : in std_logic_vector(63 DOWNTO 0); 22 AE1 : in std_logic_vector(63 DOWNTO 0); 23 AE2 : in std_logic_vector(63 DOWNTO 0); 24 AE3 : in std_logic_vector(63 DOWNTO 0); 25 AE4 : in std_logic_vector(63 DOWNTO 0); 26 BN1 : in std_logic_vector(63 DOWNTO 0); 27 BN2 : in std_logic_vector(63 DOWNTO 0); 28 BN3 : in std_logic_vector(63 DOWNTO 0); 29 BN4 : in std_logic_vector(63 DOWNTO 0); 30 BE1 : in std_logic_vector(63 DOWNTO 0); 31 BE2 : in std_logic_vector(63 DOWNTO 0); 32 BE3 : in std_logic_vector(63 DOWNTO 0); 33 BE4 : in std_logic_vector(63 DOWNTO 0); RESETTF : out STD_LOGIC; 36 LOADLCD : out STD_LOGIC; 37 ADDMLCD : out STD_LOGIC_VECTOR(2 downto 0); 38 ADDMEM : out STD_LOGIC_VECTOR(7 downto 0); 39 BYTEMEM : out STD_LOGIC_VECTOR(7 downto 0); 40 GANHO1 : OUT STD_LOGIC_VECTOR (63 DOWNTO 0); 41 GANHO2 : OUT STD_LOGIC_VECTOR (63 DOWNTO 0); 42 GANHO3 : OUT STD_LOGIC_VECTOR (63 DOWNTO 0); 43 GANHO4 : OUT STD_LOGIC_VECTOR (63 DOWNTO 0); 44 GANHOR : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); 45 LED0 : out STD_LOGIC; 46 LED1 : out STD_LOGIC; 47 LED2 : out STD_LOGIC; 48 LED3 : out STD_LOGIC); 49 end Compensador; architecture Behavioral of Compensador is 52 signal NB,G1,G2,G3,G4 : std_logic_vector (63 downto 0) := (OTHERS => 0 ); 53 type estados is (iniciando, aguarda, rodando, atualizando,atualiza,atualizau1); 54 signal estado,proxestado : estados := iniciando; 55 signal nibble : std_logic_vector (3 downto 0); 56 signal endmem : unsigned (7 downto 0) := (others => 0 ); 57 signal hex : std_logic_vector (7 downto 0); 58 signal dan1,dan2,dan3,dan4,dbn1,dbn2,dbn3,dbn4,dae1,dae2,dae3,dae4,dbe1,dbe2,dbe3, 59 dbe4,atualganho,atualerroa,atualerrob : std_logic_vector(63 downto 0); 60 signal usuario,pusuario : std_logic_vector (1 downto 0) := "00"; 61 signal cheacionada,chcacionada,chnacionada,chwacionada,atmemoria : std_logic := 0 ; 62 signal tipoganho : unsigned (1 downto 0) := (others => 0 ); COMPONENT nibble2hex 14

19 65 Port ( NIBBLE : in STD_LOGIC_VECTOR (3 downto 0); 66 HEX : out STD_LOGIC_VECTOR (7 downto 0)); 67 end component; begin N2H1 : nibble2hex port map (nibble, hex); process (tipoganho) 74 BEGIN 75 case tipoganho is 76 when "00" => 77 G1 <= X" FFFFFFF00"; 78 G2 <= X" AD2010"; 79 G3 <= X" BAAB"; 80 G4 <= X" FFF"; 81 GANHOR <= " "; 82 when "01" => 83 G1 <= X" FFFFFFF00"; 84 G2 <= X" AD2010"; 85 G3 <= X" BAAB"; 86 G4 <= X" FFF"; 87 GANHOR <= " "; 88 when "10" => 89 G1 <= X" FFFFFFF11"; 90 G2 <= X" B58F6EB5D"; 91 G3 <= X" C422F18"; 92 G4 <= X" B52D1F95"; 93 GANHOR <= " "; 94 when "11" => 95 G1 <= X" FFFFFFF11"; 96 G2 <= X" B58F6EB5D"; 97 G3 <= X" C422F18"; 98 G4 <= X" B52D1F95"; 99 GANHOR <= " "; 100 when others => 101 G1 <= X" FFFFFFF00"; 102 G2 <= X" FDEAD2010"; 103 G3 <= X" DAD0BAAB"; 104 G4 <= X" ECF2010"; 105 GANHOR <= " "; 106 end case; 107 end process; ADDMLCD <= "0"&usuario; 110 led0 <= usuario(0); 111 led1 <= usuario(1); 112 led2 <= tipoganho(0); 113 led3 <= tipoganho(1); 114 LOADLCD <= CH_N; GANHO1 <= G1; 117 GANHO2 <= G2; 118 GANHO3 <= G3; 119 GANHO4 <= G4; 15

20 120 ADDMEM <= std_logic_vector(endmem-1); process (usuario) 123 begin 124 case usuario is 125 when "00" => 126 atualganho <= dan1; 127 atualerroa <= dae1; 128 atualerrob <= dbe1; 129 when "01" => 130 atualganho <= dan2; 131 atualerroa <= dae2; 132 atualerrob <= dbe2; 133 when "10" => 134 atualganho <= dan3; 135 atualerroa <= dae3; 136 atualerrob <= dbe3; 137 when "11" => 138 atualganho <= dan4; 139 atualerroa <= dae4; 140 atualerrob <= dbe4; 141 when others => 142 end case; 143 end process; process (CLK) 146 variable n : integer := 0; 147 variable delay : integer := 0; 148 variable cnib : integer := 0; 149 begin 150 if rising_edge(clk) then 151 case estado is 152 when iniciando => 153 RESETTF <= 1 ; 154 delay := 10000; 155 estado <= aguarda; 156 proxestado <= rodando; 157 usuario <= "00"; 158 cnib := 0; 159 endmem <= " "; 160 when aguarda => 161 if delay = 0 then 162 estado <= proxestado; 163 else 164 delay := delay - 1; 165 end if; 166 when rodando => 167 RESETTF <= 0 ; 168 atmemoria <= 0 ; when atualiza => 171 dan1 <= an1; 172 dan2 <= an2; 173 dan3 <= an3; 174 dan4 <= an4; 16

21 175 dbn1 <= bn1; 176 dbn2 <= bn2; 177 dbn3 <= bn3; 178 dbn4 <= bn4; 179 dae1 <= ae1; 180 dae2 <= ae2; 181 dae3 <= ae3; 182 dae4 <= ae4; 183 dbe1 <= be1; 184 dbe2 <= be2; 185 dbe3 <= be3; 186 dbe4 <= be4; estado <= atualizau1; 189 usuario <= "00"; 190 cnib := 0; 191 endmem <= " "; 192 atmemoria <= 1 ; 193 when atualizau1 => 194 case cnib is 195 when 0 => 196 BYTEMEM <= " "; -- U 197 when 1 => 198 BYTEMEM <= "001100"&usuario; when 2 => 200 BYTEMEM <= x"4e"; -- N 201 nibble <= atualganho(51 downto 48); 202 when 3 => 203 nibble <= atualganho(47 downto 44); 204 BYTEMEM <= HEX; 205 when 4 => 206 nibble <= atualganho(43 downto 40); 207 BYTEMEM <= HEX; 208 when 5 => 209 nibble <= atualganho(39 downto 36); 210 BYTEMEM <= HEX; 211 when 6 => 212 nibble <= atualganho(35 downto 32); 213 BYTEMEM <= HEX; 214 when 7 => 215 nibble <= atualganho(31 downto 28); 216 BYTEMEM <= HEX; 217 when 08 => 218 nibble <= atualganho(27 downto 24); 219 BYTEMEM <= HEX; 220 when 09 => 221 nibble <= atualganho(23 downto 20); 222 BYTEMEM <= HEX; 223 when 10 => 224 nibble <= atualganho(19 downto 16); 225 BYTEMEM <= HEX; 226 when 11 => 227 nibble <= atualganho(15 downto 12); 228 BYTEMEM <= HEX; 229 when 12 => 17

22 230 nibble <= atualganho(11 downto 08); 231 BYTEMEM <= HEX; 232 when 13 => 233 nibble <= atualganho(07 downto 04); 234 BYTEMEM <= HEX; 235 when 14 => 236 nibble <= atualganho(03 downto 00); 237 BYTEMEM <= HEX; 238 when 15 => 239 nibble <= atualerroa(31 downto 28); 240 BYTEMEM <= HEX; FINAL PRIMEIRA LINHA when 16 => 243 nibble <= atualerroa(27 downto 24); 244 BYTEMEM <= HEX; 245 when 17 => 246 nibble <= atualerroa(23 downto 20); 247 BYTEMEM <= HEX; 248 when 18 => 249 nibble <= atualerroa(19 downto 16); 250 BYTEMEM <= HEX; 251 when 19 => 252 nibble <= atualerroa(15 downto 12); 253 BYTEMEM <= HEX; 254 when 20 => 255 nibble <= atualerroa(11 downto 08); 256 BYTEMEM <= HEX; 257 when 21 => 258 nibble <= atualerroa(07 downto 04); 259 BYTEMEM <= HEX; 260 when 22 => 261 nibble <= atualerroa(03 downto 00); 262 BYTEMEM <= HEX; 263 when 23 => 264 nibble <= atualerrob(31 downto 28); 265 BYTEMEM <= HEX; FINAL ERRO A when 24 => 268 nibble <= atualerrob(27 downto 24); 269 BYTEMEM <= X"20"; 270 when 25 => 271 nibble <= atualerrob(23 downto 20); 272 BYTEMEM <= HEX; 273 when 26 => 274 nibble <= atualerrob(19 downto 16); 275 BYTEMEM <= HEX; 276 when 27 => 277 nibble <= atualerrob(15 downto 12); 278 BYTEMEM <= HEX; 279 when 28 => 280 nibble <= atualerrob(11 downto 08); 281 BYTEMEM <= HEX; 282 when 29 => 283 nibble <= atualerrob(07 downto 04); 284 BYTEMEM <= HEX; 18

23 285 when 30 => 286 nibble <= atualerrob(03 downto 00); 287 BYTEMEM <= HEX; 288 when 31 => 289 BYTEMEM <= HEX; 290 when others => estado <= iniciando; 292 end case; 293 cnib := cnib + 1; 294 ENDMEM <= ENDMEM + 1; 295 if cnib = 32 then 296 if usuario = "11" then 297 estado <= rodando; 298 atmemoria <= 0 ; 299 else 300 usuario <= std_logic_vector(unsigned(usuario)+1); 301 cnib := 0; 302 end if; 303 end if; when others => 306 estado <= iniciando; 307 end case; if CH_S = 1 then 310 estado <= iniciando; 311 end if; 312 if CH_C = 1 and chcacionada= 0 then 313 chcacionada <= 1 ; 314 elsif ch_c= 0 and chcacionada= 1 then 315 chcacionada <= 0 ; 316 estado <= atualiza; 317 endmem <= " "; 318 usuario <= "11"; 319 END IF; 320 if CH_E = 1 and cheacionada= 0 then 321 pusuario <= std_logic_vector(unsigned(usuario)+"01"); 322 cheacionada <= 1 ; 323 elsif ch_e= 0 and cheacionada= 1 then 324 usuario <= pusuario; 325 cheacionada <= 0 ; 326 END IF; if CH_W = 1 and chwacionada= 0 then 329 chwacionada <= 1 ; 330 elsif ch_w= 0 and chwacionada= 1 then 331 tipoganho <= tipoganho + "01"; 332 chwacionada <= 0 ; 333 END IF; 334 end if; 335 end process; end Behavioral; 19

24 7.4 ControlaBuffer.vhd ControlaBuffer.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity ControlaBuffer is 11 Port ( CLK : in STD_LOGIC; 12 ATRASO : in STD_LOGIC_VECTOR (5 downto 0); 13 ADDREAD : out STD_LOGIC_VECTOR (7 downto 0) := " "; 14 ADDWRITE : out STD_LOGIC_VECTOR (7 downto 0) := " "); 15 end ControlaBuffer; architecture Behavioral of ControlaBuffer is begin 20 process (CLK) 21 variable c: unsigned (7 downto 0) := " "; 22 begin 23 if CLK= 1 and CLK event then 24 ADDREAD <= STD_LOGIC_VECTOR(c); 25 ADDWRITE <= STD_LOGIC_VECTOR(c+unsigned(ATRASO)); 26 c := c + 1; 27 end if; 28 end process; 29 end Behavioral; 7.5 debounce.vhd debounce.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 use IEEE.STD_LOGIC_ARITH.ALL; 8 use IEEE.STD_LOGIC_UNSIGNED.ALL; 9 10 entity debounce is 11 Port ( CLK : in STD_LOGIC; 12 DI : in STD_LOGIC; 13 DO : out STD_LOGIC); 14 end debounce; architecture Behavioral of debounce is 17 begin process (CLK) 20 variable nclk : integer := ; 20

25 21 variable d1,d2 : std_logic := 0 ; 22 begin 23 if nclk = 0 then 24 d1 := d2; 25 d2 := DI; 26 nclk := ; 27 else 28 nclk := nclk - 1; 29 end if; 30 DO <= d1 and d2; 31 end process; end Behavioral; 7.6 DecodificadorSIC.vhd DecodificadorSIC.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity DecodificadorSIC is 11 Port ( CLK : in STD_LOGIC; 12 CANAL : in STD_LOGIC_VECTOR (63 downto 0); 13 CHIP : in STD_LOGIC_VECTOR (63 downto 0); 14 CHIPCNT : in STD_LOGIC_VECTOR (5 downto 0); 15 CHIPCL : in STD_LOGIC; 16 SINCIN : in STD_LOGIC; 17 DETECTA : out STD_LOGIC; 18 DADO : out STD_LOGIC; 19 ACCOUT : out STD_LOGIC_VECTOR(31 downto 0); 20 C : out STD_LOGIC_VECTOR(5 downto 0); 21 CANALOUT : out STD_LOGIC_VECTOR (63 downto 0); 22 SINCLOOPIN : in STD_LOGIC_VECTOR (3 downto 0); 23 SINCLOOPOUT : out STD_LOGIC_VECTOR (3 downto 0); 24 GANHO : in STD_LOGIC_VECTOR(63 downto 0) 25 ); end DecodificadorSIC; architecture Behavioral of DecodificadorSIC is COMPONENT BufferCanal 32 PORT ( 33 clka : IN STD_LOGIC; 34 ena : IN STD_LOGIC; 35 wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0); 36 addra : IN STD_LOGIC_VECTOR(6 DOWNTO 0); 37 dina : IN STD_LOGIC_VECTOR(63 DOWNTO 0); 38 clkb : IN STD_LOGIC; 21

26 39 enb : IN STD_LOGIC; 40 addrb : IN STD_LOGIC_VECTOR(6 DOWNTO 0); 41 doutb : OUT STD_LOGIC_VECTOR(63 DOWNTO 0) 42 ); 43 END COMPONENT; COMPONENT BufferSinc 47 port ( 48 clka: IN std_logic; 49 ena: IN std_logic; 50 wea: IN std_logic_vector(0 downto 0); 51 addra: IN std_logic_vector(6 downto 0); 52 dina: IN std_logic_vector(3 downto 0); 53 clkb: IN std_logic; 54 enb: IN std_logic; 55 addrb: IN std_logic_vector(6 downto 0); 56 doutb: OUT std_logic_vector(3 downto 0)); 57 END COMPONENT; COMPONENT Accum 61 PORT ( 62 b : IN STD_LOGIC_VECTOR(63 DOWNTO 0); 63 clk : IN STD_LOGIC; 64 add : IN STD_LOGIC; 65 sclr : IN STD_LOGIC; 66 q : OUT STD_LOGIC_VECTOR(127 DOWNTO 0) 67 ); 68 END COMPONENT; signal memchip,canalat,csic,can0 : std_logic_vector(63 downto 0) := (others => 0 ); 73 signal ADDCANW,ADDCANR,ADDSINCR : std_logic_vector(6 downto 0) := (others => 0 ); 74 shared variable cnt : integer range 0 to 63 := 0; 75 signal acc : std_logic_vector (127 downto 0) := (others => 0 ); 76 signal acc2 : std_logic_vector (127 downto 0); 77 signal addctl,limpa : std_logic := 0 ; 78 signal ultimodado : std_logic; begin 81 Acumulador1: Accum port map (CANAL,CLK,addctl,limpa,ACC2); 82 BSinc : BufferSinc port map (CLK, 1, "1", ADDCANW, SINCLOOPIN, 83 CLK, 1, ADDSINCR, SINCLOOPOUT); 84 BCanal : BufferCanal port map (CLK, 1, "1", ADDCANW, CANAL, CLK, 1, ADDCANR, CANALAT); DETECTA <= SINCIN; 88 process (CHIP) 89 begin 90 memchip <= CHIP; 91 end process; process (SINCIN) 22

27 94 begin 95 if rising_edge(sincin) then 96 ultimodado <= not acc(127); 97 DADO <= ultimodado; 98 ACCOUT <= ACC(63 DOWNTO 32); 99 end if; 100 end process; process (CLK,CHIPCL,CHIPCNT) 104 variable accbuffer : std_logic_vector(127 downto 0); 105 begin 106 if rising_edge(clk) then 107 ADDCANW <= std_logic_vector(unsigned(addcanr) + 64); 108 ADDSINCR <= std_logic_vector(unsigned(addcanr)); 109 ADDCANR <= std_logic_vector(unsigned(addcanr) + 1); 110 if SINCIN= 1 then 111 cnt := 1; 112 if (memchip(0) = 1 ) then 113 CAN0 <= std_logic_vector(signed(canal)); 114 else 115 CAN0 <= std_logic_vector(-signed(canal)); 116 end if; 117 end if; 118 if CHIPCL = 1 then 119 CNT := to_integer(unsigned(chipcnt)); 120 end if; 121 C <= STD_LOGIC_VECTOR(to_unsigned(cnt,6)); 122 if (ultimodado xor memchip(cnt)) = 1 then 123 CSIC <= std_logic_vector(signed(ganho)); 124 else 125 CSIC <= std_logic_vector(-signed(ganho)); 126 end if; 127 CANALOUT <= std_logic_vector(signed(canalat) - signed(csic)); 128 if memchip(cnt) = 1 or memchip(cnt)= 0 then 129 addctl <= not memchip(cnt); 130 end if; 131 if cnt = 63 then 132 limpa <= 1 ; 133 ACC <= std_logic_vector(signed(acc2) + signed(can0)); 134 cnt := 1; 135 else 136 cnt := cnt + 1; 137 limpa <= 0 ; 138 end if; 139 END IF; 140 end process; end Behavioral; 7.7 DecodificadorSoft.vhd DecodificadorSoft.vhd 23

28 Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity DecodificadorSoft is 11 Port ( CLK : in STD_LOGIC; 12 CANAL : in STD_LOGIC_VECTOR (63 downto 0); 13 CHIP : in STD_LOGIC_VECTOR (63 downto 0); 14 CHIPCNT : in STD_LOGIC_VECTOR (5 downto 0); 15 CHIPCL : in STD_LOGIC; 16 SINCIN : in STD_LOGIC; 17 DETECTA : out STD_LOGIC; 18 DADO : out STD_LOGIC; 19 ACCOUT : out STD_LOGIC_VECTOR(31 downto 0); 20 C : out STD_LOGIC_VECTOR(5 downto 0)); end DecodificadorSoft; architecture Behavioral of DecodificadorSoft is COMPONENT Accum 27 PORT ( 28 b : IN STD_LOGIC_VECTOR(63 DOWNTO 0); 29 clk : IN STD_LOGIC; 30 add : IN STD_LOGIC; 31 sclr : IN STD_LOGIC; 32 q : OUT STD_LOGIC_VECTOR(127 DOWNTO 0) 33 ); 34 END COMPONENT; signal CAN0 : std_logic_vector(63 downto 0) := (others => 0 ); 38 signal memchip : std_logic_vector(63 downto 0); 39 shared variable cnt : integer range 0 to 63 := 0; 40 signal acc : std_logic_vector (127 downto 0) := (others => 0 ); 41 signal acc2 : std_logic_vector (127 downto 0); 42 signal addctl,limpa : std_logic := 0 ; begin 45 Acumulador1: Accum port map (CANAL,CLK,addctl,limpa,ACC2); 46 DETECTA <= SINCIN; process (CHIP) 49 begin 50 memchip <= CHIP; 51 end process; process (SINCIN) 54 begin 55 if rising_edge(sincin) then 24

29 56 DADO <= not ACC(127); 57 ACCOUT <= ACC2(63 DOWNTO 32); 58 end if; 59 end process; process (CLK,CHIPCL,CHIPCNT,SINCIN) 63 variable accbuffer : std_logic_vector(127 downto 0); 64 begin 65 if rising_edge(clk) then 66 if SINCIN= 1 then 67 cnt := 1; 68 if (memchip(0) = 1 ) then 69 CAN0 <= std_logic_vector(signed(canal)); 70 else 71 CAN0 <= std_logic_vector(-signed(canal)); 72 end if; 73 elsif CHIPCL = 1 then 74 CNT := to_integer(unsigned(chipcnt)); 75 end if; 76 C <= STD_LOGIC_VECTOR(to_unsigned(cnt,6)); 77 if memchip(cnt) = 1 or memchip(cnt)= 0 then 78 addctl <= not memchip(cnt); 79 end if; 80 if cnt = 63 then 81 limpa <= 1 ; 82 ACC <= std_logic_vector(signed(acc2) + signed(can0)); 83 cnt := 1; 84 else 85 cnt := cnt + 1; 86 limpa <= 0 ; 87 end if; 88 END IF; 89 end process; 90 end Behavioral; 7.8 GanhoUsuario.vhd GanhoUsuario.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity GanhoUsuario is 11 Port ( ENTRADA : in STD_LOGIC; 12 GANHO : in STD_LOGIC_VECTOR (63 downto 0); 13 SAIDA : out STD_LOGIC_VECTOR (63 downto 0)); 14 end GanhoUsuario; architecture Behavioral of GanhoUsuario is 25

30 17 18 begin process (ENTRADA,GANHO) 21 begin 22 if (ENTRADA= 0 ) then 23 SAIDA <= STD_LOGIC_VECTOR(-SIGNED(GANHO)); 24 else 25 SAIDA <= STD_LOGIC_VECTOR(SIGNED(GANHO)); 26 end if; 27 end process; end Behavioral; 7.9 LCD.vhd lcd.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity LCD is 11 Port ( CLK : in STD_LOGIC; 12 LOAD : in STD_LOGIC; 13 BYTE : in STD_LOGIC_VECTOR(7 downto 0); 14 ADDR : out STD_LOGIC_VECTOR(4 downto 0); 15 LCD_RS : out STD_LOGIC; 16 LCD_RW : out STD_LOGIC; 17 LCD_E : out STD_LOGIC; 18 D4 : out STD_LOGIC; 19 D5 : out STD_LOGIC; 20 D6 : out STD_LOGIC; 21 D7 : out STD_LOGIC); 22 end LCD; architecture Behavioral of LCD is 25 type estados is (inicio, init1,aguarda,init2,init3,init4,init5,fs1,fs2,em1,em2,aguarda2, 26 di1,di2,cl1,cl2,iniciado,escrevealto,escrevebaixo,escrevealto2, 27 escrevebaixo2,pulalinha,pulalinha2); 28 signal estado : estados := inicio; 29 signal proxestado : estados := inicio; 30 signal dados,nibbled,nibbleu,hex : std_logic_vector(3 downto 0) := (others => 0 ); 31 signal e,rw,rs,l : std_logic := 0 ; 32 signal CNT : unsigned (4 downto 0) := (others => 0 ); constant ATRASOLCD : integer := ; 35 begin 36 D4 <= dados(0); 37 D5 <= dados(1); 26

31 38 D6 <= dados(2); 39 D7 <= dados(3); 40 ADDR <= STD_LOGIC_VECTOR(CNT); 41 LCD_E <= e; 42 LCD_RW <= 0 ; 43 LCD_RS <= rs; 44 process (CLK) 45 variable delay : integer := 0; 46 variable nclock : integer := 0; 47 variable gambi : integer := 0; 48 begin 49 if rising_edge(clk) then 50 nclock := nclock + 1; 51 case estado is 52 when inicio => 53 e <= 0 ; 54 rs <= 0 ; 55 rw <= 0 ; 56 dados <= "0000"; 57 L <= 0 ; 58 if LOAD= 1 then 59 estado <= init1; 60 end if; 61 when escrevebaixo => -- Comeco dos caracteres 62 rs <= 1 ; 63 rw <= 0 ; 64 dados <= BYTE(7 downto 4); 65 e <= 1 ; 66 proxestado <= EscreveAlto; 67 estado <= aguarda; 68 when escrevealto => -- 2nd estado dos caracteres 69 rs <= 1 ; 70 rw <= 0 ; 71 dados <= BYTE(3 downto 0); 72 e <= 1 ; 73 CNT <= CNT + 1; 74 if ((CNT(4) = 1 ) and (L= 0 )) then 75 rs <= 1 ; 76 --gambi := 40; 77 proxestado <= PulaLinha; 78 elsif (CNT = "11111") and (L= 1 ) then 79 proxestado <= inicio; 80 else 81 proxestado <= escrevebaixo; 82 end if; 83 estado <= aguarda; 84 when PulaLinha => 85 e <= 1 ; 86 rs <= 0 ; 87 dados <= "1100"; 88 proxestado <= PulaLinha2; 89 estado <= aguarda; 90 when PulaLinha2 => 91 e <= 1 ; 92 rs <= 0 ; 27

32 93 dados <= "0000"; 94 L <= 1 ; 95 proxestado <= escrevebaixo; 96 estado <= aguarda; 97 when init1 => 98 dados <= "0011"; 99 rs <= 0 ; 100 rw <= 0 ; 101 e <= 1 ; 102 delay := ATRASOLCD; 103 proxestado <= init2; 104 estado <= aguarda; 105 when init2 => 106 dados <= "0011"; 107 rs <= 0 ; 108 rw <= 0 ; 109 e <= 1 ; 110 delay := ATRASOLCD; 111 proxestado <= init3; 112 estado <= aguarda; 113 when init3 => 114 dados <= "0011"; 115 rs <= 0 ; 116 rw <= 0 ; 117 e <= 1 ; 118 delay := ATRASOLCD; 119 proxestado <= init4; 120 estado <= aguarda; 121 when init4 => 122 dados <= "0011"; 123 rs <= 0 ; 124 rw <= 0 ; 125 e <= 1 ; 126 delay := ATRASOLCD; 127 proxestado <= init5; 128 estado <= aguarda; 129 when init5 => 130 dados <= "0010"; 131 rs <= 0 ; 132 rw <= 0 ; 133 e <= 1 ; 134 delay := ATRASOLCD; 135 proxestado <= fs1; 136 estado <= aguarda; 137 when fs1 => 138 dados <= "0010"; 139 rs <= 0 ; 140 rw <= 0 ; 141 e <= 1 ; 142 delay := ATRASOLCD; 143 proxestado <= fs2; 144 estado <= aguarda; 145 when fs2 => 146 dados <= "1000"; 147 rs <= 0 ; 28

33 148 rw <= 0 ; 149 e <= 1 ; 150 delay := ATRASOLCD; 151 proxestado <= em1; 152 estado <= aguarda; 153 when em1 => 154 dados <= "0000"; -- 0x0 155 rs <= 0 ; 156 rw <= 0 ; 157 e <= 1 ; 158 delay := ATRASOLCD; 159 proxestado <= em2; 160 estado <= aguarda; 161 when em2 => 162 dados <= "0110"; -- 0x6 163 rs <= 0 ; 164 rw <= 0 ; 165 e <= 1 ; 166 delay := ATRASOLCD; 167 proxestado <= di1; 168 estado <= aguarda; 169 when di1 => 170 dados <= "0000"; -- 0x0 171 rs <= 0 ; 172 rw <= 0 ; 173 e <= 1 ; 174 delay := ATRASOLCD; 175 proxestado <= di2; 176 estado <= aguarda; 177 when di2 => 178 dados <= "1100"; -- 0xc 179 rs <= 0 ; 180 rw <= 0 ; 181 e <= 1 ; 182 delay := ATRASOLCD; 183 proxestado <= cl1; 184 estado <= aguarda; 185 when cl1 => 186 dados <= "0000"; -- 0x0 187 rs <= 0 ; 188 rw <= 0 ; 189 e <= 1 ; 190 delay := ATRASOLCD; 191 proxestado <= cl2; 192 estado <= aguarda; 193 when cl2 => 194 dados <= "0001"; -- 0x1 195 rs <= 0 ; 196 rw <= 0 ; 197 e <= 1 ; 198 delay := ATRASOLCD; 199 proxestado <= escrevebaixo; 200 estado <= aguarda; 201 when iniciado => 202 estado <= iniciado; 29

34 when aguarda => 205 if delay = 0 then 206 delay := ATRASOLCD; 207 estado <= aguarda2; 208 else 209 delay := delay - 1; 210 end if; 211 when aguarda2 => 212 e <= 0 ; 213 if delay = 0 then 214 estado <= proxestado; 215 else 216 delay := delay - 1; 217 end if; when others => 221 estado <= inicio; 222 end case; 223 end if; 224 end process; end Behavioral; 7.10 LFSR.vhd LFSR.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 use IEEE.NUMERIC_STD.ALL; 9 10 entity LFSR is 11 Port ( CLK : in STD_LOGIC; 12 ENA : in STD_LOGIC; 13 Q : out STD_LOGIC_VECTOR (63 downto 0)); 14 end LFSR; architecture Behavioral of LFSR is 17 begin 18 process (CLK) 19 variable LFMEM: UNSIGNED (63 downto 0) := 20 " "; begin 23 if (CLK event and CLK= 1 and ENA= 1 ) then 24 LFMEM := rotate_left(lfmem,1); 25 LFMEM(0) := LFMEM(63) xor LFMEM(62) xor LFMEM(60) xor LFMEM(59); 30

35 26 end if; 27 Q <= STD_LOGIC_VECTOR(LFMEM); 28 end process; 29 end Behavioral; 7.11 nibble2hex.vhd nibble2hex.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 entity nibble2hex is 9 Port ( NIBBLE : in STD_LOGIC_VECTOR (3 downto 0); 10 HEX : out STD_LOGIC_VECTOR (7 downto 0)); end nibble2hex; architecture Behavioral of nibble2hex is begin process (nibble) 19 begin 20 case nibble is 21 when "0000" => HEX <= " "; when "0001" => HEX <= " "; when "0010" => HEX <= " "; when "0011" => HEX <= " "; when "0100" => HEX <= " "; when "0101" => HEX <= " "; when "0110" => HEX <= " "; when "0111" => HEX <= " "; when "1000" => HEX <= " "; when "1001" => HEX <= " "; when "1010" => HEX <= " "; -- A 32 when "1011" => HEX <= " "; -- B 33 when "1100" => HEX <= " "; -- C 34 when "1101" => HEX <= " "; -- D 35 when "1110" => HEX <= " "; -- E 36 when "1111" => HEX <= " "; -- F 37 when others => HEX <= " "; --? 38 end case; 39 end process; end Behavioral; 7.12 Placa.vhd Placa.vhd Company: Escola Politécnica - Universidade de São Paulo 3 -- Engineer: Vinicius Pavanelli Vianna

36 library IEEE; 6 use IEEE.STD_LOGIC_1164.ALL; 7 8 entity Placa is 9 port ( 10 clk_fpga : in std_logic; 11 sw_c : in std_logic; 12 sw_n : in std_logic; 13 sw_s : in std_logic; 14 sw_e : in std_logic; 15 sw_w : in std_logic; 16 led0 : out std_logic; 17 led1 : out std_logic; 18 led2 : out std_logic; 19 led3 : out std_logic; 20 lcd_rw : out std_logic; 21 lcd_rs : out std_logic; 22 lcd_e : out std_logic; 23 lcd_d4 : out std_logic; 24 lcd_d5 : out std_logic; 25 lcd_d6 : out std_logic; 26 lcd_d7 : out std_logic; 27 CLK_VGA : out std_logic; 28 SAIDA_VGA : out std_logic_vector(7 downto 0); 29 SAIDA_VGA2 : out std_logic_vector(7 downto 0) 30 ); 31 end Placa; architecture Behavioral of Placa is COMPONENT TF 36 PORT( 37 CLK : IN std_logic; 38 RESET : IN std_logic; 39 GANHO1 : IN std_logic_vector(63 downto 0); 40 GANHO2 : IN std_logic_vector(63 downto 0); 41 GANHO3 : IN std_logic_vector(63 downto 0); 42 GANHO4 : IN std_logic_vector(63 downto 0); 43 GANHOR : IN std_logic_vector(7 downto 0); 44 AN1 : OUT std_logic_vector(63 downto 0); 45 AN2 : OUT std_logic_vector(63 downto 0); 46 AN3 : OUT std_logic_vector(63 downto 0); 47 AN4 : OUT std_logic_vector(63 downto 0); 48 AE1 : OUT std_logic_vector(63 downto 0); 49 AE2 : OUT std_logic_vector(63 downto 0); 50 AE3 : OUT std_logic_vector(63 downto 0); 51 AE4 : OUT std_logic_vector(63 downto 0); 52 BN1 : OUT std_logic_vector(63 downto 0); 53 BN2 : OUT std_logic_vector(63 downto 0); 54 BN3 : OUT std_logic_vector(63 downto 0); 55 BN4 : OUT std_logic_vector(63 downto 0); 56 BE1 : OUT std_logic_vector(63 downto 0); 57 BE2 : OUT std_logic_vector(63 downto 0); 58 BE3 : OUT std_logic_vector(63 downto 0); 32

37 59 BE4 : out std_logic_vector(63 DOWNTO 0); 60 ACCOUTA1 : out STD_LOGIC_VECTOR(31 downto 0); 61 ACCOUTA2 : out STD_LOGIC_VECTOR(31 downto 0); 62 ACCOUTA3 : out STD_LOGIC_VECTOR(31 downto 0); 63 ACCOUTA4 : out STD_LOGIC_VECTOR(31 downto 0); 64 ACCOUTB1 : out STD_LOGIC_VECTOR(31 downto 0); 65 ACCOUTB2 : out STD_LOGIC_VECTOR(31 downto 0); 66 ACCOUTB3 : out STD_LOGIC_VECTOR(31 downto 0); 67 ACCOUTB4 : out STD_LOGIC_VECTOR(31 downto 0) 68 ); 69 END COMPONENT; 70 COMPONENT debounce 71 PORT( 72 CLK : IN std_logic; 73 DI : IN std_logic; 74 DO : OUT std_logic 75 ); 76 END COMPONENT; component lcd 79 Port ( CLK : in STD_LOGIC; 80 LOAD : in STD_LOGIC; 81 BYTE : in STD_LOGIC_VECTOR(7 downto 0); 82 ADDR : out STD_LOGIC_VECTOR(4 downto 0); 83 LCD_RS : out STD_LOGIC; 84 LCD_RW : out STD_LOGIC; 85 LCD_E : out STD_LOGIC; 86 D4 : out STD_LOGIC; 87 D5 : out STD_LOGIC; 88 D6 : out STD_LOGIC; 89 D7 : out STD_LOGIC); 90 end component; COMPONENT Compensador 94 PORT( 95 CLK : IN std_logic; 96 CH_N : IN std_logic; 97 CH_S : IN std_logic; 98 CH_E : IN std_logic; 99 CH_W : IN std_logic; 100 CH_C : IN std_logic; 101 AN1 : IN std_logic_vector(63 downto 0); 102 AN2 : IN std_logic_vector(63 downto 0); 103 AN3 : IN std_logic_vector(63 downto 0); 104 AN4 : IN std_logic_vector(63 downto 0); 105 AE1 : IN std_logic_vector(63 downto 0); 106 AE2 : IN std_logic_vector(63 downto 0); 107 AE3 : IN std_logic_vector(63 downto 0); 108 AE4 : IN std_logic_vector(63 downto 0); 109 BN1 : IN std_logic_vector(63 downto 0); 110 BN2 : IN std_logic_vector(63 downto 0); 111 BN3 : IN std_logic_vector(63 downto 0); 112 BN4 : IN std_logic_vector(63 downto 0); 113 BE1 : IN std_logic_vector(63 downto 0); 33

38 114 BE2 : IN std_logic_vector(63 downto 0); 115 BE3 : IN std_logic_vector(63 downto 0); 116 BE4 : IN std_logic_vector(63 downto 0); 117 RESETTF : OUT std_logic; 118 LOADLCD : OUT std_logic; 119 ADDMLCD : OUT std_logic_vector(2 downto 0); 120 ADDMEM : OUT std_logic_vector(7 downto 0); 121 BYTEMEM : OUT std_logic_vector(7 downto 0); 122 GANHO1 : OUT std_logic_vector(63 downto 0); 123 GANHO2 : OUT std_logic_vector(63 downto 0); 124 GANHO3 : OUT std_logic_vector(63 downto 0); 125 GANHO4 : OUT std_logic_vector(63 downto 0); 126 GANHOR : OUT std_logic_vector(7 downto 0); 127 LED0 : OUT std_logic; 128 LED1 : OUT std_logic; 129 LED2 : OUT std_logic; 130 LED3 : OUT std_logic 131 ); 132 END COMPONENT; COMPONENT MemoriaDisplay 135 PORT ( 136 clka : IN STD_LOGIC; 137 ena : IN STD_LOGIC; 138 wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0); 139 addra : IN STD_LOGIC_VECTOR(7 DOWNTO 0); 140 dina : IN STD_LOGIC_VECTOR(7 DOWNTO 0); 141 clkb : IN STD_LOGIC; 142 enb : IN STD_LOGIC; 143 addrb : IN STD_LOGIC_VECTOR(7 DOWNTO 0); 144 doutb : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) 145 ); 146 END COMPONENT; COMPONENT RedutorCLK 149 PORT( 150 CE_IN : IN std_logic; 151 CLKIN_IN : IN std_logic; 152 RST_IN : IN std_logic; 153 R_IN : IN std_logic; 154 S_IN : IN std_logic; 155 CLKIN_IBUFG_OUT : OUT std_logic; 156 CLK0_OUT : OUT std_logic; 157 DDR_CLK0_OUT : OUT std_logic; 158 LOCKED_OUT : OUT std_logic 159 ); 160 END COMPONENT; signal addmlcd : std_logic_vector(2 downto 0); 163 signal addlcd : std_logic_vector(4 downto 0); signal addmem,bytemem,bytelcd : std_logic_vector (7 downto 0); 166 signal na1,na2,na3,na4,nb1,nb2,nb3,nb4,ea1,ea2,ea3,ea4,eb1,eb2,eb3,eb4, 167 g1,g2,g3,g4 : std_logic_vector(63 downto 0) := (others => 0 ); 168 signal ACCOUTA1,ACCOUTA2,ACCOUTA3,ACCOUTA4, 34

39 169 ACCOUTB1,ACCOUTB2,ACCOUTB3,ACCOUTB4 170 : std_logic_vector(31 downto 0) := (others => 0 ); 171 signal gr,addrb : std_logic_vector (7 downto 0) := (others => 0 ); 172 signal loadlcd,reset,clkin,ddrclk,clk, 173 ch_c,ch_n,ch_s,ch_w,ch_e : std_logic := 0 ; begin DB1 : debounce PORT MAP (clk, SW_C, CH_C); 179 DB2 : debounce PORT MAP (clk, SW_N, CH_N); 180 DB3 : debounce PORT MAP (clk, SW_S, CH_S); 181 DB4 : debounce PORT MAP (clk, SW_W, CH_W); 182 DB5 : debounce PORT MAP (clk, SW_E, CH_E); Inst_TF: TF PORT MAP( 185 CLK => CLK, 186 RESET => reset, 187 GANHO1 => g1, 188 GANHO2 => g2, 189 GANHO3 => g3, 190 GANHO4 => g4, 191 GANHOR => gr, 192 AN1 => na1, 193 AN2 => na2, 194 AN3 => na3, 195 AN4 => na4, 196 AE1 => ea1, 197 AE2 => ea2, 198 AE3 => ea3, 199 AE4 => ea4, 200 BN1 => nb1, 201 BN2 => nb2, 202 BN3 => nb3, 203 BN4 => nb4, 204 BE1 => eb1, 205 BE2 => eb2, 206 BE3 => eb3, 207 BE4 => eb4, 208 ACCOUTA1 => ACCOUTA1, 209 ACCOUTA2 => ACCOUTA2, 210 ACCOUTA3 => ACCOUTA3, 211 ACCOUTA4 => ACCOUTA4, 212 ACCOUTB1 => ACCOUTB1, 213 ACCOUTB2 => ACCOUTB2, 214 ACCOUTB3 => ACCOUTB3, 215 ACCOUTB4 => ACCOUTB4 216 ); Inst_Compensador: Compensador PORT MAP( 220 CLK => clk, 221 CH_N => CH_N, 222 CH_S => CH_S, 223 CH_E => CH_E, 35

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan LABORG Parte 5 Projeto de um circuito digital de média complexidade Parte 2 Fernando Gehm Moraes Matheus Trevisan 0/maio/2015 Relógio de Xadrez 1. Em campeonatos, o xadrez é jogado usando um relógio. A

Leia mais

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona VHDL Lógica Síncrona Circuitos combinacionais respondem a estímulos com um atraso que depende de sua implementação Para sincronizar subsistemas em lógica combinacional utiliza-se barreiras temporais, que

Leia mais

Módulo 4 Introdução ao VHDL

Módulo 4 Introdução ao VHDL 1 Módulo 4 Introdução ao VHDL Conceitos básicos do VHDL Modelação, Simulação e Síntese de Sistemas Digitais entity declara o interface de um componente; architecture descreve a realização de um componente;

Leia mais

CMP238 Projeto e Teste de Sistemas VLSI

CMP238 Projeto e Teste de Sistemas VLSI CMP238 Projeto e Teste de Sistemas VLSI Projeto Prof. Fernanda Gusmão de Lima Kastensmidt fglima@inf.ufrgs.br Conteúdo descrição lógica de alto nível (VHDL): componentes da plataforma como memória, contadores,

Leia mais

Suporte de funcionamento e interacção com o teclado

Suporte de funcionamento e interacção com o teclado Suporte de funcionamento e interacção com o teclado Autor: André Amaral Costa (nº 7578) Curso: Universidade de Aveiro Data: 6 de Dezembro de 006 Disciplina: Docente: Valery Sklyarov Introdução Neste trabalho

Leia mais

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete - 1 - V 1.0 - De: 02/maio/2012 por Ney Calazans Laboratório de Organização de Computadores-EC V 3.2 - De: 21/abril/2013 por Fernando Gehm Moraes e Ney Calazans Implementação de um Sistema Digital em VHDL

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

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

Leia mais

ISE com VHDL estrutural

ISE com VHDL estrutural UFRJ - DEL EEL480-2014 Laboratório - Turmas EL1, EL2 ISE com VHDL estrutural Texto para as aulas de laboratório, a ser complementado pelo Tutorial dos Alunos e manuais da Xilinx UG331, UG334 e UG695. Mário

Leia mais

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno Fundamentos de sistemas digitais Test-bench prof. Dr. Edson Ifarraguirre Moreno 2 / 8 Validação por Simulação Utilizar um circuito de teste: test-bench Contém um circuito gerador de teste e uma instância

Leia mais

FSM em VHDL e Verificação Funcional. CMP de junho de 2006

FSM em VHDL e Verificação Funcional. CMP de junho de 2006 FSM em VHDL e Verificação Funcional CMP 238 20 de junho de 2006 Máquina de Estados: exemplo Reset= S0 S S3 X= S2 Descrição em VHDL library IEEE; use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL;

Leia mais

UNIDADE I Aula 5 Fontes de Distorção de Sinais em Transmissão. Fonte: Rodrigo Semente

UNIDADE I Aula 5 Fontes de Distorção de Sinais em Transmissão. Fonte: Rodrigo Semente UNIDADE I Aula 5 Fontes de Distorção de Sinais em Transmissão Fonte: Rodrigo Semente A Distorção, em Sistemas de Comunicação, pode ser entendida como uma ação que tem como objetivo modificar as componentes

Leia mais

1 Problemas de transmissão

1 Problemas de transmissão 1 Problemas de transmissão O sinal recebido pelo receptor pode diferir do sinal transmitido. No caso analógico há degradação da qualidade do sinal. No caso digital ocorrem erros de bit. Essas diferenças

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

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

Circuitos Seqüenciais

Circuitos Seqüenciais Circuitos Seqüenciais Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva Circuitos Seqüenciais Um circuito seqüencial síncrono consiste de um circuito combinacional e uma rede de memória formada por

Leia mais

Exercícios de Fixação

Exercícios de Fixação Exercícios de Fixação Para entregar em 07/02/2013 Exercício I Implemente o circuito de seis portas lógicas abaixo em VHDL; Crie um projeto com o simulador Modelsim que contenha o par entidade-arquitetura

Leia mais

Introdução à Linguagem VHDL

Introdução à Linguagem VHDL Sistemas Digitais EEL 480 Introdução à Linguagem VHDL Luís Henrique M. K. Costa luish@gta.ufrj.br UFRJ DEL/Poli e PEE/COPPE P.O. Box 68504 - CEP 21941-972 - Rio de Janeiro - RJ Brasil - http://www.gta.ufrj.br

Leia mais

Organização e Arquitetura de Computadores II

Organização e Arquitetura de Computadores II Organização e Arquitetura de Computadores II Rômulo Calado Pantaleão Camara Romulo.camara@univasf.edu.br www.univasf.edu.br/~romulo.camara 60h/02h Disciplinas Correlacionadas Programação Org. e Arq. de

Leia mais

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans

LABORG. Parte 3 - VHDL: Processos, Paralelismo e o Comando process. Fernando Gehm Moraes Ney Laert Vilar Calazans LABORG Parte 3 - VHDL: Processos, Paralelismo e o Comando process Fernando Gehm Moraes Ney Laert Vilar Calazans 31/março/2014 Sumário Ø Introdução Ø Processos em VHDL Ø TRABALHO A FAZER Ø A ENTREGAR 2

Leia mais

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox 1- Scilab e a placa Lab_Uino A placa Lab_Uino, é uma plataforma aberta para aprendizagem de sistemas microprocessados. Com a utilização de um firmware especifico a placa Lab_Uino é reconhecido pelo sistema

Leia mais

www.vwsolucoes.com Copyright 2013 VW Soluções

www.vwsolucoes.com Copyright 2013 VW Soluções 1 1. Especificação técnicas: Dimensões do módulo 4EA2SA v1.0: 100 mm x 56 mm Peso aproximado: xxx gramas (montada). Alimentação do circuito : 12 ou 24Vcc Tipo de comunicação: RS232 ou RS485 Tensão de referencia:

Leia mais

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250 LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) 2823-8800 SÃO CAETANO DO SUL - SP - CEP: 09530-250 1 SISTEMA HCS 2005 PROTOCOLO DE COMUNICAÇÃO (Baseado no Guarita Vr5.0x Última modificação:

Leia mais

2- Conceitos Básicos de Telecomunicações

2- Conceitos Básicos de Telecomunicações Introdução às Telecomunicações 2- Conceitos Básicos de Telecomunicações Elementos de um Sistemas de Telecomunicações Capítulo 2 - Conceitos Básicos de Telecomunicações 2 1 A Fonte Equipamento que origina

Leia mais

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2 TIPO INTEGER 2 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FF3_tipoD_nivel IS PORT(CLK, RST, SET : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(2 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END FF3_tipoD_nivel;

Leia mais

UFSM-CTISM. Comunicação de Dados Capacidade de canal Aula-12

UFSM-CTISM. Comunicação de Dados Capacidade de canal Aula-12 UFSM-CTISM Comunicação de Dados Capacidade de canal Aula-12 Professor: Andrei Piccinini Legg Santa Maria, 2012 O pode ser definido como todo e qualquer tipo de interfência externa que exercida sobre um

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

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

Aula 8 Circuitos Integrados

Aula 8 Circuitos Integrados INTRODUÇÃO À ENGENHRI DE COMPUTÇÃO PONTIFÍCI UNIVERSIDDE CTÓLIC DO RIO GRNDE DO SUL FCULDDE DE ENGENHRI ula Circuitos Integrados Introdução Portas Lógicas em Circuitos Integrados Implementação de Funções

Leia mais

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva Registradores Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva 2 Registradores Conjunto de elementos de memória (flip-flops ou latches) utilizados para armazenar n bits. Utilizam um único sinal de

Leia mais

Comunicações Digitais Manual do Aluno Capítulo 7 Workboard PCM e Análise de Link

Comunicações Digitais Manual do Aluno Capítulo 7 Workboard PCM e Análise de Link Comunicações Digitais Manual do Aluno Capítulo 7 Workboard PCM e Análise de Link Laboratório de Telecomunicações - Aula Prática 4 Sub-turma: 3 Nomes dos alunos: Tarefa 17 Ruído em um Link Digital Objetivo:

Leia mais

Circuitos Digitais 144L

Circuitos Digitais 144L Circuitos Digitais Notas de Aula - 02 INSTITUTO: CURSO: DISCIPLINA: Instituto de Ciências Exatas e Tecnologia Ciência da Computação e Sistemas de Informação Circuitos Digitais 144L 1.0 Circuitos Combinacionais.

Leia mais

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada VHDL - VHSIC Hardware Description Language Exemplo prático Raiz Quadrada Exemplo de um circuito completo Descrição de um circuito que realiza a raiz quadrada de um número natural; Obtenção de um modelo

Leia mais

Eletrônica Digital para Instrumentação

Eletrônica Digital para Instrumentação G4 Eletrônica Digital para Instrumentação Prof. Márcio Portes de Albuquerque (mpa@cbpf.br) Prof. Herman P. Lima Jr (hlima@cbpf.br) Centro Brasileiro de Pesquisas Físicas Ministério da Ciência e Tecnologia

Leia mais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 5-P Processos em VHDL. Comandos de atribuição em VHDL:

Leia mais

WATCHDOG ELITE NTC OPÇÃO DE COMUNICAÇÕES SERIAIS

WATCHDOG ELITE NTC OPÇÃO DE COMUNICAÇÕES SERIAIS WATCHDOG ELITE NTC OPÇÃO DE COMUNICAÇÕES SERIAIS O Watchdog é um equipamento complexo e realiza muitas funções. A função de comunicações é considerada uma função de baixa prioridade e por conta disso,

Leia mais

Lógica Reconfigurável

Lógica Reconfigurável UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA MESTRADO EM SISTEMAS DE ENERGIA Lógica Reconfigurável - amauriassef@utfpr.edu.br

Leia mais

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura. Universidade de Aveiro Departamento de Engenharia Mecânica Informática Industrial 2010/2011 5 PROTOCOLO DE COMUNICAÇÃO MODBUS 5.1 Protocolo de comunicação MODBUS Este protocolo foi proposto em 1979 pela

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

EE210 Sistemas de Comunicação II 2ª Avaliação (PV2) 22/04/2015 15h30min Profs. Dayan A. Guimarães e Rausley A. A. de Souza. Aluno(a): Matrícula.

EE210 Sistemas de Comunicação II 2ª Avaliação (PV2) 22/04/2015 15h30min Profs. Dayan A. Guimarães e Rausley A. A. de Souza. Aluno(a): Matrícula. EE1 Sistemas de Comunicação II ª Avaliação (PV) /4/15 15h3min Profs. Dayan A. Guimarães e Rausley A. A. de Souza Nota : Nota P: Aluno(a): Matrícula. Prova sem consulta, com duração de 1h5min. A interpretação

Leia mais

Fabio Bento fbento@ifes.edu.br

Fabio Bento fbento@ifes.edu.br Fabio Bento fbento@ifes.edu.br Eletrônica Digital Sistemas de Numeração e Códigos 1. Conversões de Binário para Decimal 2. Conversões de Decimal para Binário 3. Sistema de Numeração Hexadecimal 4. Código

Leia mais

Curso de Modulação Digital de Sinais (parte 2)

Curso de Modulação Digital de Sinais (parte 2) Curso de Modulação Digital de Sinais (parte 2) Márcio Antônio Mathias Augusto Carlos Pavão IMT Instituto Mauá de Tecnologia. Introdução Dando prosseguimento à série Modulações digitais, discutiremos neste

Leia mais

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO Amanda 5ª Atividade: Codificador e codificação de linha e seu uso em transmissão digital Petrópolis, RJ 2012 Codificador: Um codoficador

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

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

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos 3 Objectivos - Configurar os parâmetros associados à comunicação série assíncrona. - Saber implementar um mecanismo de menus para efectuar a entrada e saída de dados, utilizando como interface um terminal

Leia mais

Disciplina de SSC Elementos de Lógica Digital II (Prática)

Disciplina de SSC Elementos de Lógica Digital II (Prática) USP - ICMC - SSC SSC 0113 (Lab ELD II) - 2o. Semestre 2012 Disciplina de SSC0113 - Elementos de Lógica Digital II (Prática) 1 Prof. Fernando Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Estagiário

Leia mais

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações CONTADORES. Marcos Moecke

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações CONTADORES. Marcos Moecke MINISTÉRIO DA EDUCAÇÃO - Unidade de São José Curso Técnico em Telecomunicações CONTADORES Marcos Moecke São José - SC, 25 SUMÁRIO 5. CONTADORES... 5. CONTADORES ASSÍNCRONOS... CONTADOR ASSÍNCRONO CRESCENTE...

Leia mais

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL Diego S. Mageski diego.mageski@hotmail.com Bene R. Figueiredo bfigueiredo@ifes.edu.br Wagner T. da Costa wagnercosta@ifes.edu.br Instituto Federal

Leia mais

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH UNIVERSIDADE FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA ELÉTRICA DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH Projeto para a matéria TE130 Projeto de Circuitos Integrados Digitais, ministrada pelo

Leia mais

1 Transmissão digital em banda base

1 Transmissão digital em banda base 1 Transmissão digital em banda base A transmissão digital oferece algumas vantagens no que diz respeito ao tratamento do sinal, bem como oferecimento de serviços: Sinal pode ser verificado para avaliar

Leia mais

4 CARACTERÍSTICA DE DESEMPENHO DE RECEPÇÃO

4 CARACTERÍSTICA DE DESEMPENHO DE RECEPÇÃO 4 CARACTERÍSTICA DE DESEMPENHO DE RECEPÇÃO Este bloco de ensaios visa a avaliar as características dos sistemas de TV Digital ATSC, DVB-T e ISDB-T para recepção dos sinais. 4.1 Limiar da relação portadora

Leia mais

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA : UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMATICA LISTA DE EXERCÍCIOS DE SISTEMAS DIGITAIS Prof. Fernanda Gusmão de Lima Kastensmidt E Marcelo Porto (aluno mestrado PPGC) Descreva em VHDL,

Leia mais

Funções de Posicionamento para Controle de Eixos

Funções de Posicionamento para Controle de Eixos Funções de Posicionamento para Controle de Eixos Resumo Atualmente muitos Controladores Programáveis (CPs) classificados como de pequeno porte possuem, integrados em um único invólucro, uma densidade significativa

Leia mais

Apostila Básica sobre transmissão de TV Digital Padrão Brasileiro

Apostila Básica sobre transmissão de TV Digital Padrão Brasileiro 1 Apostila Básica sobre transmissão de TV Digital Padrão Brasileiro Capitulo 1: Para começarmos a falar sobre TV Digital devemos conhecer os tipos de modulação digital que existem e entender, ao menos,

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

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

Fundamentos de Telecomunicações

Fundamentos de Telecomunicações Fundamentos de Telecomunicações Translação de Frequências A utilização eficaz de um canal de transmissão pode requerer por vezes a utilização de uma banda de frequências diferente da frequência original

Leia mais

www.vwsolucoes.com Copyright 2011 VW Soluções

www.vwsolucoes.com Copyright 2011 VW Soluções 1 Apresentação O adaptador ADP.v01 é utilizado para facilitar a instalação de display Lcd 16x2 ou display Lcd 20x4 nos CLP PIC28 ou CLP PIC40 através de um flat cable de 10vias de acordo com a necessidade

Leia mais

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes. Descrição

Leia mais

Tipos enumerados definem uma lista de valores, e são especialmente úteis na

Tipos enumerados definem uma lista de valores, e são especialmente úteis na Usando a palavra reservada TYPE é possível definir tipos personalizados. Por exemplo, pode-se definir tipos enumerados (Enumerated) e tipos compostos (Array). Tipos enumerados definem uma lista de valores,

Leia mais

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS 1 PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS INTRODUÇÃO O processamento interno do CLP é digital e pode-se, assim, aplicar os conceitos de lógica digital para compreen8 der as técnicas e as linguagens

Leia mais

A4 Projeto Integrador e Lista de Jogos

A4 Projeto Integrador e Lista de Jogos A4 Projeto Integrador e Lista de Jogos 1ª ETAPA PROJETO INTEGRADOR (2 pontos na A4) Como discutido em sala de aula, a disciplina de algoritmos I também fará parte do projeto integrador, para cada grupo

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

CAPÍTULO 6 ARITMÉTICA DIGITAL

CAPÍTULO 6 ARITMÉTICA DIGITAL CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos

Leia mais

5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI

5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI 68 5 SIMULAÇÃO DE UM SISTEMA WDM DE DOIS CANAIS COM O SOFTWARE VPI O software VPI foi originalmente introduzido em 1998 e era conhecido como PDA (Photonic Design Automation). O VPI atualmente agrega os

Leia mais

1 Moldando Pulso para reduzir a largura de banda

1 Moldando Pulso para reduzir a largura de banda 1 Moldando Pulso para reduzir a largura de banda Pulsos quadrados não são práticos. São difíceis de serem gerados e requerem grande largura de banda. Além disso, em razão da largura de banda limitada do

Leia mais

Lab 3. Timing Timing Constraints Simulação

Lab 3. Timing Timing Constraints Simulação Lab 3 Timing Timing Constraints Simulação A. Mariano - 2014 1 VHDL processes Para um designer, process é um bloco de instruções que funciona de maneira sequencial e que é chaveado quando algum dos sinais

Leia mais

AMOSTRAGEM DE SINAIS ANALÓGICOS POR

AMOSTRAGEM DE SINAIS ANALÓGICOS POR Relatório de Sistemas de Aquisição de Dados 2006/2007 Engenharia Física Tecnológica AMOSTRAGEM DE SINAIS ANALÓGICOS POR UM CIRCUITO ADC COM INTERFACE DE COMUNICAÇÃO SÉRIE Laboratório II Trabalho realizado

Leia mais

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição por fluxo de dados (Data Data-Flow low): Descreve o que o sistema deve fazer utilizando expressões lógicas. Descrição estrutural: Descreve como é o hardware em termos de interconexão de componentes.

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro AULA 2: Transmissão de Dados 1.

Leia mais

Aula 2 Semântica de VHDL

Aula 2 Semântica de VHDL VHDL - VHSIC Hardware Description Language Aula 2 Semântica de VHDL Leonardo Augusto Casillo Ivan Saraiva Silva 2003-2 Identificadores Usados como referência a todos os objetos declarados no código. Regras:

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

CONTROLE DIGITAL DE VOLUME 1.-----------------------------------------------------------------------------

CONTROLE DIGITAL DE VOLUME 1.----------------------------------------------------------------------------- CONTROLE DIGITAL DE VOLUME 1.----------------------------------------------------------------------------- Uma boa gama de aplicações atuais utiliza o controle de volume digital. Não nos referimos apenas

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

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

4. Tarefa 16 Introdução ao Ruído. Objetivo: Método: Capacitações: Módulo Necessário: Análise de PCM e de links 53-170

4. Tarefa 16 Introdução ao Ruído. Objetivo: Método: Capacitações: Módulo Necessário: Análise de PCM e de links 53-170 4. Tarefa 16 Introdução ao Ruído Objetivo: Método: Ao final desta Tarefa você: Estará familiarizado com o conceito de ruído. Será capaz de descrever o efeito do Ruído em um sistema de comunicações digitais.

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

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir. O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline Todos os estágios devem estar prontos ao mesmo tempo para prosseguir O tempo requerido para mover uma instrução

Leia mais

Projeto Dirigido: Genius

Projeto Dirigido: Genius Projeto Dirigido: Genius Genius era um brinquedo muito popular na década de 80 e que buscava estimular a memorização de cores e sons. Com um formato semelhante a um objeto voador não identificado, possuía

Leia mais

Códigos concatenados. Entrelaçamento. entrelaçadores de blocos. entrelaçadores convolucionais. Exemplos de códigos concatenados e entrelaçados

Códigos concatenados. Entrelaçamento. entrelaçadores de blocos. entrelaçadores convolucionais. Exemplos de códigos concatenados e entrelaçados 2.6. Códigos concatenados e entrelaçados Códigos concatenados Entrelaçamento entrelaçadores de blocos entrelaçadores convolucionais Exemplos de códigos concatenados e entrelaçados Entrelaçamento A maior

Leia mais

O AMPLIFICADOR LOCK-IN

O AMPLIFICADOR LOCK-IN O AMPLIFICADOR LOCK-IN AUTORES: RAFAEL ASTUTO AROUCHE NUNES MARCELO PORTES DE ALBUQUERQUE MÁRCIO PORTES DE ALBUQUERQUE OUTUBRO 2007-1 - SUMÁRIO RESUMO... 3 INTRODUÇÃO... 4 PARTE I: O QUE É UM AMPLIFICADOR

Leia mais

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200.

AULA 5 Aplicação com divisor de freqüência com o CI Livro Texto pág.197 a 200. AULA 5 Aplicação com divisor de freqüência com o CI 74293. Livro Texto pág.197 a 200. 1. Contadores Assíncronos comerciais CI 74293. 1.1 Configuração Interna. 1.2 Bloco contador assincrono ou modulante,

Leia mais

Símbolos Lógicos com Tabelas-Verdade

Símbolos Lógicos com Tabelas-Verdade Slide 1 Símbolos Lógicos com Tabelas-Verdade PORTAS INVERSOR A NEG OR 6.071 Lógica Digital 1 A lógica digital pode ser descrita em termos de símbolos lógicos padrão e suas tabelas-verdade correspondentes.

Leia mais

Projeto de Máquinas de Estado

Projeto de Máquinas de Estado Projeto de Máquinas de Estado Organizado por Rodrigo Hausen. Original de Thomas L. Floyd. Versão 0: 15 de março de 2013 http://compscinet.org/circuitos Resumo Grande parte deste texto, exemplos e estrutura

Leia mais

LABORG. Parte 1 Introdução à Simulação em VHDL. Fernando Moraes e Ney Laert Vilar Calazans

LABORG. Parte 1 Introdução à Simulação em VHDL. Fernando Moraes e Ney Laert Vilar Calazans LABORG Parte 1 Introdução à Simulação em VHDL Fernando Moraes e Ney Laert Vilar Calazans atualização - 05/agosto/2013 Mais informações sobre VHDL Web sites sobre VHDL e assuntos relacionados http://www.asic-world.com/vhdl/links.html

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

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Aula 04 Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Prof. Otávio Gomes otavio.gomes@ifmg.edu.br sites.google.com/a/ifmg.edu.br/otavio-gomes/ 1 Bytes A maioria dos microcomputadores

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

CALDsoft7 - Software de planificação em caldeiraria

CALDsoft7 - Software de planificação em caldeiraria CALDsoft7 - Software de planificação em caldeiraria Calculando uma peça com o CALDsoft7 É muito simples calcular uma peça com o CALDsoft7, basta seguir os passos apresentados abaixo: - Escolher a peça

Leia mais

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Aula 2P - Comandos básicos do Matlab aplicados a PDS Aula 2P - Comandos básicos do Matlab aplicados a PDS Bibliografia HAYKIN, S. S.; VAN VEEN, B. Sinais e sistemas, Bookman, 2001. ISBN 8573077417. Páginas 71-76. INGLE, V. K.; PROAKIS, J. G. Digital signal

Leia mais

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação Multiplexadores Permitem que vários equipamentos compartilhem um único canal de comunicação Transmissor 1 Receptor 1 Transmissor 2 Multiplexador Multiplexador Receptor 2 Transmissor 3 Receptor 3 Economia

Leia mais

2006, António Esteves, Sistemas Digitais 1, UM-DI. Módulo 6. Sistemas sequenciais

2006, António Esteves, Sistemas Digitais 1, UM-DI. Módulo 6. Sistemas sequenciais Módulo 6 Sistemas sequenciais 2 PA. Controlador de portão automático: enunciado O portão é deslocado por um motor, controlado pelos sinais Ma e Mf. Estes sinais nunca poderão estar activos simultaneamente

Leia mais

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara

Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Contadores (Aula1) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Contadores Contadores (cont.) Os contadores podem ser classificados por: Tipo de controle - Assíncrono - Síncrono Tipo de contagem

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr 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) PACOTES (package) Entidades e Arquiteturas são

Leia mais

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 8 - Antes de começar o estudo sobre decodificadores, o que é bastante semelhante ao que já vimos anteriormente é necessário relembrarmos alguns conceitos sobre códigos binários. 1. Códigos Binários

Leia mais

Circuitos Sequenciais. Sistemas digitais

Circuitos Sequenciais. Sistemas digitais Circuitos Sequenciais Sistemas digitais Agenda } Introdução } Latchs (trava) } Latch NAND e Latch NOR } Flip-Flop Set-Reset (FF S-R) } FF S-R Latch NAND, FF S-R Latch NOR, FF S-R Latch NAND com Clock }

Leia mais