www.XilinxBoards.com
Integrated PlatformsTechnology Partners
Custom Solutions
Board Platforms
Development Tools
FPGA PLATFORMS
Your Solution... Built on BittWare
BittWorks II Toolkit
Application Development Software for BittWare FPGA Boards
BittWorks II Toolkit Includes
• BwHIL: Cross-platform library of C-callable functions for controlling a local or remote BittWare board
• BwConfig: Interface for finding, tracking and displaying information for all BittWare devices in a system
• BwServer: Remote interface via a TCP/IP network for the BwHIL
• BwShell: Interactive command-line shell for PHP scripting language with access to BwHIL API functions
• BwPCI: Customizable PCI Express driver for Linux
• BwMonitor: Interface for controlling the Board Management Controller (BMC) on a BittWare board
• BmcLib: Function library to control the BMC on a BittWare board
• BittWorks Porting Kit: (Optional) Source code and pre-built ports for porting the BittWare Toolkit to other operating
systems
The BittWorks II Toolkit is a collection of libraries and applications for BittWare’s board platforms featuring the Xilinx UlstraScale FPGAs. Designed to make developing and debugging the applications for
BittWare’s boards easy and efficient, the Toolkit provides the glue between the host application and the hardware. The Toolkit supports 32-bit, and 64-bit Windows and Linux platforms.
OverviewThe BittWorks II software tools provide a stable software base designed to get developers up and running on their BittWare boards quickly and efficiently. BittWorks II provides complete hardware and FPGA interfaces, which greatly reduces development time. And because it is based on a consistent, intui-tive API that works across different operating systems, BittWorks II not only reduces the cost of porting efforts, it also allows developers the flexibility of de-veloping on the platform that best fits their needs. Providing further flexibility are remote tools that allow developers to share hardware resources and control their BittWare devices from any network-connected PC, even when the devices are in different locations.
The BittWorks II tools provide a variety of features to allow developers to take full advantage of the FPGA capabilities on the BittWare board. BittWorks II FPGA support includes: complete control of the FPGA via PCIe or USB, custom interrupt service routines, and monitoring of FPGA temperature and power.
This combination of tools results in a software suite that shortens designers’ learning curve while increasing their productivity. Working together, all of these tools significantly ease the effort involved in developing applications for BittWare’s signal processing hardware.
BittWorks II BenefitsRisk Reduction
• Basedonmatureandrobustsoftwaretoolsfromtwode-cadesofdevelopmenteffort
• Backedbyadedicatedsupportteam
Time Savings• IncludescompletehardwareandFPGAInterfaces
• Cross-platformsoftwarereducescostofportingefforts
Flexibility• Remotetoolsallowdeveloperstoworkanywherewithnet-workaccess
• Sharehardwareresourceswithmultipledevelopers
• SwitchbetweenWindowsandLinux,32-bitand64-bitplat-formswithease
Ease of Use
• Developerscangetupandrunningontheirhardwarewithinminutes
• Consistent,intuitiveAPI
www.XilinxBoards.comYour Solution... Built on BittWare
BittWorks II
BwHILBwHIL is a cross-platform library of C-callable functions that allows your program to control a local or remote BittWare board.
BwHIL Features
• Simplifies communication and control between the host and the BittWare board
• Portable, C-callable functions• Cross-platform library• PCI driver allows control of an FPGA over PCIe• Supports custom interrupt service routines
The primary component of the Toolkit, the BittWorks Host Interface Library (BwHIL) provides an API that is compatible with all of BittWare’s boards. BwHIL is structured to model your system with one or more BittWare devices, each device containing a collection of resources. Device entries and board information are stored in databases. Device entries can be made for remote devices so that a device refers not to local hardware, but to hardware in another system over a TCP/IP network. BwHIL provides functions for reading and writing memory, board control, and interrupts. It allows control of the FPGA over PCIe using the BwHIL PCIe driver, and it supports custom ISR scripts without the need to recompile the kernel or write a kernel driver. It is also eas-ily portable; written entirely in C, the same source code compiles for Windows and Linux. BwHIL builds and installs on many platforms:
• Windows 7 / XP / Vista / Embedded• Linux RedHat Enterprise / Fedora / uCLinux (NIOS) / Debian / Ubuntu• X86 / x86_64
BwServerBwServer provides remote access to the BittWare board over TCP/IP via the Host Interface Library.
BwServer Features
• TCP/IP server for accessing Toolkit programs from a remote machine• Can be used with or without a user interface• Supports daisy-chaining of multiple BwServers• Supports unique names and access restrictions
The BittWorks Server program (BwServer) is a TCP/IP server that allows the Toolkit programs to connect to it from a remote machine, using a mapped device number. HIL function calls are sent over TCP/IP to the BwServer, which sends the calls to the HIL residing on the server machine, which in turn com-municates with the BittWare hardware.
Establishing a connection is simple. Once communication is established, the TCP/IP link is virtually transparent to the user, and the program acts almost as if the hardware resides in the client machine. This can be especially useful for embedded systems or any system without a graphical user interface. BwServer supports daisy-chaining of multiple BwServers; it also supports unique names and access restrictions.
BwShellBwShell is an interactive command-line shell for PHP that pro-vides access to the BwHIL functions and the BittWare hardware.
BwShell Features
• Command line access to nearly all HIL functions• BittWare shell extension for PHP to interface between the PHP, HIL, and
BWIO libraries• C/C++-like language constructs• Inline help• Large PHP standard library and extensions
BwShell is BittWare’s interactive command-line shell for the PHP scripting language. Its main purpose is to provide command-line access to BwHIL func-tions and the BittWare hardware that those functions interface with.
BwShell allows users to take advantage of the powerful PHP scripting language when authoring scripts to control BittWare hardware. It provides a BittWare shell extension for PHP to interface between the PHP and BwHIL libraries. Nearly all of the BwHIL functions in the public API are provided in the module. BwShell supports C/C++-like language constructs as well as a useful inline help system. The PHP Standard Library contains a large number of functions to handle math, strings, arrays, files, streams, sockets, etc.; it also includes exten-sions, which provide more support for cryptography, date and time, databases, file systems, xml, compression schemes, etc.
BittWorks tools provide drivers, libraries, utilities,
and example projects to make your software and
FPGA development easier and more efficient.
User Project
Altera FPGA
BittWare Hardware
USB
BMC
BittWorks IILibraries & Driver
Driv
er/L
ibra
ry
Mat
Lab
App
licat
ion
SW Development
Xilinx Vivado
FPGA Development
Hos
t Pla
tform
USB Blaster
FPG
A D
evK
it
(HDL)
Cus
tom
Cod
eLogic
Analyzer
Use
r App
licat
ion
BwSe
rver
BwCo
nfig
BwM
onito
rBw
Shel
l
BittWorks IIUtils
Flash/FPGA Programmer
PCIe
Viva
do IP
In
tegr
ator
www.XilinxBoards.comYour Solution... Built on BittWare
BittWorks II
BwConfigBwConfig provides an easy-to-use interface for finding, tracking and displaying information for all BittWare devices in a system.
BwConfig Features
• GUI or console versions• Scan for devices and map them• Monitor mapped network devices• View device properties• Open devices and perform resource actions
BwConfig (BittWorks Configuration Manager) is the main configuration tool for BittWare boards. It provides an easy-to-use interface for finding, tracking and displaying information for all BittWare devices in a system. BwConfig allows users to change device numbers, map remote devices, and get and set board and processor properties. BwConfig supports resetting and loading FPGA images without the need to attach additional cables or hardware.
BittWorks Porting KitThe BittWorks Porting Kit contains the source code for the BittWare Toolkit to allow designers to port the Toolkit to the operating system of their choice.
BittWorks Porting Kit Features
Includes pre-built ports• MSVC++ projects supporting x86, x86_64• Linux Makefiles supporting x86, x86_64
Contains BittWare Toolkit Source Code• Entire Host Interface Library source code• All application source code• Remote device protocol source
The Porting Kit provides project and makefiles for Windows and Linux and is written mostly in C for portability. The Porting Kit allows developers to adapt the operating system-dependent portions of the HIL to their system’s requirements. Once they have defined the operating system-specific functions, users can compile the HIL and then link it with the Toolkit utilities or their host programs. The Porting Kit is sold separately from the BittWorks II Toolkit. Contact BittWare for details.
BwPCIBwPCI provides a customizable PCIe driver for Linux systems.
BwPCI Features
• Support for memory mapping• Compatible with any PCI Express vendor ID or device ID• Installation scripts for RedHat and Debian Linux
BwPCI is BittWare’s PCI Express driver for linux. Composed of a user library component and a kernel module component, BwPCI provides a gateway between an end-user application and BittWare PCIe devices in a system. Distributed with complete source code, the driver supports custom modifica-tions, including interrupt service routines, which allows customers to use and customize the BittWorks II Toolkit for lower latency transactions without writing their own driver..
BwMonitor and BmcLibThe BwMonitor (GUI and console version) and BMC Library (BmcLib) allow communication with the Board Management Controller on BittWare FPGA boards
BmcLib and BwMonitor Features
• Allow higher level of communication with BMC devices on BittWare board
• Cross-platform library of c-callable functions that uses the IPMI protocol• Control local or remote devices• GUI and console interface to control board management capabilities
BittWare’s FPGA boards feature a Board Management Controller (BMC), which provides voltage, current, temperature monitoring; configuring of pro-grammable clocks; presence detection and access to other peripheral compo-nents; and field upgrades of BMC firmware. The BittWorks II Toolkit provides utilities (BwConfig, BwMonitor) and libraries (HIL, BmcLib) for communicat-ing with these devices at a higher, more abstract level.
The BmcLib is a cross-platform library of C-callable functions that allows your program to command a BMC on a local or remote BittWare device using IPMI. BittWare Board Monitor (BwMonitor) is a view into the board management ca-pabilities of your BittWare hardware. BwMonitor shows current sensor values, status information, and provides commands for viewing detailed information or loading firmware onto your device.
BwMonitor provides a view into the baseboard man-agement capabilities of your BittWare hardware.
BittWare, Inc.45SouthMainStreet|Concord,NH03301USAPhone:603.226.0404E-mail:[email protected]
Your Solution... Built on BittWare
DS-BWII | Rev 2015.09.24 | September 2015
© BittWare, Inc. 2015UltraScale, Virtex, Kintex, and Vivado are all registered trademarks of Xilinx. All other products are the trademarks or registered trademarks of their respective holders.
Download and install the BittWorks II Toolkit.
Installs in minutes with minimal user interaction.
Install the BittWare Hardware.
BittWorks II supports BittWare’s most recent board families.
Run BwConfig.Find BittWare devices and map
them to the local PC.
Run BwShell.(Optional)
Use PHP functions to access mapped devices and gather
functions into scripts to automate tasks.
Create an application.Use the HIL API to create an application to interact with BittWare hardware.
Deploy the system.Deploy the application to Windows or Linux, or use the Porting Kit to port the HIL to
another operating system.
BittWorks II Toolkit User ExperienceThe BittWorks II Toolkit significantly eases the effort required to develop applications for BittWare’s UltraScale board platforms. The following is an example user experience that steps through installing the Toolkit to deploying the final application.
Install the Toolkit and BittWare HardwareUsers can download and install the BittWorks II Toolkit quickly and with minimal interacation. After installing the Toolkit, the BittWare hardware can be installed in the system.
Map the BittWare Devices and Configure ResourcesThe BwConfig utility contains an easy-to-use PCI and network scanner to find local or remote BittWare devices and map them to the local PC. BwConfig dis-plays device and resource properties of the BittWare hardware. When a device is opened, some of its resources appear in the list, allowing them to be reset or loaded with an FPGA image.
Access Mapped DevicesBwShell provides access to all of the mapped devices. Users can enter PHP func-tions and commands into the shell to read and write to device resources. Later, functions can be gathered into scripts to automate tasks.
Create an ApplicationWith the BwHIL API, users can create an application to interact with BittWare hardware from C/C++/C#. BwHIL allows users to open the device, load the FPGA, read and write memory locations, and create and install an interrupt service routine.
Deploy the SystemThe BwHIL Programmer’s Guide provides instructions on redistributing BittWare libraries. BwHIL provides the means for field upgrades of the FPGA images. Users can deploy their application for Windows or Linux, or use the Porting Kit to port the BwHIL to another operating system.
BittWorks II Toolkit installs quickly and easily and pro-vides tools for mapping, accessing, and configuring BittWare devices; creating an application to interact with the BittWare hardware; and deploying the final ap-plication.
Ordering Options
BW2TK-WIN-FDK-01 - BittWorks II Toolkit for Windows
BW2TK-LNX-FDK-01 - BittWorks II Toolkit for Linux