Um determinado comportamento de um circuito lógico foi especificado com linguagens de descrição de hardware (HDL). Após o processo de síntese de alto nível, ferramentas computacionais determinaram um fluxo de dados (data path) e um fluxo de controle e estados (control path), usando RTL (register transfer logic), IP (intelectual property) Cores e outros recursos tecnológicos disponíveis em uma determinada arquitetura de FPGA. Foi realizada uma simulação digital pós-síntese que verificou que os resultados atenderam à especificação original. Entretanto, após a programação, o hardware real da FPGA não operou de forma correta, com falhas durante seu funcionamento.
A respeito desse processo, é correto afirmar que:
✂️ a) as regras de mapeamento de pinos e recursos (mapping) estão implícitas na descrição comportamental via HDL e não devem ser especificadas. A ferramenta de síntese se encarrega de determinar a alocação desses recursos. O não funcionamento deve-se a algum problema na eletrônica do circuito integrado da FPGA. ✂️ b) a lógica sintetizada nesse processo deve funcionar em qualquer arquitetura de FPGA, independentemente do fabricante do circuito integrado, e o não funcionamento deve-se a algum problema na eletrônica do circuito integrado da FPGA. ✂️ c) a lógica sintetizada nesse processo deve funcionar em qualquer arquitetura de FPGA de um mesmo fabricante. O não funcionamento deve-se a algum problema na etapa de mapping ou alocação de recursos da FPGA, que não foi especificada corretamente. ✂️ d) os fluxos de dados e de controle criados pela síntese de alto nível não possuem falhas, como comprovado pela simulação. Entretanto, a largura de dados dos barramentos deve ser explicitamente especificada para a ferramenta de síntese para que a implementação real opere como esperado. O não funcionamento deve-se a algum erro nessas especificações. ✂️ e) as restrições e requisitos de tempo (timming) e restrições na alocação de pinos e terminais devem ser especificados de forma explícita para a ferramenta de síntese. Caso contrário, a ferramenta de síntese poderá alocar esses recursos de forma não compatível com a eletrônica. O não funcionamento devesse a algum erro nessas especificações.