Ricardo Ferreira

Ricardo Ferreira

*This is an algorithmically generated author record based on publicly available information.

Current Organizations / Institutes

The organizations/institutes from the scholar's latest article


Ricardo Ferreira has a total of 119 co-authors. Here are the top co-authors by number of shared publications:


Latest Publications

  • Open Access

    Jogos com LEDs Endereçáveis: Uma Metodologia Usando LLMs Integrando JavaScript, Arduino, Wifi e NotebookLM

    by Ricardo Ferreira, Talles Costa, Isabela de Castro Freitas, Pedro Coura Pereira, Alice Faria, Racyus D. G. Pacífico

    Jogos digitais consolidaram-se como ferramentas pedagógicas de aprendizagem ativa, porém, ainda apresentam desafios de implementação. Este trabalho apresenta uma metodologia para o desenvolvimento de jogos de Arcade utilizando LLMs. Os jogos são inicialmente gerados em JavaScript com o auxílio de LLMs e, posteriormente, adaptados para microcontroladores com matrizes de LEDs endereçáveis WS2812b. A interação é ampliada por meio de comunicação cliente-servidor ou MQTT com o controle via dispositivos móveis. Visando favorecer a reprodutibilidade e o uso educacional, os códigos e os prompts utilizados estão disponíveis em um repositório público. Adicionalmente, uma documentação suplementar foi elaborada com o NotebookLM.

  • Open Access

    Desenvolvimento de Ferramentas Educacionais para Computação com Apoio de Modelos Generativos de Linguagem

    by Hugo Costa Araújo, Matheus Otávio Lisboa, Pedro Henrique Coura Pereira, Isabela de Castro Freitas, Maria Lúcia Bento Villela, Ricardo Ferreira

    Este trabalho realiza uma análise quantitativa e qualitativa de modelos de linguagem de grande escala (LLM) para o ensino de computação, avaliando seu desempenho em diversos aspectos educacionais. Inicialmente, avaliamos o desempenho de quatro modelos (ChatGPT, Claude, Copilot e Gemini) para o desenvolvimento de interfaces gráficas em Python no ambiente Google Colab, explorando diversos formatos de requisições e definindo métricas para compará-los. As métricas de avaliação incluem erros de compilação, execução e funcionalidade, além do tamanho da requisição, do número de interações e do número de linhas de código geradas. A partir de mais de 350 ensaios, foram geradas mais de 250 ferramentas funcionais, alcançando uma taxa de sucesso de 84%. Posteriormente, avaliamos a capacidade de tradução de código de Python para JavaScript, explorando os recursos variados para interface gráfica em navegadores e o desempenho das LLMs para JavaScript, no qual incluímos os modelos Gemini-Pro e DeepSeek. Avaliamos também o desempenho em interfaces com recursos de edição para problemas de grafos e criação de linguagens de domínio específico para ensino de grafos e modelos de aprendizado de máquina. Elaboramos também exemplos de outros usos, como geração de questionários, avaliação de questionários e avaliação de código gerado. Os exemplos avaliados abrangem diversos domínios, todos documentados e disponibilizados como um conjunto de dados. Os resultados indicam uma aceleração significativa na criação de ferramentas educacionais interativas e atrativas, destacando direções promissoras para o uso de LLMs no desenvolvimento de recursos didáticos para computação.


  • Open Access

    VeryGA - Interface Modular VGA para Simulação de Verilog

    by Talles de Sousa Costa, Racyus Delano Garcia Pacífico, Ricardo dos Santos Ferreira

    O ensino de Verilog com FPGAs apresenta diversos desafios. Entre eles, destacam-se a complexidade das ferramentas comerciais, o acesso limitado às placas físicas, a própria linguagem de descrição de hardware e a necessidade de simulações com depuração por meio de formas de onda. Uma estratégia eficaz para motivar os estudantes a superar essas barreiras é o desenvolvimento de jogos e aplicações gráficas, cujos resultados podem ser verificados visualmente, promovendo o aprendizado de programação em nível intermediário a avançado. Neste trabalho, apresentamos o VeryGA, uma ferramenta modular que integra simulações em Verilog com entradas via teclado ou mouse e saída em um emulador de sinais VGA, possibilitando visualização gráfica em tempo real. Ao oferecer um ambiente intuitivo e interativo, o VeryGA auxilia iniciantes a compreender melhor e documentar seus projetos de sistemas computacionais em Verilog com saída VGA, reduzindo a curva de aprendizado e promovendo a construção colaborativa de um conjunto de exemplos. A solução é executada inteiramente no navegador por meio do Google Colab, configurado com o simulador Verilator e o CMake, utilizando uma versão em WebAssembly para alcançar desempenho próximo ao tempo real. Diversos exemplos são apresentados para ilustrar os recursos do ambiente desenvolvido. O código emulado é sintetizável, validado em placas FPGA reais, e pode ser executado nelas sem alterações. Outra contribuição é demonstrar que, mesmo em um ambiente virtualizado na nuvem, é possível obter taxas de quadros por segundo próximas a uma execução em tempo real.

  • Open Access

    Desenvolvendo simuladores para arquitetura de computadores com auxílio de modelos generativos de linguagens

    by Ricardo Ferreira, Racyus Delano Garcia Pacífico

    Este trabalho apresenta o uso de modelos generativos para o desenvolvimento de simuladores interativos voltados ao ensino de arquitetura de computadores em diferentes níveis de abstração. Os simuladores contam com interfaces que incluem janelas de edição de código, visualização gráfica da execução e integração com o Google Colab, promovendo a experimentação prática e acessível. O desenvolvimento foi realizado no contexto das disciplinas de arquitetura de computadores da Universidade Federal de Viçosa, com participação ativa dos alunos. Como parte das atividades, os estudantes receberam a demanda dos requisistos desejados para cada simulador, acompanhada de um código inicial com número reduzido de funcionalidades, que deveria ser ampliado e aprimorado. Foram desenvolvidos simuladores para diversas arquiteturas, incluindo: processadores RISC-V com e sem pipeline, arquiteturas com múltiplas unidades funcionais, simuladores baseados no algoritmo de Tomasulo, interpretadores para assembly vetorial, arquiteturas com array processors SIMD, além de modelos de multiprocessadores com memória compartilhada e com troca de mensagens. Além dos processadores, um projeto de uma cache 4-way também foi implementado. A cache e os processadores RISC-V têm implementação em Verilog e Python. As demais arquiteturas usaram simuladores em Python. A abordagem visa tornar o aprendizado mais visual, prático e alinhado com os fundamentos teóricos da área.

  • Open Access

    FPGA Unboxing: entendendo a arquitetura e as ferramentas de projeto para FPGAs

    by Deborah Caroline Rodrigues Oliveira, João Silva, José Augusto Miranda Nacif, Ricardo dos Santos Ferreira, Racyus Delano Gracia Pacífico

    Dispositivos reconfiguráveis, como os FPGAs, oferecem grande flexibilidade no desenvolvimento de soluções de hardware, porém seu ensino apresenta desafios devido à complexidade das ferramentas tradicionais e das linguagens de descrição de hardware (HDLs). Este trabalho propõe uma abordagem didática para introduzir as principais etapas do processo de síntese em FPGAs: mapeamento tecnológico, posicionamento, roteamento e geração do bitstream. Para alcançar esse objetivo, adotou-se uma metodologia. A metodologia adota com exemplos interativos, recursos visuais e analogias acessíveis para explicar cada fase, permitindo que o estudante compreenda a ocupação do arranjo de Lookup Tables (LUTs) e os processos internos do fluxo de compilação. Explorou-se o uso de modelos de linguagem de larga escala (LLMs) para apoiar a criação de ferramentas visuais em JavaScript, potencializando a aprendizagem ativa e interativa. A principal contribuição deste trabalho é o unboxing das ferramentas de FPGA, complementando materiais existentes e oferecendo aos iniciantes um caminho estruturado e intuitivo para compreender o funcionamento interno desses dispositivos e suas ferramentas.

  • Open Access

    A Survey on Edge-Aware Graph Learning Methods

    by Wagner A. Junior, Fábio Ramos, Alex B. Vieira, José Augusto M. Nacif, Ricardo S. Ferreira

    Graph Neural Networks (GNNs) have gained popularity as an efficient choice for learning on graph-structured data. However, most methods are node or graph-centered, often overlooking valuable information that can be encoded in edge features and relations. In this survey, we present a comprehensive review and a novel taxonomy of Edge-Aware Graph Learning Methods, i.e., models that explicitly leverage edge information in the learning process. We trace the evolution of these methods from classical approaches through random walks to modern GNN architectures, including the emerging paradigm of Edge-Aware Graph Transformers. Through a comparative analysis, we demonstrate the consistent performance gains of these models over traditional node-centric approaches across a wide range of real-world applications and benchmarks. However, many challenges arise in this field. As such, we provide an explicit discussion of key limitations, particularly the scalability issues and computational overhead associated with many current architectures. Finally, by synthesizing the state-of-the-art and identifying open problems, this survey provides a clear roadmap to guide future research toward developing more efficient, scalable, and robust edge-aware models.


  • Reconfigurable Domain‐Specific Architectures Based on Coarse‐Grained Operators in High‐Performance FPGAs

    by Lucas Bragança da Silva, César Grandis, Jeronimo Penha, José Augusto M. Nacif, Ricardo S. Ferreira

    This work presents the development of reconfigurable processing units capable of encapsulating various operations to design new domain‐specific reconfigurable accelerators. These processing units are known as coarse‐grained operators because they can execute multiple operations. We validated the new operators within the HPCGRA framework, a design environment for creating custom coarse‐grained reconfigurable arrays that run as a virtual layer on commercial field‐programmable gate arrays. The environment is parameterized and employs an intermediate portable format that abstracts away low‐level specific bitstream details, enabling hardware‐agnostic reconfiguration. In this paper, we present three case studies. The first is a domain‐specific accelerator for the K‐means algorithm, which can be entirely reconfigured in less than 2.34 ms to explore various clustering values and attributes, achieving up to 159 Gop/s performance for considering 8 features. The reconfigurability of our accelerator has no impact on performance compared to static versions implemented directly in HLS and RTL. The second case study extends K‐means with a Gini calculation operator for dimensionality reduction, quantization, and quality classification, achieving up to 278 Gops/s. The third case study presents a systolic matrix multiplier, demonstrating the versatility of the environment for designing different architectural domains.


  • Open Access

    Work-in-Progress: RISC-V-Dilemma-1: A Hardware Trojan Benchmark Based on Seeker's Dilemma Approach

    by Peter Jamieson, Suman Bhunia, Jerry Chen, Chris Lallo, Blake Rile, Ricardo Ferreira, Guilherme A. S. Wilke, Jose A. M. Nacif, Ahmad Patooghy, Abdel-Hameed A. Badawy

  • Unblocking Placement and Routing in Rearrangeable Multi‐Stage Networks

    by Caio Von Rondow Morais, Jeronimo Penha, José Augusto M. Nacif, Ricardo S. Ferreira

    High‐performance computing demands efficient and scalable interconnections. Although crossbar networks offer high parallel bandwidth, their costs are prohibitively expensive. Multi‐stage networks provide scalability with cost, yet they may block certain routing patterns. Rearrangeable multistage networks (RMNs) have emerged as a cost‐effective solution, enabling internal connection rearrangements to make all paths accessible without network blocking. However, discovering optimal rearrangement strategies remains a challenge for unblocking large‐scale (256 connections) reconfigurable networks. We advance the state of the art by effectively managing workloads with over 50% without blocking. When nearly all connections are required, we introduce routing strategies to rearrange existing connections. In the presence of multicast, where the configuration space exceeds , we propose novel strategies employing simulated annealing for placement and Monte Carlo tree search for routing to prioritize multicast connections, which simultaneously maximize the number of connections by minimizing conflicts and reducing the number of extra stages. To the best of our knowledge, we first demonstrate that the Benes network is not rearrangeable under multicast conditions. We propose exploring the rearrangeability of shuffle exchanges with additional network stages.