Friday, November 14, 2014

A Short Overrview Towards EDA Tool Selections: Schematic Capture and FPGA Development

As the author being an aspiring student of mathematics and electrical engineering -- presently, studying formally in a series of sort of introductory courses affiliated with the latter discipline, electrical engineering -- the author has had something of an opportunity to develop a sense of familiarity, mostly informally, with regards to a small number of software tools such that might be denoted as Electronic Design Automation (EDA) platforms.

In the college that the author is formally a student to, the Multisim platform -- as developed by National Instruments -- is the schematic capture program that the courses apply, specifically for any laboratory assignments including a circuit schematic and not implemented in regards to introductory FPGA programming. For FPGA programming, namely as in the introductory digital logic course, the FPGA platform in use is Altera's Quartus II Web Edition.

The author not being a veteran electrical engineer, this short comment will not be accompanied with any manner of salesmanship about those specific EDA platforms. Multisim certainly presents a fairly straightforward GUI, with a simple interface for circuit simulation. Multisim implements VHDL and Verilog. Quartus II, then, is certainly one of the the available platforms for programming Altera FPGAs. Altera's Cyclone III FPGA is applied in one eSOC board, such that is used, albeit exclusively, in the single introductory digital logic course at the college. Perhaps the eSOC board might present a challenge for circuit analysis, at some time, as it's not accompanied with any sort of schematic or other design files, in its current edition.

Certainly -- regarding those specific EDA tools -- though those would be applied of any single college or university, but certainly, those may not represent the only EDA tools in the known universe.

Onto Schematic Capture and Circuit Analysis

As alternate to Multisim, there's Cadence's OrCAD Capture. OrCAD supports the Verilog and VHDL formats, OrCAD, moreover, provides support for projects applying the EDIF format, such as is latterly subsumed of ISO 10303 and the STEP model. There being a few editions of the complete OrCAD EDA platform, OrCAD Lite is the free edition -- certainly, in some features, extending free/open source software, such as the GNU Compiler Collection (GCC). Insofar as OrCAD licensing, there is -- in fact -- an educational licensing model available from Cadence, for licensing of the OrCAD platform.

For those of us whom might be approaching OrCAD as student or hobbyist, perhaps also for those whom might be approaching OrCAD as, each, an aspiring electrical engineer, Cadence publishes a wealth of documentation about the OrCAD platform, broadly:

Personally, the author became aware simply of the existence of the OrCAD platform, courtesy of Edward Brumgnach's book, i.e [Brumgnach2014] Cadence OrCAD Capture Version 16, a Primer: Circuit Analysis, Electronics, and Digital, Kindle edition. The introduction presented in [Brumgnach2014] is certainly nothing intimidating, providing an overview of the OrCAD Capture graphical user interface and a number of the fundamental features of OrCAD Capture -- such as for circuit component placement, circuit simulation, and quantitative circuit analysis using OrCAD -- all addressed in a context of DC analog circuitry. The introduction, as such, is conveyed as in parallel to a short survey of fundamental principles of the electrical sciences, focusing mainly on Ohm's Law, as likewise in regards to DC analog circuitry. A study of the significance of electrical impedance -- as with regards to a current of a varying polarity, as within a circuit of a resistive element and one or more of each of a dielectric capacitive element and an inductive element -- such a study might be left as an exercise for the reader.

Notably, perhaps, the schematics components of the design files for the BeagleBone Black platform are published in DSN format, a format supported by by OrCAD Capture.

Onto the Papilio FPGA Platform

In addition to OrCAD, specifically as with regards to FPGA projects, this web-log cordially recommends Xilinx FPGAs. In regards to evaluation boards for FPGA programming, if not also in regards to environments for study and for prototyping, Xilinx Spartan FPGAs, namely, are applied in the Papilio platform -- respectively, a Spartan 3E FPGA in Papilio One, and a Spartan 6 FPGA in Papilio Duo. For programming the Papilio platform, the ZAP IDE is available, as extending of some functionality provided specifically in Xilinx ISE Web Pack.  ISE WebPack is likewise available with a free license, as a feature of the Xilinx ISE Design Suite.

Linux may be a recommended operating system platform for applying ISE Web Pack's tools. This web-log recommends the Kubuntu Linux distribution. Linux can be installed simultaneous to a Microsoft Windows operating system, either with a dual-boot configuration, or in a virtualization platform installed to the Microsoft Windows OS -- at which, this web log recommends Virtualbox for a single-user desktop environment, and Xen  as for enterprise-scale virtualization scenarios in so much of software defined networking (SDN).

Xilinx publishes a wealth of documentation, likewise -- such as about Xilinx' Spartan FPGA products and the ISE Design Suite tools as licensed under the ISE WebPack platform and as available under other licenses for Xilinx ISE Design Suite -- for example, Tutorials about Xilinux ISE Design Suite, and User Guides as with regards to the same design platform. For applications of the ISE Web Pack tools on Linux platforms, some additional documentation is available of the Arch Linux Wiki. Certainly, in installing even so much as the Xilinux ISE WebPack edition of the ISE Design Suite platform, a broad range of features are then made available, within the containing operating system.

An introduction to digital logic, as well as the VHDL hardware definition language and FPGA programming, is available in PDF and in ASCIIDOC formats [web][github]. For general prototyping with the Papilio platform, this web log recommends the ZPUino soft processor for the Papilio FPGA platform. The Papilio board -- such as Papilio One or Papilio Duo -- when programmed with the ZPUino soft processor -- may be programmed in applications of a syntax similar to the Arduino sketch file format [Arduino] though namely in using the ZAP IDE.

Towards programming a Papilio FPGA board with the ZPUino soft processor  and then developing an initial sketch file in the ZAP IDE,  Gadget Factory publishes a convenient getting started tutorial, addressing both matters. The tutorial introduces the overall working process for programming Papilio with a soft processor -- there, using the Xilinux ISE tool and the Papilio schematic library, as published by Gadget Factory, to the matter of uploading a bit file to the FPGA board, effectively thereby installing ZPUino to the Papilio board -- followed, then, with an introduction towards programming the ZPUino soft processor with a sketch file in Zap IDE,

Towards MBSE modeling for FPGA Environments

Certainly, FPGA programming represents a broad subdomain of electrical engineering. Towards a matter of model-based systems engineering (MBSE) perhaps towards developing a sort of macro-level, object-focused analysis towards an FPGA system, this article directs the reader's attention towards the ENOSYS Tool set for FPGA systems synthesis. as published courtesy of Softeam. The ENOSYS tool set develops something of a unique view about FPGA systems programming, effectively extending the Object Management Group (OMG) specifications for the Unified Modeling Language (UML) extended then into an EDA domain. The ENOSYS toolchain effectively presents an interface onto bare metal hardware, at Falcon ML,

Towards a singular overview about the Unified Modeling Language (UML), as well as the Systems Modeling Language (SysML) and the MetaObject Facility (MOF) -- of which, in extending of the MOF meta-metamodel, as defined by the OMG, the specifications of UML and SysML are implemented, literally, as metamodels -- the  reader's attention is directed to a book published by Morgan Kaufmann in affiliation with the Object Management Group, a book by Tim Weilkeins, Systems Engineering with SysML/UML: Modeling, Analysis, Design

Disambiguation: This article does not address the ENOSYS error code, as defined in contemporary C toolchains, "Function not implemented".

Segue to "Fin," Towards Theory and Praxis

In the foundry text, PhilosophiƦ Naturalis Principia Mathematica, Isaac Newton develops a concept of a juxtaposition of geometric and mechanical views with regards to mechanical systems. Such a juxtaposition may be understood as being reified, effectively, in electrical engineering -- analogously, as with regards to models for circuits, and of physical circuits, in situ. Certainly, the history of circuit modeling extends at least so far back as to the original development of Ohm's Law, previous to so many developments in analog and digital electrical systems, and -- then furthermore -- to the origins of the contemporary Euclidean geometry.

Towards developing a sense of knowledge with regards to practical applications of mathematics and the electrical sciences, certainly resources abound, as in collections of formal, public libraries and online. Towards online resources, as with regards to theories developed in and of the electrical sciences, this article cordially recommends: Hyperphysics -- a resource published online, by the Department of Physics and Astronomy at Georgia State University.

With regards to studies of practical applications for the electrical sciences, this article recommends the online resources published by each of: