You are on page 1of 14

# Polytechnic University of the Philippines

Taguig Branch Gen. Santos Avenue, Lower Bicutan Taguig city 1632

## Research Paper in Digital and Logic Circuits

Prepared by: (Group 4) Soguilon, Jane P. Bayed, Eden mary ann Roquero, Premm rose Siguancia, Florry ann Catubig, Kenny raven Lagarde, Melissa Paler, Minzel ICMT I-1 Submitted to: Engr. Jennifer Zimara Professor March 18, 2013
(Group representative)

I.

Title:

Application of Combinational and Sequential Circuit: Code Converter and Counter Machine

II.

Introduction:

We had research about the application of combinational and sequential circuit in where we had chosen to focus with the two devices that corresponds to its applications, like a code converter and a counter machine. Code converter has the application of combinational circuit and the counter machine is for the sequential circuit. This research can give a wider knowledge about how to distinguish the differences between the two circuit and also its application on how does the devices will work accurately to its designated logic circuit applications. Combinational Circuit or time-independent logic is a type of digital logic which is implemented by Boolean circuits, where the output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input. In other words, sequential logic has memory while combinational logic does not. Combinational and sequential circuit has a difference, a combinational circuit or time-independent logic is a type of digital logic which is implemented by Boolean circuits, where the output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input. In other words, sequential logic has memory while combinational logic does not. Combinational logic circuit is made from basic gates (AND, OR, NOT) or universal gates (NAND, NOR) gates that are "combined" or connected together to produce more complicated switching circuits. These logic gates are the building blocks of combinational logic circuits. An example of a combinational circuit is a decoder, which converts the binary code data present at its input into a number of different output lines, one at a time producing an equivalent decimal code at its output. Sequential logic differs from combinational logic in that the output of the logic device is dependent not only on the present inputs to the device, but also on past inputs; i.e., the output of a sequential logic device depends on its present internal state and the present inputs. This implies that a sequential logic device has some kind of memory of at least part of its ``history'' or previous inputs.

Synchronous Sequential Circuit: Output changes at discrete interval of time. It is a circuit based on an equal state time or a state time defined by external means such as clock. Examples of synchronous sequential circuit are Flip Flops, Synchronous Counter. Asynchronous Sequential Circuit: Output can be changed at any instant of time by changing the input. It is a circuit whose state time depends solely upon the internal logic circuit delays. Example of asynchronous sequential circuit is Asynchronous Counter

III. Methodology
Code Converter
Code converter is a converter that changes coded information to a different code system. code conversion is a common problem in any integration scenario where coded values such as Unit of Measure Code or Currency Code are represented differently in each of the applications being integrated. Many times, rules for performing these conversions can become quite complicated. If you are integrating with trading partners using multiple applications and/or standards, a simple lookup table with to and from columns will not be sufficient. Advanced code conversion rules based on trading partner, industry standard, or transaction directions are required to support these complex application integration relationships. Code conversion rules in Oracle e-Commerce Gateway are defined as a set of to and from values plus additional attributes to determine specific code conversion processing behavior. Key features of the Oracle e-Commerce Gateway Code Conversion Module include:

User defined code conversion categories (e.g. UOM, Currency Code). User defined activation/assignment of code conversion for specific data elements. Code conversion based on a user defined multi-level hierarchy. Code conversion based on trading partner standard (e.g. ASC X12, EDIFACT). Code conversion based on direction of transaction (inbound, outbound, or both). One-to-Many, Many-to-One conversions.

To enable code conversion for specific data elements within a transactions, there are three easy setup steps:

Define Code Conversion Category Define Code Conversion Values Assign Code Conversion Category

Define Code Conversion Category allows you to enter all of the categories applicable to your business processing environment. A category is defined as a group of code conversion rules applicable to a single data element. Many predefined categories are included in Oracle e-Commerce Gateway. You may choose to implement these predefined categories or define your own. See: Defining Code Conversion Categories.

keys can be defined for a single code conversion category If keys are used for code conversion, setup is required in each of the three code conversion forms. Code Conversion Processing Key setup data elements used in code conversion processing are:

Code Conversion Category Direction Key (1-5) Internal Value External Value (1-5)

For inbound code conversion, values for each of these data elements (except Internal Value) are used to derive Internal Value. For outbound code conversion, values for each of these data elements (except External Value 1-5) are used to derive External Value (1-5). Inbound Code Conversion Processing During inbound transaction processing, inbound files are processed based on the interface file definition in Oracle e-Commerce Gateway. The interface file definition, as defined in the Interface File Definition form, will determine file layout and structure. It will also identify External Values (1-5) used for inbound code conversion processing. Code conversion category data entered in the Assign Code Conversion Category form determine which fields require inbound code conversion processing. Key values are also derived from data in this form. Inbound code conversion processing uses:

Code Conversion Category based on Assign Code Conversion Category definitions. Direction based on transaction type. Key (1-5) values from the interface file. External Values (1-5) from the interface file.

All of these values are used to find a record in the Code Conversion Values table that matches the above values. If found, convert External Values (1-5) to Internal Value based on this record definition. If no match is found, continue processing key values (if keys are used).

If no match is found, locate a record in the Code Conversion Values table with no key values defined and convert External Values (1-5) to Internal Values based on this record definition. If no match is found, default External Value 1 into the Internal Value field. Note: If an Internal Value is present in the inbound interface file, inbound code conversion processing will not overwrite the Inbound Value in the file. Note: It is recommended to use unique identifiers, such as translator code, location code, or the combination of both, which are available at the time of code conversion as keys to identify the customer, supplier, or bank for code conversion. Outbound Code Conversion Processing During outbound transaction processing, code conversion category data entered in the Assign Code Conversion Category form determine which fields require outbound code conversion processing. Key values are also derived from data in this form. Outbound code conversion processing uses:

Code Conversion Category based on Assign Code Conversion Category definitions. Direction based on transaction type. Key (1-5) values from the transaction record. Internal Values from the transaction record.

All of these values are used to find a record in the Code Conversion Values table that matches the above values. If found, convert Internal Value to the External Value (1-5) based on this record definition. If no match is found, continue processing key values (if keys are used). If no match is found, locate a record in the Code Conversion Values table with no key values defined and convert Internal Value to External Value (1-5) based on this record definition. If no match is found, default Internal Value into the External Value 1 field. Processing Keys (1-5) In Oracle e-Commerce Gateway, keys are used to construct a logical hierarchy of key attributes. Code conversion processing derives key values based on data entered in the Assign Code Conversion Category form.

Once key values are derived from the interface file (inbound) or transaction record (outbound), a composite key is constructed with values for all key levels that apply for the code conversion category. Code conversion processing will use this composite key to locate records in the Code Conversion Values table with exactly the same composite key plus matching attributes for the other critical data elements in code conversion processing. Failure to locate a matching record will cause code conversion processing to construct a new composite key by using values for all key levels except the highest key level. This is effectively the same as stepping up one level in the hierarchy of key attributes. For example, trading partner and trading partner location may be defined as two key attributes. The logical hierarchy structure will look like this: Code Conversion Category =UOM. Trading Partner (Key 1) =Company ABC. Trading Partner Location (Key 2) =CA The initial composite key will contain valuesCompany ABC and CA. Any records in the Code Conversion Values table that have matching Key 1 and Key 2 values, plus meet all other matching criteria, will be used to convert internal or external values. If a matching record is not found, the new composite key will contain the value Company ABC (CA has been removed from the composite key). Now, code conversion processing is looking for a match on Trading Partner (Key 1) only. This cycle of stepping up the hierarchy of key attributes to construct new composite keys is repeated until the composite key contains no values. At this point, code conversion processing attempts to locate a match based on Code Conversion Category only. Processing External Values (1-5) External Values (1-5) are processed as one, composite external value. Code conversion processing does not view External Values (1-5) as a hierarchy or multiple composite values. During outbound code conversion processing, any Code Conversion Values record that contains multiple External Values will convert all External Values and write them to the interface file (if the Code Conversion Values record matches all other criteria).

During inbound code conversion processing, all External Values plus other matching criteria must be contained in the Code Conversion Values record in order for that record to qualify for code conversion. Defining Code Conversion Categories A category is a label assigned to a group of code conversion rules in the Code Conversion Values window. For example, the UOM category contains all units of measure code conversion rules. All desired categories, such as unit of measure or carrier code, must be defined. Any category can be used in several transactions, or several times within a single transaction. You can use a code conversion category from the e-Commerce Gateway's predefined list or you can define your own code conversion category. Once defined, code conversion categories must be assigned to table columns to activate the code conversion for the specific data element. You do this in the Assign Categories window.

Counter Machine:
A counter machine is an abstract machine used in formal logic and theoretical computer science to model computation. It is the most primitive of the four types of register machines. A counter machine comprises a set of one or more unbounded registers, each of which can hold a single non-negative integer, and a list of (usually sequential) arithmetic and control instructions for the machine to follow.

Basic Features:
For a given counter machine model the instruction set is tinyfrom just one to six or seven instructions. Most models contain a few arithmetic operations and at least one conditional operation (if condition is true, then jump). Three base models, each using three instructions, are drawn from the following collection. (The abbreviations are arbitrary.)

CLR (r): CLeaR register r. (Set r to zero.) INC (r): INCrement the contents of register r. DEC (r): DECrement the contents of register r. CPY (rj, rk): CoPY the contents of register rj to register rk leaving the contents of rj intact. JZ (r, z): IF register r contains Zero THEN Jump to instruction z ELSE continue in sequence. JE (rj, rk, z): IF the contents of register rj Equals the contents of register rk THEN Jump to instruction z ELSE continue in sequence.

In addition, a machine usually has a HALT instruction, which stops the machine (normally after the result has been computed). Using the instructions mentioned above, various authors have discussed certain counter machines:

set 1: { INC (r), DEC (r), JZ (r, z) }, (Minsky (1961, 1967), Lambek (1961)) set 2: { CLR (r), INC (r), JE (rj, rk, z) }, (Ershov (1958), Peter (1958) as interpreted by Shepherdson-Sturgis (1964); Minsky (1967); Schnhage (1980)) set 3: { INC (r), CPY (rj, rk), JE (rj, rk, z) }, (Elgot-Robinson (1964), Minsky (1967))

The three counter machine base models have the same computational power since the instructions of one model can be derived from those of another. All are equivalent to the computational power of Turing machines (but only if Gdel

numbers are used to encode data in the register or registers; otherwise their power is equivalent to the primitive recursive functions). Due to their unary processing style, counter machines are typically exponentially slower than comparable Turing machines.

## Alternative names and models:

The counter machine models go by a number of different names that may help to distinguish them by their peculiarities. In the following the instruction "JZDEC ( r )" is a compound instruction that tests to see if a register r is empty; if so then jump to instruction Iz, else if not then Decrement the contents of r: Shepherdson-Sturgis machine, because these authors formally stated their model in an easily accessible exposition (1963). { INC ( r ), DEC ( r ), CLR ( r ), CPY ( rj, rk ), JNZ ( r, z ), J ( z ) }

Minsky machine, because Marvin Minsky (1961) formalized the model. Usually uses instruction set (1), but instruction-execution is not default-sequential so the additional parameter 'z' appears to specify the next instruction after INC and as the alternative in JZDEC: { INC ( r, z ), JZDEC ( r, ztrue, zfalse) } Program machine, Program computer, the names Minsky (1967) gave the model because, like a computer its instructions proceed sequentially unless a conditional jump is successful. Abacus machine, the name Lambek (1961) gave to his simplification of the Melzak (1961) model, and what Boolos-Burgess-Jeffrey (2002) calls it. Successor machine, because it uses the 'successor operation' of, and closely resembles, the Peano axioms. Used as a base for the successor RAM model. Uses instruction set (2) by e.g. Schnhage as a base for his RAM0 and RAM1 models that lead to his pointer machine SMM model, also discussed briefly in van Emde Boas (1990): Elgot-Robinson model, used to define their RASP model (1964). This model requires one empty register at the start ( e.g. [r0] =0 ). (They augmented the same model with indirect addressing by use of an additional register to be used as an "index" register.) { INC (r), CPY ( rs, rd ), JE ( rj, rk, z ) }

Other counter machines: Minsky (1967) demonstrates how to build the three base models (program/Minsky/Lambek-abacus, successor, and Elgot-Robinson)

## Example: COPY the count from register #1 to #2

This example shows how to create three more useful instructions: clear, unconditional jump, and copy.

CLR ( j ): Clear the contents of register rj to zero. J ( z ): Unconditionally jump to instruction Iz. CPY ( s, d ): Copy the contents of source register rs to destination register rd. Afterward rs will contain its original count (unlike MOVE which empties the source register, i.e., clears it to zero).

## The basic set (1) is used as defined here:

Bibliography:
Websites references: http://en.wikipedia.org/wiki/Combinational_logic http://media.careerlauncher.com.s3.amazonaws.com/gate/material/2.pdf http://en.wikipedia.org/wiki/Digital-to-analog_converter http://www.most.gov.mm/techuni/media/BinaryToGrayCodeConverter.pdf http://en.wikipedia.org/wiki/Counter_machine http://en.wikipedia.org/wiki/Banknote_counter http://en.wikipedia.org/wiki/Currency-counting_machine http://www.ece.ucsb.edu/~parhami/pubs_folder/parh10-eeee-combinational-circuits.pdf http://docs.oracle.com/cd/A60725_05/html/comnls/us/ec/convert.htm