BEE2 Quick Start
The purpose of this document is to walk the user through the use of the BEE2 board from initial bring up, all the way through using the Xilinx tools to build new bitstreams for the board.
- BEE2 Quick Start
The BEE2 system is designed to be a modular, scalable FPGA-based computing platform with a software design methodology that targets a wide range of high-performance applications, such as:
Real-time radio telescope signal processing
Cognitive radio systems
Hyperspectral image processing
E & M antenna simulation
Bioinformatics sequence matching
Simulation of large-scale, ad-hoc and traditional networks
ECAD tool acceleration
Computer architecture emulation
The modular system architecture can not only provide orders of magnitude reduction in overall cost and design time, but it also closely tracks the early adoption of state-of-the-art IC fabrication by FPGA vendors. Users of the BEE2 have the freedom to choose the appropriate number of computational modules needed to tackle the application at hand, and to rapidly reconfigure to switch to a different application.
The BEE2 is a general purpose processing module based on five, high-performance Xilinx FPGAs (Virtex II Pro 70). In addition to the large amount of processing fabric provided by the FPGAs, the BEE2 also provides up to 20GB of high-speed, DDR2 DRAM memory. Each of the five FPGAs has four independent channels to DDR2 DIMMs which provides very high memory bandwidth. Finally, the FPGAs on the BEE2 are highly connected with both high-speed, serial and parallel links.
The FPGAs are laid out in a star topology with four user FPGAs in a ring and one control FPGA connected to each user. The user FPGAs each have four independent high speed serial channels (4 bonded MGTs) which are capable of transferring data at 10Gbps through CX4 connectors (both copper and fiber). The user FPGA ring consists of parallel connections of 138 high-speed LVCMOS traces between the FPGAs which can run at a maximum of 400Mbps. The control FPGA has two high-speed serial channels, 64 LVCMOS traces to each user FPGA, and connections to common peripherals such as 10/100 ethernet, USB 1.1, RS232 serial, DVI, and GPIOs.
Detailed information about the BEE2 module, including its architecture, links to data sheets, BOM, and source code can be found here:
Cables, Parts, and Connections
The first step is to acquire all of the necessary cables, power supply, memory, and media for the BEE2. Next, you will need to check that all of the required jumpers are in place, and finally connect the BEE2. Information on all of these steps can be found in the Bee2Setup page.
Testing BEE2 with Self-Test Suite
The next step is to verify that your BEE2 module is operating correctly. Most BEE2 boards will be verified by the assembler before shipping to users. However, it is still a good idea to run the self-test suite upon receiving a new BEE2 board to make sure nothing was damaged in shipping. For instructions on acquiring and running the test suite, see the Bee2TestSuite page.
Booting Reference Designs
Reference Linux System
We have provided a pre-built reference Linux system that makes it easy to bring up the BEE2 with Linux. This reference design has very little gateware outside that required to boot Linux. To use this bitstream, the only requirement is that one 1GB DIMM be placed in control FPGA DIMM socket one.
The first step is to download the pre-built Linux bitstream (system.ace file) from the Bee2Binaries page. The page also has instructions on how to format the CompactFlash card to boot with the bitstream.
Next, you will need to prepare a root filesystem for Linux. To place the root filesystem on a CompactFlash card, read Bee2DebianRootFs and to place the filesystem on a NFS mount (this has much better performance) read Bee2DebianRootNfs.
Once the root filesystem is in place, you will need to configure your BEE2 board's MAC address, baud rate, and boot string. The Bee2LinuxConfig page explains how to use the test-suite to configure the board. Once this is done you are ready to boot the design. Information on booting this design can be found in the Bee2Reference page.
Building Reference Designs
All of the reference designs on the Bee2Reference page have instructions for building the reference design from source.
Designing for the BEE2
Starting with Reference Designs
When you start to design your own projects for the BEE2, the best resource and starting point is the existing reference designs. If you are designing in XPS, starting with a base design like the Linux reference makes it easy to import common infrastructure like system clocks and constraints.
BEE2 Infrastructure Documentation
If you need information on the general operation of BEE2 specific subsystems (such as the memory system, communication infrastructure, or configuration) the best resource is the BEE2 overviews. You can find overviews of all the major subsystems on the homepage of the BEE2 wiki.
For more indepth technical detail on individual hardware cores that have been provided with the BEE2 board you should visit the Bee2Cores page. This contains documents on low-level technical detail of the cores including functional descriptions, register definitions, and timing information. Most users won't need this level of detail, as most of the cores come with drivers to abstract away most of the details.
Finally, for information on specific pin locations for the BEE2 control and user FPGAs you can visit the Bee2Pins page to download a spreadsheet that contains the relevant information. Almost all of the pin locations are either embedded in the specific hardware cores or are available in example UCF files in the reference designs (all designs have their UCF files in data/system.ucf).
Sometimes there are certain tips or tricks that you have to play in order to get things working right. Rather than bury these details in the guts of some other document, we have created the Bee2Errata page that is a quick guide to these tricks. Before embarking on your own design, or if you encounter something weird in your design, this is the first place to look. Also, if you come across any specific details that don't fit anywhere else in the documentation, please dump them in the errata.
Getting More Help
If the Wiki documentation doesn't have the information you need, there also exists a BEE2 users mailing list to which you can post questions. If you would like to post a question, you must first register for the mailing list. To do so, please visit https://email@example.com
To prevent spam the list is not completely open. Your subscribe request will be reviewed by the maintainer of the BEE2 list and you will be granted access to post to the list as soon as that is done. If the maintainer is unaware of your relationship to the BEE2 project, you may receive mail asking who you are.
Finally, if you have comments or questions that can only be answered by the BEE2 maintainers please feel free to send email to firstname.lastname@example.org. Please restrict these emails to questions that you feel could not be answered by the larger BEE2 community, problems with the website or other infrastructure, or comments and feedback.