FPGA infrastructure#
Learning goals:
Be able to recognize chip structures, especially memory
Know what the main components of an FPGA fabric are
Locating memory on a die image#
Are you curious about how an FPGA look like inside? Siliconpron houses integrated circuit die images including FPGAs.
Exercise 181
Analyze the die image of an AMD 7-Series Artix FPGA xc7a50t.
Memory cells tend to have a very homogeneous and dense structure. Try to guess which patterns on the image could depict memory elements.
Analyzing the floorplan of an FPGA#
After you guessed which areas could house memory cells, we will test your guesses using a floorplan of xc7a50t in Vivado:
Fire up Vivado and click on
New project.Select as
Project TypeI/O Planning Project.In
Import Ports (optional)window clickDo not import I/O ports ....In
Default Partwindow, search forxc7a50tand select one of them.The shown parts only differ in their
I/O Pin CountandAvailable IOBsbut not in any of the logic resources. This is a sign that they all have the same die.Finish the project wizard. You will see the
I/O designwindow. On the right side you havePackageandDevicetabs.A single die can have different packages to meet different application requirements like maximum chip size, required number of data signals, temperature range etc. A die is connected to the pins of a package via a process called wire bonding. An example image is here. You see that the chip is bonded to the package using the pads on its four edges.
Now click on the
Deviceand maximize the window.
Zoom in and browse the components. You can see the name of these components by hovering on them.
FPGA components#
Exercise 182
Which major components do you find on the FPGA fabric and what could the purpose of each component?
Solution to Exercise 182
The FPGA floorplan is organized in tiles which can in turn include one or many components.
CLB (e.g.,
CLBLL_L_X2Y149) tile is configurable logic block that can implement arbitrary logic and be connected to other logic resources.CLB is the dominating resource in terms of count.
SLICELx2, eachLUT6x4SELMUX2_1x3CARRY4FF_INITx4REG_INITx4
or
SLICEM
DSP_*tile houses multipliers and adders which are commonly used in signal filtering applications like convolution. DSP tiles are poured between CLBs.DSP48E1x2
BRAM_*tile houses block RAM which include optional FIFO circuitry around two smaller BRAM blocks (TODO check). These are poured between CLBs and provide larger memory compared to the FFs available in the CLBs.RAMBFIFO36E1RAMB18E1x2
IOBI/O blocks which are on the left and right borders of the die.CMTclock-management tile for generating clocks at different frequencies or skews.MMCME2ADVPLL2E_ADV
MONITOR_BOTincludes analog-digital converter (TODO: why this name?)XADC
GTP_CHANNEL_*is a transceiver. It is used for (de-)serializing bits (SerDes) to (receive)transmit information to other chips (e.g., gigabit Ethernet).Latest transceivers are capable of 112 Gb/s as of 2023.
…
This list is not exhaustive.
Comparing floorplan and die image structures#
Exercise 183
Now try to match the features on the die image to the components on the floor plan. You should at least be able to recognize block RAMs.
Solution to Exercise 183
You have to flip the die image in your head to match the components that you discovered on the device map.
The very black parts of the image house the block RAMs. They are black because the memory cells tend to be very dense but homogeneous structures. We can test that by counting the on the left top of the image — there are 5 BRAM_L_* tiles:
*X6Y145*X6Y140*X6Y135*X6Y130*X6Y125
Each tile consists of two black areas with non-homogeneous area which probably contains the addressing and FIFO logic for two block RAMs.
The area on the left bottom of the die is very distinctive. It probably houses the transceivers.