arblogic.doc : 28 Aug 97 ------------------------ Revision Info ------------- v1.0 - Freeware release First release Description ----------- arblogic is a utility for generating hex files for programming EPROMs with arbitrary combinatorial logic. It has a simple but effective RPN-based expression input. Application ----------- The basis of expression input is reverse polish notation (RPN). This allows a very easy stack-based evaluation to take place with the minimum of parsing and conversion. Suppose you wanted output D0 to be the logical AND of inputs A0 and A1. (A0 means address line 0; this should be labelled in the data sheet for the EPROM). The expression A0A1&D0 achieves this. The first two commands A0A1 push the value of A0 and A1 on to the stack. The command & ANDs together the top two stack locations and replaces them with the result. The command D0 pops the top stack location into D0. That's it. The commands available for logical operations are & - AND | - OR ! - NOT Below is an example of a set of RPN strings for a device : A1A2!A3A0|&&D0 A1A2A0&&D1 A1A2!A3&&D2 A0D3 (See arblogic.xcl for the full file, which is mostly comments.) These were implemented using a 27C64 and also a 27C128 (whatever I had hanging around), and performed right first time. This is a cheap way for designers to have some of the basic advantages of PLDs : Field Upgrades Product line expansion by using different EPROMs Re-design and re-route without changing the PCB artwork Arbitrary logic without loads of packages Strings can be entered on the command line but it is more useful to use an XCL file, and run the program with arblogic -x. See the attached file. Comments follow # characters. Arblogic ignores anything it can't understand, so it's OK to use spaces to improve readibility. A1A2 is the same as A1 A2 is the same as A1,A2, The highest address required is detected and code is only generated up to that point. This makes for small hex files and quick programming. Note that addresses from A10 to A15 should be entered with a lower case hex digit, ie Aa to Af. Limitations ----------- This package is very limited. As far as function is concerned I do not want to take it much further but I would like to improve the user interface by providing labelling, other output formats, and possibly a more natural expression entry (but once you've got used to RPN, you'll find it easy and intuitive). Bugs ---- None known. License ------- See attached file license.doc. ================ mikepage@iee.org