Showing posts with label EDA. Show all posts
Showing posts with label EDA. Show all posts

Wednesday, December 3, 2014

Free Book about Op-Amp Applications, from Texas Instruments

I was looking for a solid reference resource, this evening, as with regards to design of frequency-domain active filters in audio and signaling applications. I found the following the eBook. It seemed that it would be fit to share a note about, here at my DSP42 web log. Published by Texas Instruments in 2002, the eBook is titled, Op-Amps for Everyone.

Across all of 464 pages of PDF format text, the eBook provides a comprehensive introduction to op-amps -- now available in free, PDF eBook format. The eBook is published by Texas Instruments, but provides a vendor-agnostic, essentially non-proprietary view with regards to op-amp applications.

This eBook provides introductions to concepts and applications of op-amps, with corresponding mathematical formulas throughout. As a small sampling of the topics addressed in the eBook:
  • Chapter 3 of the eBook addresses op-amp applications in a generic sense, focusing on methods for applications of op-amps within common kinds of amplifier circuit, including: Inverting amplifiers; non-inverting amplifiers; differential amplifiers; video amplifiers; etc. 
  • Chapter 4 of the eBook provides a contrast between single-supply and dual-supply applications of op-amps. Chapter 15 of the eBook is dedicated to oscillator designs, for generating sinusoidal waveforms. 
  • Chapter 16 of the eBook is dedicated to discussions of active filter designs. 
The eBook addresses a number of concepts that might be addressed, in parallel, in the course material of the DeVry University Online ECT-246 course. The eBook also provides some information about some additional concepts, such that may be encountered -- broadly -- within a context of design and analysis of op-amp circuits.

To the aspiring software programmer, perhaps the eBook may serve to provide a convenient, singular reference model for design of an electronic design automation (EDA) tool for amplifier design and analysis in frequency-domain applications.

Sunday, November 30, 2014

Offhand sketch for object model of unspecific quality

Ed. Note: The web-based "WYSIWYG" editor for Google's Blogger service does not handle "angle brackets" very well. One must enter the character entities "&<" and "&>" manually. So, here is edition 3 of this article. now partially un-mangled via the "WYSIWYG" editor. The "WYSIWYG" blog entry editor had nearly destroyed this item, when its first edition was published.

Object: #<document "μA741x General-Purpose Operational Amplifiers">
Type: "pdf"
Format: #<media "pdf">
Source: #<uri http://www.ti.com/lit/ds/symlink/ua741.pdf>
Annotations:
    #<annotation metadata:annotation "Op-Amp" @ spchamp 15:30 MST>
    #<annotation media:application "Data sheet" @ spchamp 15:30 MST>
    #<annotation inv:part "UA741CP" @ spchamp 15:35 MST>


Object: #<inv:part "UA741CP">
Annotations:
    #<annotation inv:mfgr "Texas Instruments" @ spchamp 15:42 MST>


Use cases (article):

  • Whiteboard
  • Notes
Use cases (data model)

  • Document Management
    • Parts inventory management
    • CIIDR Project
    • Student's own notes
  • Project Management (Content Development)
    • Dissertation Development
      • Bibliography 
    • White-board
      • e.g. To sometime answer a question, perhaps: "Why is 'op-amp' just denoted as an annotation, there?"
  • GUI
    • Desktop Applications
    • Mobile/Thin Client Applications
    • "Workshop" Applications
Why this is just in an outline format:

  • This article is presently a sidebar beside some fairly tedious "Lab work".
    • in which exactly one UA741CP is applied, together with a total of four ratings of resistor, one linear potentiometer, a DC power supply, and the inevitable LED
  • Why "So unspecific"
    • Because it's an unspecific design, presently
    • But really not to be presented for easy rip-off by touring entertainers.
  • Unpublished "Previous work"
    • Annotation object model for Common Lisp (design sketch)
      • One may as well develop some kind of a SLIME-contrib extension for it, one supposes 
        • to "hide the angle brackets," for instance, 
        • instead, to display the annotations for, each, their "Preferred label"
          • with annotation-of-annotation, namely for purpose of recording:
            • author of annotation
            • time when annotation was created
            • time when annotation was last edited (linked with object/annotation edit history)
            • author of last edit (linked with object/annotation edit history)
            • ...in a database of sufficient extensibility to be able to record such things, in a generic regards, and with a free-open source platform in the same -- noting that Java's community process is probably an important part how Java has survived the acquisition by Oracle, the acquisition of Sun Microsystems.
      • integrating with SKOS
      • in Common Lisp
      • for "Such as this" and not only "Such as this"
        • also because literature
        • and language
        • and does one mention, language?

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:

Sunday, October 5, 2014

Notes - Towards developing a Circuit Modeling and Circuit Analysis Platform in Common Lisp

Though further delaying of the weekend time as I'd set aside for some student work, I would like to make a couple of quick notes, presently, with regards to developing a circuit design and analysis platform in Common Lisp. This is partly in referencing XCircuit, also partly in referencing the approach I'm trying to develop for such de rigeur analysis of AC circuits as I observe is represented in one course of DeVry University Online.

Things a circuit design platform may need:
  • A library of circuit components
    • XCircuit has such a thing organized in a unique regards.
    • Fritzing uses SVG
    • KiCAD - I'm unable to find any "simple" analog circuit components of its component library, however there's clearly a lot of digital components in the KiCAD circuit component library
  • A circuit analysis model
    • Common: Derivatives of the original Berkeley SPICE
      • PSPICE - Commercially licensed by Cadence, as a part of the Cadence OrCAD platform. It's an extensible platform, however within its commercial and academic license models.
      • NGSPICE - free/open source software.
    • ...
  • A desktop environment
    • With either GTK, QT, or even Microsoft Windows "widgets," a desktop environment would be assumed to be available complimentary to the respective GUI toolkit -- namely, GNOME in any edition, KDE, or the Microsoft Windows Explorer shell.
    • Author is not sure what there may be towards such a matter, if in "state of the art" of developments in Common Lisp
      • Lisp Machines and "The state of the art" for desktop computing
        • cf. MIT CADR, Symbolics, XEROX, Texas Instruments, ...
        • cf. NeXT ...
'Fin'

Friday, October 3, 2014

Towards Development of a singular EDA Platform - A Student's Commentary

Sidebar of a Student's Lament

Though I'm not much a fan for chatting too lightly about it, this year I've been a student of an electronics and computing program at an online university, namely DeVry University Online (DVUO) in DVUO's associates program in the DVUO ECT department. It's a challenging program, I consider, but the challenge is not always only in the course material itself. Firstly, there's the matter of trying to be a student of an electronics and computing program at DVUO, with lab, while not living anywhere near a formal DVUO campus. I've received quite some stunning items, at that -- in one item, a nice shiny black box, with all sorts of "bizarre" electronics things inside. It's nothing I could wish to carry around, for any purpose, but it's what DVUO sent to me -- one Knight Electonics ML-2010. I also own an oscilloscope, now. I can count, on two hands, how many times I've needed either of those expensive items of equipment, candidly. That I'm able to afford those items, on a scholarship, I'm grateful for that much. In regards to the educational model in practice, however, a scholarship does not divert my criticisms about the very expensive model of it. That's one thing, then. Being a student, there, is yet another thing.

The course textbook we're using -- to my point of view -- prevents entirely an axiomatic, if not simply rote approach to AC circuit analysis. In one point of view, it might seem simply practical -- the analysis methodology presented in the course's textbook, and the parallel methdology presented in the course's lectures -- but it is not in all ways a thorough methodology. In my experience, it's a very tedious methodology, and the book leaves a number of gaps, with difficulties. The book, itself, leaves some "gaps" about analysis of some specific combinations of {R,L,C} circuit elements within a series/parallel {R,L,C} circuit onto an AC power source.

Secondly, the course's lectures use a different notation than the book. The course's textbook uses polar notation, throughout. The lectures use rectangular notation, for those complex calculations. Though it might seem that the calculations might possibly "Make more sense" when conducted only with formulas in a rectangular notation, however -- considering that I've been studying, this semester, a textbook using polar notation, throughout, and though a corresponding formula may be produced in a rectangular notation, for any formula in a polar notation, but it's a wide gap in syntax and semantics between the two respective types of notation. I prefer the polar notation, but it's "Just not working out," to me, for analyzing the circuits that the book does not present a methodological model for. It's with a sense of chagrin,  then, that I begin to wonder if I've studied with the wrong sort of notation? I'm not understanding the relations of voltage, current, and reactance, in magnitude of phase angle, for a couple of types of circuit --if from a perspective of polar notation, and corresponding calculations of geometric sums,  parallel equivalent values, and arctangents of a specific quotient. Sure, the arctangents are easy to calculate in Common Lisp, and a radians-to-degrees conversion is easy enough likewise, but the whole polar notation is something I now elect to "Take a break from," to be sure I can analyze the same circuits, in a model using rectangular notation. I'm now in week 5 of an eight week course, and it seems rather pressing to me.

More broadly: I'm concerned that, for one thing, a pedantic iteration of the same formulas for the same types of circuit, ad infinitum, may not really help one to learn how to analyze circuits. It would, at least, serve to assist towards applying formulas, and perhaps understanding "some of" how those formulas relate to any exacting electronic, electromagentic, dielectric, or more broadly electrochemical qualities of individual circuit elements, and circuit elements in parallel and in series.

I'm concerned, furthermore, about whether the course program, itself, has really equipped "We the students" to understand enough of the essential mathematics of electrical science, even insofar as the calculus. Although I'd studied some of the differential calculus and the integral calculus, before college -- in "high school," namely -- but that was some years ago. I am not presently equipped to analyze a differential curve for change or variation in voltage or current within a circuit of an alternating current. When I read [Nahvi2004]  I can see that there's more of math to the matter, and I may be able to ascertain some of what that math would be, if I understood the same disciplines of mathematics, presently. Perhaps it would not be a panacea, but it might help towards understanding the basic principles of electrical science, and any number of corresponding geometric models, in mathematics.

Pragmatically, there are a couple of types of {R,L,C} circuit that -- in all candor -- I simply don't know how to analyze, at present. Here's the full set of {R,L,C} circuits, then, in diagrams that I've made, myself, towards a sort of reference sheet for manual circuit analysis. I'll denote that these graphics are public domain, in how I'll license my own work, at that.

The Simple Series and Parallel {R,L,C} Circuits

Fig. 1: RLC Circuit
Fig 2: R//L//C Circuit

The R(X//X) Circuit 

Fig 3: R(L//C) Circuit


The X(R//X) Circuits

Fig 4: L(R//C)
Fig 5: C(R//L)


The R//LC Circuit

R//(LC)

The X//(RX) Circuits

C//(RL)
  
L//(RC) 

Between calculations of phase angle, net reactances, and net impedances, the axiomatic approach that I thought I'd been learning from the course's textbook fails me, in that the book does not provide a a complete model for computing the impedance, in its magnitude and phase angle, for the following:

  • C(R//L) i.e capacitor in series to parallel RL mesh 
    • correspndingly, L(R//C)
  • L//(RC) i.e. inductor in parallel to series RC branch
    • correspondingly, C//(RL) 

The text lecture materials of the course illustrate a methodology divergent from the course's textbook, in that the course's textbook utilizes polar notation throughout the computations, whereas the course's lectures use rectangular notation, "This week." Of course, I understand that there's a mathematical correspondence between polar and rectangular notations, however the semantic and syntactic differences -- between a view of the math in the two notations, respectively -- it may seem like a pretty broad difference.


In the process of this process, I've learned a few additional things, such that I would wish to denote here, in short:

  • That MathML is not immediately well supported on the web.
    • There's MathML support in Firefox
    • There are web plugins
    • ...whether or not for a short "notes sheet"
    • ...or a full, public math and science portal
    • [Bookmarks]
  • That Google's Picassa tools can be useful for sharing graphics representations of electrical schematics
    • ...without their corresponding models, albeit, in any single hardware definition language (HDL) such as VHDL, Verilog, or the perhaps less Fortran-like EDIF format
  • That a "Single EDA platform" cannot be comprised only of a set of software tools, but must be accompanied of a corresponding methdological model at least insofar as circuit analysis
    • Evidently, there are multiple methdologies that may be applied in circuit analysis.
    • I may tend to prefer a methodology utilizing of Thevenin's and Norton's theorems addressed to AC circuits  [OMalley2011]
      • That's not being taught in the course, though, and it may take some time in study, to "Re-learn" the same material, from a perspective of that more principally extensional approach 
      • It's apparently a viable methodology for analysis of AC circuits
      • ...referencing an additional textbook [OMalley2011] in just how that textbook is, itself:
  • There's an EDA platform alternate to NI Mulstisim, namely: Cadence OrCAD Capture [Info][Download page] 
  • In free/open source software (FOSS) platforms compliant with the Debian Free Software Guidelines (DFSG) there's also XCircuit
    • XCircuit is available on Microsoft Windows platforms in a stand-alone edition (with prerequisites) or as a Cygwin package (with the package manager handling the installation of the prerequisites, as a good package manager system would)
    • Of course, on Linux platforms, one could use the respective package manager to install XCircuit from the respective upstream software package repository, in like as a Linux distribution may provide.

Presently, I'm thinking to re-study all of {R,L,C} circuit analysis, with a focus toward polar notation and Common Lisp to make the semnatics of it more manageable. Then, I could possibly "Check my results" with XCircuit and NGSPICE -- assuming a certain reliability in NGSPICE, as about circuit modeling for conventional, analog {R,L,C} circuits..

I don't expect I'll be writing much about the results, immediately. Candidly, it's "a homework thing", too.

A Reference Bibliography onto Electrical Science and Correspondence in Mathematical Systems

Nahvi2014
Nahvi, Mahmood and Joseph A. Edminister. Schaum's Outline of Electric Circuits. 6th edition. McGraw-Hill (New York). 2014

Spiegel1971
Spiegel, Murray R. Schaum's Outline of Advanced Mathematics for Engineers and Scientists. McGraw-Hill (New York). 1971

Lipschutz1959
Lipschutz, Seymor, Dennis Spellman, and Murray R. Spiegel. Schaum's Outline of Vector Analysis. 2nd edition. McGraw-Hill (New York). 2009

Ayres2013
Ayres, Frank and Elliott Mendelson. Schaum's Outline of Calculus. 6th edition. McGraw-Hill (New York). 2013

OMalley2011
O'Malley, John. Schaum's Outline of Basic Circuit Analysis. 2nd edition. McGraw-Hill (New York). 2011

Wednesday, October 1, 2014

Relevance of electrical impedance?

How is electrical impedance relevant in real world applications...?

Rawk music! Seriously, though - there's an analysis of the commonality of high and low impedance signals in audio systems, including band systems -- along with a broad review of electrical systems theory -- from Whirlwind Music Distributors, Inc. 

Of course, remembering that a digital circuit's data sheet may denote an "Unkonwn" quality for a digital logical element, in a situation of "high impedance", certainly electromagnetic impedance would be a relevant quality in digital circuits, too? (Candidly, it might be difficult to find any sort of research about the same, but I'll check  Google Scholar , too.)

So, after checking the research more, it looks like there are applications for analysis of impedance, in industrial power systems, viz a viz:
So, I suppose that's towards applications in industrial electronics. Perhaps it's simply a quixotic idea, to wonder if there's a relevance of impedance in digital microcircuits?

Certainly towards an application in digital measurement technology, thence perhaps applicable towards semiconductor design: Smyrl, William H.  Digital Impedance for Faradaic Analysis published by the Journal of the Electrochemical Society, no doubt a peer-reviewed journal. Perhaps the article is more in reference to Dielectric Spectroscopy , however --something certainly about microscopic qualities within electrical circuits -- perhaps less immediately relevant, if with regards to immediate calculation of electrical impedance within an analog circuit.

Other than the textbook from GE Digital Energy, those formal articles are all limited-access, however -- requiring a subscription of some kind, if not a per-article fee -- to simply read about the existing academic research, at least at those web resource pages. Perhaps a pre-print PDF edition might be available of any of those articles, however, via a simple, quoted "Google Search" -- if not a similar search, via Google Scholar -- of any of those article's "Title" texts? "YMMV" I'm sure.

Reading the Wikipedia article about Dielectric Spectroscopy, however, I think that that article seems to go well into a depth of explanation, perhaps serving to explain what's some of the science underlying the impedance calculations, in these matters of circuit analysis

Thursday, July 31, 2014

"Lining up the Architecture" - Liferay 6.2 + Glassfish 4 Bundle, AWS, and Monitoring Services. Side-notes: Open Education Resources Online

Shortly ago, this year, I began sketching up some concepts for what would have to be a business organization -- assuming it could not be registered as any sort of non-profit producer-owned cooperative in computing technology -- and as such would be a sole proprietorship, in its ownership model, lacking so much as a corporate board for the matter. I will not presently denote that I would like to name that business, though I would offer a hint, at least to myself, at any later time: It would be a name derived after a feature of the geology of the valley around the home town where I grew up, such that my grandfather had once explained to me. Beneath the soil of that valley -- at least, where was the house that I grew up in -- the ground is not so permeable as the loose topsoil, there. Moreover, I hope it would be a business name with a sense of character to it, denoting of "Life beyond the rose garden," but without any sort of a sense of pessimism. Once if I'll be able to register a domain name for that business, in some small portion of my student budget, then I would be willing to denote the name of that business, online. Presently, I'm more concerned about the architecture for the information system that would represent the core of that business' web presence, online.

In short summary: I plan on installing Glassfish 4 into a Tomcat 7 instance created with a Linux AMI hosted in an Amazon Web Services Elastic Compute Cloud (EC2) instance. Then, I would install Liferay 6.2 into the Glassfish 4 applciation server. I've chosen Glassfish 4 for this model, primarily due to Glassfish' integration with CORBA -- a feature that I know would not be unavailable with alternate application servers, such as each of JBoss AS7 and Wildfly (ie. JBoss AS post-AS7) however I'm of an impression that CORBA might be more well supported in Glassfish. Also, I'm simply happier with the thought of installing Glassfish, and Liferay into Glassfish.

As well as that I would be installing those resources into my Linux AMI, I've downloaded the Liferay 6.2 + Glassfish 4 bundle, and will be installing that onto a Microsoft Windows 8.1 partition. I could then use the "Demo portal" installed with the bundle, for purpose of generic sandbox work, or could uninstall the "Demo portal" and start from scratch.

Basically, I plan on creating one portal, to begin with, in the Liferay-on-AWS installation. In the portal's public pages, it would represent a sort of hub. In its private pages, it would represent a sort of MIS primarily for administration of the public portion of the portal/hub. The portal/hub would host some content for integration with the Amazon Associates program, as well as some public project information for public projects that I would be managing with the same hub. I plan on integrating Github with the portal -- planning on developing portlets, over time, to accomodate.

Between the portal as installed on my laptop, and the portal as installed on AWS, I plan on enabling the Liferay Staging feature, for developing content locally then publishing it to the hub, via Liferay itself. Certainly, that would not be the only way to publish content to the portal, but it would be an option such as I would like to understand, as my being a novice portal developer.

Today, I've found a couple of resources via Twitter, such as I would like to make note of, for future reference -- namely, the companies, each, Datadog and Coperegg. I'm afraid I don't have any sort of a populist view to present, about the resources and services provided by those companies. Simply, they both may be of some relevance with regards to service monitoring. I'm considering Coperegg primarily for their Amazon Cloud Instance Monitoring service. Datadlog, I should like to make reference to at some later time, I think, if perhaps it could be useful for a "Build server' for EDA projects and simple software projects

Coperegg has published, via their twitter account, a nice article with regards to server monitoring[1]. The article presents a succinct overview of how how monitoring and measurement processes may be implemented, on a server. I consider that it's a meaningful article, and as such, it has left a positive impression to me, about Coperegg. In a broad sense, my having reviewed some of Coperegg's web-based materials, I would like to consider using Coperegg in lieu of trying to piece together a Nagios + JMX hack of my own, for monitoring the portal as would be installed at AWS.

Datadog's monitoring service, though in some ways perhaps similar to the service provided by Coperegg, is such that I would wish to consider primarily with regards to developing a build monitoring service, for one-time software builds (Verilog or VHDL, Java or Common Lisp, or otherwise) for monitoring such processes on a build server, in such that would comprise a software build/distribution workflow, within a normal software development process. I consider that I can understand at least "that much" of what the architecture could be of such a thing. Of course, it would be more tedious to address that architecture into relevant details. If Datadog may be able to alleviate some of that tedium, I would certainly consider outsourcing some of the hypothetical build process to Datadog.

The matter of my endeavoring to install an enterprise grade web portal server, as my being an individual developer, it's such that I would not wish to make any sort of an ostentatious presentation about -- it being such that I'm really not so much looking forward to, candidly, though I think it would be more appropriate than any alternate approaches for my to develop to web content, online. The Liferay portal framework provides its own user model, for instance, and would already support integration with the Glassfish application server.


Of course, my being a student of DeVry University Online (DVUO), and though this matter of installing a portal sever is rather far beside the progress of my current course of study at the same, but I think I could customize the "Portal on laptop" such that it could be applied, privately, in a manner supportive of my own continuing studies as a student of DVUO -- such as for providing a central resource for my to use in managing the weekly lab materials, homework assignments, and as to digitize my paper notes from the textbooks. In that regard, I think I should define an individual portal, in at least the "Liferay on laptop" installation, a portal distinctly for purpose of developing a bit of a knowledge management technique, with regards to my own student materials. Though I am by no means a qualified expert in the topics we're studying in any single semester, but if I may be able to understand the material well enough to observe that the courses, in each, describes a sort of controlled vocabulary for instance, then I may be able to apply that concept -- in regards to my being a student of the private institution, DVUO, moreover in my studying materials published publicly by other academic institutions -- that it might at least provide a nicer way to manage the folders containing my weekly responses to the weekly course assignments. Thus far, I've been using a bit of an ad hoc mix of Dropbox and the local hard drive on my laptop, for that purpose, as my being a student of DVUO. Sometimes, also, I copy and revise my own discussion forum responses, for those that I would like to make any particular attention to, later, then publishing the revised item here at my DSP42 'blog.


I don't know if I should like to push that particular portal to the broader web. It would be kind of a sandbox resource, anyway.

I hope that I may sometime be able to develop some further ideas with regards to the open education resources published by each of OpenStax CNX, Coursera, uDacity and the OER Commons. Most notably, I think, the Coursera self-paced course, Calclus 1 I think promises to be an edifying course, and especially of some help to me, as my being a student of the electronics and computing program at DVUO. Certainly, electrical circuit analysis -- at least, insomuch of analog AC and DC circuit features, such as of electrical capacitance, inductance in AC circuits, and electrical restistance -- it would involve "a lot of math," in any practice. Though so much of that might be given something of a shortcut, with some careful application of Electronic Design Automation (EDA) tools, however I would like to be certain that I would understand the concepts entailed of the principles of the matter, before I would endeavor to apply those concepts in any application of those principles. So, I may have to study outside of class for Calculus 1, inasmuch as working outside of class in developing the portal structures, as denoted -- and this, on my shoestring student budget -- however, perhaps it may be as well "Worth it," in the proverbial "Long run."

At least, there's some community at Twitter. Though there's never an opportunity to say a lot in 140 characters of microblog text, however I think I'm learning a gist of it, of how to communicate @Twitter, at least to my best ability as such.


Article's Bibliography:

[1] Mueller, Ernest. Know your options for infrastructure monitoring. 2014. InfoWorld.

Sunday, June 29, 2014

Towards defining a standard-compliant, vendor-neutral metamodel for digital electronic components, "Nothing Too Ambitious"

Personally, I'm a fan of UML and SysML. I've read the Object Management Group (OMG) specifications for UML, MOF, XMI, and broader MDA, and have read about some of SysML's practical applications, in the book, A Practical Guide to SysML: The Systems Modeling Language, by Sanford Friedenthal. For UML, SysML, and BPMN modeling, I think Modelio is particularly suitable. Alternately, Eclipse Papyrus has some interesting features for model definition, also.

It's my understanding that Modelio is implemented primarily in C++, and Eclipse, primarily in Java. MOF and UML effectively extend on XML Schema Datatypes (XSD) so it's not an innately language-centric framework, however. Of course, insofar as how XMI is applied within specific modeling platforms,, there are broad differences between platform vendors' own implementations of the standard. However, pretty much all of it is encoded in XML, and encoded according to a normative model serialization methodology, in each respective modeling tool vendor platform. Certainly, some vendors have focused a lot on code generation -- Modelio can even do "Round trip" analysis on Java class file definitions. The "XMI part," however, might seem to be pretty much ad hoc, per each vendor's implementation, but nonetheless it's all information structured in XML.

My now gaining some simple practical experience with regards to electronics design automation (EDA) tools -- such a Altera Quartus II Web Edition -- as a student of DeVry University Online, moreover in endeavoring to "Look ahead" towards developing any single thesis concept for the inevitable "Senior project," for a deadline sometime down the proverbial road of academic progress, and as being presently in a week's break between a semester's two sessions with DVUO, I've been taking some time to compile some more research resources, and to sketch out some simple notes for possible software and electronics design projects for "the months ahead," before I'll have completed the initial associates degree. Sure, I am "that much of an undergrad," formally.

While conducting some such focused research, last night, I'd noticed that a few JEDEC standards were referenced from the Altera Cyclone III Device Handbook (p. 6-12 / PDF p. 110) -- that there are a select number of JEDEC JESD standards referenced, there, as in regards to compatibility onto standards for CMOS/LVCMOS, TTL/LVTTL, and PCI voltage ratings. As a student of DVUO's ECT programs, personally I now own an eSOC3 board with a Cyclone III FPGA device installed on the same. Sure, the board doesn't have any design documents available for it, so I might not be able to make any use of the thing, now that the initial ECT-114 class is complete. At least, there might be some proverbial "Mileage" in the actual manual for the FPGA device, itself. (Maybe sometime, I could simply desolder the thing and put into a normal proto-board. To return to the present matter, however...)

After further searching online, this afternoon -- namely, having searched the dynamic, "world wide virtual library" to learn if there would be something in regards to standards for functionally individual logic gates, such that could serve as a normative, vendor-neutral reference, towards developing a sort of object-oriented hardware definition model for modeling digital logic systems in Common Lisp -- I'd found,  specifically, JEDEC JESD 75-5, ON/QFN PACKAGE PINOUTS STANDARDIZED FOR 1-, 2-, AND 3-BIT LOGIC FUNCTIONS. I think it's quite a nice little reference manual, the same, though I've noticed now that it's a specification specifically about integrated circuits packaged in QFN format and other Small Outline (SO) formats. I'd noticed the item, firstly, in that it provides a nice, enumerated list of standard logical functions in manufactured integrated circuits, such as the dual input digital AND gate, some couple of types of digital logic inverter, and the inevitable "D Flip-Flop" (DFF)

Focusing on the matter of the enumerated set of logical functions, in that document: Certainly, JESD 75-5 does not, itself, define the exact functional behaviors of those standard circuit elements (AND, NOT, and the DFFs) -- such as would be indicated in a truth table for each, such that, of course, one might find in most manufacturer's data sheets. Inasmuch, JESD 75-5, itself, does not specify any exact, practical applications for those circuit elements. However, I think it's helpful that they at least have assigned some standard nomenclature to the same logical circuit functions enumerated in the document -- at least in their QFN and SON packaging (?) -- including AND, DFF, and inverter circuits. If perhaps it could also serve in making a simple, enumerated list of those logical functions thusly standardized, then personally I think it could be of interest towards defining a vendor-neutral schematic model.

I think, the set of JEDEC documents is certainly nicer to see than an old edition of MIL-STD 1562 (not classified), as far as standardization in digital electronics.

So, evidently there are vendor-agnostic standards for those digital logic "things". I think that's reassuring. However, noticing that JESD 75-5 refers to digital circuit elements manufactured specifically in QFN or SON packaging -- with definitions in the document, describing the characteristics of the same -- perhaps such a foremost reference as I was looking for.

It seems that the effective, contemporary "roots" of the JEDEC digital electronics standardization tree -- so to speak -- would be defined in JEDEC JEP95, across a number of categories such as for standard qualities of diodes, transistors, and microelectronics. I'm sure it might not seem so interesting, however, if outside of the possibility of defining a software meta-model for an effective, standardized representation of those same qualities as standardized in JEDEC '95 -- a meta-model as in reference to OMG SysML, UML, and MOF -- towards defining a vendor-neutral EDA platform, moreover, ideally extending on existing free/open source software components.

JEP95 defines, in the JEP95 Microelectronics Outline (MO) Device Type (DT) index, a broad index of standard categories for integrated circuit packaging, like in a sense of socket formats -- not the carrier packaging apparently the topic of the CO and CS indexes in JEP95 -- rather, the socket packaging of circuits as would be installed onto a printed circuit board (PCB). Some of the items in that index may seem "outdated" -- such as the Quad In-Line (QUIP) socket format -- an IC socket format that was used, "once upon a time," in some Intel components in the iAPX 432 midromainframe (circa 1981). However, if technology may be regarded more as a function of science and engineering, without too much of an emphasis on "treandiness," the term "Outdated" would not seem to have much of a sense of relevance, in the simply technical view.


So, in reading the JEP95 MO//DT index as an index of socket formats, it may serve to inform a model for application in computer aided design and drafting (CADD) in electronic design automation (EDA). However, in itself, JEP95 does not define any of the functional qualities of integrated circuits.

JEP95 is referenced from JESD 75-5. Perhaps there may be something similar to JESD 75-5 but more specifically about DIP and SMD formats for TTL and CMOS circuit elements? I should update my notes, here, sometime after researching that matter, further.

Notably, in furthermore:
  • JEDEC also publishes a nice, formal dictionary of technical terms: JESD 88
  • JESD 30F - Descriptive Designation System for Semiconductor-Device Packages, none closer to a functional description but of more interest for the definition of a generic, vendor-neutral digital circuit component metamodel, for application within a digital circuit design environment. JESD30F is another JEDEC JC-10 specification
  • JESD 75-4, contextually similar to JESD 75-5 but defined about BGA packaging
  • JEDEC JC-40, Digital Logic, JEDEC Committee
    • The BGA-focused JESD 75-<N> standards, as published under JC-40, might serve to define something of a normative reference base, towards a baseline digital logic model, in bit ranges of 1, 2, 3, 8, 16, 18, 20 and 32 bits.
Additionally, Texas Instruments publishes a number of reference resources. all a bit market-focused certainly:
  • Logic Cross-Reference from Texas Instruments (313 pp. PDF) focused on individual integrated circuit types
  • Selection and Solution Guides, an index of reference resources
  • The Little Logic Guide (25 pp. PDF)
    • Terminology (pp. 5-6)
      • CBT: Bus Switch
      • CBTLV: Low-Voltage Bus Switch
      • CB3T: Low-Voltage Translation Bus Switch
      • LVC: Low-Voltage CMOS (1.65 V to 5.5V, or 1.8V to 5.5V depending on product range)
      • AUC: Advanced Ultra-Low-Voltage CMOS
      • AUP: Advanced Ultra-Low-Power CMOS
    • Indexes:
      • Single-gate logic functions, pp. 9-11. "G" numbers corresponding to JESD 75-4 (e.g 1G00, 1G02) with some omissions (e.g 1G05) and some additions (e.g 1GX04 Crystal Oscillator Driver)
      • Dual-gate logic functions, pp. 12-13
      • Triple-gate functions, p. 14
      • Single-switch functions, p. 14
      • Configurable functions, p. 15
      • Voltage translation functions (single-supply and dual-supply), pp. 15-16
      • LVC devices (competitor xref) pp. 17-19
      • AUC devices (competitor xref)  p. 19
      • Signal-switch devices (competitor xref), p. 20
      • AUP devices (competitor xref), pp 20-21 
        • low power logic functions. see Logic Guide p. 15
      • AHC and AHCT devices (competitor xref), p. 21
      • Configurable devices and AUP1T translators, p. 22
  • The Logic Guide (125 pp. PDF)
    • AUP devices, p. 15
      • low power logic functions
      • mobile device applications
    • GTLP and VME devices, p. 29
      • Optimal backplanes
      • I2C, PCI, ...
    • Product index begins at p. 31
Ephemera:
  • Hamilton, William. Lectures on metaphysics and logic. ed. Henry Mansel, and John Veitch. W. Blackwood and Sons (Edinburgh). 1874
    • Notably, no references to Boole or De Morgan
    • Syllogisms, philosophical logic

Monday, June 2, 2014

Papilio and Xilinix FPGAs

I've recently begun to study FPGA programming, albeit through kind of an impractical program at DVUO. In a small, practical regards, the course focuses on Altera FPGAs and Altera's free and unsupported (?) Quartus II Web Edition as -- basically -- lab kit items for the course at DVUO. I constantly have to "Do some additional reading," to get anything out of the DVUO courses. Personally, I'm not studying up for "Signing off at the Blarney Stone."

In that additional reading, I have learned:

In addition to the Altera FPGA line, Xilinix also manufactures FPGAs, such as the Xilinix Spartan 3 and Spartan 6 FPGAs.

Spartan FPGAs are available in the "DIY" electronics market, on the Papilio -- alternately, ZPUino -- FPGA boards, such as the "Papilio pro".  The  software tooling for Papilio is more bear-bones than Quartus -- the former, extending on the Arduino programming toolkit.  The Papilio toolkit uses a bitfile format for direct programming of the FPGA. Papilio boards can be programmed with Papilio's ZAP IDE and the Xilinix ISE WebPack.

A Papilio board can be extended, in its hardware, with a "Wing" or "Megawing", such that essentially "plugs into" I/O headers on the Papilio circuit board.

Papilio is an open platform, and thoroughly supported for programming on Linux and on Microsoft Windows.

Ostensibly, Papilio, too, can be used to simulate a full multiplexer or demultiplexer, or alternately a single 74138 or 74148 circuit's logic profile, in today's world o' technology. We've studied the latter at DVUO -- something of some allegedly "common" integrated circuits, really difficult for this student, me, to find any applications for, or any sense of relevance about, in the regards to the industry, today. Perhaps it makes more sense in a broader circuit with clock synch, and as an artifact of an at least historic technical interest. So maybe I, too, can believe in magic beanstalks, after all -- if only those beans were just as good in an "unsmart" crock pot.

Works Consulted:
[1] http://www.xilinx.com/products/silicon-devices/fpga/spartan-6/
[2] http://papilio.cc/index.php?n=Papilio.ZPUinoIntroduction
[3] http://papilio.cc/index.php?n=Papilio.ArduinoCore
[4] https://github.com/GadgetFactory/Papilio-Loader/blob/master/xc3sprog/trunk/bitfile.h
[5] http://papilio.cc/index.php?n=Papilio.Hardware
[6] http://gadgetfactory.net/learn/2013/10/29/papilio-schematic-library-getting-started/
[7] http://gadgetfactory.net/learn/2013/10/23/install-xilinxs-free-ise-webpack/
[8] http://www.xilinx.com/products/design-tools/ise-design-suite/index.htm
[9] http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.htm