The development of experimental sciences and engineering, benefits from the ability to obtain reliable data from controlled situations and process as measurements and comparisons. The tools that allow us to obtain this information are the instruments.

An equipment that allows a measurement or acquisition of information for a specific experiment or work is a permanent requirement in research laboratories, conventional low-cost tools do not always allow adequate customization, and only the most expensive equipment allow programming, configuration or customization. Therefore often, the researchers of low resource centers do not have adequate tools and are in need of make themselves small application specific electronic systems. Most of time, the hardware and software development for such kinds of devices are not shared and also not reusable. Virtual instruments are a good alternative because are cheaper than conventional instruments and also more flexible.

With the exponential increment of complexity of the reconfigurable logic devices, the Field Programmable Gate Array (FPGA) becomes an attractive element for build reconfigurable virtual instruments, because the inherent flexibility.

Implementation of virtual instruments

One of the main goals of this project is build all the code (HDL and PC Software) in a modular way. The Simple Bus Architecture (SBA) allows us to use predefined intellectual property cores (IP Cores) in VHDL and interconnect them, also enabled us to reuse the code in all designs.

All the instruments, Oscilloscope, I-V Curve Tracer, Data logger and Arbitrary wave generator, described in this project can communicate with the PC directly, using a high-speed serial interface, wireless using Bluetooth and some of the instruments support access to Ethernet network using a instrumentation server, that allows remote communication of the instruments through the local area network or using Internet, with multiple remote software clients.

The PC software has been developed using Lazarus, a cross-platform (Windows, Linux, OSX, etc.) integrated development environment (IDE) for rapid application development (RAD) based in free Pascal.