CAD of Circuits and Integrated Systems
eBook - ePub

CAD of Circuits and Integrated Systems

  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

CAD of Circuits and Integrated Systems

Book details
Book preview
Table of contents
Citations

About This Book

This book addresses the difficulty of obtaining a quality solution, that is, pre optimal or even optimal, in a reasonable time from a central processing unit (CPU). As polynomial problems can be treated by exact methods, the problem posed concerns non-polynomial problems, for which it is necessary to develop efficient algorithms based on heuristics or meta-heuristics. Chapter 3 of this book demonstrates how to develop such algorithms, which are characterized by: an initialization of argued solutions (sometimes, the global optimum can be obtained from such an initialization); a non-random generation of solutions (to avoid generating the same solution several times, or even generating solutions that cannot be achieved); avoidance of being trapped by a local optimum; good use of CPU time by reducing the size of the space of solutions to be explored (which is often very large for such problems) without compromising the quality of the solution; plus a reasoned displacement from one solution to another, to improve the quality of the solution as the processing is carried out. These aspects are applied to concrete applications in the design of integrated circuits and systems at various levels. To do this and to help the reader better understand this problem, Chapters 1 and 2 present basic notions on computational complexity, and the design of integrated circuits and systems.

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access CAD of Circuits and Integrated Systems by Ali Mahdoum in PDF and/or ePUB format, as well as other popular books in Technology & Engineering & Electrical Engineering & Telecommunications. We have over one million books available in our catalogue for you to explore.

1
Basic Notions on Computational Complexity and Approximate Techniques

1.1. Computational complexity

1.1.1. Introduction

The execution time of a program depends on several factors:
  • – program data: for example, sorting about 10 numbers requires less execution time than sorting out millions of numbers;
  • – quality of the code generated by the compiler: codes generated by programming languages do not all have the same quality (this is the case of C, C++ and Java: if the application is not object-oriented and will be executed on some platform (operating system, processor frequency, memory size, etc.), then it is better to implement it in C, which generates a “lighter” code);
  • – computational complexity: this metric gives the developer an idea of the execution time of their program, independently of programming language and platform (processor, memory capacity, etc.). Computational complexity is therefore an important concept, all the more so as it offers the developer an indication on whether their program takes a reasonable CPU time to reach results, even when significant resources (processor frequency, memory capacity) are at their disposal. In other terms, it may signal to the designer the need to modify their algorithm, if it takes an “infinite” time to reach results.

1.1.2. Big O notation

DEFINITION.– Computational complexity T(n) is O(f(n)) if there are constants c and n0 such that: T(n) ≤ c * f(n) ∀ n ≥ n0; c > 0; n0 ≥ 0
EXAMPLE 1.1.– T(n) = (n+1)2
T(n) is O(n2). Indeed, T(n) ≤ 4 * n2 ∀ n ≥ 1 (c = 4; n0 = 1)
We will subsequently see how the function T(n), associated with a given algorithm, can be determined.
EXAMPLE 1.2.– Consider T(n) = n2+n. Is it possible to consider that T(n) is O(n)?
If yes, we would have: n2+n ≤ c * n ⇔ n2+n(1-c) ≤ 0 ⇔ n(n+1-c) ≤ 0
Since n ≥ 0, we would have: c ≥ n+1 ⇒ c is not a constant and therefore T(n) is not O(n).

1.1.2.1. Sum

If T1(n) is O(f(n)) and T2(n) is O(g(n)), then T1(n) + T2(n) is O(max(f(n),g(n)))
PROOF.–
T1(n) is O(f(n)) ⇔ ∃ c1 > 0, n1 ≥ 0: T1(n) ≤ c1 f(n) ∀ n ≥ n1
⇒ T1(n) ≤ c1 max(f(n), g(n)) ∀ n ≥ n1
T2(n) is O(g(n)) ⇔ ∃ c2 > 0, n2 ≥ 0: T2(n) ≤ c2 g(n) ∀ n ≥ n2
⇒ T2(n) ≤ c2 max(f(n), g(n)) ∀ n ≥ n2
⇒ T1(n) + T2(n) ≤ (c1 + c2) max(f(n),g(n)) ∀ n ≥ max(n1, n2)
Generally speaking, if Ti(n) ≤ ci fi (n) ∀ n ≥ ni; i=1, 2, ……., p, then:
image
NOTE.–
Consider T(n)=n2+n
It can be said that T(n) is:
- O(n2+n) as T(n) ≤ 1 * (n2+n) ∀ n ≥ 0;
C=max(c1, c2)=1; f1(n)+f2(n)=n2+n;
- O(n2) as T(n) ≤ 2 * n2 ∀ n ≥ 0;
C=c1+c2=1+1=2; max(n2, n) = n2

1.1.2.2. Product

If T1(n) is O(f(n)) and T2(n) is O(g(n)), then T1(n)* T2(n) is O(f(n)*g(n))
PROOF.–
T1(n) is O(f(n)) ⇔ ∃ c1 > 0, n1 ≥ 0: T1(n) ≤ c1 f(n) ∀ n ≥ n1
T2(n) is O(g(n)) ⇔ ∃ c2 > 0, n2 ≥ 0: T2(n) ≤ c2 g(n) ∀ n ≥ n2
⇒ T1(n)* T2(n) ≤ (c1 * c2) f(n) * g(n) ∀ n ≥ max (n1, n2) ⇒ T1(n) * T2(n) is O(f(n) *g(n))
Generally speaking, if Ti(n) ≤ ci fi(n) ∀ n ≥ ni; i=1, 2, ……., p, then:
image
which means
image

1.1.3. Ω Notation

DEFINITION.– Computational complexity T(n) is Ω(g(n)) if there are constants c and n0 such that: T(n) ≥ c * g(n) ∀ n ≥ n0; c > 0; n0 ≥ 0
EXAMPLE 1.3.– T(n) = n2+n. It can be verified that T(n) is Ω(n) due to...

Table of contents

  1. Cover
  2. Table of Contents
  3. Preface
  4. 1 Basic Notions on Computational Complexity and Approximate Techniques
  5. 2 Basic Notions on the Design of Digital Circuits and Systems
  6. 3 Case Study: Application of Heuristics and Metaheuristics in the Design of Integrated Circuits and Systems
  7. References
  8. Index
  9. End User License Agreement