Home ] Up ] [ Why ... ] Boolean algebra ] Carnaugh Maps ] AND-OR-NOT ] Number Systems ] Combinatorial logic ] Sequential logic ] State-Machines ]
Why ...

Up ] Digital vs Analogue ] TTL vs CMOS ] TTL - CMOS - PLDs ]

Return to DIG #1
Why should you design a Digital System
 

 

 
bullet

 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.
 

bullet

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

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

bullet

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

bullet

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

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

bullet

Data communication and networking a typical Hardware task.

bullet

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 :-(
 

bullet

 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.