PROGRAMMABLE LOGIC DEVICES “ Hardware make softer, software make harder “ •Perkembangan Teknologi Logic Device •Definisi PLD •Konsep Dasar PLD •Jenis-jenis PLD : PAL, PLA, GAL •Memprogram dan men-develop pogram PLD •Jenis PLD yang lain : FPLA, FPGA, CPLD •Mengenal VHDL programmable logic devices 1 Perkembangan Teknologi Logic Devices Source: Dataquest Logic Standard Logic Programmable Logic Devices (PLDs) SPLDs (PALs) ASIC Gate Arrays Cell-Based ICs CPLDs Full Custom ICs FPGAs Acronyms SPLD = Simple Programmable Logic Device PAL = Programmable Array of Logic CPLD = Complex PLD FPGA = Field Programmable Gate Array ASIC = Application –Specific Integrated Circuit programmable logic devices 2 Definisi PLD sebuah IC yang terdiri dari banyak gate / gerbang logika (terdiri dari gerbang AND, OR, NOT, register dan flip-flop), yang saling diinterkoneksikan di dalam IC tersebut. Programmable untuk membuat sebuah fungsi pada PLD tersebut, seorang disainer harus membuat program yang nantinya akan menyebabkan terjadinya proses “fuse blowing” pada interkoneksi gerbang, flip-flop maupun register, sehingga didapatkan pola rangkaian seperti yang diinginkan. programmable logic devices 3 Konsep Dasar A B AND array A A B B AB AB AB Product lines AB Fuse 1 4 OR array Input lines program mable logic devices Sum of Product Output 4 D Arsitektur PROM untuk PLD C B A ORarray (programmable) 1 2 3 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 15 x x x x x x x x x x x x x x x x 16 xxx x 4 Contoh : 5 6 AM27S13 -PROMdengan konfigurasi 512x4 -Ada 512 address -Dengan 9 jalur address input -Ada 4 data output 7 8 9 10 11 12 13 14 ANDarray (hard wired) programmable logic devices xxx x xxx x xxx x Fuse 3 2 1 0 tersedia O3 O2O O 1 0 OUTPUT 5 Fuse “blown” untuk mendapatkan output sesuai fungsi yang diinginkan D C B O3 = AB + CD O2 = ABC O1 = ABCD + ABCD O0 = A + BD + CD C B A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 3 4 x x x DCBA x DCBA DCBA x x x DCBA x x DCBA 2 5 O3 6 DCBA DCBA DCBA DCBA DCBA x x x 1 Tabel Kebenaran untuk output O3 D A 7 8 x DCBA x DCBA DCBA DCBA DCBA 9 10 11 DCBA 12 x DCBA x x 14 DCBA programm able logic devices x DCBA DCBA 15 16 DCBA DCBA x 13 Fuse “blown” DCBA x 3 2 1 0 O3O 2O 1O 0 6 Programmable Array Logic (PAL) Arsitektur mirip dengan PROM, di bagian ANDarray adalah programmable, sedangkan di bagian ORarray adalah hard wired Kelebihan dibandingkan dengan PROM, hanya fungsiAND yang diinginkan saja yang diprogram, dan output masing-masingANDdisambungkan ke array OR Output ORmerupakan fungsi jumlahan dari fungsi-fungsi ANDyang diinginkan D C B A ORarray (hard wired) x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 1 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 5 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 9 x 10 x 11 x 12 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 13 x 14 x 15 x 16 2 3 4 6 7 8 3 2 1 ANDarray (programmable) programmable logic devices 0 O3 O2O1O0 OUTPUT7 PAL diprogram sesuai fungsi yang diinginkan D • Setiap ORmaksimumhanya dapat menjumlahkan 4 buah minterm(dengan konfigurasi di samping). • Jika sebuah ORhanya terisi kurang dari 4 minterm, makaminterm / ANDarray yang tidak digunakan diberi nilai “0” O3 = AB + CD + 0 + 0 = AB + CD O2 = ABC + 0 + 0 + 0 = ABC O1 = ABCD + ABCD O0 = A + BD + CD + 0 = A + BD + CD C B x A x x x x x xx x x x x x x xx x x x x x xx x x xx x x x x x x xx x x x x x x xx x x x x x x x x x x x x x x xx x x x x x x xx x x x x x x x x x x x xx x x x x AB 1 2 CD 3 0 4 0 5 ABC 0 0 6 7 0 8 ABCD 9 ABCD 0 10 11 0 12 A BD 13 14 C 15 D 16 3 2 1 programmable logic devices 0 0 O3 O2O1O0 8 Field Programmable Logic Array (FPLA) Lebih kompleks dari PAL. Juga terdiri dari array programmable input AND dan array output OR. Mempunyai fleksibilitas untuk memprogram input OR Complex Programmable Logic Devices (CPLD) Merupakan PLD dalam kapasitas lebih besar. Terdiri dari beberapa PLD (multiple PLD) Struktur CPLD programmable logic devices 9 Field Programmable Gate Array (FPGA) • • • • Dikonfigurasi oleh End User Tidak memerlukan proses Fabrikasi Tersedia solusi yang mendukung chip customized VLSI Mampu menimplementasikan logic circuit, instant manufacturring, very-low cost prototype • Pemrograman yang singkat untuk fungsi dan kemampuan yang setara dengan ASIC Struktur FPGA programmable logic devices 10 Struktur Dasar FPGA CLB Slew Rate Control CLB Switch Matrix D Q CLB Passive Pull-Up, Pull-Down Vcc Output Buffer Pad Input Buffer CLB Q D Programmable Interconnect Delay I/O Blocks (IOBs) C1 C2 C3 C4 H1 DIN S/R EC S/R Control G4 G3 G2 G1 DIN F' G Func. Gen. SD D Q G' H' EC RD 1 F4 F3 F2 F1 H Func. Gen. F Func. Gen. Y G' H' S/R Control DIN SD F' G' D Q H' EC RD 1 H' K F' X Configurable Logic Blocks (CLBs) programmable logic devices 11 Memprogram PLD START Develop circuit logic equation Send fuse map and test data to programmer Works ? N Check design equations Y A Run program development software Program the PLD Test the PLD Input logic equation Works ? Software generate fuse map and test data A Test the PLD in its actual circuit N Troubleshoot Y DONE Flow Chart Mendisain, Memprogramdan mengetes PLD programmable logic devices 12 Beberapa peralatan yang diperlukan untuk mendisain dan membangun rangkaian menggunakan PLD : •Personal Computer (PC) •PLD Development Software •Programming fixture •Software untuk men-drive programming fixture •Programmable Logic Device PLD Developmen t Software Programming Software ZIF = Zero-insertion Force PC Programming Fixture ZIF Socket Serial Cable programmable logic devices 13 Programmable Logic - Design Flow 1 2 3 Design Entry dengan cara schematic, ABEL, VHDL, dan/atau Verilog. Implementation yaitu Placement & Routing dan bitstream generation. Juga, analyze timing, view layout, . Download meng-upload bitstream ke Hardware (FPGA chip) XC4000 XC4000 programmable logic devices XC4000 14 Digambarkan dalam blok diagram : programmable logic devices 15 Flowchart siklus developing PLD Design Create JEDEC file Create source file Program PLD Compile In-circuit test Edit source file Y Errors? N Works ? N Y Identify design flaw Simulate DONE Y Troubleshoot Problems? N programmable logic devices 16 Verilog HDL / VHDL – Verilog HDL / VHDL adalah Bahasa Pendeskripsi Perangkat Keras / Hardware Description Language (HDL). – Hardware Description Language adalah bahasa yang dapat digunakan untuk mendeskripsikan sebuah sistim digital, misal, sebuah komputer atau komponen dari komputer programmable logic devices 17 Apakah Verilog HDL / VHDL? • Verilog adalah salah satu HDL yang digunakan oleh disainer hardware dalam industri maupun sekolah. • HDL yang lain adalah VHDL (Very High-speed Integrated Circuit HDL) • VHDL dibuat dengan standart IEEE pada tahun 1987, sedangkan Verilog pada tahun 1995. • Verilog sangat menyerupai C, dan para insinyur elektronika dan komputer sudah familiar dengan bahasa C. • VHDL menyerupai EDA (Electronic Digital Assembler) . programmable logic devices 18 Struktur Pemrograman VHDL • Entity dan Architecture • Modeling: Behavior , Structure dan data Flow programmable logic devices 19 Ada tiga cara untuk mendiskripsikan Rangkaian 1. Structural – Didesain berdasarkan perkomponen dan “merangkai komponen tersebut 2. Dataflow (RTL) – Didesain berdasarkan alur register data 3. Behavioural – Didesain berdasarkan Algorithma programmable logic devices 20 • Entity Declaration – Spesifikasi eksternal dari rangkaian • Architecture Body – Fungsi sesungguhnya dari rangkaian • Disain deskripsi minimum VHDL terdiri dari : – Paling sedikit satu entity dan satu Architecture Body Architecture Body Entity Declaration programmable logic devices 21 Entity Konstruksi “Entity” berfungsi memodelkan interface eksternal External Interface d0 d1 d2 d3 en clk REG_4 Internal Functionality programmable logic devices q0 q1 q2 q3 22 Entity name Port Port name entity reg4 is port (do,d1,d2,d3,en,clk : in bit; qo,q1,q3,q4: out bit;); end entity reg4; Port mode “port” VHDL membentuk model data input/output. ENTITY entity-name IS [PORT(interface-signal-declaration);] END [ENTITY] [entity-name]; programmable logic devices 23 Rangkaian 1 (8-bit Comparator) A[8] B[8] 8-bit Comparator EQ Deklarasi Entity : ENTITY compare IS PORT(a, b: IN bit_vector(0 TO 7); eq: OUT bit); END compare; programmable logic devices 24 Architecture Body • Fungsi sesungguhnya dari circuit ARCHITECTURE arch-name OF entity-name IS [declarations] BEGIN architecture body END [ARCHITECTURE] [arch-name]; programmable logic devices 25 Architecture body dari rangkaian 1 adalah : ARCHITECTURE compare1 OF compare IS BEGIN eq <= ‘1’ WHEN (a=b) ELSE ‘0’; END compare1; programmable logic devices 26 HDL total dari rangkaian 1 adalah : ENTITY compare IS PORT(a, b: IN bit_vector(0 TO 7); eq: OUT bit); END compare; ARCHITECTURE compare1 OF compare IS BEGIN eq <= ‘1’ WHEN (a=b) ELSE ‘0’; END compare1; programmable logic devices 27 x y cin Rangkaian 2 (Full Adder) sum cout ENTITY fulladder IS PORT(x, y, cin: IN bit; cout, sum: OUT bit); END fulladder; ARCHITECTURE concurrent OF fulladder IS BEGIN sum <= x XOR y XOR cin; cout <= (x AND y) OR (x AND cin) OR (y AND cin); END concurrent; programmable logic devices 28 Behavioral Description LIBRARY ieee; USE ieee.std_logic_1164.ALL ENTITY eqcomp4 IS PORT( a, b: IN std_logic_vector(3 DOWNTO 0); equals: OUT std_logic); END eqcomp4; ARCHITECTURE behavioral OF eqcomp4 IS BEGIN comp: PROCESS (a, b) BEGIN IF a = b then equals <= ‘1’; ELSE equals <= ‘0’; END IF; END PROCESS comp; END behavioral; programmable logic devices 29 Dataflow(RTL) Description LIBRARY ieee; USE ieee.std_logic_1164.ALL ENTITY eqcomp4 IS PORT( a, b: IN std_logic_vector(3 DOWNTO 0); equals: OUT std_logic); END eqcomp4; ARCHITETURE dataflow OF eqcomp4 IS BEGIN equals <= ‘1’ WHEN (a=b) ELSE ‘0’; END dataflow; programmable logic devices 30 Dataflow(RTL) Description LIBRARY ieee; USE ieee.std_logic_1164.ALL ENTITY eqcomp4 IS PORT( a, b: IN std_logic_vector(3 DOWNTO 0); equals: OUT std_logic); END eqcomp4; ARCHITETURE bool OF eqcomp4 IS BEGIN equals <= NOT(a(0) XOR b(0)) AND NOT(a(1) XOR b(1)) AND NOT(a(2) XOR b(2)) AND NOT(a(3) XOR b(3)) ; END bool; programmable logic devices 31