Mudanças entre as edições de "Registrador de Deslocamento - BDF e QSIM"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
Linha 1: Linha 1:
 
=Objetivos=
 
=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
+
* Inserir diagrama esquemático de um circuito lógico com o Quartus II  
*Gerar formas de onda para entrada de simulação
+
* Fazer a simulação funcional de um circuito com o QSIM
*Fazer a simulação temporal de um circuito com o QSIM
+
* Gerar formas de onda para entrada de simulação
*Preparar o circuito lógico para gravação no kit DE0-Nano
+
* Fazer a simulação temporal de um circuito com o QSIM
 +
* <s>Preparar o circuito lógico para gravação no kit DE0-Nano</s>
  
 
=Diagrama Esquemático=
 
=Diagrama Esquemático=
  
* Abra o Quartus II (versão 12.1) e insira o diagrama esquemático de um registrador de deslocamento com 4 DFF, conforme a figura abaixo.
+
* Abra o Quartus II (versão 12.1).
 +
* <span>Crie um projeto RegDeslocamento.qpf utilizando a família family=</span>'''Cyclone IV E'''<span><span></span>com o dispositivo device=</span>'''EP4CE115F29C7'''<span>.<span></span></span>
 +
* Crie o esquemático de um registrador de deslocamento com 4 DFF, conforme a figura abaixo.
 +
* <meta http-equiv="content-type" content="text/html; charset=utf-8"><span>Salve o arquivo como RegDeslocamento.bdf.</span>
 +
* <span><meta http-equiv="content-type" content="text/html; charset=utf-8"><span>Após isso compile o projeto.</span></span>
  
 
[[Arquivo:RegDesloc-bdf.png|900px]]
 
[[Arquivo:RegDesloc-bdf.png|900px]]
Linha 14: Linha 19:
 
* ''Dica use symbol name: '''dff''' e '''not''', para inserir os componentes.''
 
* ''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 IV E''' com o dispositivo device='''EP4CE115F29C7'''.  Após isso compile o projeto.
+
=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 University VWF).
+
** 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].
+
** Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome teste1.vwf.
:*Desenhe a forma de onda dos sinais de entrada conforme mostrado na figura abaixo, e salve com o nome teste1.vwf.
 
  
 
[[Arquivo:RegDeslocTeste1.png|800 px]]
 
[[Arquivo:RegDeslocTeste1.png|800 px]]
*Indique como a simulação será feita (Simulation > Run Functional Simulation). Salve o arquivo de forma de onda - 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)
+
* 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.
+
* Verifique se o resultado obtido corresponde a um Registrador de Deslocamento.
 
[[Arquivo:RegDeslocResult1.png|800 px]]
 
[[Arquivo:RegDeslocResult1.png|800 px]]
*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.
+
* Note que a entrada de SET (seria o PRESET) 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.
+
* 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.<br  />
 +
* Salve o sinal de saída dando um print da tela.
  
*Inverta o CLK (Clique no sinal CLK, clique na opção do menu C e ajuste ''Start Value'' = <inverta o valor, por exemplo, se o campo se encontrava em 1 ajuste para 0) e repita a simulação.  Salve a entrada como teste2.vwf e o sinal de saída como resultadoF2.vwf.
+
=Simulação temporal com o QSIM=
*Entre 120ns e 150ns mude o sinal de SET para '1' e repita a simulação.  Salve a entrada como teste3.vwf.
 
  
=Simulação temporal com o QSIM=
+
* Para alterar para simulação temporal utilize, no Simulador, ''Simulation'' >> ''Run Timing Simulation''.
*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.
**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 dando um print na tela.
*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.
+
* Compare as saídas da simulação temporal e funcional. O que mudou?
*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 <math> t_{pLH} </math> e <math> t_{pHL} </math>?
 
*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]]=
 
=[[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.  
 
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), para família family='''Cyclone''' com o dispositivo device='''EP1C3T100A8''' ou '''Family = Cyclone IV''' E com dispositivo '''device = EP4CE30F23C7'''.
+
* Mude a família e dispositivo a ser usado (Assignments > Devices), para família family='''Cyclone''' com o dispositivo device='''EP1C3T100A8''' ou '''Family = Cyclone IV''' E com dispositivo '''device = EP4CE30F23C7'''.
*Atribua os pinos conforme o Kit DE2-115 - [[Interfaces_de_entrada_e_saída_da_DE2-115 | Cyclone: EP1C3T100A8]] ou Mercurio IV - [[Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV | Cyclone IV: EP4CE30F23C7]], utilizando como entradas as chaves. Como saída utilizaremos os leds.
+
* Atribua os pinos conforme o Kit DE2-115 - [[Interfaces_de_entrada_e_saída_da_DE2-115 | Cyclone: EP1C3T100A8]] ou Mercurio IV - [[Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV | Cyclone IV: EP4CE30F23C7]], utilizando como entradas as chaves. Como saída utilizaremos os leds.
 
<center>
 
<center>
 
[[Arquivo:RegDeslocamento2DE0-NanoPin.png]]
 
[[Arquivo:RegDeslocamento2DE0-NanoPin.png]]
 
</center>
 
</center>
*Compile o projeto. Note que agora a numeração dos pinos aparece no diagrama esquemático.
+
* Compile o projeto. Note que agora a numeração dos pinos aparece no diagrama esquemático.

Edição atual tal como às 10h03min de 22 de maio de 2020

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).
  • Crie um projeto RegDeslocamento.qpf utilizando a família family=Cyclone IV Ecom o dispositivo device=EP4CE115F29C7.
  • Crie o esquemático de um registrador de deslocamento com 4 DFF, conforme a figura abaixo.
  • <meta http-equiv="content-type" content="text/html; charset=utf-8">Salve o arquivo como RegDeslocamento.bdf.
  • <meta http-equiv="content-type" content="text/html; charset=utf-8">Após isso compile o projeto.

RegDesloc-bdf.png

  • Dica use symbol name: dff e not, para inserir os componentes.

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.

RegDeslocTeste1.png

  • 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.

RegDeslocResult1.png

  • Note que a entrada de SET (seria o PRESET) 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.
  • Salve o sinal de saída dando um print da tela.

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 dando um print na tela.
  • Compare as saídas da simulação temporal e funcional. O que mudou?

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), para família family=Cyclone com o dispositivo device=EP1C3T100A8 ou Family = Cyclone IV E com dispositivo device = EP4CE30F23C7.
  • Atribua os pinos conforme o Kit DE2-115 - Cyclone: EP1C3T100A8 ou Mercurio IV - Cyclone IV: EP4CE30F23C7, utilizando como entradas as chaves. Como saída utilizaremos os leds.

RegDeslocamento2DE0-NanoPin.png

  • Compile o projeto. Note que agora a numeração dos pinos aparece no diagrama esquemático.