Estou trabalhando em um projeto de FPGA grande e estou muito próximo dos limites de recursos do FPGA que estou usando atualmente, o Xilinx LX16 no pacote CSG225.
O design também está quase completo, no entanto, no momento, ele não se encaixa mais no FPGA. Posso desligar as peças para ajustá-las, no entanto, preciso reduzir o uso de recursos para concluir o design e atender aos requisitos de tempo e tamanho.
Gostaria de saber se existem ferramentas em nossos relatórios que podem me ajudar a identificar quais partes do meu design estão consumindo mais recursos. Meu design não é particionado e está dividido em cerca de uma dúzia ou mais de módulos VHDL.
Os relatórios de tempo do Xilinx são fantásticos, mas agora preciso saber onde posso obter o meu melhor retorno em termos de economia de espaço.
Eu também tenho dificuldade em dizer que tipo de recursos estou ficando sem ou quais os efeitos.
Outro aborrecimento é que, à medida que o design aumenta, os componentes que costumavam atender ao tempo estão começando a falhar, porque seu posicionamento não é mais o ideal.
Atualmente, eu uso os relatórios de tempo estático pós-local e rota, e uso o SmartXplorer. Estou usando estratégias de design para otimizar o tempo.
Depois de desativar parte do meu design para ajustá-lo, aqui estão alguns dos resultados:
utilização do registro de fatia: 42% utilização da fatia de LUT: 96% número de pares LUT-FF totalmente usados: 38% Isso significa que eu sou leve nos registros, mas muito exigente no uso de portas?
Existem ferramentas para ajudar os desenvolvedores a otimizar por área ou, pelo menos, fornecer a eles mais informações sobre seu código?
Atualização: Depois de analisar a utilização no nível do módulo, descobri que havia pequenas assinaturas assíncronas de cola em todo o lugar, que representam cerca de 30% do total de LUTs. Estou usando-os como cola de domínio cruzado para ônibus de alta velocidade. Eu deveria ser capaz de eliminá-los, uma vez que os relógios estão intimamente relacionados. (Entrada de 120 MHz, produz 100 MHz e 200 MHz através de DCMs)