Inapoi la lista selectata

CUPRINS

C U P R I N S

 

PREFAŢĂ

14

PARTEA I - Circuite integrate digitale

 

FAMILII DE CIRCUITE LOGICE

17

1.1. Poarta logică

17

1.2. Parametrii porţilor logice

26

1.2.1. Nivelurile de tensiune

27

1.2.2. Marginea de zgomot şi imunitatea la perturbaţii

27

1.2.3. Timpul de propagare

29

1.2.4. Factorii de încărcare la intrare şi ieşire

32

1.2.5. Consumul de putere

35

1.2.6. Factorul de merit

36

1.2.7. Dependenţa între parametrii unei familii de circuite logice

36

1.3. Circuite inversoare

38

1.3.1. Circuitul inversor cu tranzistor bipolar

38

1.3.2. Inversorul MOS

40

1.3.3. Inversorul CMOS

47

1.4. Familia de circuite logice TTL

50

1.4.1. Poarta NAND cu două intrări, TTL standard

50

1.4.2. Porţi TTL Schottky performante

53

1.4.3. Porţi pentru magistrale

54

1.5. Familia de circuite logice ECL

60

1.5.1. Structura de bază a circuitelor logice ECL

60

1.5.2. Seria ECL 10K

61

1.6. Porţi logice N-MOS

63

1.7. Porţi logice CMOS

67

1.8. Interconectarea familiilor de porţi logice

70

1.9. Rejecţia zgomotelor

72

1.9.1. Rejecţia zgomotelor externe

73

1.9.2. Rejecţia zgomotelor interne

75

CIRCUITE LOGICE COMBINAŢIONALE

85

2.1. Circuitul combinaţional. Definiţii

85

2.2. Reprezentări ale funcţiei de transfer pentru un CLC

86

2.2.1. Reprezentarea prin intermediul tabelului de adevăr

86

2.2.2. Reprezentarea sub formă analitică

89

2.2.3. Reprezentarea prin diagramă Veitch-Karnaugh

99

2.2.4. Exprimarea prin limbaj natural

104

2.3. Implementarea circuitelor logice combinaţionale

110

2.3.1. Analiza timpului de propagare

110

2.3.2. Costul implementării

111

2.3.3. Hazardul logic

114

2.4. Circuitul codificator

118

2.5. Circuitul demultiplexor

122

2.6. Circuitul multiplexor

128

2.6.1. Aplicaţii cu circuite multiplexoare

130

2.7. Memoria numai cu citire, ROM

137

2.7.1. Structurarea şi funcţionarea memoriei ROM

138

2.7.2. Implementarea funcţiilor logice cu memorii ROM

139

2.7.3. Creşterea capacităţii memoriilor ROM

143

2.7.4. Tipuri de circuite de memorie ROM

146

2.8. Matricea logică programabilă, PLA

147

2.8.1. Implementarea funcţiilor logice cu circuite PLA

148

2.8.2. Variante de circuite PLA

152

2.9. Circuite combinaţionale de deplasare

154

2.10. Circuite cu funcţii selectabile

157

2.11. Circuite cu structură matriceală

162

2.11.1. Organizarea matriceală unidimensională

162

2.11.2. Organizarea matriceală bidimensională

164

2.12. Circuite de tip custom-design

170

2.12.1. Circuite de tip full-custom

171

2.12.2. Circuite proiectate pe bază de matrice de porţi

171

2.12.3. Circuite proiectate pe bază de celule standard

174

2.12.4. Comparaţii între diferitele tipuri de proiectare

175

CIRCUITE LOGICE SECVENŢIALE

177

3.1. Structură. Definiţii. Clasificări

177

3.2. Modalităţi de reprezentare a automatelor

184

3.2.1. Graful de tranziţie al stărilor

184

3.2.2. Tabelul de tranziţie al stărilor

185

3.2.3. Organigrama ASM

186

3.3. Sinteza automatelor sincrone

191

3.3.1. Reducerea numărului de stări

194

3.3.2. Codificarea stărilor

196

3.3.3. Deducerea ecuaţiilor pentru stările următoare şi pentru ieşiri

203

3.4. Sinteza automatelor asincrone

207

3.4.1. Tabelul succesiunilor asincrone

208

3.4.2. Reducerea numărului de stări

209

3.4.3. Asignarea stărilor

211

3.4.4. Deducerea funcţiilor de excitaţie şi a funcţiilor de transfer

213

3.5. Circuite basculante bistabile

216

3.5.1. Latch-uri

217

3.5.1.1. Latch-ul SR

218

3.5.1.2. Latch-uri sincronizate

221

3.5.1.3. Latch-ul adresabil [1]

225

3.5.1.4. Principiul master-slave

226

3.5.2. Bistabilul JK

231

3.5.3. Triggerul Schmitt

242

3.6. Circuitul basculant monostabil - monostabilul

246

3.7. Circuitul basculant astabil - astabilul

248

3.8. Circuite numărătoare

252

3.8.1. Numărătoare asincrone

253

3.8.2. Numărătoare sincrone

256

3.8.2.1. Numărătoare în cod arbitrar

259

3.8.2.2. Numărătoare presetabile

262

3.8.3. Probleme de tehnica implementării numărătoarelor

269

3.9. Circuite registru

278

3.9.1. Registrul paralel

278

3.9.2. Registrul serie

289

3.9.3. Registrul serie-paralel

297

3.10. Memoria RAM

300

3.10.1. Memoria RAM statică, SRAM

303

3.10.2. Memoria RAM dinamică, DRAM

306

3.11. Circuite LCA

312

3.11.1. Organizarea unui circuit LCA

313

3.11.2. Proiectarea cu circuite LCA

322

3.12. Circuite cu temporizare proprie

327

PARTEA A ll-A - Limbajul de descriere hardware VHDL

335

INTRODUCERE ÎN VHDL

 

1.1. Ce este VHDL?

335

1.2. De ce VHDL?

336

1.3. Cum arată un sistem digital descris în VHDL?

336

1.4. Metodologia „top-down" de proiectare a sistemelor digitale

338

1.4.1. Proiectarea multinivel

340

1.5. Terminologia VHDL

341

1.6. Niveluri de abstractizare a circuitelor digitale VLSI

342

1.6.1. Modelul comportamental

342

1.6.2. Modelul temporal

344

1.6.3. Modelul structural

346

VHDL:  CONCEPTE GENERALE

348

2.1. Conceptul de entitate şi conceptul de arhitectură

348

2.1.1. Metode tradiţionale de proiectare

348

2.1.1.1. Schemele tradiţionale

350

2.1.1.2. Entitatea VHDL - echivalenta simbolului tradiţional

350

2.1.1.3. Arhitectura VHDL - echivalenta schemei tradiţionale

351

2.1.2. Descrieri structurale

351

2.1.3. Descrieri comportamentale concurente

352

2.1.3.1. Atribuirea semnalelor concurente

352

2.1.3.2. Programarea evenimentelor

353

2.1.3.3. Concurenţa instrucţiunilor de atribuire

353

2.1.4. Descrieri comportamentale secvenţiale

353

2.1.4.1. Declararea proceselor

354

2.1.4.2. Regiunea declarativă a procesului

354

2.1.4.3. Regiunea descriptivă a procesului

354

2.1.4.4. Execuţia procesului

355

2.1.4.5. Declaraţii secvenţiale

355

2.1.5. Selecţia arhitecturii

355

2.1.5.1. Declaraţia configuraţiei

356

2.1.5.2. Puterea configuraţiilor

356

2.1.6. Concluzii

356

2.1.7. Declaraţia entităţii

357

2.1.8. Declaraţia arhitecturii

360

2.1.9. Exemple de declaraţii de entităţi şi arhitecturi

360

2.1.9.1. Poartă logică simplă cu întârziere fixă

360

2.1.9.2. Poartă logică simplă cu timp de întârziere introdus ca

parametru generic

361

2.1.9.3. Poartă logică simplă cu intrări multiple

362

2.1.9.4. Latch simplu de tip D

362

2.2. Structuri fundamentale ale limbajului VHDL

363

2.2.1. Obiecte

363

2.2.1.1. Semnalele

364

2.2.1.1.1. Semnale globale entităţii

366

2.2.1.1.2. Semnale locale arhitecturii

366

2.2.1.2. Variabile

366

2.2.1.3. Constantele

367

2.2.1.4. Tipuri particulare de obiecte

368

2.2.2. Tipuri de date

368

2.2.2.1. Simboluri care semnifică valori de date

369

2.2.2.1.1. Întregi (Integer literals)

370

2.2.2.1.2. Reali (Floating literals)

370

2.2.2.1.3. Caractere (Character literals)

370

2.2.2.1.4. Şiruri de caractere (String literals)

370

2.2.2.1.5. Şiruri de biţi (Bit string literals)

370

2.2.2.1.6. Mărimi fizice (Phisical literals)

371

2.2.2.2. Tipul scalar

371

2.2.2.2.1. Tipul întreg

371

2.2.2.2.2. Tipul real

372

2.2.2.2.3. Tipul enumeraţie

373

2.2.2.2.4. Tipul fizic

376

2.2.2.3. Tipul compus

377

2.2.2.3.1. Tipul matrice

377

2.2.2.3.1.1. Tipul de matrice cu dimensiuni specificate

377

2.2.2.3.1.2. Tipul de matrice multidimensională

380

2.2.2.3.1.3. Tipul de matrice cu dimensiuni nespecificate (unconstrained)

381

2.2.2.3.1.4. Referirea elementelor matricei

382

2.2.2.3.2. Tipul înregistrare

383

2.2.2.4. Tipul acces

384

2.2.2.5. Tipul fişier

384

2.2.2.6. Operatori predefiniţi

385

2.2.3. Subtipuri

387

2.2.4. Subprograme

388

2.2.4.1. Funcţii

389

2.2.4.2. Proceduri

390

2.2.5. Pachete

392

2.2.5.1. Declaraţia pachetului

392

2.2.5.1.1. Constante întârziate

392

2.2.5.1.2. Declaraţia subprogramelor

393

2.2.5.2. Corpul pachetului

393

2.2.6. Atribute predefinite

395

2.2.6.1. Atribute din clasa 'valoare'

395

2.2.6.1.1. Atribute din clasa 'valoare' care întorc informaţie  despre un 'tip'

396

2.2.6.1.2. Atribute din clasa 'valoare' care întorc informaţie despre o

'matrice'

397

2.2.6.1.3. Atribute din clasa 'valoare' care întorc informaţie despre un 'bloc'

397

2.2.6.2. Atribute din clasa 'funcţie'

397

2.2.6.2.1. Atribute din clasa 'funcţie' aplicate 'tipurilor'

398

2.2.6.2.2. Atribute din clasa 'funcţie' aplicate 'matricelor'

400

2.2.6.2.3. Atribute din clasa 'funcţie' aplicate 'semnalelor'

401

2.2.6.2.3.1. Atributele 'EVENT şi 'LAST_VALUE

401

2.2.6.2.3.2. Atributul 'LAST_EVENT

402

2.2.6.2.3.3. Atributele 'ACTIVE şi 'LAST_ACTIVE

403

2.2.6.3. Atributele din clasa 'semnal'

403

2.2.6.3.1. Atributul 'DELAYED

404

2.2.6.3.2. Atributul'STABLE

405

2.2.6.3.3. Atributul 'QUIET

406

2.2.6.3.4. Atributul 'TRANSACTION

406

2.2.6.4. Atributele din clasa 'tip'

406

2.2.6.5. Atributele din clasa 'domeniu'

406

2.2.6.4. Atributele din clasa 'tip'

406

2.2.6.5. Atributele din clasa 'domeniu'

406

2.3. Simularea unui model VHDL: definirea vectorilor de test

407

DESCRIEREA COMPORTAMENTALĂ

412

3.1. Specificaţiile PROCESS şi WAIT

412

3.1.1. Specificaţia PROCESS

412

3.1.1.1. Lista de senzitivităţi a procesului

413

3.1.2. Specificaţia WAIT

414

3.1.2.1. Specificaţia WAIT ON

415

3.1.2.2. Specificaţia WAIT UNTIL

415

3.1.2.3. Specificaţia WAIT FOR

415

3.1.2.4. Specificaţii WAIT cu condiţii multiple

416

3.1.3. Comparaţie între procese cu listă de senzitivităţi şi procese

care includ specificaţii WAIT

416

3.2. Aspectul secvenţial

417

3.2.1. Declaraţii secvenţiale

417

3.2.2. Atribuirea secvenţială

417

3.2.2.1. Atribuirea semnalelor

418

3.2.2.1.1. Driverul semnalului

420

3.2.2.1.2. Întârzierile în atribuirea semnalelor

421

3.2.2.1.2.1. Întârzierea de tip transport

421

3.2.2.1.2.2. Întârzierea de tip inerţial

424

3.2.2.1.3. Durata ciclului de simulareval

427

3.2.2.1.4. Semnale cu mai multe drivere

429

3.2.2.1.4.1. Crearea driverelor

430

3.2.2.1.4.2. Model greşit de semnal cu drivere multiple

430

3.2.2.2. Atribuirea variabilelor

431

3.2.2.2.1. Atribuirea semnalelor şi atribuirea variabilelor

432

3.2.2.2.1.1. Exemplu de MUX incorect

432

3.2.2.2.1.2. Exemplu de MUX corect

433

3.2.3. Controlul

434

3.2.3.1. Controlul condiţional

434

3.2.3.1.1. Specificaţia IF

434

3.2.3.1.2. Specificaţia CASE

435

3.2.3.2. Controlul iterativ

436

3.2.3.2.1. Specificaţia LOOP

436

3.2.3.2.2. Specificaţia FOR

436

3.2.3.2.3. Specificaţia WHILE

438

3.2.3.2.4. Specificaţia NEXT

438

3.2.3.2.5. Specificaţia EXIT

439

3.2.4. Alte declaraţii secvenţiale

440

3.2.4.1. Specificaţia ASSERT

440

3.2.4.2. Apeluri de procedură

442

3.2.4.3. Specificaţia RETURN

442

3.2.4.4. Specificaţia NULL

443

3.2.4.5. Procese pasive

443

3.3. Aspectul concurenţial

444

3.3.1. Specificaţiile concurente şi procesele lor echivalente

444

3.3.1.1. Specificaţii concurente de atribuiri de semnale

445

3.3.1.2. Specificaţii concurente ASSERT

447

3.3.2. Semnale multisursă, funcţii de decizie

448

3.4. Exemple de descriere comportamentală a unor circuite simple

451

3.4.1. Porţi logice

451

3.4.2. Circuite logice combinaţionale

451

3.4.3. Circuite de ceas

453

3.4.4. Automate de stare

454

3.4.5. Unitate logico-aritmetică simplă

456

3.4.6. Decodificator

458

3.4.7. BistabilD

459

3.4.7.1. BistabilD

459

3.4.7.2. Bistabil D cu intrări asincrone

460

DESCRIEREA STRUCTURALĂ

461

4.1. Caracteristici fundamentale ale descrierii structurale

461

4.1.1. Declararea porturilor în entităţi

462

4.1.1.1. Modurile de acces al porturilor şi direcţia de transfer  a informaţiei

462

4.1.2. Declararea porturilor în componente

463

4.1.3. Specificaţia de instanţiere a componentelor

463

4.2. Structuri regulate

466

4.2.1. Specificaţia GENERATE

466

4.2.1.1. Specificaţia GENERATE cu neregularităţi

468

4.2.2. Generice

470

4.3. Specificarea configuraţiilor

473

4.3.1. Specificaţia de configurare

474

4.3.2. Configurarea sistemului

476

4.3.3. Configuraţii implicite

477

4.4. Valori iniţiale şi porturi neconectate

479

4.4.1. Valori iniţiale

479

4.4.2. Porturi neconectate

479

4.5. Exemple de descrieri structurale ale unor circuite simple

480

4.5.1. ALU simplă

480

4.5.2. Decodificator

482

CARACTERISTICI AVANSATE ALE VHDL

483

5.1. Specificaţia BLOCK

483

5.2. Specificaţiile cu gardă

485

5.3. Specificaţia DISCONNECT

486

5.4. Declaraţia ALIAS

486

5.5. Tranzacţiile NULL

491

5.6. Tipul ACCESS

492

5.7. Tipul FILE

494

5.8. Pachetul STANDARD

497

5.9. Pachetul TEXTIO

498

DISPOZITIVE CU MEMORIE

501

6.1. Tipuri de date pentru dispozitive cu memorie

501

6.2. Iniţializarea memoriei

501

6.3. Memorii ROM

503

6.4. Memorii RAM

507

6.5. PAL şi PLD

513

6.5.1. Calcularea produselor

513

6.5.2. PAL cu 10 intrări, 2 ieşiri şi 6 intrări / ieşiri

516

6.5.3. PAL cu 8 intrări şi 8 ieşiri sincrone

518

UN EXEMPLU COMPLET - CIRCUIT CU TEMPORIZARE PROPRIE

520

7.1. Proiectarea sistemului la nivel înalt

520

7.1.1. Datele de proiectare

520

7.1.2. Descrierea sistemului la nivel „foarte înalt”

522

7.1.3. Pachetul de nivel înalt

524

7.1.4. Entitatea de nivel înalt

526

7.1.4.1. Generice

527

7.1.4.2. Porturi

527

7.1.5. Arhitectura de nivel înalt

527

7.1.6. Configuraţia de nivel înalt a circuitului de multiplicare

528

7.1.7. Testarea descrierii de nivel înalt

528

7.2. Descompunerea circuitului de multiplicare

530

7.2.1. Descompunerea căii de date

531

7.2.1.1. Latch

532

7.2.1.2. Poarta AND N x 1

532

7.2.1.3. Sumator

533

7.2.1.4. Registre

534

7.2.1.5. Numărător în inel

535

7.2.1.6. Bistabil de validare

536

7.2.1.7. Subcircuitele de prelucrare din calea de date

537

7.2.1.8. Descrierea căii de date

539

7.2.2. Testarea căii de date

540

7.2.3. Descompunerea controlerului

547

7.2.3.1. Element de comandă cu temporizare proprie

547

7.2.3.2. Descrierea structurală a controlerului

551

7.2.3.2.1. Circuitul cu temporizare  proprie  echivalent tranziţiei din

organigrama ASM

551

7.2.3.2.2. Circuitul cu temporizare proprie  echivalent deciziei din

organigrama ASM

552

7.2.3.2.3. Modelul structural al controlerului

555

7.2.4. Testarea circuitului de multiplicare

558

7.3. Descrierea de nivel scăzut a circuitului de multiplicare

559

7.3.1. Element de comandă

564

7.3.2. Latch de dimensiune N

566

7.3.3. Poartă AND N x 1

566

7.3.4. Bistabilul de validare

567

7.3.5. Circuit de deplasare în inel

567

7.3.6. Registru de deplasare de dimensiune N

569

7.3.7. Subcircuit de prelucrare a înmulţitorului

570

7.3.8. Sumator de N biţi

573

7.3.9. Subcircuit de prelucrare a rezultatului

574

7.3.10. Testarea şi simularea descrierii la cel mai de jos nivel

577

IMPLEMENTAREA SISTEMELOR DIGITALE DESCRISE ÎN VHDL

578

8.1. Structurile limbajului VHDL

578

8.2. Consideraţii asupra sistemelor de valori logice

583

8.3. Consideraţii asupra sintezei sistemelor digitale descrise în VHDL

586

ANEXA: STANDARDUL ANSI / IEEE PENTRU SIMBOLURI GRAFICE

590

A.1. Introducere

590

A.2. Compunerea simbolului logic

590

A.3. Simboluri explicative

591

A.3.1. Simboluri explicative generale

591

A.3.2. Simboluri explicative pentru intrări şi ieşiri

591

A.3.3. Simboluri explicative în interiorul simbolului grafic

594

A.4. Notaţia dependentă

594

A.4.1. Prezentarea generală

594

A.4.2. Dependenţa G (AND)

595

A.4.3. Convenţii generale asupra aplicării notaţiei dependente

595

A.4.4. Dependenţa V (OR)

596

A.4.5. Dependenţa N (SAU-EXCLUSIV)

596

A.4.6. Dependenţa Z (de interconectare)

597

A.4.7. Dependenţa C (de control)

597

A.4.8. Dependenţele S (set) şi R (reset)

598

A.4.9. Dependenţa EN (de validare)

598

A.4.10. Dependenţa M (de mod)

599

A.4.10.1. Afectarea prin dependenţă M a intrărilor

599

A.4.10.2. Afectarea prin dependenţă M a ieşirilor

600

A.4.11. Dependenţa A (de adresă)

601

A.5. Elemente bistabile

602

A.6. Codificatoare

603

A.7. Utilizarea unui codificator pentru a produce intrări afectoare

604

A-8. Utilizarea grupărilor binare pentru a produce intrări afectoare

604

A.9. Secvenţierea etichetelor de intrare

605

A. 10. Secvenţierea etichetelor de ieşire

605

A.11. Exemple de simboluri

606

A. 11.1 Circuite multiplexoare

606

A.11.2. Circuite registru

606

A. 11.3. Circuit numărător

608

A.11.4. Circuite de memorie

609

A.11.5. Circuitul ALU

610

INDEX

611

ABSTRACT

614

CONTENTS

615

BIBLIOGRAFIE

618