Mudanças entre as edições de "Registrador de Deslocamento - BDF e QSIM"
Ir para navegação
Ir para pesquisar
Linha 16: | Linha 16: | ||
=Simulação funcional com o QSIM= | =Simulação funcional com o QSIM= | ||
− | + | *Crie as formas de onda para entrada da simulação (File > New University VWF). | |
− | |||
− | *Crie as formas de onda para entrada da simulação (File > New | ||
:*Defina o tempo de simulação (Edit > Set End Time ...) = 200 ns. | :*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]. | :*Importe todos os nós de lista do projeto (Edit > Insert > Insert Node or Bus) > [Node Finder] > [List] > [>>] > [OK] > [OK]. | ||
Linha 24: | Linha 22: | ||
[[Arquivo:RegDeslocTeste1.png|800 px]] | [[Arquivo:RegDeslocTeste1.png|800 px]] | ||
− | *Indique como a simulação será feita ( | + | *Indique como a simulação será feita (Simulation > Run Functional Simulation). Salve o arquivo de forma de onda - teste1.vwf. |
*Faça a simulação do circuito lógico usando o sinal criado (Processing > Start Simulation) | *Faça a simulação do circuito lógico usando o sinal criado (Processing > Start Simulation) | ||
− | * | + | *Verifique se o resultado obtido corresponde a um Registrador de Deslocamento. Salve o sinal de saída como resultadoF1.vwf. |
[[Arquivo:RegDeslocResult1.png|800 px]] | [[Arquivo:RegDeslocResult1.png|800 px]] | ||
Linha 32: | Linha 30: | ||
*Meça a duração dos pulsos ALTOS após o tempo de 120 ns do sinal D, Q1, Q2, Q3 e Q4. Explique o motivo da diferença de duração. | *Meça a duração dos pulsos ALTOS após o tempo de 120 ns do sinal D, Q1, Q2, Q3 e Q4. Explique o motivo da diferença de duração. | ||
− | *Inverta o CLK e repita a simulação. Salve a entrada como teste2.vwf e o sinal de saída como resultadoF2.vwf. | + | *Inverta o CLK (Clique no sinal CLK, clique na opção do menu C e ajuste ''Start Value'' = 1) e repita a simulação. Salve a entrada como teste2.vwf e o sinal de saída como resultadoF2.vwf. |
*Entre 120ns e 150ns mude o sinal de SET para '1' e repita a simulação. Salve a entrada como teste3.vwf e o sinal de saída como resultadoF3.vwf. | *Entre 120ns e 150ns mude o sinal de SET para '1' e repita a simulação. Salve a entrada como teste3.vwf e o sinal de saída como resultadoF3.vwf. | ||
Edição das 09h09min de 9 de outubro de 2018
Objetivos
- Inserir diagrama esquemático de um circuito lógico com o Quartus II
- Fazer a simulação funcional de um circuito com o QSIM
- Gerar formas de onda para entrada de simulação
- Fazer a simulação temporal de um circuito com o QSIM
- Preparar o circuito lógico para gravação no kit DE0-Nano
Diagrama Esquemático
- Abra o Quartus II (versão 12.1) e insera o diagrama esquemático de um registrador de deslocamento com 4 DFF, conforme a figura abaixo.
- Dica use symbol name: dff e not, para inserir os componentes.
Após salvar o arquivo como RegDeslocamento.bdf em uma pasta vazia com nome EX_1, e crie um projeto RegDeslocamento.qpf utilizando a família family=Cyclone com o dispositivo device=EP1C3T100A8. Após isso compile o projeto.
Simulação funcional com o QSIM
- Crie as formas de onda para entrada da simulação (File > New University 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].
- Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome teste1.vwf.
- Indique como a simulação será feita (Simulation > Run Functional Simulation). Salve o arquivo de forma de onda - teste1.vwf.
- Faça a simulação do circuito lógico usando o sinal criado (Processing > Start Simulation)
- Verifique se o resultado obtido corresponde a um Registrador de Deslocamento. Salve o sinal de saída como resultadoF1.vwf.
- Note que a entrada de SET e RESET não estão sincronizadas com o relógio (CLK). Os sinais de saída dos DFF são todos sincronizados com a borda de subida do CLK.
- Meça a duração dos pulsos ALTOS após o tempo de 120 ns do sinal D, Q1, Q2, Q3 e Q4. Explique o motivo da diferença de duração.
- Inverta o CLK (Clique no sinal CLK, clique na opção do menu C e ajuste Start Value = 1) e repita a simulação. Salve a entrada como teste2.vwf e o sinal de saída como resultadoF2.vwf.
- Entre 120ns e 150ns mude o sinal de SET para '1' e repita a simulação. Salve a entrada como teste3.vwf e o sinal de saída como resultadoF3.vwf.
Simulação temporal com o QSIM
- Para alterar para simulação temporal utilize, no Simulador, Simulation >> Run Timing Simulation.
- Obs: O simulador somente consegue fazer simulação temporal para as famílias Ciclone III ou mais simples. Tenha certeza que você escolheu um device compatível.
- Faça a simulação do circuito lógico. Abra o arquivo resultado da simulação. Verifique as mudanças que ocorreram nos sinais de saída Q1, Q2, Q3 e Q4. Salve o sinal de saída como resultadoT1.vwf.
- Meça os atrasos dos sinais Q1, Q2, Q3 e Q4 em relação ao sinal RESET.
- Meça os atrasos dos sinais Q1, Q2, Q3 e Q4 em relação ao sinal CLK.
- Qual é a conclusão que você pode chegar em relação ao tempo de propagação e ?
- Como você poderia medir o tempo de atraso dos sinais Q1, Q2, Q3 e Q4 em relação ao sinal SET?
- Meça a duração dos pulsos ALTOS após o tempo de 120 ns do sinal D, Q1, Q2, Q3 e Q4. Explique o motivo da diferença de duração.
Preparando para gravar o circuito lógico no FPGA
Para gravar o circuito lógico no FPGA, é necessário escolher um FPGA para a aplicação. Neste caso utilizaremos o kit DE0-Nano.
- Mude a família e dispositivo a ser usado (Assignments > Devices), [Family = Cyclone IV E] e selecione EP4CE22F17C6
- Atribua os pinos conforme a pinagem do kit DE0-Nano, utilizando como entradas a chave KEY[0] como CLK, DIPswitch[0] como D, DIPswitch[1] como RESET e DIPswitch[2] como SET. Como saída utilizaremos os leds verdes e Q1 a Q4 como LED[0] a LED[3].
- Defina como alta impedância o estado dos pinos não utilizados no projeto. (Assignments > Devices), [Device and Pin Options...], escolha a (Category=Unused Pins), e selecione Reserve all unused pins: As input tri-stated. [OK].
- Compile o projeto. Note que agora a numeração dos pinos aparece no diagrama esquemático.