Mudanças entre as edições de "CIL-EngTel (página)"
(46 revisões intermediárias por 4 usuários não estão sendo mostradas) | |||
Linha 31: | Linha 31: | ||
*14.2, 14.3, 14.5, 14.7. | *14.2, 14.3, 14.5, 14.7. | ||
− | {{Collapse top |Lista de Exercícios}} | + | {{Collapse top | left = yes | title = Lista de Exercícios}} |
#Converta para decimal | #Converta para decimal | ||
Linha 194: | Linha 194: | ||
==Aulas de Laboratório== | ==Aulas de Laboratório== | ||
− | = | + | {{Collapse top | left = yes | title = Orientações gerais para o uso do software Quartus}} |
− | #Crie um novo projeto. Ao salvar arquivos e projetos tome '''sempre''' as seguintes precauções, sob pena de erros de compilação | + | <span style="font-size:150%">As principais etapas para elaborar um projeto no Quartus são: |
− | ## | + | #Crie um novo projeto. |
− | ##'''Não''' inicie o nome de projetos e/ou circuitos com caracteres numéricos e/ou caracteres especiais e/ou caracteres acentuados. | + | ##Todo projeto deve possuir um diretório exclusivo, onde estarão contidos todos os arquivos relacionados ao projeto. |
− | ## | + | ##File > New Project Wizard > Next |
− | #Procedimento para salvar | + | ##Ao salvar arquivos e projetos tome '''sempre''' as seguintes precauções, sob pena de erros de compilação. |
− | ## | + | ###'''Não''' nomeie diretórios e/ou arquivos com espaço em branco, se necessário utilize "_" (''underline'') como caractere separador. |
+ | ###'''Não''' nomeie diretórios e/ou arquivos com caracteres especiais e/ou caracteres acentuados. | ||
+ | ###'''Não''' inicie o nome de projetos e/ou circuitos com caracteres numéricos e/ou caracteres especiais e/ou caracteres acentuados. | ||
+ | #Crie o(s) circuito(s) desejado(s). | ||
+ | ##Nos circuitos são adicionadas as portas lógicas, os CIs e as todas as conexões/ligações. | ||
+ | ##File > New > Block Diagram/Schematic File | ||
+ | #Compile cada circuito criado. | ||
+ | ##A compilação, entre outras coisas, verifica a existência ou não de erros no projeto. | ||
+ | ##Processing > Star Compilation | ||
+ | ##A compilação valerá para o circuito que esta no Top Level. Para escolher outro circuito acesse a aba Files >> tecla direita do mouse no circuito desejado >> Set as Top-Level Entity). | ||
+ | #Faça a simulação de cada circuito criado. | ||
+ | ##Existem a simulação funcional e temporal. Elas auxiliam o projetista a verificar se o circuito criado está funcionando de acordo com o planejado. | ||
+ | ## Para realizar a simulação, crie o arquivo que irá conter todas as formas de onda desejadas. | ||
+ | ##File > New > Verification/Debugging Files > University Program VWF. | ||
+ | ## Essa é uma das principais etapas pois será verificado se o circuito projetado esta se comportando conforme desejado. | ||
+ | #Faça a associação de pinos. | ||
+ | ##A associação de pinos nada mais é que a ligação do circuito projetado com o pinos reais da placa FPGA. | ||
+ | ##Assignments > Pin Planner. | ||
+ | #Programe e configure a FPGA. | ||
+ | ##Aqui é o momento onde se programa a placa FPGA com o código criado a partir dos circuitos projetados. | ||
+ | ##Tools > Programmer. | ||
+ | <span style="font-size:150%">Arquivando e recuperando projetos | ||
+ | #Procedimento para arquivar/salvar projetos | ||
+ | ##Project > Archive Project... > Archive file name: nome_do_projeto.qar | ||
##O arquivo será salvo em: '''/home/aluno/nome_do_projeto/output_files/nome_do_projeto.qar''' | ##O arquivo será salvo em: '''/home/aluno/nome_do_projeto/output_files/nome_do_projeto.qar''' | ||
##Copie o arquivo para algum repositório particular remoto ou mande o mesmo (nome_do_projeto.qar) para o seu email. | ##Copie o arquivo para algum repositório particular remoto ou mande o mesmo (nome_do_projeto.qar) para o seu email. | ||
− | # | + | #Procedimento para restaurar um projeto: |
− | + | ##Baixe o arquivo .qar salvo em uma pasta local cujo nome não possua caracteres especiais e/ou acentuados. | |
− | ##Baixe o arquivo salvo | ||
##Execute o Quartus. | ##Execute o Quartus. | ||
##Clique na opção '''Open Existing Project'''. | ##Clique na opção '''Open Existing Project'''. | ||
##Navegue no gerenciador de arquivos até encontrar o '''.qar''' baixado, dê duplo clique no mesmo e '''OK'''. | ##Navegue no gerenciador de arquivos até encontrar o '''.qar''' baixado, dê duplo clique no mesmo e '''OK'''. | ||
+ | <span style="font-size:150%">Criando um símbolo para um circuito | ||
+ | # Selecione, na IDE do Quartus II, o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK]. | ||
+ | #Note que um novo simbolo estará disponível para uso no diagrama esquemático com o nome FullAdder [Symbol >> Project >> FullAdder] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top | left = yes | title = Orientações para a gravação da FPGA}} | ||
+ | #Para gravar o circuito lógico no FPGA, é necessário escolher um FPGA para a aplicação. | ||
+ | #Confira a família e dispositivo a ser usado (Assignments > Devices), utilizando a família family='''Cyclone IV E''' com o dispositivo device='''EP4CE115F29C7''' ou com dispositivo '''device = EP4CE30F23C7''', e faça uma nova Análise e Síntese para que a nova pinagem do FPGA seja reconhecida pelo Quartus. | ||
+ | #Atribua os pinos do circuito aos pinos do FPGA utilizando o Pin Planner (Assignments > Pin Planner). | ||
+ | #Para descobrir a pinagem do FPGA e sua associação com os componentes do kit consulte as informações disponíveis em [[Interfaces de entrada e saída da DE2-115 | Pinagem dos dispositivos de entrada e saída do kit DE2-115 ]] ou [[Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV]]. | ||
+ | #Verifique se todas as entradas e saídas do projeto estão conectadas corretamente aos pinos do FPGA. Nenhuma posição da coluna '''Location''' deve estar vazia. E nenhuma posição da coluna '''Direction''' deve estar em '''unknown'''. | ||
+ | #Verifique se os '''pinos não usados''' estão setados para entrada em 3-state ou 3-state com weak pull-up. | ||
+ | #Compile o projeto. Note que agora a numeração dos pinos também aparece no diagrama esquemático. | ||
+ | #No Quartus vá em (Tools > Programmer) para abrir a página de programação da placa. | ||
+ | #Selecione o Hardware (Hardware Setup > USB-Blaster). | ||
+ | #*Se não aparecer a [USB-BLASTER], e aparecer no seu lugar a [USB-BLASTER Variant], ou [No Hardware], então será necessário alterar os arquivos de configuração (precisa de senha de root), segundo o procedimento descrito em [[Configuração da USB para programação do FPGA via JTAG]]. | ||
+ | #*Caso ainda apresente algum problema siga os passos apresentados em [[Programando o FPGA através da USB-Blaster]]. | ||
+ | #Utilize o modo JTAG e clique em '''Start''' para começar a programação; | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top | left = yes | title = Orientações para sincronismo e uso de clocks}} | ||
+ | #Para circuitos que necessitem de uma base de tempo, disponibilizamos dois circuitos prontos que fornecem bases de 1 ms e 1s. Para utilizá-los execute os passos: | ||
+ | ##Crie ou abra um projeto no Quartus, por exemplo, /home/aluno/meu_projeto. | ||
+ | ##Baixe o arquivo [http://docente.ifsc.edu.br/odilson/CIL29003/clk1ms.zip Clock de 1 ms] ou [http://docente.ifsc.edu.br/odilson/CIL29003/clk1s.zip Clock de 1 s], descompacte e salve no diretório raiz do projeto a ser utilizado, por exemplo, /home/aluno/meu_projeto. | ||
+ | ##Será criado um novo circuito que pode ser acessado por Symbol tool (ícone de uma porta AND no menu superior) > Project > clock1s ou clock1ms. | ||
+ | ##A entrada '''clock''' deverá ser conectada na base de tempo da própria FPGA (PIN_T1) e a saída com a base de tempo desejada é a '''cout'''. Os demais pinos deixa-se em aberto. | ||
+ | #Para o bom funcionamento do FPGA é recomendado que todos os sub-sistemas sejam sincronizados, quando trabalham em base temporal. Na figura abaixo temos um exemplo desse sincronismo. <center> [[Arquivo:Sincronismo_blocos.png|600px|Exemplo de sincronismo]] </center> | ||
+ | *Perceba que o sinal de clock da FPGA é (PIN_T1) é utilizado para os dois circuito presentes. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top | left = yes | title = Orientações para criação do circuito ''debounce''}} | ||
+ | *Normalmente uma chave apresenta os denominados repiques de sinal, ou seja, ao se alterar o estado da chave o sinal elétrico oscila várias vezes entre um nível lógico e outro, antes de estabilizar. No caso de esse sinal ser utilizado como clock para um determinado circuito, o mesmo pode receber vários pulsos, quando a intenção era um único pulso. | ||
+ | *Para evitar esse fenômeno pode-se fazer uso de um ''debounce'' que gera um atraso entre os estados, ocultando a sequência de pulsos gerados fisicamente pela chave. | ||
+ | *Para criar um ''debounce'' siga os seguintes passos: | ||
+ | #Baixe o arquivo [http://docente.ifsc.edu.br/odilson/CIL29003/clk1ms.zip Clock de 1 ms], descompacte e salve todos os arquivos no diretório raiz do projeto a ser utilizado, por exemplo, /home/aluno/meu_projeto. | ||
+ | #Baixe o arquivo [http://docente.ifsc.edu.br/odilson/CIL29003/Debounce.zip debounce], descompacte e salve todos os arquivos no diretório raiz do projeto a ser utilizado, por exemplo, /home/aluno/meu_projeto. | ||
+ | #Serão criados dois novos circuitos que podem ser acessados por Symbol tool (ícone de uma porta AND no menu superior) > Project > clock1ms ou Debouncer_v2. | ||
+ | # Volte ao diagrama do projeto, onde deseja introduzir o ''debounce'', e acrescente os blocos '''clock1ms''' e '''debounce''': Symbol Tool > Project > clk1ms e Symbol Tool > Project > debounce. | ||
+ | # Interligue os blocos: | ||
+ | ##A entrada '''clock''' do circuito '''clock1ms''' em '''PIN_T1'''. | ||
+ | ##A saída '''cout''' do circuito '''clock1ms''' em '''clk_1ms''' do circuito '''debounce'''. | ||
+ | ##A entrada '''sw''' do circuito '''debouncer''' na chave a ser utilizada no projeto. | ||
+ | ##A saída '''sw_debounced''' no '''CLK''' do contador ou circuito onde deseja-se o sinal "limpo" da chave. <center> [[Arquivo:Debouncer.png|600px|Uso do ''debounce'']] </center> | ||
+ | # Compile novamente o projeto. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top | left = yes | title = Orientações para programar utilizando a máquina local ou a Nuvem}} | ||
#Há duas formas de executar o Quartus: | #Há duas formas de executar o Quartus: | ||
##Acesso local: Nas máquinas dos laboratórios do campus basta rodar o '''Quartus versão 13'''. | ##Acesso local: Nas máquinas dos laboratórios do campus basta rodar o '''Quartus versão 13'''. | ||
Linha 214: | Linha 283: | ||
#Em ambos os casos e '''somente no primeiro uso''', se necessário: | #Em ambos os casos e '''somente no primeiro uso''', se necessário: | ||
##Ajuste o atalho para o navegador, para poder ler os manuais quando necessário, por meio de '''Tools > Options > Internet Connectivity''', no campo '''Web browser''' preencha: '''/usr/bin/firefox'''. | ##Ajuste o atalho para o navegador, para poder ler os manuais quando necessário, por meio de '''Tools > Options > Internet Connectivity''', no campo '''Web browser''' preencha: '''/usr/bin/firefox'''. | ||
− | ## | + | ##Verifique a [[Licença Quartus]] |
− | |||
− | |||
− | |||
#Outra opção é utilizar a versão ''free'' do [https://www.intel.com/content/www/us/en/programmable/downloads/download-center.html Quartus], que apresenta praticamente todas as funcionalidades da versão comercial, com certeza suficiente para o desenvolvimento de nossos projetos. | #Outra opção é utilizar a versão ''free'' do [https://www.intel.com/content/www/us/en/programmable/downloads/download-center.html Quartus], que apresenta praticamente todas as funcionalidades da versão comercial, com certeza suficiente para o desenvolvimento de nossos projetos. | ||
− | = | + | <span style="font-size:150%"> Dicas para programar usando a Nuvem do campus São José do IFSC. |
− | + | #Acesse a [https://nuvem.sj.ifsc.edu.br/ Nuvem do campus São José do IFSC]. | |
− | + | #Execute o Quartus no terminal: <syntaxhighlight lang=bash> quartus & <Enter> </syntaxhighlight> | |
− | + | #Faça toda a programação e simulação do circuito na nuvem. | |
− | + | #Para os testes de hardware é necessário a transferência do arquivo da nuvem para o computador local. Detalhes em [[Acesso_ao_IFSC-CLOUD | Acesso ao IFSC_CLOUD]] | |
− | + | {{Collapse bottom}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Pinagens das placas disponíveis=== | ===Pinagens das placas disponíveis=== | ||
Linha 250: | Linha 297: | ||
*[[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]] | *[[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]] | ||
===Roteiros de Laboratórios=== | ===Roteiros de Laboratórios=== | ||
− | + | #[[Uso do software Quartus e QSIM para ensino de Circuitos Lógicos]] | |
− | + | #[[Experimento 5 para Circuitos Lógicos | Conversor BCD para display de sete segmentos]] | |
− | + | #[[Circuitos Lógicos Aritméticos]] | |
− | + | #[[Circuito de Multiplicação Binária]] | |
− | + | #[[Circuito de Comparação Binária]] | |
− | + | #[[Registrador de Deslocamento - BDF e QSIM]] | |
− | + | #[[Contador binário síncrono]] | |
− | + | #[[Minimização de funções lógicas com mapa de Karnaugh]] | |
− | + | #[[Modelo para uso em relatórios]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==[[Projetos Finais CIL29003]]== | ==[[Projetos Finais CIL29003]]== |
Edição das 15h04min de 20 de maio de 2022
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Carga horária, Ementas, Bibliografia, Professores
Plano de Ensino
Slides utilizados em sala
- Introdução - Pedroni Cap. 1
- Representações Binárias - Pedroni Cap. 2
- Aritmética Binária - Pedroni Cap. 3
- Introdução aos Circuitos Digitais - Pedroni Cap. 4
- Álgebra Booleana - Pedroni Cap. 5
- Famílias Lógicas - Pedroni Cap. 10
- Circuitos Combinacionais Lógicos - Pedroni Cap. 11
- Circuitos Combinacionais Aritméticos - Pedroni Cap. 12
- Registradores - Pedroni Cap. 13
- Circuitos Sequenciais - Pedroni Cap. 14
Listas de Estudo e Exercícios
Seções do livro do Pedroni a estudar:
- 1.1 ==> 1.8 e 1.10
- 2.1 ==> 2.9
- 3.1 ==> 3.7
- 4.1 ==> 4.8 e 4.10 ==> 4.13
- 5.1 ==> 5.6 e 5.9
- 10.1 ==> 10.3, 10.5, 10.6 e 10.9
- 11.1, 11.5 ==> 11.7 e 11.13.
- 12.1 ==> 12.3, 12.5, 12.6, 12.10 ==> 12.13 e 12.15.
- 13.1, 13.2, 13.3.1, 13.4, 13.10.
- 14.2, 14.3, 14.5, 14.7.
Lista de Exercícios |
---|
|
Software e equipamentos recomendados para programação de FPGAs
Circuitos Integrados Comerciais
Para localizar os circuitos integrados comerciais existentes, consulte o Guia de produtos da Texas Instruments. Atualmente é muito comum o uso de circuitos integrados com uma única porta ou circuitos (ver Little Logic Guide). Nas listagens a seguir são mostrados as folhas de dados (Datasheet) de alguns circuitos comerciais, os quais também possuem uma implementação em VHDL disponível no software Quartus da ALTERA. O código 74X indica que o circuito pode estar disponível em diferentes famílias TTL e CMOS.
Um resumo das portas lógicas e demais circuitos da TI podem ser visualizados no guia de bolso. Os circuitos de 1 porta (páginas 79 a 84); de 2 portas (páginas 84 a 87); de 3 portas (páginas 87 e 88); e outros circuitos (páginas 161 a 288). Para a visualização da disponibilidade dos dispositivos lógicos nas diferentes famílias consulte a página 141 e 142.
Esta página [1] também apresenta uma rápida visualização da pinagem dos CIs mais antigos do tipo DIP.
Listagem de circuitos integrados
Lista dos circuitos integrados da série 7400
Circuitos Lógicos
- Buffer
- 3-Estados - 74AHC1G125
- 3-Estados e Driver - 74AHC541
- Dreno aberto - 74LV07A The open-drain outputs require pullup resistors to perform correctly and can be connected to other open-drain outputs to implement active-low wired-OR or active-high wired-AND functions.
- Coletor aberto - 7407
- Schmitt trigger - SN74AUC1G17 @
- ver wikipedia
- ver Simulador de circuitos do Falstad Circuits > Op-Amps > Schmitt-trigger
- ver aplicações para esses circuitos [2]
- Inversor - 6 Inversor - 74X04;
- ver o funcionamento do circuito inversor CMOS Simulador de circuitos do Falstad Circuits > Logic Families > CMOS > Inverter
- AND - 4 Porta AND2 - 74X08, 3 Porta AND3 - 74X11, 2 Porta AND4 - 74X21.
- NAND - 4 Porta NAND2 - 74X00, 3 Porta NAND3 - 74X10, 2 Porta NAND4 - 74X20; 1 Porta NAND8 - 74X30; 1 Porta NAND13 - 74X133.
- ver o funcionamento do circuito NAND CMOS Simulador de circuitos do Falstad Circuits > Logic Families > CMOS > CMOS NAND
- ver o funcionamento do circuito NOR CMOS Simulador de circuitos do Falstad Circuits > Logic Families > CMOS > CMOS NOR
- OR - 4 Porta OR2 - 74X32.
- XOR - 4 Porta XOR2 - 74X86; 4 Porta XOR2 - 74X386.
- XNOR - 4 Porta XNOR2 - 74X266.
Circuitos Lógicos Combinacionais
- Decodificador/Demultiplexador 3 para 8 linhas - 74X138
- 2x Decodificador/Demultiplexador 2 para 4 linhas 74X139
- Decodificador/Driver BCD para Sete Segmentos - 74X47/48/49
- Decodificador/Demultiplexador 3 para 8 linhas com Latch - 74X137
- Codificador de prioridade 8 linhas para 3 linhas - 74x48
- Multiplexador/Seletor de 8 para 1 - 74X151
- 2x Multiplexador/Seletor de 4 para 1 - 74X153
- 4x Multiplexador/Seletor de 2 para 1 - 74X157/158
- Decodificador BCD para 10 linhas decimais 74X42
- Codificador de Prioridade de 8 para código binário - 74X148
- Gerador de Paridade Par e Impar de 9 bits - 74X280
Circuitos Aritméticos Combinacionais
- Somador de 4 bits - 74X283
- Unidade de Lógica e Aritmética - 74X181.
- Multiplicador de 4 bits. Obs: integrando o 74284 e 74285 74284.
- Look Ahead Carry Generator - 74X182
- Comparador BCD - 74X85
- Comparador de magnitude de 8 bits - 74X688
- Comparador de igualdade de 8 bits - 74X521
Circuitos Sequenciais
- Registrador de deslocamento 74X164 8-bit Saída Paralela, 74X165, 74X166 8-bits Carga Parelela e saída serial, 74x194 4-Bit Bidirectional Universal Shift Registers, 74x299 8-Bit Universal Shift/Storage Registers With 3-State Outputs.
- Contador Assíncrono 74X90/92/93 - 74X90- Decada, 74X92 - Duzia, 74X93 - Binário 4 bits, 74X390 - 2x Decada,
- Contadores Síncronos
- Binário e decádico ascendente/descendente: 74x669/668;
- Binário e decádico ascendente, com Clear: 74X161/162/163;
- Binário ascendente/descendente: 74X191;
- Binário e decádico ascendente/descendente, dois pinos de clock distintos, indicado somente para contar eventos, não tempo, com Clear: 74X192/193;
- Binário ascendente/descendente: 74X169;
- Registradores com DFF 74X174 Hex D-type Flip-Flops With Clear, 74X273 Octal D-type Flip-Flops With Clear
Materiais de apoio as aulas
- Sistema de numeração binário
- Sistema de numeração hexadecimal
- Sistema de numeração octal
- Multiplicação Binária
- Display de 7 segmentos
- A abstração Digital - MIT, Prof. Anant Agarwal
- Conhecendo o interior das portas lógicas - MIT, Prof. Anant Agarwal
- Projeto de sistema digital
- Tensões de entrada e saída nas familias lógicas
- Algumas informações muito úteis sobre as famílias lógicas, migração, níveis de tensão, encapsulamento podem ser vistas no [TI - Logic Guide http://www.ti.com/lit/sg/sdyu001aa/sdyu001aa.pdf].
- A evolução do transistor MOS, [3]
- Atualmente estamos na tecnologia de 22nm, [4],já ingressando em 14 nm. [5], [6]. No futuro qual será o tamanho do canal do GATE do transistor MOS [7] Veja os teste com 5nm da IMEC e Cadence?
- O menor transistor 4nm. [8], [9]
Aulas de Laboratório
Orientações gerais para o uso do software Quartus |
---|
As principais etapas para elaborar um projeto no Quartus são:
Arquivando e recuperando projetos
Criando um símbolo para um circuito
|
Orientações para a gravação da FPGA |
---|
|
Orientações para sincronismo e uso de clocks |
---|
|
Orientações para criação do circuito debounce |
---|
|
Orientações para programar utilizando a máquina local ou a Nuvem |
---|
Dicas para programar usando a Nuvem do campus São José do IFSC.
|
Pinagens das placas disponíveis
- Pinagem dos dispositivos de entrada e saída do kit DE2-115
- Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV
Roteiros de Laboratórios
- Uso do software Quartus e QSIM para ensino de Circuitos Lógicos
- Conversor BCD para display de sete segmentos
- Circuitos Lógicos Aritméticos
- Circuito de Multiplicação Binária
- Circuito de Comparação Binária
- Registrador de Deslocamento - BDF e QSIM
- Contador binário síncrono
- Minimização de funções lógicas com mapa de Karnaugh
- Modelo para uso em relatórios
Projetos Finais CIL29003
Links auxiliares
- Sistema Binário do Egípcios
- Display de sete segmentos
- Wolfram Alfa
- Conversor de sistemas de numeração
- Conversores de número real para representação IEEE 754, [10], App para Iphone
- Voltage Translation Between 3.3-V, 2.5-V, 1.8-V, and 1.5-V Logic Standards, OLD - Texas Instruments.