João D. Lopes

Mr. João D. Lopes

INESC-ID Lisboa
orcid

Research Focus & Metrics

Academic Career Length

10Years (2017-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
19 May 2021 in IEEE Access
Verified
Journal Article
Open access
DPDaniel Pestana
Daniel Pestana
PMPedro R. Miranda
Pedro R. Miranda
JLJoão D. Lopes
João D. Lopes
Rui Policarpo DuarteRui Policarpo Duarte
Rui Policarpo Duarte
Mário VéstiasMário Véstias
Mário Véstias
JSJose de Sousa
Jose de Sousa
Object detection and classification is an essential task of computer vision. A very efficient algorithm for detection and classification is YOLO (You Look Only Once). We consider hardware architectures to run YOLO in real-time on embedded platforms. Designing a new dedicated accelerator for each new version of YOLO is not feasible given the fast delivery of new versions. This work's primary goal is to design a configurable and scalable core for creating specific object detection and classification systems based on YOLO, targeting embedded platforms. The core accelerates the execution of all the algorithm steps, including pre-processing, model inference and post-processing. It considers a fixed-point format, linearised activation functions, batch-normalisation, folding, and a hardware structure that exploits most of the available parallelism in CNN processing. The proposed core is configured for real-time execution of YOLOv3-Tiny and YOLOv4-Tiny, integrated into a RISC-V-based system-on-chip architecture and prototyped in an UltraScale XCKU040 FPGA (Field Programmable Gate Array). The solution achieves a performance of 32 and 31 frames per second for YOLOv3-Tiny and YOLOv4-Tiny, respectively, with a 16-bit fixed-point format. Compared to previous proposals, it improves the frame rate at a higher performance efficiency. The performance, area efficiency and configurability of the proposed core enable the fast development of real-time YOLO-based object detectors on embedded systems.

12 March 2021 in Electronics
Verified
Journal Article
Open access
PDF file
JLJoão D. Lopes
João D. Lopes
Mário VéstiasMário Véstias
Mário Véstias
Rui Policarpo DuarteRui Policarpo Duarte
Rui Policarpo Duarte
HNHorácio C. Neto
Horácio C. Neto
JSJose de Sousa
Jose de Sousa
Reconfigurable computing architectures allow the adaptation of the underlying datapath to the algorithm. The granularity of the datapath elements and data width determines the granularity of the architecture and its programming flexibility. Coarse-grained architectures have shown the right balance between programmability and performance. This paper provides an overview of coarse-grained reconfigurable architectures and describes Versat, a Coarse-Grained Reconfigurable Array (CGRA) with self-generated partial reconfiguration, presented as a case study for better understanding these architectures. Unlike most of the existing approaches, which mainly use pre-compiled configurations, a Versat program can generate and apply myriads of on-the-fly configurations. Partial reconfiguration plays a central role in this approach, as it speeds up the generation of incrementally different configurations. The reconfigurable array has a complete graph topology, which yields unprecedented programmability, including assembly programming. Besides being useful for optimising programs, assembly programming is invaluable for working around post-silicon hardware, software, or compiler issues. Results on core area, frequency, power, and performance running different codes are presented and compared to other implementations.

30 October 2021 in Future Internet
Verified
Journal Article
Open access
PDF file
PMPedro R. Miranda
Pedro R. Miranda
DPDaniel Pestana
Daniel Pestana
JLJoão D. Lopes
João D. Lopes
Rui Policarpo DuarteRui Policarpo Duarte
Rui Policarpo Duarte
Mário VéstiasMário Véstias
Mário Véstias
JSJose de Sousa
Jose de Sousa
Object detection is an important task for many applications, like transportation, security, and medical applications. Many of these applications are needed on edge devices to make local decisions. Therefore, it is necessary to provide low-cost, fast solutions for object detection. This work proposes a configurable hardware core on a field-programmable gate array (FPGA) for object detection. The configurability of the core allows its deployment on target devices with diverse hardware resources. The object detection accelerator is based on YOLO, for its good accuracy at moderate computational complexity. The solution was applied to the design of a core to accelerate the Tiny-YOLOv3, based on a CNN developed for constrained environments. However, it can be applied to other YOLO versions. The core was integrated into a full system-on-chip solution and tested with the COCO dataset. It achieved a performance from 7 to 14 FPS in a low-cost ZYNQ7020 FPGA, depending on the quantization, with an accuracy reduction from 2.1 to 1.4 points of mAP50.

21 July 2021 in Algorithms
Verified
Journal Article
Open access
PDF file
JRJoão V. Roque
João V. Roque
JLJoão D. Lopes
João D. Lopes
Mário VéstiasMário Véstias
Mário Véstias
JSJose de Sousa
Jose de Sousa
Open-source processors are increasingly being adopted by the industry, which requires all sorts of open-source implementations of peripherals and other system-on-chip modules. Despite the recent advent of open-source hardware, the available open-source caches have low configurability, limited lack of support for single-cycle pipelined memory accesses, and use non-standard hardware interfaces. In this paper, the IObundle cache (IOb-Cache), a high-performance configurable open-source cache is proposed, developed and deployed. The cache has front-end and back-end modules for fast integration with processors and memory controllers. The front-end module supports the native interface, and the back-end module supports the native interface and the standard Advanced eXtensible Interface (AXI). The cache is highly configurable in structure and access policies. The back-end can be configured to read bursts of multiple words per transfer to take advantage of the available memory bandwidth. To the best of our knowledge, IOb-Cache is currently the only configurable cache that supports pipelined Central Processing Unit (CPU) interfaces and AXI memory bus interface. Additionally, it has a write-through buffer and an independent controller for fast, most of the time 1-cycle writing together with 1-cycle reading, while previous works only support 1-cycle reading. This allows the best clocks-per-Instruction (CPI) to be close to one (1.055). IOb-Cache is integrated into IOb System-on-Chip (IOb-SoC) Github repository, which has 29 stars and is already being used in 50 projects (forks).

14 July 2017
Verified
Book Chapter
Closed access
PDF file
JLJoão D. Lopes
João D. Lopes
JSJose de Sousa
Jose de Sousa

25 March 2020
Verified
Book Chapter
Closed access
PDF file
VMValter Mário
Valter Mário
JLJoão D. Lopes
João D. Lopes
Mário VéstiasMário Véstias
Mário Véstias
JSJosé T. de Sousa
José T. de Sousa