Restringir a frequencia máxima de clock no Quartus: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Criou página com 'Para verificar se um circuito realmente funciona, normalmente é suficiente fazer a '''simulação funcional''', e fazer uma análise do '''Time Quest Report''' para verificar s...'
 
Moecke (discussão | contribs)
 
(3 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 2: Linha 2:


Para que os resultados do Time Quest Report sejam uteis é necessário inserir algumas restrições em uma arquivo .sdc associado ao projeto.  Em circuitos sequenciais é necessário no mínimo inserir o período máximo (ou frequência mínima) desejado para o clock.  A linha de definição do clock é:
Para que os resultados do Time Quest Report sejam uteis é necessário inserir algumas restrições em uma arquivo .sdc associado ao projeto.  Em circuitos sequenciais é necessário no mínimo inserir o período máximo (ou frequência mínima) desejado para o clock.  A linha de definição do clock é:
  create_clock -name NOME_DO_CLOCK -period 20 [get_ports {nome_do_sinal_de_clock}]
  create_clock -name NOME_DO_CLOCK -period 20 [get_ports -no_case {nome_do_sinal_de_clock}]


onde o periodo é dado em (ns). Também pode ser usado a frequencia do clock:
onde o periodo é dado em (ns). Também pode ser usado a frequencia do clock:


  create_clock -name CLK50MHz -period 50MHz [get_ports {nome_do_sinal_de_clock}]
  create_clock -name CLK50MHz -period 50MHz [get_ports -no_case {nome_do_sinal_de_clock}]




Como exemplo, se for adicionado ao projeto um arquivo <NOME>.sdc definindo a frequência do clock esperada com a seguinte linha:  
Como exemplo, se for adicionado ao projeto um arquivo <NOME>.sdc definindo a frequência do clock esperada com a seguinte linha:  


  create_clock -name CLK50MHz -period 50MHz [get_ports {clk*}]
  create_clock -name CLK50MHz -period 50MHz [get_ports -no_case {clk*}]
 


Ao fazer a compilação do projeto o '''Time Quest Report''' indicará se os tempos de setup, hold e fmax são atendidos.
Ao fazer a compilação do projeto o '''Time Quest Report''' indicará se os tempos de setup, hold e fmax são atendidos.


Para verificar os resultados [Compilation Report > TimeQuest Timing Analyser] e verifique:
Para verificar os resultados [Compilation Report > TimeQuest Timing Analyser] e verifique:
* o [Fmax] do circuito gerado.  
* [Fmax] do circuito gerado.  
 
No caso de dispositivos de familias de FPGA mais sofisticas podem existir vários modelos de simulação. Utilize como parâmetro de comparação a condição que resulta no menor clock.  Por exemplo no caso do Cyclone IV E, existem os modelos:
*Slow 1200mV 85C Model (mais lento)
*Slow 1200mV 0C Model
*Fast 1200mV 0C Model (mais rápido)


Ajustando o clock mínimo através do parãmetro '''create_clock''' é possível forçar o compilador a tentar obter uma circuito com clock maior.


*Ver [https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#analyze/sta/sta_db_create_clock.htm Create Clock Dialog Box (create_clock)]
*Ver [https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#analyze/sta/sta_db_create_clock.htm Create Clock Dialog Box (create_clock)]
*Ver [https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#tafs/tafs/tcl_pkg_sdc_ver_1.5_cmd_create_clock.htm create_clock (::quartus::sdc)]
*Ver [https://www.intel.com/content/www/us/en/programmable/quartushelp/current/index.htm#tafs/tafs/tcl_pkg_sdc_ver_1.5_cmd_create_clock.htm create_clock (::quartus::sdc)]

Edição atual tal como às 14h35min de 5 de novembro de 2024

Para verificar se um circuito realmente funciona, normalmente é suficiente fazer a simulação funcional, e fazer uma análise do Time Quest Report para verificar se o circuito atende as restrições de tempo. Assim na prática normalmente não é necessário fazer uma simulação temporal.

Para que os resultados do Time Quest Report sejam uteis é necessário inserir algumas restrições em uma arquivo .sdc associado ao projeto. Em circuitos sequenciais é necessário no mínimo inserir o período máximo (ou frequência mínima) desejado para o clock. A linha de definição do clock é:

create_clock -name NOME_DO_CLOCK -period 20 [get_ports -no_case {nome_do_sinal_de_clock}]

onde o periodo é dado em (ns). Também pode ser usado a frequencia do clock:

create_clock -name CLK50MHz -period 50MHz [get_ports -no_case {nome_do_sinal_de_clock}]


Como exemplo, se for adicionado ao projeto um arquivo <NOME>.sdc definindo a frequência do clock esperada com a seguinte linha:

create_clock -name CLK50MHz -period 50MHz [get_ports -no_case {clk*}]


Ao fazer a compilação do projeto o Time Quest Report indicará se os tempos de setup, hold e fmax são atendidos.

Para verificar os resultados [Compilation Report > TimeQuest Timing Analyser] e verifique:

  • [Fmax] do circuito gerado.

No caso de dispositivos de familias de FPGA mais sofisticas podem existir vários modelos de simulação. Utilize como parâmetro de comparação a condição que resulta no menor clock. Por exemplo no caso do Cyclone IV E, existem os modelos:

  • Slow 1200mV 85C Model (mais lento)
  • Slow 1200mV 0C Model
  • Fast 1200mV 0C Model (mais rápido)

Ajustando o clock mínimo através do parãmetro create_clock é possível forçar o compilador a tentar obter uma circuito com clock maior.