Restringir a frequencia máxima de clock no Quartus II
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.