3,866 research outputs found

    Evaluating Rapid Application Development with Python for Heterogeneous Processor-based FPGAs

    Full text link
    As modern FPGAs evolve to include more het- erogeneous processing elements, such as ARM cores, it makes sense to consider these devices as processors first and FPGA accelerators second. As such, the conventional FPGA develop- ment environment must also adapt to support more software- like programming functionality. While high-level synthesis tools can help reduce FPGA development time, there still remains a large expertise gap in order to realize highly performing implementations. At a system-level the skill set necessary to integrate multiple custom IP hardware cores, interconnects, memory interfaces, and now heterogeneous processing elements is complex. Rather than drive FPGA development from the hardware up, we consider the impact of leveraging Python to ac- celerate application development. Python offers highly optimized libraries from an incredibly large developer community, yet is limited to the performance of the hardware system. In this work we evaluate the impact of using PYNQ, a Python development environment for application development on the Xilinx Zynq devices, the performance implications, and bottlenecks associated with it. We compare our results against existing C-based and hand-coded implementations to better understand if Python can be the glue that binds together software and hardware developers.Comment: To appear in 2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM'17

    Ten Quick Tips for Using a Raspberry Pi

    Full text link
    Much of biology (and, indeed, all of science) is becoming increasingly computational. We tend to think of this in regards to algorithmic approaches and software tools, as well as increased computing power. There has also been a shift towards slicker, packaged solutions--which mirrors everyday life, from smart phones to smart homes. As a result, it's all too easy to be detached from the fundamental elements that power these changes, and to see solutions as "black boxes". The major goal of this piece is to use the example of the Raspberry Pi--a small, general-purpose computer--as the central component in a highly developed ecosystem that brings together elements like external hardware, sensors and controllers, state-of-the-art programming practices, and basic electronics and physics, all in an approachable and useful way. External devices and inputs are easily connected to the Pi, and it can, in turn, control attached devices very simply. So whether you want to use it to manage laboratory equipment, sample the environment, teach bioinformatics, control your home security or make a model lunar lander, it's all built from the same basic principles. To quote Richard Feynman, "What I cannot create, I do not understand".Comment: 12 pages, 2 figure

    The AXIOM software layers

    Get PDF
    AXIOM project aims at developing a heterogeneous computing board (SMP-FPGA).The Software Layers developed at the AXIOM project are explained.OmpSs provides an easy way to execute heterogeneous codes in multiple cores. People and objects will soon share the same digital network for information exchange in a world named as the age of the cyber-physical systems. The general expectation is that people and systems will interact in real-time. This poses pressure onto systems design to support increasing demands on computational power, while keeping a low power envelop. Additionally, modular scaling and easy programmability are also important to ensure these systems to become widespread. The whole set of expectations impose scientific and technological challenges that need to be properly addressed.The AXIOM project (Agile, eXtensible, fast I/O Module) will research new hardware/software architectures for cyber-physical systems to meet such expectations. The technical approach aims at solving fundamental problems to enable easy programmability of heterogeneous multi-core multi-board systems. AXIOM proposes the use of the task-based OmpSs programming model, leveraging low-level communication interfaces provided by the hardware. Modular scalability will be possible thanks to a fast interconnect embedded into each module. To this aim, an innovative ARM and FPGA-based board will be designed, with enhanced capabilities for interfacing with the physical world. Its effectiveness will be demonstrated with key scenarios such as Smart Video-Surveillance and Smart Living/Home (domotics).Peer ReviewedPostprint (author's final draft

    Duino-Based Learning (DBL) in control engineering courses

    Get PDF
    © 2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting /republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other worksThis document presents a project to develop freely redistributable materials to conduct educational lab projects with MATLAB, Simulink, Arduino and low-cost plants. This work materials introduce the fundamentals of Control Engineering through exercises and videos. Along with all this, the most important steps and issues appeared in the project are explained, so anyone interested on doing a project can have a starting point instead of starting a project from scratch, which most of times this results hard to implementPeer ReviewedPostprint (author's final draft

    The Chirps Prototyping System

    Full text link
    Oregon State University has been a pioneer in developing a “Platform for Learning” using their TekBots platform as a fundamental part of their electrical and computer engineering curriculum. At George Fox University, we fundamentally affirm this concept of a “Platform for Learning,” but we additionally desire a “Platform for Prototyping.” By “Platform for Prototyping,” we mean a platform that will enable our engineering students to create significant engineering projects as part of a myriad of service-learning projects, student research, course projects, and the senior capstone experience. To be effective across our curriculum, this system must not only be usable by mechanical, electrical and computer engineers, but by engineering students at the end of their first year in the engineering program. As it is difficult to conceive of a significant engineering application that does not have some form of embedded control system, it is almost imperative that these students obtain the ability to understand and control some form of an embedded control system early in the curriculum. This presents some challenges. Many embedded processing systems make use of one microcontroller controlling a variety of sensors and actuators, requiring that one microcontroller program be written to control every detail of the embedded system. Even simple embedded systems can require a multitude of tiny details including modulation for multiple infrared sensors, pulsewidth modulation control for various dc and servo motors, and interfaces to various components such as LCD displays and wireless interfaces. This level of programming sophistication is generally reserved for upper-division ECE courses where interrupts and timers are discussed in great detail. To address these issues, we have developed a distributed embedded processing system called “Chirps.” Chirps are a suite of boards that can communicate with one another using short command bursts, or “chirps.” Rather than having a central controller that needs to manage pulsewidth- modulation and encoder processing for a variety of motors, a Chirp system will contain a Chirps motor controller board that can be accessed using simple commands such as “Move Forward 100 ticks.” This Chirp abstraction will provide users the ability to rapidly assemble and control larger systems (such as robots) from Chirp modules and easily control them using “chirps.” Although detailed functions are moved to individual control boards, a central controller must still be provided to control the system and send and receive “chirps.” For this purpose, we have enhanced the very popular open-source suite of hardware and software provided by the Arduino project. The Chirps controllers are built on the foundation of the Arduino Diecimila board, with a power and communication interface added to facilitate the “chirp” system. In the first-year engineering sequence, students are taught how to program the basic controller and make calls to the various Chirps boards. Upper-division ECE students develop new Chirps boards as part of the microprocessor course. These boards are targeted toward the needs of the various projects being developed throughout the curriculum. Using the Chirps system, Y University engineering can rapidly prototype and control a variety of significant engineering systems

    Low\u2010cost, High\u2010Capability, Embedded Systems for CNC Education and Research

    Get PDF
    Teaching of CNC and CAD/CAM technologies has recently taken a great importance, due to their development, to the great number of solutions available on the market, and to the frequent updates. Nevertheless, one of the most urgent need is to improve the quality of education coping with a rapidly growing number of students. Nowadays, in comparison to the past, many Open-Source technical solutions, both hardware and software, are available to realise easily and cheaply some scaled-down prototypes of numerical control machine tools: these are able to work perfectly and can be employed as a learning method. This paper shows some past experiences regarding the development of some degree thesis works. In particular, it is shown how to implement a numerical control (LinuxCNC) in two specific cheap embedded systems (Raspberry Pi and BeagleBone Black). In this way, a student has the possibility of simulating the working of a complete Numerical Control and of learning interactively its way of programming. The final result and student response have shown an excellent effectiveness of these experiences and easy to use as powerful tool in engineering education

    Development of a MATLAB/Simulink - Arduino environment for experimental practices in control engineering teaching

    Get PDF
    This project presents the steps followed when implementing a platform based on MATLAB/Simulink and Arduino for the restoration of digital control practices. During this project, an Arduino shield has being designed. Along with this, a web page has also been created where all the material done during all this project is available and can be freely used. So anyone interested on doing a project can have a starting point instead of starting a project from scratch, which most of times this results hard to implement. Taking all this into account, the document is structured in the following manner. The first chapter talks about the hardware used and designed. The second one explains the software used and the configurations done on the laboratory’s PCs. After that, the web page Duino-Based Learning is explained, where you can find the five projects carried out in the "Control Automàtic" subject with their corresponding results. In this section too, as an additional research, the implemented indirect adaptive control will be explained, where the parameter estimation has been done by the Recursive Least Square algorithm. The last four sections before presenting the conclusions of the work, correspond to a satisfaction questionnaire done to the teachers that have used the setup, the costs and saves of the project, the environmental impact and the planning of the project respectively
    corecore