US4933897A - Method for designing a control sequencer - Google Patents
Method for designing a control sequencer Download PDFInfo
- Publication number
- US4933897A US4933897A US07/356,107 US35610789A US4933897A US 4933897 A US4933897 A US 4933897A US 35610789 A US35610789 A US 35610789A US 4933897 A US4933897 A US 4933897A
- Authority
- US
- United States
- Prior art keywords
- counter
- array
- signals
- state
- programmable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012360 testing method Methods 0.000 claims abstract description 47
- 238000013461 design Methods 0.000 claims abstract description 32
- 230000001419 dependent effect Effects 0.000 claims abstract description 17
- 238000012163 sequencing technique Methods 0.000 abstract description 13
- 238000003491 array Methods 0.000 abstract description 11
- 230000014509 gene expression Effects 0.000 abstract description 5
- 230000007704 transition Effects 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 20
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000036316 preload Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 229920000747 poly(lactic acid) Polymers 0.000 description 2
- 102100036570 Coiled-coil domain-containing protein 177 Human genes 0.000 description 1
- 101000715214 Homo sapiens Coiled-coil domain-containing protein 177 Proteins 0.000 description 1
- 101150108015 STR6 gene Proteins 0.000 description 1
- 101100386054 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CYS3 gene Proteins 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 101150035983 str1 gene Proteins 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21115—Same connector can represent either input or output
Definitions
- HLL high level language
- PAL- or PLA-based sequencers While to reduce programming effort and to ease understandability, some higher level language (HLL) programming schemes may be used, there is no direct relationship between such HLL constructs and the underlying hardware. As such, no methodology is available which affords easy design of the microsequencer (because no high level constructs are readily available within the PAL- or PLA-based sequencers) corresponding to the high level language constructs most useful to design personnel. Complex, detailed and error-prone Boolean equations must be written presently to accomplish the design of PAL- or PLA-based sequencers. Such equations do not bear a one-to-one correspondence to the underlying circuit elements of the PAL- or PLA-based sequencer. Because of all these reasons, PAL/PLA devices are not used for large complex control applications.
- programmable read-only memory (PROM)-based micro-coded sequencers are used for such control applications.
- PROM programmable read-only memory
- FIG. 1 One such device is illustrated in block diagram form in FIG. 1.
- TEST MUX dedicated testing multiplexer
- the TEST MUX can use only one of the conditional test inputs it receives to determine the next state. Accordingly, in PROM-based microsequencers, it is not possible to perform multiple conditional testing in a single clock cycle. For example, to implement the following test at a state n:
- the following example employs multiple condition testing for states n and n+1 only, i.e., a partial number of states:
- microsequencer design it is desirable to provide multiple branches from a given state to different states on different conditional input signals.
- PROM-based microsequencers additional circuitry must be provided to perform this function.
- PROM-based microsequencers such as shown in FIG. 1, all product terms are predecoded. The designer is therefore limited to branches to only one location at a time.
- PROM-based microsequencers do not directly provide genuine "multiway" branching capability.
- Extra hardware elements such as the BRANCH CONTROL LOGIC (GOTO) element shown in FIG. 1, used in conjunction with masking, is needed to provide limited multiway branching.
- GOTO BRANCH CONTROL LOGIC
- the branching address is derived from the conditional (test) inputs along with a user-definable mask. This provides a jump to only a limited number of states selectable by masking of the inputs being tested as provided by the bit-by-bit "AND" function.
- PROM-based microsequencers instructions are stored in a logical data form:
- Instruction decoding in PROM-based microsequencers is accomplished at execution-time by MICROINSTRUCTION DECODE PLA which is hardwired to the various elements of the microsequencer shown in FIG. 1.
- This PLA receives the operation code (opcode) of an instruction from the pipeline register, decodes it, and generates, over time, a series of control signals which cause the various elements within the microsequencer, such as the branch control logic, test multiplexer, program counter multiplexer (PC MUX), microprogram PROM, pipeline register, shift registers, and the like, to undertake and coordinate their respective functions.
- opcode operation code
- PC MUX program counter multiplexer
- PROM-based microsequencers do not provide state independent conditional testing, branching or instruction decoding.
- PROM-based microsequencers do not provide adequate high level constructs for state machine/sequencer design, limit design instructions to one construct per line, and impose fixed opcodes thus making customization of user-specific software difficult.
- Their architecture, while related, is not optimized to the higher level constructs which designers prefer to use.
- PLC programmable logic controller
- the programmable logic controller (PLC) of the present invention is specifically tailored for control applications both from the functionality and usage point of view.
- the PLC offers substantial advantages over the conventional PALs/PLAs and PROM-based microsequencers used for control applications. It offers a generic superset of PROM-based microsequencer functionality and flexibility. Also it provides for the use of higher level language constructs, in place of boolean equations or microcode. It is actually a "software sequencer" as its instruction decode is programmable in software. Also for the same functionality, the PLC device requires less silicon, and offers higher speed than PROM-based microsequencers.
- a set of output registers along with a counter and a set of general purpose buried registers constitute the counterpart to the pipeline register of PROM-based microsequencers.
- the counter in a PLC design provides the functionality analogous to a program counter in the PROM-based microsequencer design. It also provides the jump address field of the PROM-based microsequencer pipeline register.
- a programmable AND array performs the addressing functions of PROM-based microsequencers. In a PLC of the present invention, these combinations provide extra flexibility in control and reduced silicon die area as the AND array is programmable, and the jump address needs to be generated only when required.
- the extra logic circuitry required in a PROM-based microsequencer such as a program counter multiplexer branch control logic, test multliplexer, instruction decode, and count register, is not required in a PLC.
- the AND array performs instruction decode, conditional testing, branch address generation and a number of miscellaneous functions.
- a PLC of the instant invention inherently provides a superset of the functionality provided by these redundant logic blocks in microsequencers.
- the PLC provides improved functionality, ease of use, faster speeds and lesser silicon for the same functionality as compared to prior art microsequencers.
- a combinatorial logic circuit comprising a programmable AND array and a pair of programmable OR arrays.
- a first OR array generates logic signals to a set of output macrocells served by a set of input/output pins.
- a second OR array generates logic signals to a set of "buried" internal registers and a counter.
- the second OR array provides a high level logic control sequencing function. The signals generated by certain ones of the output macrocells as well as the internal registers and the counter are fedback to the AND array via dedicated internal feedback paths.
- conditional testing is performed within the programmable AND array, and therefore is entirely user-determinable. Any set of product terms may be specified by the user in the design of Moore or Mealy state machines. Furthermore, because such testing is done by the AND array, no additonal circuitry, nor the accompanying complexity, die size and time penalties, is present in the PLC of the instant invention. Because of the flexibility of this conditional testing, software sequencing is more transparent and quicker executing. For instance, where a PROM-based microsequencer may require three states to perform the requisite testing, the PLC of the instant invention only requires one state.
- the PLC of the instant invention supports true multiway branching because of the presence of the programmable AND array. Provision of the counter, in conjunction with the product terms generated by the AND array, permits multiple next-state product terms to be generated thereby from a single present state. High level language constructs such as IF THEN ELSE and CASE can be employed by the designer to take advantage of this architecture. The resulting code will bear a direct relationship to the underlying architecture and accordingly will be easier to develop and be more readily understood and documented when completed. In addition, relative branching, branch to location defined by input signals, and interrupts are readily implemented in a PLC of the instant invention because of provision of the user-programmable AND array.
- the PLC of the instant invention provides dedicated feedback paths from the output terminals and output macrocells.
- the feedback paths eliminate this need for separate product terms for each state for implementing hold, release, and delay functions, thereby saving product terms.
- the signals generated at the outputs of the PLC can be either registered or combinatorial, active HIGH or active LOW.
- PROM-based sequencers use a fully predecoded AND array, output signals generated thereby cannot be independent of state.
- "Interruptible" microsequencers are sometimes constructed to provide limited state-independent functions, by employing excessive external circuitry.
- the provision of a user-programmable AND array in the PLC of the instant invention permits providing state-independent functions and partial-state dependent functions, without the use of complex interrupt-driven opcodes and external circuitry.
- a PLC of the instant invention employs two OR arrays, each performing a dedicated function, either output generation, or sequencer control, thereby reducing the size of each OR array without loss of functionality.
- a faster PLC employs a combinatorial logic circuit comprising a programmable AND array and fixed OR arrays.
- FIG. 1 is a block diagram of a PROM-based microsequencer of the prior art.
- FIG. 2 illustrates the architecture of a programmable logic controller (PLC) according to the instant invention.
- PLC programmable logic controller
- FIG. 3 is a block diagram of an embodiment of a PLC having a programmable AND array and a pair of programmable OR arrays.
- FIG. 4 is a block diagram of an embodiment of a PLC having a programmable AND array and fixed OR gates.
- FIG. 2 An architecture of a programmable logic controller (PLC) 10 according to the present invention is illustrated in FIG. 2.
- a fuse-programmable combinatorial logic circuit 12 receives input signals from an external source via a set of eight signal lines 14.
- various signal lines are hashmarked, with a numeral adjacent thereto, indicating that a number of signals are conducted in parallel on the line, even though only one line is shown, the numeral specifying the number of parallel signals. Accordingly, line 14 has the numeral "8" adjacent to a hashmark intersecting line 14.
- the programmable combinatorial logic circuit 12 can be formed from programmable AND and OR arrays as will be described in detail hereinafter.
- a set of twelve output macrocells 16 receives signals generated by circuit 12 via signal lines 18, as does a set of four buried registers 20 via signal lines 22.
- a programmable counter 24 also receives signals generated by circuit 12 via signal lines 26. These signals represent load address and counting control information, as will be described in detail below in connection with counter 24. Signals representing the contents of the buried registers 20 and the program counter 24 are conducted back, via signal lines 28, to the programmable combinatorial circuit 12 where they form a second input to circuit 12.
- Signals representing the contents of output macrocells 16 are conducted via signal lines 30 to input/output (I/O) pins 32 as well a being conducted back via signal lines 34 to combinatorial circuit 12 where they form a third input to circuit 12.
- the counter 24 is preferably a Gray-code counter. Since the contents of such a counter changes in only one bit location, state transitions are not subject to instabilities which may cause transient errors in the signals generated at I/O pins 32. Furthermore, this results in improved optimization of the Boolean design equations, since adjacent state product terms involve differences of only one bit, as will be appreciated by those skilled in the art.
- data signals and dynamic control signals generated by the combinatorial logic circuit 12 are conducted to each of the output macrocells 16 and the macrocell generates a signal therefrom which may be selected from the contents of a register within macrocell 16, or the combinatorial data signal received from circuit 12 and causes this signal, in either an active HIGH or active LOW polarity to be conducted to I/O pin 32 for output and feedback to circuit 12, or the macrocell may cause a signal applied at I/O pin 32 to be conducted via signal lines 30 and 34 to the logic circuit 12.
- Each buried register 20 also receives data and dynamic control signals from the logic circuit 12 but is not allocated an I/O pin on which the contents of the register can be generated, however, a signal representing the contents of the register is conducted via feedback path 28 to the logic circuit 12 where it can be used for "state" determination.
- Counter 24 can function as a set of extra buried registers.
- Counter 24 also receives a COUNTER CLEAR (CLR) signal from logic circuit 12, which, when asserted, rests the counter to a predetermined "start" state, such as "OO" Hex.
- CLR COUNTER CLEAR
- microsequencers employ a pipeline register with an instruction field which defines the branch address.
- the AND array is not programmable in a PROM-based microsequencer, a separate branch field and program counter are required.
- the programmable logic circuit 12 performs instruction decoding and branch control signals can be generated by the circuit 12 itself.
- LOAD ADDRESS and LOAD control signals can be generated directly for use by the program counter 24 of the PLC 10 instant invention.
- a particular implementation of a PLC 100, a programmable AND array 122 and a pair of programmable OR arrays 124 and 126 form the programmable combinatorial logic circuit 120, corresponding to the logic circuit 12 in FIG. 2.
- Such a combinatorial logic circuit is referred to as a programmable logic array (PLA) in the art.
- Numerals of elements in FIG. 3 have a suffix of "0" appended to the numeral of the like element in FIG. 2.
- the programmable AND array 122 receives the external inputs via signal lines 140 terminating at a buffer 128 providing true and complemented versions of the external input signals conducted to the AND array 122.
- An "output generation” OR array 124 receives so-called “product term” signals from AND array 122 and generates therefrom data and dynamic control signals received via signal lines 180 by a register 162 within the output macrocells 160.
- An output enable signal generated by AND array 122 is conducted to a first input terminal of an exclusive OR (XOR) gate 164.
- a field-programmable fusible link 166 is connected to a second input terminal of XOR gate 164.
- the status of fuse 166, blown or intact, determines the polarity of the output enable signal conducted to a control input terminal of an inverting output buffer 168.
- Buffer 168 receives the signal generated by register 162 and upon reception of the output enable signal, causes the contents of register 162 to be conducted at an output terminal of buffer 168.
- the signal so-generated is conducted to the I/O pin 320 and to the AND array 122, via feedback path 340.
- the contents of the buried registers 200 and the counter 240 are also conducted to the AND array 122, via feedback path 340.
- Path 340 terminates at a buffer 129 providing true and complemented versions of the feedback signals for the AND array 122.
- inverting output buffer 168 If inverting output buffer 168 is disabled, external signals applied at I/O pin 320 can be conducted via feedback path 340 to the AND array 122.
- the two OR arrays 124 and 126 provide distinct functions within the PLC 100.
- the output generation OR array 124 is used to generate "output" control signals dependent upon the "state" count and the input signals.
- the control sequencing OR array 126 is used to generate "internal" control signals for the buried register 200, the LOAD ADDRESS and the control signals, LOAD and CLR, for the counter 240. These two operations are essentially independent from one another, and thus provision of the two arrays reduces the size of the array in half, from that required by a single OR array, without adversely affecting the functionality of PLC 100.
- a clock not shown, provides a timing signal CLK received by the registers 162 and 200 and the counter 240, as will be appreciated by those skilled in the art.
- the programmable AND array 122 receives the external inputs via signal lines 140 terminating at a buffer 128 providing true and complemented versions of the external input signals conducted to the AND array 122.
- a set of "output generation” OR gates receives so-called “product term” signals from AND array 122 and generates therefrom data signals received via signal lines 180 by a register 162 within the output macrocells 160.
- a variable distribution of product terms is conducted to the OR gates, in this case, eight and ten.
- a set of "control sequencing" OR gates receive a variable number of product term signals from AND array 122 and generates therefrom data and dynamic control signals received via signal lines 220 by the buried registers 200, and LOAD ADDRESS signals and LOAD CONTROL signals received via signal lines 262 and 264, respectively, by the counter 240.
- the COUNTER clear CLR signal is also generated by OR gate 125d and received via signal line 266 by counter 240.
- An output enable signal generated by AND array 122 is conducted to a first input terminal of an exclusive OR (XOR) gate 164.
- a field-programmable fusible link 166 is connected to a second input terminal of XOR gate 164.
- the status of fuse 166, blown or intact, determines the polarity of the output enable signal conducted to a first input terminal of a NOR gate 169.
- NOR gate 169 receives at a second input terminal the signal generated by register 162 and upon reception of the output enable signal, causes the contents of register 162 to be conducted at an output terminal of NOR gate 169.
- the signal so-generated is conducted to the I/O pin 320 and to the AND array 122, via feedback path 340.
- the contents of the buried registers 200 and the counter 240 are also conducted to the AND array 122, via feedback path 340.
- Path 340 terminates at a buffer 129 providing true and complemented versions of the feedback signals for the AND array 122.
- the two sets of OR gates 123 and 125a, 125b, 125c and 125d provide distinct functions within the PLC 400.
- the output generation OR gates 123 are used to generate "output" control signals dependent upon the "state" count and the input signals.
- the control sequencing OR gates 125a, 125b, 125c and 125d are used to generate "internal" control signals for the buried register 200, the LOAD ADDRESS and the control signals, LOAD and CLR, for the counter 240.
- the programming of a PLC device 10 of the instant invention is preferably done via high level language (HLL) constructs. Provision of the high level logic counter element 24 within the PLC 10 facilitates this programming and the consequent understandability of the resulting program.
- HLL high level language
- a signal may be held by using only one or two product terms generated within the PLA in conjunction with feedback signals.
- C-REG count register
- C-MUX count multiplexer
- the programmable AND array of the PLC eliminates the need for these elements, as well as their attendant liabilities. HOLD input and RELEASE input statements are also available which perform similar operations on input signals.
- the high level language constructs IF . . . THEN . . . ELSE, WHILE . . . DO, FOR . . . DO, CASE . . . OF, GOTO and GOTOR are available to users of the PLC because of the provision of the programmable AND array and the state counter.
- the programmable AND array permits multiway branching from a given state, as described hereinbefore; and the state counter provides a direct correlation between the machine-state as used to design the software sequencer program and the contents of the state counter.
- the architecture and the software syntax allow the designer to use system control signal names in the statements rather than predefined opcodes because of the predecoded Boolean expressions in software.
- the high level language constructs illustrated in the Table can be translated into Boolean expressions and then used directly in conjunction with any of a number of current PAL design specification languages, such as PLPL, ABEL or CUPL, to aid in the programming of the logic circuitry 12.
- PAL design specification languages such as PLPL, ABEL or CUPL
- Such constructs provide extensive control of instruction decode, conditional testing and branching.
- elements normally required in PROM-based microsequencers such as test multiplexers, test masks, program counter multiplexers, condition code multiplexers, and branch control logic circuits, are not required in a PLC 10 of the instant invention.
- the programmable counter 240 is provided for sequencing, state counting and control of the programmable AND array 122, through feedback path 340.
- the counter 240 is user-controlled via the programmable AND array 122 (and the control sequence OR array 126, in the embodiment of FIG. 3).
- the contents of counter 240 can be loaded from AND array 122 (OR array 126 of FIG. 3) and the resulting count used to represent a state, which in conjunction with the AND array 122 (and OR array 124 of FIG. 3) can be used in the generation of output signals by output macrocells 160.
- Loading of the counter 240 provides the branching function of the state machine.
- the clearing of the counter resets the counter 240 to 00 (Hex) which is the normal starting state of the state machine.
- a ten-bit counter 240 provides 1,024 states. However, additional states can be provided by using the contents of the buried registers 200 in determining the present state.
- a second major task in state machine design is the generation of the control output signals.
- output signals can readily be generated dependent on the state of the machine and the input signals. For example, suppose a state machine having the states 00 and 01 is to perform the following operation:
- output signals O1 and O3 can be generated according to the following equations, dependent on signals S0, S1, S2 and their complements and the input signal I3: ##STR2##
- conditional inputs is programmable in the PLC 100 by way of software and the programmable AND array.
- conditional testing can make use of any state(s), or be independent of state, can make use of any combination of inputs, can make use of outputs fedback to the AND array, and can be for any particular length of time.
- conditional testing operations can be implemented by the PLC 10 as: ##STR5##
- Branching is performed by the PLC of the present invention based on the programmable conditional inputs to the programmable AND array 122.
- Dependent on the present state, as reflected by the contents of counter 240, and the conditional inputs, a LOAD CONTROL signal, and a set of LOAD ADDRESS signals can be generated by the control sequence OR array 126. The latter set of signals representing the state to which a branch is desired.
- the contents of counter 240 will be set to the desired branch state and on subsequent clock cycles, the count will resume from this state onwards.
- branching operations can be implemented by the programmable counter 240 of PLC 100 as follows: ##STR7##
- LOAD CONTROL signal is denoted LOAD
- LS2 the set of LOAD ADDRESS signals
- the instructions for the PLC 10 of the present invention are predecoded by conversion into Boolean equations and stored in this functional logical form in the AND-OR array portion 12. Since the conversion is performed by software, any user-specified application-oriented instruction set can be performed on the PLC 10, unlike prior art PROM-based microsequencers in which a hardware element--a dedicated instruction decode PLA--is used to convert instructions. Furthermore, since the prior art PROM-based microsequencers must convert the instructions from a data format at execution time, such microsequencers operate more slowly than the PLC 10 of the instant invention.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Logic Circuits (AREA)
Abstract
Description
__________________________________________________________________________ STATE.sub.-- n: IF (COND1) THEN OUT1, IF INITL THEN BOOT; STATE.sub.-- n+1: OUT1, OUT11, IF INITL THEN BOOT; STATE.sub.-- n+m: GOTO m; __________________________________________________________________________
______________________________________ STATE.sub.-- n GOTO (CONDITIONAL INPUTS "AND" MASK) STATE.sub.-- m OUT1 STATE.sub.-- p OUT2 ______________________________________
TABLE __________________________________________________________________________ Syntax of High Level Language Statement Statement Type Name Parameters Meaning __________________________________________________________________________ DEFINE INPINS Signal Names Define signal names OUTPINS Signal Names Define signal names STATEMENT INPUT PRIOR Priority encoding of input signals OUTPUT Generate signals OUTIN Test Feedbaok signals BURD n Buried Register n Test buried register signals/generate outputs DELAY Hold output signal(s) for certain number of clock cycles HOLD Inputs Only Hold input signal(s) for certain number of clock cycles RELEASE Inputs Only Release input signal(s) from hold IF THEN ELSE Statement Label(s) WHILE DO Statement Label(s) FOR DO Statement Label(s) CASE OF Statement Label(s) GOTO Statement Label Direct Branch GOTO Statement Label Relative Branch ENABLE Outputs Only Enable Buffer DISABLE Outputs Only Disable Buffer RESET Reset Register PRESET Preset Register PRELOAD Preload Register __________________________________________________________________________
______________________________________ STATE OPERATION ______________________________________ 00 OUT 01, 03 01 ##STR1## ______________________________________
______________________________________ STATE OPERATION ______________________________________ 04 ##STR3## 05 ##STR4## ______________________________________
______________________________________ STATE OPERATION ______________________________________ 00 GOTO 03 01 ##STR6## ______________________________________
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/356,107 US4933897A (en) | 1986-02-07 | 1989-05-24 | Method for designing a control sequencer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/827,840 US4876640A (en) | 1986-02-07 | 1986-02-07 | Logic controller having programmable logic "and" array using a programmable gray-code counter |
US07/356,107 US4933897A (en) | 1986-02-07 | 1989-05-24 | Method for designing a control sequencer |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US06/827,840 Division US4876640A (en) | 1986-02-07 | 1986-02-07 | Logic controller having programmable logic "and" array using a programmable gray-code counter |
Publications (1)
Publication Number | Publication Date |
---|---|
US4933897A true US4933897A (en) | 1990-06-12 |
Family
ID=26999126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/356,107 Expired - Lifetime US4933897A (en) | 1986-02-07 | 1989-05-24 | Method for designing a control sequencer |
Country Status (1)
Country | Link |
---|---|
US (1) | US4933897A (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046035A (en) * | 1987-08-26 | 1991-09-03 | Ict International Cmos Tech., Inc. | High-performance user programmable logic device (PLD) |
US5157595A (en) | 1985-07-19 | 1992-10-20 | El Paso Technologies, Company | Distributed logic control system and method |
US5193157A (en) * | 1988-10-18 | 1993-03-09 | Hewlett-Packard Company | Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter |
US5410660A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for executing branch on bit set/clear instructions using microprogramming flow |
US5491639A (en) * | 1991-04-17 | 1996-02-13 | Siemens Aktiengesellschaft | Procedure for verifying data-processing systems |
US5579263A (en) * | 1994-12-22 | 1996-11-26 | Sgs-Thomson Microelectronics, Inc. | Post-fabrication selectable registered and non-registered memory |
US5754458A (en) * | 1996-05-30 | 1998-05-19 | Hewlett-Packard Company | Trailing bit anticipator |
US5774738A (en) * | 1993-05-03 | 1998-06-30 | Texas Instruments Incorporated | State machines |
US5854922A (en) * | 1997-01-16 | 1998-12-29 | Ford Motor Company | Micro-sequencer apparatus and method of combination state machine and instruction memory |
US5867644A (en) * | 1996-09-10 | 1999-02-02 | Hewlett Packard Company | System and method for on-chip debug support and performance monitoring in a microprocessor |
US5870590A (en) * | 1993-07-29 | 1999-02-09 | Kita; Ronald Allen | Method and apparatus for generating an extended finite state machine architecture for a software specification |
US5881217A (en) * | 1996-11-27 | 1999-03-09 | Hewlett-Packard Company | Input comparison circuitry and method for a programmable state machine |
US5881224A (en) * | 1996-09-10 | 1999-03-09 | Hewlett-Packard Company | Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle |
US5887003A (en) * | 1996-09-10 | 1999-03-23 | Hewlett-Packard Company | Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results |
US5907714A (en) * | 1989-05-04 | 1999-05-25 | Texas Instruments Incorporated | Method for pipelined data processing with conditioning instructions for controlling execution of instructions without pipeline flushing |
US5943494A (en) * | 1995-06-07 | 1999-08-24 | International Business Machines Corporation | Method and system for processing multiple branch instructions that write to count and link registers |
US5956477A (en) * | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US5956476A (en) * | 1996-10-31 | 1999-09-21 | Hewlett Packard Company | Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns |
US6003107A (en) * | 1996-09-10 | 1999-12-14 | Hewlett-Packard Company | Circuitry for providing external access to signals that are internal to an integrated circuit chip package |
US6009539A (en) * | 1996-11-27 | 1999-12-28 | Hewlett-Packard Company | Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system |
US6374370B1 (en) | 1998-10-30 | 2002-04-16 | Hewlett-Packard Company | Method and system for flexible control of BIST registers based upon on-chip events |
US20040218629A1 (en) * | 2003-01-14 | 2004-11-04 | Stmicroelectronics S.R.L. | Method and device for transmitting data on a single line, in particular for transmitting data on a bus with minimization of the bus switching activity, and corresponding computer product |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4519033A (en) * | 1982-08-02 | 1985-05-21 | Motorola, Inc. | Control state sequencer |
US4858178A (en) * | 1986-09-30 | 1989-08-15 | Texas Instruments Incorporated | Programmable sequence generator |
-
1989
- 1989-05-24 US US07/356,107 patent/US4933897A/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4519033A (en) * | 1982-08-02 | 1985-05-21 | Motorola, Inc. | Control state sequencer |
US4858178A (en) * | 1986-09-30 | 1989-08-15 | Texas Instruments Incorporated | Programmable sequence generator |
Non-Patent Citations (2)
Title |
---|
Hicks, D. R., "Sequence Controller Using Programmable Logic Array", IBM Tech. Disc. Bull., vol. 20, No. 2, Jul. 1977, pp. 743-744. |
Hicks, D. R., Sequence Controller Using Programmable Logic Array , IBM Tech. Disc. Bull. , vol. 20, No. 2, Jul. 1977, pp. 743 744. * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5157595A (en) | 1985-07-19 | 1992-10-20 | El Paso Technologies, Company | Distributed logic control system and method |
US5046035A (en) * | 1987-08-26 | 1991-09-03 | Ict International Cmos Tech., Inc. | High-performance user programmable logic device (PLD) |
US5193157A (en) * | 1988-10-18 | 1993-03-09 | Hewlett-Packard Company | Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter |
US5946483A (en) * | 1989-05-04 | 1999-08-31 | Texas Instruments Incorporated | Devices, systems and methods for conditional instructions |
US5907714A (en) * | 1989-05-04 | 1999-05-25 | Texas Instruments Incorporated | Method for pipelined data processing with conditioning instructions for controlling execution of instructions without pipeline flushing |
US5491639A (en) * | 1991-04-17 | 1996-02-13 | Siemens Aktiengesellschaft | Procedure for verifying data-processing systems |
US5410660A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for executing branch on bit set/clear instructions using microprogramming flow |
US5774738A (en) * | 1993-05-03 | 1998-06-30 | Texas Instruments Incorporated | State machines |
US5870590A (en) * | 1993-07-29 | 1999-02-09 | Kita; Ronald Allen | Method and apparatus for generating an extended finite state machine architecture for a software specification |
US5579263A (en) * | 1994-12-22 | 1996-11-26 | Sgs-Thomson Microelectronics, Inc. | Post-fabrication selectable registered and non-registered memory |
US5943494A (en) * | 1995-06-07 | 1999-08-24 | International Business Machines Corporation | Method and system for processing multiple branch instructions that write to count and link registers |
US5754458A (en) * | 1996-05-30 | 1998-05-19 | Hewlett-Packard Company | Trailing bit anticipator |
US5881224A (en) * | 1996-09-10 | 1999-03-09 | Hewlett-Packard Company | Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle |
US5887003A (en) * | 1996-09-10 | 1999-03-23 | Hewlett-Packard Company | Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results |
US5867644A (en) * | 1996-09-10 | 1999-02-02 | Hewlett Packard Company | System and method for on-chip debug support and performance monitoring in a microprocessor |
US6003107A (en) * | 1996-09-10 | 1999-12-14 | Hewlett-Packard Company | Circuitry for providing external access to signals that are internal to an integrated circuit chip package |
US5956476A (en) * | 1996-10-31 | 1999-09-21 | Hewlett Packard Company | Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns |
US5956477A (en) * | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US5881217A (en) * | 1996-11-27 | 1999-03-09 | Hewlett-Packard Company | Input comparison circuitry and method for a programmable state machine |
US6009539A (en) * | 1996-11-27 | 1999-12-28 | Hewlett-Packard Company | Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system |
US5854922A (en) * | 1997-01-16 | 1998-12-29 | Ford Motor Company | Micro-sequencer apparatus and method of combination state machine and instruction memory |
US6374370B1 (en) | 1998-10-30 | 2002-04-16 | Hewlett-Packard Company | Method and system for flexible control of BIST registers based upon on-chip events |
US20040218629A1 (en) * | 2003-01-14 | 2004-11-04 | Stmicroelectronics S.R.L. | Method and device for transmitting data on a single line, in particular for transmitting data on a bus with minimization of the bus switching activity, and corresponding computer product |
US7586943B2 (en) * | 2003-01-14 | 2009-09-08 | Stmicroelectronics S.R.L. | Method and device for transmitting data on a single line, in particular for transmitting data on a bus with minimization of the bus switching activity, and corresponding computer product |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4876640A (en) | Logic controller having programmable logic "and" array using a programmable gray-code counter | |
US4933897A (en) | Method for designing a control sequencer | |
US5042004A (en) | Programmable logic device with subroutine stack and random access memory | |
EP0282256A2 (en) | Micro-sequencer device | |
US5302866A (en) | Input circuit block and method for PLDs with register clock enable selection | |
US3953833A (en) | Microprogrammable computer having a dual function secondary storage element | |
US4835414A (en) | Flexible, reconfigurable terminal pin | |
JPS6361691B2 (en) | ||
US5398250A (en) | Circuit for testing circuit blocks controlled by microinstructions | |
DE3586564D1 (en) | PROGRAMMABLE ONE-CHIP CONTROL UNIT. | |
JPH01195379A (en) | Logic circuit | |
US4481581A (en) | Sequence control circuit for a computer | |
JPH05282895A (en) | Integrated circuit including standard cell, application cell, and test cell | |
EP0238230B1 (en) | Programmable logic device | |
US6804802B1 (en) | JTAG instruction register and decoder for PLDS | |
EP0239276A2 (en) | Alu for a bit slice processor with multiplexed bypass path | |
JPS61212116A (en) | Semiconductor integrated circuit | |
KR910009084B1 (en) | Logic circuit | |
Reyling | Considerations in choosing a microprogramable bit-sliced architecture | |
US20020013630A1 (en) | Program-controlled unit | |
KR960015560B1 (en) | Apparatus for inputting 2-test data input to integrated circuit in a boundary-scan architecture | |
KR20030025057A (en) | Hardware board and debug algorithm for generating the system program using system-on-a-chip | |
JP2532072Y2 (en) | Pattern generator | |
KR100311500B1 (en) | Skipable boundary scan cell | |
JPS58221444A (en) | Controlling device of microprogram |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: VANTIS CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ADVANCED MICRO DEVICES, INC.;REEL/FRAME:010340/0329 Effective date: 19990615 |
|
AS | Assignment |
Owner name: VANTIS CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ADVANCED MICRO DEVICES, INC.;REEL/FRAME:010310/0899 Effective date: 19990615 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: LATTICE SEMICONDUCTOR CORPORATION, OREGON Free format text: MERGER;ASSIGNOR:VANTIS CORPORATION;REEL/FRAME:012937/0738 Effective date: 20020211 |
|
AS | Assignment |
Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHANKAR, KAPIL;AGRAWAL, OM;REEL/FRAME:022973/0794 Effective date: 19860131 |