[Home] [Why ...] [Boolean algebra] [Carnaugh Maps] [AND-OR-NOT] [Number Systems] [Combinatorial logic] [Sequential logic] [State-Machines] [Examples]
Why ...
Up ] Digital vs Analogue ] TTL vs CMOS ] TTL - CMOS - PLDs ]

Why should you design a Digital System
 

 

 
  •  Every application which involves electronics can be divided into a number of "knowledge levels". Normally will you be able to manage a level, without any knowledge of the levels above and below.
     

  •  But if you will master a level to perfection, must you also have knowledge of the neighbour-level.

    • The most efficient high-level programs written by programmers who familiar with Assembly programming.

    • In order to write a program for an application must you understand the purpose of the code.
       

  •  Hardware and Software solves the same problems and can hence replace each other.

    • Human interaction with an application, normally quite slow - a typical Software task.

    • Data communication and networking a typical Hardware task.

    • What's in between depends at the "Need for speed" - The Microprocessor might be able to execute the software fast enough, but what perhaps this demands 90% of its resources :-(
       

  •  Programmable logic like FPGA's and Hardware Description Languages like VHDL and Verilog makes the change between software and  hardware relative easy.

 

 

 
Knowledge level   Need for speed
Application

Seconds
You will find Digital Electronic in almost all kind of equipment.

The market for embedded software huge.

Systems which involves mechanic and motors often works at the range of seconds
High-level programming 10-3 Sec.
Programming languages like C, C++, C#, Java enables a programmer to create software without knowledge of the hardware below.

Do you care how the engine in your car works?

Modern compilers generates efficient Machine-code and hence will the performance be better then milliseconds.

For a PLC (Programmable Logic Controller) will a response time at milliseconds be considered fast.

Assembly programming 10-6 Sec.
A CPU "born" with the ability to execute a set of instructions called Machine-code

The basic programming language of a CPU called Assembly - and it gives the programmer full control - but demands hardware-knowledge

Its true that modern CPU can execute several instructions per microsecond, but most applications involves at least 100 instructions
Digital electronic 10-9 Sec.
In the 1960ies was a family of digital IC developed (the 74xx)

The worlds first integrated CPU - the i4004 was introduced 1971
(And the world haven't been the same afterwards ;)

Software replaces Hardware

The optimal response time achieved with the use of a dedicated hardware solution.

Remember also that hardware works truly parallel

FPGA's and HDL makes the implementation "easy"

Analogue electronic 10-10 Sec.
The world are analogue (yet - there people working on this ;)

The first Integrated Circuit was invented back in 1958

A Digital gate basically an analogue circuit which either turned ON or OFF

Some of the problems faced in the Digital world origin from the Analogue world.

Propagation delays, Hazard, Metastability to mention a few.

Semiconductor physics c = speed of light
The art of doping Silicon with Phosphor or Boron to form semiconductors a well kept secret by the manufactures.

At least concerning State of the art technologies.

The worlds first Bipolar Junction Transistor was presented at the Bell-lab back in 1948.

c - The speed-limit of the universe and even lower in a conductor. "only" 66% of the speed in vacuum.