Mudanças entre as edições de "Circuitos Lógicos Aritméticos"
Linha 373: | Linha 373: | ||
*Utilize 4 desses componentes para criar um multiplexador de 2 entradas para 1 saída de 4 bits. | *Utilize 4 desses componentes para criar um multiplexador de 2 entradas para 1 saída de 4 bits. | ||
− | [[Arquivo:QUADMux2para1-bdf.png| | + | <center> |
+ | [[Arquivo:QUADMux2para1-bdf.png|600px]] | ||
+ | </center> | ||
*Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK]. | *Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK]. | ||
− | [[Arquivo:QUADMux2para1-bsf.png| | + | <center> |
+ | [[Arquivo:QUADMux2para1-bsf.png|150px]] | ||
+ | </center> | ||
==Simulação funcional com o QSIM== | ==Simulação funcional com o QSIM== |
Edição das 22h23min de 12 de junho de 2014
Objetivos
- Construir testar um circuito somador completo (FA -full adder) a partir de portas lógicas usando o diagrama esquemático do QUARTUS II.
- Fazer a simulação funcional do circuito com o QSIM.
- Criar componentes após o teste e reutiliza-los em projetos maiores.
- Construir um somador de 4 bits usando os FA como componente.
- Construir um multiplicador de 4 bits usando os FA como componente.
- Construir um circuito que realiza o complemento de 2.
- Construir um somador/subtrator de 4 bits usando o somador de 4 bits e complemento de 2 como componentes. (TAREFA ADICIONAL PARA OS ALUNOS)
- Preparar o circuito para programação e implementação do hardware FPGA do kit DE2-115.
- Escrever relatório técnico do projeto seguindo as normas ABNT
Somador Completo
Diagrama Esquemático
Abra o Quartus II e insira o diagrama esquemático do somador completo, conforme a figura abaixo.
- OBS: Use a versão 13.0 ou 13.1 do Quartus II na versão 12.x o uso do QSIM é feita de modo não integrado a IDE do QUARTUS.
Após salvar o arquivo como FullAdder.bdf em uma pasta vazia com nome PROJ2, e crie um projeto FullAdder.qpf utilizando a família family=Cyclone com o dispositivo device=EP1C3T100A8. Após isso faça a Análise e Sintese do projeto.
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF) (v 13.0 e 13.1).
- Defina o tempo de simulação (Edit > Set End Time ...) = 200 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome TesteFA.vwf.
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK] (v. 13.0)
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
- O resultado da simulação deve corresponder a um somador completo.
- Note que os bits das entradas estão agrupados e definidos como RADIX "Binary". Para isso selecione os sinais [Edit > Grouping] [Group name = IN] > [Radix = Binary] > [OK].
- Note que os bits das saídas estão agrupados e definidos como RADIX = "Decimal sem sinal". Para isso selecione os sinais [Edit > Grouping] [Group name = OUT] > [Radix = Unsigned Decimal] > [OK].
Análise dos resultados
- Analise o resultado preenchendo a tabela-verdade abaixo:
Entradas | Saídas | |||
---|---|---|---|---|
cin | a | b | s | cout |
0 | 0 | 0 | ||
0 | 0 | 1 | ||
0 | 1 | 0 | ||
0 | 1 | 1 | ||
1 | 0 | 0 | ||
1 | 0 | 1 | ||
1 | 1 | 0 | ||
1 | 1 | 1 |
Criar o componente FullAdder
- Selecione na IDE do Quartus II o diagrama esquemático do FullAdder e selecione [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
Somador de 4 bits
Diagrama Esquemático
Abra o Quartus II e insira o diagrama esquemático do somador completo, utilizando o componente FullAdder criado anteriormente.
- Salve o arquivo como Somador4bits.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
- Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK].
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF).
- Defina o tempo de simulação (Edit > Set End Time ...) = 200 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Note que os bits das entradas e das saídas estão agrupados e definidos como RADIX "Unsigned Decimal". Para isso selecione os sinais [Edit > Grouping] [Group name = IN] > [Radix = Unsigned Decimal] > [OK].
- Note que ao fazer este procedimento os bits estão provavelmente na ordem x0,x1,x2,x3. Isso implica que o simulador está interpretando o Vetor X como sendo x3 o LSB e x0 o MSB. Normalmente queremos que o x0 seja o LSB, então é necessário trocar a ordem. [Edit > Reverse Group or Bus Bit Order]
- Gere uma forma de onda dos sinais de entrada semelhante a mostrado na figura abaixo (Use a função [Randon Value] em A e B, e salve com o nome TesteSomador4bits.vwf.
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK]
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
- O resultado da simulação deve corresponder a um somador completo.
Análise dos resultados
- Analise os resultados preenchendo a tabela abaixo:
Entradas | Saídas | |||
---|---|---|---|---|
cin | A | B | S | cout |
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. | ||||
. |
Simulação Temporal com o QSIM
- Compile o circuito [Processing > Start Compilation] > após alguns minutos [OK]. Confira o [Compilation Report], verificando que o circuito correto foi compilado e anote o número de elementos lógicos e o total de pinos (14 -> 4 entrada A, 4 entrada B, 4 saida S e mais Cin e Cout).
- Abra o arquivo TesteSomador4bits.vwf e faça a simulação temporal do circuito lógico usando o sinal anteriormente já criado (Simulation > Run Timing Simulation)
- O resultado da simulação deve corresponder a um somador completo com gliches e um atraso no sinal de saída.
Análise dos resultados
- Identifique as diferenças entre os sinais gerados na simulação funcional e na simulação temporal.
- Responda as seguintes questões:*
- Como este tipo de somador deveria ser utilizado?
- Meça o atraso do resultado em relação a entrada? Considere a resposta após o término dos gliches.
- Por que esse atraso acontece?
- Quantas somas por segundo o circuito pode realizar?
- Apresente alguma solução utilizar esse circuito mesmo com o atraso no resultado.
- Que tipo de outro circuito pode ser utilizado para fazer a soma de 4 bits?
Multiplicador de 4 bits
Diagrama Esquemático
Abra o Quartus II e insira o diagrama esquemático do módulo básico do multiplicador, utilizando o componente FullAdder criado anteriormente.
- Salve o arquivo como ModuloBMultiplicador.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
- Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático do ModuloBMultiplicador > [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK].
Abra um novo diagrama esquematico no Quartus II e insira o circuito digital abaixo utilizando os componentes FullAdder e ModuloBMultiplicador criados anteriormente.
- Salve o arquivo como Multiplicador4bits.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF).
- Defina o tempo de simulação (Edit > Set End Time ...) = 1000 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Gere uma forma de onda dos sinais de entrada semelhante a mostrado na figura abaixo (Use a função [Randon Value] em A e B, e salve com o nome TesteMultiplicador4bits.vwf.
- Note que os bits das entradas e saídas estão agrupados em ordem reversa e definidos como RADIX = "Decimal sem sinal"
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK]
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
- O resultado da simulação deve corresponder a um somador completo.
Análise dos resultados
- Analise os resultados preenchendo a tabela abaixo, e conferindo em uma calculadora:
Entradas | Saídas | x | Entradas | Saídas | ||
---|---|---|---|---|---|---|
A | B | P | x | A | B | P |
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x | ||||||
x |
Simulação Temporal com o QSIM
- Compile o circuito [Processing > Start Compilation] > após alguns minutos [OK]. Confira o [Compilation Report], verificando que o circuito correto foi compilado e anote o número de elementos lógicos e o total de pinos (16 -> 4 entradas A, 4 entradas B, 8 saidas P).
- Abra o arquivo TesteMultiplicador4bits.vwf e faça a simulação temporal do circuito lógico usando o sinal anteriormente já criado (Simulation > Run Timing Simulation)
- O resultado da simulação deve corresponder a um multiplicador de 4 bits com gliches e um atraso no sinal de saída.
Análise dos resultados
- Identifique as diferenças entre os sinais gerados na simulação funcional e na simulação temporal.
- Responda as seguintes questões:
- Como este tipo de multiplicar deveria ser utilizado?
- Meça o atraso do resultado em relação a entrada? Considere a resposta após o término dos gliches.
- Determine o atraso para 4 valores diferentes de multiplicação. Existem diferença nos atrasos dessas operações?
- Por que esse atraso acontece?
- Quantas multiplicações por segundo o circuito pode realizar?
- Compare o tempo do atraso do somador de 4 bits com o multiplicador de 4 bits.
- De que outra forma a mesma multiplicação poderia ser feita?
Complemento de 2
Diagrama Esquemático
Abra o Quartus II e insira o diagrama esquemático do módulo básico do complementador de 2.
- Salve o arquivo como Complemento2.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
- Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK].
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF).
- Defina o tempo de simulação (Edit > Set End Time ...) = 1000 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Gere uma forma de onda dos sinais de entrada semelhante a mostrado na figura abaixo (Use a função [Randon Value] em A e B, e salve com o nome TesteComplemento2.vwf.
- Note que os bits das entradas e saídas estão agrupados em ordem reversa e definidos como RADIX = "Decimal com sinal"
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK]
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
- O resultado da simulação deve corresponder a um somador completo.
Análise dos resultados
- Analise os resultados preenchendo a tabela abaixo, e conferindo se está correto:
Entradas | Saídas | x | Entradas | Saídas | ||
---|---|---|---|---|---|---|
X >= 0 | Y | OK | x | X < 0 | Y | OK |
0 | x | |||||
1 | x | -1 | ||||
2 | x | -2 | ||||
3 | x | -3 | ||||
4 | x | -4 | ||||
5 | x | -5 | ||||
6 | x | -6 | ||||
7 | x | -7 | ||||
8 | x | -8 |
- Responda as seguintes questões:
- Qual é o valor minimo e máximo que pode ser representado em complemento de 2 com 4 bits?
- Quais são as restrições de uso desse circuito?
- Qual o valor obtido quando colocamos um valor positivo na entrada?
- Qual o valor obtido quando colocamos um valor negativo na entrada?
- Se for inserido um inversor em cada saída qual é o resultado obtido? Como poderia ser chamado este circuito?
Multiplexador de 2 para 1
Diagrama Esquemático
Abra o Quartus II e insira o diagrama esquemático do módulo básico do complementador de 2.
- Salve o arquivo como Mux2para1.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
- Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK].
- Utilize 4 desses componentes para criar um multiplexador de 2 entradas para 1 saída de 4 bits.
- Crie um simbolo para este módulo, selecionando na IDE do Quartus II o diagrama esquemático e [File > Create/Update > Create Symbol Files for Current File] > [Save] > [OK].
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF).
- Defina o tempo de simulação (Edit > Set End Time ...) = 1000 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Gere uma forma de onda dos sinais de entrada semelhante a mostrado na figura abaixo (Use a função [Randon Value] em x0 e x1, e salve com o nome
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK]
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
Análise dos resultados
- Verifique se o multiplexador está funcionando. Quando S = 0 => Y = x0, e quando S = 1 => Y = x1.
Circuito Somador e Substrator de 4 bits
Diagrama Esquemático
Utilizando os componentes anteriormente criados, insira o diagrama esquemático do circuito a seguir.
- Salve o arquivo como Sub_Add4bits.bdf na mesma pasta do PROJ2.
- Mude o Top Level para este circuito. Após isso faça a Análise e Síntese do projeto.
Simulação funcional com o QSIM
- Abra o editor de forma de onda do simulador QSIM (File > New > University Programa VWF).
- Defina o tempo de simulação (Edit > Set End Time ...) = 1000 ns.
- Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK].
- Gere uma forma de onda dos sinais de entrada semelhante a mostrado na figura abaixo (Use a função [Randon Value] em x0 e x1, e salve com o nome
- Indique que o QSIM será usado na simulação (Simulation > Options > (x) Quartus II Simulator) > [OK] > [OK]
- Faça a simulação funcional do circuito lógico usando o sinal criado (Simulation > Run Functional Simulation)
Análise dos resultados
- Verifique se o circuito está funcionando corretamente.