Tuesday, 26 June 2012

Why Verilog?

The complexity of hardware design has grown exponentially in the last decade. The exponential growth is fueled by new advances in design technology as well as the advances in fabrication technology . The usage of hardware description language to model, simulate, synthesize, analyze, and test the design has been a corner stone of this rapid development.  Verilog is the first hardware description language that was designed to be the language of choice in this domain. It is designed to enable descriptions of complex and large designs in a precise and succinct manner. It can facilitate descriptions of advances in architectures of design such as pipelining, cache management, and branch predictions. A smooth top-down design flow is possible with verilog based designs. It is also designed to facilitate new ECAD technologies such as synthesis and formal verification and simulation. It was designed to unify design process (including behavioral, rtl, gates, stimulus, switches, user-interface, test benches, and unified interactive and batch modes). It is designed to leverage advances in software development for hardware design.
            
A hardware description language describes hardware using a language. For every piece of hardware there exists a corresponding language (and viceversa). The correspondence is explained below in terms of building blocks in hardware and the constructs in the language. The building blocks in hardware design is dependent on the methodology being used. A design process consists of top-down and bottom up and a mixture of these two styles. Verilog is a powerful tool in the top-down design methodology and is capable of supporting the bottom up style and consequently the mixed approach as well.
           
Verilog defines a set of words to have special meaning. These words are reserved and cannot be used as identifiers or labels in a verilog model. The type of a statement is identified by the first word in the statement that is keyword. Examples of these will be ‘always’, ‘and’, ‘assign’, etc. when a statement begins with the word always, there is a special meaning of an always loop attached to that statement. The set of keywords defines the scope or the contents of the language. In other words, the set of features in verilog can be characterized by the set of keywords as defined below.
          
A module is the principle design entity in verilog. The first line of a module declaration specifies the name and port list (arguments). The next few lines specify the i/o type (input, output or inout) and width of each port. The default port width is 1 bit. Then the port variables must be declared wire, wand, reg. The default is wire. Typically inputs are wire since their data is latched outside the module. Outputs are type  reg  if their signals were stored inside an always or initial block






newsletter software | bulk email solution | live chat software | email click-through rate | email list management | email format

Monday, 25 June 2012

Capabilities of Verilog

 
The following are the major capabilities that the language provides along with the features that differentiate it from other hardware description languages.


The language can be used as an exchange medium between chip vendors and CAD tool users. Different chip vendors can provide Verilog descriptions of their components to system designers. CAD tool users can use it to capture the behavior of the design at a high level of abstraction for functional simulation. The  language can also be used as a communication medium between different CAD and CAE tools. For example, a schematic capture program may be used to generate a Verilog description for the design, which can be used as an input to a simulation program. The language supports hierarchy; that is, a digital system can be modeled as a set of interconnected components; each component, in turn, can be modeled as a set of interconnected
components. The language supports flexible design methodologies: top-down, bottom-up, or mixed.

The language is not technology-specific, but is capable of supporting technology specific features. It can also support various hardware technologies; for example, we may define new logic typed and new components; we may also specify technology-specific attributes. By being technology-independent, the same model can be synthesized into different vendor libraries. It supports both synchronous and asynchronous timing models. Various digital modeling techniques, such as finite-state machine descriptions, Algorithmic descriptions, and Boolean equations, can be modeled using the language. The language is publicity available, human-readable, all, it and, above is not proprietary. It is an IEEE and ANSI standard; therefore, models described using this  language are portable. The language supports three basic different description styles: dataflow, structural, and behavioral. A design may also be expressed in any combination of these three descriptive styles. It supports wide range of abstraction levels ranging from abstract behavioral descriptions to vary precise gate-level descriptions. It does not, however, support modeling at or below the transistor level. It allows a design to be captured at a mixed level using a single coherent language. Arbitrarily large designs can be modeled using the language, and there are no limitations on the size of a design. The language has elements that make large-scale designs modeling easier; for example, components, functions, procedure, and packages. Test benches can be written using the same language to test other Verilog models. A model can not only describe the functionality of a design, but can also contain information about the design itself in terms of user-defined attributes, such as total area and speed. A common language can be used to describe library components from different vendors. Tools that understand Verilog  models will have no difficulty in reading models from a variety of vendors since the language is a standard. Behavioral models that conform to a certain synthesis descriptions style are capable of being synthesized to gate-level descriptions. The capability of defining new data types provides the power to describe and simulate a new design technique at a very high level of abstraction without any concern about the implementation details






newsletter software | bulk email solution | live chat software | email click-through rate | email list management | email format

Sunday, 24 June 2012

Overview of Reversible Logic Synthesis Methods.

Such a variety of different reversible gates results in a variety of different approaches to reversible logic synthesis. Fortunately, the basic analysis of different techniques of reversible logic synthesis was successfully done in one of Perkowski's work. Here, we use and expand this approach to the classification of reversible synthesis methods.

Composition methods: The idea is to compose a reversible block using small and well known reversible gates. The reversible block should be easy to use. Then, a modification of a conventional logic synthesis procedure is applied to synthesize a network. The resulting network will be reversible as a network essentially consisting of reversible gates.

 Decomposition methods: Decomposition methods can be characterized as a top down reduction of the function from its outputs to its inputs. During the design procedure a function is supposed to be decomposed into a combination of several specific functions each of which is realized as a separate reversible network .An example of a decomposition method can be found in where synthesis appears to be a reduction of the output to the form of the input. The decomposition and composition methods can be multilevel. Observe that the composition and decomposition methods form a very general and powerful tool of logic synthesis. In fact, most of the algorithms can be classified as either composition or decomposition. Using Lemma 1, one can notice the duality of the composition and decomposition methods; a composition design procedure for a reversible function f is a decomposition procedure for f¡1.

 Factorization methods: Factorization is another powerful logic design tool. Its idea is in choosing a Boolean operation, for instance, ? (often multiplication or EXOR) for a function f and ¯ending two functions f1 and f2 such that:
 f = f1? f2;
 for the synthesis cost metrics the cost of f is smaller than the sum of costs of f1 and f2 plus a weight associated with the Operation. In general, the Operation does not have to be a binary operation, but may be an arbitrary multiple output function of several arguments. To our knowledge, the factorization tool was first applied to reversible logic design in.






newsletter software | bulk email solution | live chat software | email click-through rate | email optimization | email format

Wednesday, 13 June 2012

Injective Function

In mathematics, an injective function is a function that preserves distinctness: it never maps distinct elements of its domain to the same element of its codomain. In other words, every element of the function's codomain is mapped to by at most one element of its domain. If in addition all of the elements in the codomain are in fact mapped to by some element of the domain, then the function is said to be bijective. Read more






social network | email spam | customer retention | text in email | email marketing best practices

Tuesday, 5 June 2012

The Reversibility of Physics and Reversible Computing

Landauer's principle (and indeed, the second law of thermodynamics itself) can also be understood to be a direct logical consequence of the underlying reversibility of physics, as is reflected in the general Hamiltonian formulation of mechanics, and in the unitary time-evolution operator of quantum mechanics more specifically.In the context of reversible physics, the phenomenon of entropy increase (and the observed arrow of time) can be understood to be consequences of the fact that our evolved predictive capabilities are rather limited, and cannot keep perfect track of the exact reversible evolution of complex physical systems, especially since these systems are never perfectly isolated from an unknown external environment, and even the laws of physics themselves are still not known with complete precision. Thus, we (and physical observers generally) always accumulate some uncertainty about the state of physical systems, even if the system's true underlying dynamics is a perfectly reversible one that is subject to no entropy increase if viewed from a hypothetical omniscient perspective in which the dynamical laws are precisely known. Read more





social network | email spam | customer retention | text in email | email marketing best practices

Universality and Toffoli gate

Any reversible gate must have the same number of input and output bits, by the pigeonhole principle. For one input bit, there are two possible reversible gates. One of them is NOT. The other is the identity gate which maps its input to the output unchanged. For two input bits, the only non-trivial gate is the controlled NOT gate which XORs the first bit to the second bit and leaves the first bit unchanged. Read more



social network | email spam | customer retention | text in email | email marketing best practices

Monday, 4 June 2012

Quantum gate

In quantum computing and specifically the quantum circuit model of computation, a quantum gate (or quantum logic gate) is a basic quantum circuit operating on a small number of qubits. They are the building blocks of quantum circuits, like classical logic gates are for conventional digital circuits. Continue Reading







social network | email spam | customer retention | text in email | email marketing best practices

Thursday, 31 May 2012

Adiabatic circuit

Adiabatic circuits are low power circuits which use "reversible logic" to conserve energy.Unlike traditional CMOS circuits, which dissipate energy during switching, adiabatic circuits attempt to conserve charge by following two key rules:   
1. Never turn on a transistor when there is a voltage potential between the source and drain.
2. Never turn off a transistor when current is flowing through it. Read more



social network | email spam | customer retention | text in email | email marketing best practices

Wednesday, 23 May 2012

Reversible Process (Thermodynamics)

In thermodynamics, a reversible process, or reversible cycle if the process is cyclic, is a process that can be "reversed" by means of infinitesimal changes in some property of the system without entropy production or dissipation of energy. Due to these infinitesimal changes, the system is in thermodynamic equilibrium throughout the entire process. Continue Reading

Tuesday, 22 May 2012

Biiliard-ball computer

A billiard-ball computer, also known as a conservative logic circuit, is an idealized model of a reversible mechanical computer based on newtonian dynamics, proposed in 1982 by Edward Fredkin and Tommaso Toffoli. Instead of using electronic signals like a conventional computer, it relies on the motion of spherical billiard balls in a friction-free environment made of buffers against which the balls bounce perfectly. It was devised to investigate the relation between computation and reversible processes in physics. Continue Reading

Monday, 21 May 2012

Three-input universal logic gate

Logic gates are used to build computer chips. Reversible logic gates are of interest because they could in principle generate useful results for less heat generated (Landauer 1961). The nand gate is universal among irreversible logic gates, in the sense that it is possible to simulate any irreversible logic gate with a network of these gates. The Fredkin and Toffoli gates were the first gates to be proved universal among reversible logic gates. Read more

Sunday, 20 May 2012

Reversible Cellular Automaton

A reversible cellular automaton is a cellular automaton in which every configuration has a unique predecessor. That is, it consists of a regular grid of cells, each of which may take on one of a finite set of states, together with a rule for updating all cells simultaneously based on the states of the neighboring cells, in such a way that the state of each cell prior to an update can be determined uniquely from the updated states of all the cells. The time-reversed dynamics of a reversible cellular automaton can always be described by another cellular automaton rule, possibly on a much larger neighborhood. Read more

Friday, 18 May 2012

Reversible circuits

To implement reversible computation, estimate its cost, and to judge its limits, it is formalized it in terms of gate-level circuits. For example, the inverter (logic gate) (NOT) gate is reversible because it can be undone. The exclusive or (XOR) gate is irreversible because its inputs cannot be unambiguously reconstructed from an output value. However, a reversible version of the XOR gate --- the Controlled NOT gate(CNOT) --- can be defined by preserving one of the inputs. Read more

Thursday, 17 May 2012

Three-input universal logic gate

Logic gates are used to build computer chips. Reversible logic gates are of interest because they could in principle generate useful results for less heat generated (Landauer 1961). The nand gate is universal among irreversible logic gates, in the sense that it is possible to simulate any irreversible logic gate with a network of these gates. The Fredkin and Toffoli gates were the first gates to be proved universal among reversible logic gates. Read more

Wednesday, 16 May 2012

Reversible dynamics

In mathematics, a dynamical system is invertible if the forward evolution is one-to-one, not many-to-one; so that for every state there exists a well-defined reverse-time evolution operator. Read more

Tuesday, 15 May 2012

Fredkin gate

The Fredkin gate (also CSWAP gate) is a computational circuit suitable for reversible computing, invented by Ed Fredkin. It is universal, which means that any logical or arithmetic operation can be constructed entirely of Fredkin gates. The Fredkin gate is the three-bit gate that swaps the last two bits if the first bit is 1. Read more

Toffoli gate

In computer science, the Toffoli gate (also CCNOT gate), invented by Tommaso Toffoli, is a universal reversible logic gate, which means that any reversible circuit can be constructed from Toffoli gates. It is also known as the "controlled-controlled-not" gate, which describes its action. Read more

Reversible computing

Reversible computing is a model of computing where the computational process to some extent is reversible, i.e., time-invertible. A necessary condition for reversibility of a computational model is that the relation of the mapping states of transition functions to their successors should at all times be one-to-one. Reversible computing is generally considered an unconventional form of computing. Read more

Reversible design of Two pair Two rail checker:

The two pair two rail checker is required for testing that the outputs in CTSG blocks are complementary or not. Thus the efficient reversible design of two pair two rail checker is discussed in this section. The error checking functions required in the two pair rail checker are as follows
                                                                         E1=x0y1+y0x1
                                                                         E2= x0x1+y0y1
                                                     Where x0/y0 & x1/y1 are complementary,
The two pair rail checker produces the complementary output at E1& E2, if the inputs passed to it are complementary. If the inputs are not complementary, the outputs E1 & E2 will be identical

Verilog digital logic simulator tools allow you to perform the following tasks in the design process without building a hardware prototype:

1. Determine the feasibility of new design ideas
2. Try more than one approach to a design problem
3. Verify functionality
4. Identify design problems.

Monday, 14 May 2012

Overview Of Reversible Logic Synthesis Methods

1.  Composition methods:
The idea is to compose a reversible block using small and well known reversible gates. The reversible block should be easy to use. Then, a modification of a conventional logic synthesis procedure is applied to synthesize a network. The resulting network will be reversible as a network essentially consisting of reversible gates.

2.  Decomposition methods:
 Decomposition methods can be characterized as a top down reduction of the function from its outputs to its inputs. During the design procedure a function is supposed to be decomposed into a combination of several specific functions each of which is realized as a separate reversible network .An example of a decomposition method can be found in where synthesis appears to be a reduction of the output to the form of the input. The decomposition and composition methods can be multilevel. Observe that the composition and decomposition methods form a very general and powerful tool of logic synthesis. In fact, most of the algorithms can be classified as either composition or decomposition. Using Lemma 1, one can notice the duality of the composition and decomposition methods; a composition design procedure for a reversible function f is a decomposition procedure for fi1.

Thursday, 10 May 2012

Advantages of storing the Intermediate results


The achievements obtained using this method is:
  1. No erasing of bits is done as in the irreversible process.
  2. Heat dissipation is not there as the bits are not erased and hence power is saved.
  3. And the inputs can be obtained from the outputs.

      

Main reasons of Important role of HDL in mordern design methodology


Design functionality can be verified early in the design process. Design simulation at this higher level, before implementation at the gate level, allows you to evaluate architectural and design decisions. Coupling HDL Compiler with logic synthesis tools, you can automatically convert an HDL description to a gate-level implementation in a target technology.HDL descriptions provide technology independent documentation of a design and its functionality. Since the initial HDL design description is technology-independent, you can use it again to generate the design in a different technology, without having to translate from the original technology.

Tuesday, 8 May 2012

Procedure vs Continuos assignment statement


Procedural assignment changes the state of a register
  sequential logic
  Clock controlled
Continuous statement is used to model combinational logic. Continuous assignments drive wire variables and are evaluated and updated whenever an input operand changes value. It is important to understand and remember the difference.