LabarcFPGASimulatorDesktop
LabarcFPGASimulatorDesktop copied to clipboard
Aumentar a quantidade de atualizações da GUI
Essa alteração permite que a GUI atualize 60 vezes por segundo. Acredito que esse é o valor ideal, uma vez que a maioria dos monitores dos alunos possui frame rate de 60Hz, logo, é o máximo visualizável.
- Essa atualização permite, por exemplo, visualizar mudanças rápidas no lcd em contadores e é útil em vários outros contextos.
- Em testes locais, não encontrei falhas ocasionadas por essa alteração.
Para manter a taxa de atualização em 1 frame por segundo no LAD, foi adicionada uma verificação para isso.
#ifdef LAD
Fl::repeat_timeout(1, callback);
Mas essa verificação é realmente necessária? (É um impeditivo quando LAD está definido?) Caso não seja, posso atualizar a branch removendo essa condição e mantendo apenas a versão de execução da função com frame rate maior.
- README atualizada com novas instruções a respeito da taxa de atualização da GUI.
Novo texto:
A GUI se atualiza 60 vezes a cada segundo, independentemente da frequência do sinal clk_2
. Só se a frequencia do sinal clk_2
for menor a 60 Hz, este sinal pode ser observado corretamente na GUI. Se a frequencia do sinal clk_2
for maior do que 60 Hz, a visualização da GUI pode estar pulando mudanças rápidas que eventualmente poderiam ser vistas no display da placa física.
Olá @davigsousa, primeiramente obrigado pelo PR!
Eu não vou poder testar agora, mas me parece interessante e consigo imaginar o problema. Ter uma taxa de atualização da interface diferente do clock me parece uma boa ideia. Mas ela não parece estar sendo aproveitada com uma taxa de atualização tão baixa e o seu PR propõe consertar isso.
Uma coisa para se atentar é ao custo de redesenhar a interface, que até onde sei é alto, seria 60Hz muito? Que tal 30Hz?
Na minha opinião, não é interessante definir uma taxa de atualização específica para o LAD, em vez disso, acho que seria mais interessante receber uma taxa de atualização via variável de ambiente, e seria opcional, tendo como padrão 30Hz.
@emelcher o que você acha?
Agora falando sobre o README.md
, acho que você fez outras alterações fora a adição do novo texto. Você poderia reverter essas outras e deixar apenas a sua mudança?
O mesmo vale para uma linha que você adicionou no remote.cpp
.
Se você achar necessário, pode abrir outro PR no futuro tratando especificamente disso.
Ótima sugestão @Icaro-Lima ! O usuário pode modificar a taxa de quadros e fazer uso correto disso de acordo com o monitor que possui. :) Adicionei a possibilidade de configurar a taxa de quadros a partir de uma variável de ambiente chamada FPGA_FRAMERATE.
- O nome da variável está adequada? Ou deve-se utilizar algum nome, talvez mais específico? Se já existia um padrão de nomeação das variáveis de ambiente do simulador, infelizmente não encontrei e tentei criar um nome adequado.
Sobre as alterações no README, indiquei que a taxa de atualização padrão é de 30 FPS e adicionei as instruções para a sua modificação. Mais alguma sugestão? (As outras alterações dos commits anteriores eram apenas de formatação automática)
Demorei para fazer um primeiro teste: Computestick Atom(TM) x5-Z8330 CPU @ 1.44GHz com taxa de atualização de 59.94 Hz simulando clk_2 de 500 Hz para série de Leibniz PIPELINING=16; PARALELO=6; HDIGS_FRAC=15; chegou a somente 30% de uso de CPU. Ainda irei testar em outros computadores fracos, mas a ideia de aumentar a taxa de atualização conforme proposto é valida.