Εφαρμογές Ψηφιακών Ηλεκτρονικων Programming Logic Devices (PLDs) (Συσκευές Προγραμματιζόμενης Λογικής)
Προγραμματιζόμενες Διατάξεις Μνήμη Μόνο Ανάγνωσης (ROM) – ένας σταθερός αριθμός από πύλες AND και μια προγραμματιζόμενη διάταξη πυλών OR. Προγραμματιζόμενη Λογική Πίνακα (PAL)Ò – μια προγραμματιζόμενη διάταξη από πύλες AND που τροφοδοτούν μια σταθερή διάταξη πυλών OR. Προγραμματιζόμενος Λογικός Πίνακας (PLA) - μια προγραμματιζόμενη διάταξη από πύλες AND που τροφοδοτούν μια προγραμματιζόμενη διάταξη πυλών OR. Σύνθετη Προγραμματιζόμενη Λογική Διάταξη (CPLD) /Προγραμματιζόμενος Πίνακας Πεδίου Πύλης (FPGA) –πιο πολύπλοκες δομές – βλέπε παράρτημα του βιβλίου για προγραμματιζόμενες λογικές διατάξεις VLSI
Μια PLD σαν "Μαυρο κουτι" Λογικες πυλες και Εισοδοι Εξοδοι προγραμματιζομενοι (Λογικες Μεταβλητες) διακοπτες (Λογικες Συναρτησεις)
Γενική δομή μιας Παράταξης προγραμματιζόμενης λογικής (Programmable Logic Array – PLA) f 1 συστοιχια AND συστοιχια OR Απομονωτες (Βuffers) Αντιστροφεις και P k m x 2 n
Διάγραμμα πυλών μιας PLA x x x 1 2 3 Προγραμματιζομενες Συνδεσεις Συστοιχία ΟR P 1 P 2 P 3 P 4 Συστοιχία ΑΝD x1x2+x1x3'+x1'x2'x3 = f1 f2=x1x2+x1'x2'x3+x1x3
Συνηθισμένο σχηματικό διάγραμμα PLA f 1 P 2 x 3 Επίπεδο OR Επίπεδο AND 4 f1=x1x2+x1x3'+x1'x2'x3 f2=x1x2+x1'x2'x3+x1x3
Παράδειγμα μιας PAL (Programmable Array Logic) f 1 P 2 x 3 Επίπεδο AND 4 f1=x1x2x3'+x1'x2x3 f2=x1'x2' +x1x2x3
Συσκευή προγραμματισμού PLD A PLD programming unit
Συσκευασια Plastic-leaded chip carrier (PLCC) με βαση
Δομή Διάταξης Πολύπλοκης Προγραμματιζόμενης Λογικής (CPLD) I/O block Αγωγοί διασύνδεσης Υποσύστημα τυπου PAL Υποσύστημα τυπου PAL Υποσύστημα τυπου PAL Υποσύστημα τυπου PAL Complex Programmable Λogic Device - CPLD
Τμήμα μιας CPLD D Q Υποσύστημα τύπου PAL Υποσύστημα τυπου PAL
Συσκευασία και προγραμματισμός CPLD CPLD σε συσκευασία QFP (quad flat pack) Προς υπολογιστή Τυπωμένο κυκλωμα JTAG (Joint Test Action Group) προγραμματισμός
Altera The Programmable Solutions Company Programmable Logic Devices Intellectual Property Development Software
Programmable Logic Device Families Source: Dataquest Logic Standard Logic ASIC Programmable Logic Devices (PLDs) Gate Arrays Cell-Based ICs Full Custom ICs SPLDs (PALs) CPLDs FPGAs Common Resources Configurable Logic Blocks (CLB) Memory Look-Up Table AND-OR planes Simple gates Input / Output Blocks (IOB) Bidirectional, latches, inverters, pullup/pulldowns Interconnect or Routing Local, internal feedback, and global Acronyms SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array
CPLDs and FPGAs CPLD FPGA Complex Programmable Logic Device Field-Programmable Gate Array Architecture PAL/22V10-like Gate array-like More Combinational More Registers + RAM Density Low-to-medium Medium-to-high 0.5-10K logic gates 1K to 500K system gates Performance Predictable timing Application dependent Up to 200 MHz today Up to 135MHz today Interconnect “Crossbar” Incremental
ALTERA CPLDS Altera generic architecture Hierarchical PLD structure First level: LABs (Functional blocks); LAB is similar to SPLDs Second Level: Interconnections among LABs LAB consists of Product term array Product term distribution Macro-cells Expander product terms Interconnection region: PIA EPROM/EEPROM based Example: MAX5K, MAX7K Altera generic architecture
MAX 5000 MAX5K Macrocell Three wide AND gate feed an OR gate (Sum of products) XOR gate may be used in arithmetic operations or in polarity selection One flipflop per macrocell; Outputs may be registered Flipflop preset and clear are via product terms; Clock may be either system clock or internally generated Output may be driven out or fedback Feedback is both local and global; Local feedback is within macrocell and is quicker
MAX 5000 MAX5000 Expander Product Term Number of product terms to macrocell limited Wider functions implemented via expander product terms Foldback NAND structure Inputs are from PIA, expander product term and macrocell feedback Outputs of expander product term are sent to other macrocell and to itself
Δομη μιας FPGA (Field Programmable Gate Array) Λογικο block Διακοπτες διασυνδεσης block Εισοδου/ Εξοδου I/O block
Παράδειγμα λογικού block Look-up Table (LUT) x 1 x x 1 2 f 00 01 10 11 1 0/1 1 1 0/1 1 1 f 1 1 0/1 1 1 1 0/1 (b) f = x x + x x x 1 1 2 1 2 2 x 1 1 1 f x 1 1 x 2 x Look-up Table δυο μεταβλητων
Ένα LUT τριών μεταβλητών f 0/1 x 2 3 1 1 1 1
Ένα τμήμα μιας προγραμματισμένης FPGA f1= x1x2 f2=x2'x3 f= f1+f2 Figure 3.39 A section of a programmed FPGA
Custom Chips, Standard Cells, Gate Arrays f1=x1x2+x1x3'+x1'x2'x3 f2=x1x2+x1'x2'x3+x1x3 Ένα τμημα με δυο σειρες πυλων σε ένα standard cell chip
Μια παράταξη πυλών τύπου "sea-of-gates"
Υλοποίηση λογικής συνάρτησης σε συστοιχία πυλών τύπου "sea-of-gates" f1=x2x3'+x1x3
Προγραμματιζόμενη PLA τύπου NOR-NOR (γινόμενα αθροισμάτων) f 1 S 2 x 3 Συστοιχια NOR 4 5 6 V DD f1=(x1+x3)(x1+x2')(x1'+x2+x3') f2=(x1+x2')(x1+x3')(x1'+x2)
PLA τύπου NOR-NOR για υλοποίηση σε μορφή «άθροισμα γινομένων» f 1 P 2 x 3 NOR plane 4 5 6 V DD f1=x1x2+x1x3'+x1'x2'x3 f2=x1x2+x1'x2'x3'
PAL τύπου NOR Υλοποίηση σε «άθροισμα γινομένων» f 2 P 1 x 3 4 5 6 V DD f1=x1x2+x1x3'+x1'x2'x3 f2=x1x2+x1'x2'x3'+x1'x1 Συστοιχια NOR
H δομη μιας ROM 2mxn Sel 0/1 0/1 0/1 Sel 0/1 0/1 0/1 a Sel 0/1 0/1 0/1 0/1 0/1 0/1 Sel 1 0/1 0/1 0/1 a Sel 2 0/1 0/1 0/1 decoder a 1 Address m -to-2 a m – 1 m Sel 2 m – 1 0/1 0/1 0/1 Read Data d d d n – 1 n – 2