Esse fato introduz em um estupor um desenvolvedor iniciante que já havia lidado com microcontroladores. Por outro lado, esse comportamento é normal, pois o FPGA é um conjunto de células lógicas configuráveis de forma flexível e, no caso simples, não há memória interna onde essa configuração possa ser armazenada. A solução é gravar a configuração na memória externa e carregá-la automaticamente quando a energia é aplicada. O processo está descrito no white paper
AN 370 . Também proponho ver minha versão da ilustração desse processo.
Há
conselhos sobre o desenvolvimento de uma placa de depuração baseada no EP4CE6E22C8N. A primeira vez que você carrega um projeto bonito.

E vemos isso várias vezes após a reinicialização, apesar de termos preenchido nossa configuração por escrito. Para que a configuração que escrevemos seja carregada quando a energia é fornecida, é necessário executar algumas ações no Quartus:
- Verifique se Active Serial está selecionado no campo Esquema de configuração. (Atribuições -> Dispositivo -> Opções de dispositivo e pino -> Configuração)

- Projeto de compilação
- Gere o arquivo jic: Arquivo -> Converter arquivos de programação -> Tipo de arquivo de programação de saída -> .ji
Na mesma janela, selecione o tipo de flash. Olhamos para a placa de circuito, vemos que temos M25C16. É exatamente isso que o Quartus não oferece, mas a opção EPCS16 fará.
Na mesma janela abaixo Arquivos de entrada para conversão -> Flash Loader -> Adicionar dispositivo -> Cyclone IV E -> EP4CE6
Dados SOF -> especifique o arquivo obtido no estágio de compilação (o que queremos ver ao carregar)

Clique em gerar. - Preencha o arquivo jic recebido

Agora, após uma reinicialização, veremos a configuração que criamos, que configurará automaticamente o FPGA quando a energia for aplicada.