Circuit Cellar - GIFT

CC-2015-06-Issue 299

Circuit Cellar - GIFT

Issue link:

Contents of this Issue


Page 53 of 83

CIRCUIT CELLAR • JUNE 2015 #299 52 COLUMNS O ften your FPGA-based project will require computer communication and some housekeeping tasks. A popular solution is the use of a dedicated USB interface chip, and a soft-core processor in the FPGA for housekeeping tasks. For an open-source hardware project I recently launched, I decided to use an external USB microcontroller instead of a dedicated interface chip. I suspect you'll find a lot of useful design tidbits you can use for yourself—and, because it's open source, getting details of my designs doesn't involve industrial espionage! The design is called the ChipWhisperer-Lite (see Photo 1). This device is a training aid for learning about side-channel power analysis of cryptographic implementations. Side- channel power analysis uses measurements of small power variations during execution of the cryptographic algorithms to break the implementation of the algorithm. In a previous article, "Build a SoC Over Lunch" (Circuit Cellar 289, 2014), I made the case for using a soft-core processing in an FPGA. In this article I'll play the devil's advocate by arguing that using an external microcontroller is a better choice. Of course the truth lies somewhere in between: in this example, the requirement of having a high-speed USB interface makes an external microcontroller more cost-effective, but this won't always be the case. MICROCONTROLLER OVERLORD This article assumes you require computer communication as part of your design. There are many options for this. The easiest from a hardware perspective is to use a USB- Serial converter, and many projects use such a system. The downside is a fairly slow interface, and the requirement of designing a serial protocol. A more advanced option is to use a USB adapter with a parallel interface, such as the FTDI FT2232H. These can achieve very high-speed data rates—basically up to the limit of the USB 2.0 interface. The downside of these options is that it still requires some protocol implemented on your FPGA for many applications, and it has limited extra features (such as if you need housekeeping tasks). The solution I came to is the use of a USB microcontroller. They are widely available A Case Study of the ChipWhisperer-Lite USB-to-FPGA Communications Sending data from a computer to an FPGA is often required. This might be FPGA configuration data, register settings, or streaming data. An easy solution is to use a USB-connected microcontroller instead of a dedicated interface chip, which allows you to offload certain tasks into the microcontroller. By Colin O'Flynn (Canada) PROGRAMMABLE LOGIC IN PRACTICE

Articles in this issue

Archives of this issue

view archives of Circuit Cellar - GIFT - CC-2015-06-Issue 299