BittWorks II Toolkit
Application Development Software for BittWare FPGA Cards
BittWorks II tools provide drivers, libraries, utilities, and example projects to make your software and FPGA development easier and more efficient.
The BittWorks II Toolkit is a suite of development tools for BittWare’s FPGA-based hardware that serves as the main interface between the BittWare card and the host system. The Toolkit includes drivers, libraries, utilities, and example projects for accessing, integrating, and developing applications for the BittWare card. Utilities and drivers connect the card to the host – whether via PCIe, USB, Ethernet, or serial port – and provide easy access to the card’s system monitoring features and Flash programming. Extensive libraries provide a consistent, intuitive API for integrating the card into the system, and example projects illustrate data movement and provide a starting point for development. The Toolkit supports 64-bit Windows and Linux platforms.
- BwHIL: Control a local or remote BittWare card
- BmcLib: Control the BMC on a BittWare card
- BwConfig: Control BittWare hardware in a PC
- BwServer: Access the BittWare hardware remotely
- BwShell: Quickly debug live FPGA
- BwMonitor: View board health
- BwPCI: Customizable PCI Express driver for Linux
- Jungo: Generic driver for Windows
- Device setup, device information
- FPGA developer controls and debugs live FPGA images
During Development & Application Run-Time
- Driver and APIs for system integration
- Flash loading and FPGA booting
- Virtual PCIe hot-swap reduces time spent waiting for system reboots
- Monitor board health via Board Management Controller (BMC)
- Remote board upgrades: FPGA loads, BMC firmware, programmable clocks
The BittWorks II Toolkit libraries provide a stable API that scales with new cards. The functions are C-callable and are cross-platform, allowing them to be run anywhere that Linux or Windows runs.
The BittWorks Host Interface Library (BwHIL) is a library of C-callable functions for controlling BittWare cards.
- Supports PCIe and USB devices
- Includes functions for FPGA configuration, reset, memory access
- Includes functions for Flash loading, erasing, memory access
- Supports virtual PCIe hot-swap
BmcLib is a function library to control the BMC on a BittWare card.
- Manage board sensors
- Program clocks and voltages
- Perform firmware field-upgrades
The Toolkit features several utilities that allow you to configure your device in the system, interact with FPGA projects and debug the FPGA, control the BMC on your card, and access the card from a remote system.
BwConfig is an interface for configuring BittWare devices in a system.
- Control BittWare hardware in PC
- Scan and map new devices via PCIe or USB
- View device resources and information
- Control FPGA booting and Flash loading
- Backup Flash to restore a factory default image over PCIe
BwShell is an interactive command-line shell for PHP scripting that provides access to the BwHIL API and the BittWare hardware.
- Quick debug of live FPGA
- Large PHP standard library and extensions
- Refer to FPGA Development Kit components by name without hard-coding addresses
- Access nearly all library functions
- Inline help
BwMonitor is an interface for controlling the Board Management Controller (BMC) on a BittWare card.
- View board health
- Read and log sensors
- Control sensor thresholds that determine when the board will shut down
- Load programmable clocks
- Voltage overrides
- Access devices via I2C
- Upgrade the BMC firmware
- Monitor the board over PCIe or USB
BwServer provides remote access to the BittWare card over a TCP/IP network via the BwHIL.
- TCP/IP server for accessing Toolkit programs from a remote machine
- Can be used with or without a user interface
- Allows daisy-chaining of multiple BwServers
- Supports unique names and access restrictions
The BittWorks II Toolkit includes drivers for Linux and Windows. The Linux driver is BittWare’s fully customizable PCI Express driver, and Windows systems use a standard Jungo driver.
BwPCI is a customizable PCI Express driver for Linux.
- Full source code included
- Fully customizable interrupt service routines
- Customer control for lowest latency, highest throughput
- MSI support
- User / Kernel interaction and custom command support
- Use with any PCI vendor / device ID
Jungo Windows Driver
Windows systems use a standard driver from Jungo.
- Customizable interrupt service routines
- MSI support
- Use with BittWare vendor / device IDs
Several reference designs are available to provide a starting point for your application development. These examples are available to download on BittWare’s developer site.
Download installers for the Toolkit from BittWare’s developer site: developer.bittware.com. The Toolkit installs quickly and allows you to begin using your BittWare hardware immediately.
- 64-bit Linux
- .RPM for Centos
- .DEB for Ubuntu
- 64-bit Windows
BittWare’s developer site – developer.bittware.com – provides many resources to help you get started with the BittWorks II Toolkit. Once you create an account, you can log in and download the latest release of the Toolkit, view complete online documentation for all of your BittWare products, and find reference designs and examples.
BittWare Technical Support
BittWare’s support team of technical experts are available to answer any installation and usage questions for BittWare products, while also providing assistance with more advanced technical problems that may arise. With your developer site account, you can create and access your technical support issues in our issue tracking system.
BittWorks II Toolkit provides software support for BittWare’s UltraScale+ (XUP-xxx) and Arria 10 (A10) product families. The BittWare SDK provides software support on our latest generation of cards (Agilex, Speedster7t, and Stratix 10*).