Skip to content
  • Home Page
  • Design Services
  • Articles
    • Using PCI Express Over Cable with Xilinx Virtex-5 FPGAs
  • Blog
  • About Us
  • Contact
  • System Architecture
  • Hardware Design
  • Firmware Design
  • Software Design

    Dynamic Engineering Corporation - www.dyenco.com

    Software Design

    In the technical space, the meaning of terms “software” and “firmware” are often blurred. We define “software” simply as the code or programs that are generally installed on a device by the end-user. Typically this a PC, but could be any host-controller device – increasingly smartphones, iPads/iPods and so on.

    Module/Board-Level Test Software

    Depending upon the system-level design, once a PCB is assembled it often must be integrated with a host controller in order to be tested and exercised. This might entail the use of some form of adapter/converter – in some cases this could require the design of a test fixture.

    System-Level Test Software

    If the system is controlled by some form of host computer, we often write software to test and exercise the overall system. This tends to be a lower-level form of software than the product software in that it is intended to allow examination and modification of registers within the hardware. As an engineering tool it may tend to be a little “rough” compared to a typical end-user application.

    Demonstration Software

    Like the System-Level Test Software above, System-Level Software allows for the testing of the entire system, but typically at a higher level. If may be the same software as the System-Level Software, but perhaps a different “mode”. In addition to demonstrating the operation of the system itself, the Demonstration Software also demonstrates the use the hardware-level interface – should the client choose to write the Product Software.

    Product Software

    The Product Software (or user software) is the end-user application software and typically implements a GUI (Graphical User Interface). Sometimes the client will opt to perform this step in order to control the design of the user experience. Other times, the client will design the layout and controls and we will provide the actual code. Finally, we can provide a full design based on the client’s needs. Every client’s needs are unique, we fill whatever role that is required to meet those needs.


    https://www.dyenco.com/services/software-design/
    © 2011-2026 Dynamic Engineering Corporation - All rights reserved - www.dyenco.com
    info@dyenco.com
    (303) 776-4658