PCB DESIGN

To verify the functionalities of the Neural Processing Unit (NPU), a 2-layer printed circuit board (PCB) was designed using Kicad. The top-level schematic is illustrated in Figure 1. The primary objective of this PCB is to facilitate connectivity with either a Raspberry Pi or an FPGA. As a result, its configuration is intentionally kept simple to ensure efficient communication and testing.

ee_logo
Figure 1. Top-level PCB Schematic

Power Supply

The power for the PCB is supplied either by the RPI IO board or the FPGA, both of which operate at 3.3V. In contrast, the NPU's voltage domains (IO_VDD and CORE_VDD) are both 1V. To generate these 1V outputs, we used two identical LDOs to produce 1V_IO and 1V_CORE, as illustrated in Figure 2. To allow for fine adjustment of the output voltage and to enable overclocking of the NPU when necessary, we replaced one of the feedback resistors with a potentiometer.

ee_logo
Figure 2. LDOs to generate 1V_IO and 1V_CORE

LEVEL SHIFTERS

We incorporated six 8-channel level shifters and one 2-channel level shifter to convert input signals from 3.3V to 1V and output signals from 1V to 3.3V, as depicted in Figure 3. All level shifters are bidirectional.

ee_logo
Figure 3. Level Shifters

RPI AND FPGA HEADER

Both the Raspberry Pi IO board and the FPGA board feature a series of 2.54mm male headers. To eliminate the need for cables, we designed female headers with matching dimensions, as shown in Figure 6. This design allows for easy connection of the NPU PCB to either the RPI IO board or FPGA board by simply aligning the female and male headers and applying significant force.

ee_logo
Figure 4. RPI and FPGA Header

PCB LAYOUT

ee_logo
Figure 4. PCB Layout


Back to top