Bộ nhớ hàm PLD (Programmable Logic Device Memory) là một loại bộ nhớ được sử dụng trong các hệ thống kỹ thuật số để lưu trữ các chương trình logic và bộ nhớ điều khiển. Nó được gọi là programmable vì nó có thể được lập trình để thực hiện các chức năng logic cụ thể.Bài giảng thiết kế hệ thống số Chương 3:BỘ NHỚ HÀM PLD sẽ bao gồm các phần như sau: Cấu trúc và phân loại. Thiết kế hệ tổ hợp dùng PLD Thiết kế hệ tuần tự dùng PLD
Bài giảng thiết kế hệ thống số Chương : BỘ NHỚ HÀM PLD 3.1 Giới thiệu 3.2 Cấu trúc phân loại 3.3 Thiết kế hệ tổ hợp dùng PLD 3.4 Thiết kế hệ dùng PLD GV: TS Võ Đình Tùng Chương 3: Bộ nhớ hàm Bài giảng thiết kế hệ thống số 3.1 Chương 3: Bộ nhớ hàm GIỚI THIỆU PLD: Programmable Logic Device - Thiết bị logic lập trình PLD tên gọi tổng quát IC số mà người dùng lập trình để thực hàm logic khác Một PLD IC chứa số lượng lớn cổng, FF ghi mà chúng kết nối qua lại với bên chip Tuy nhiên, có nhiều kết nối liên kết nóng chảy được” Khi xuất xưởng, IC tích hợp sẵn với chức riêng biệt, người sử dụng phải chọn lựa linh kiện cho việc thiết kế mạch hiệu Nhưng độ tích hợp IC có giới hạn, để linh hoạt việc thực chức người thiết kế, mối quan hệ mật thiết nhà sản xuất người sử dụng , cụ thể tối ưu hóa khả ứng dụng IC, nhà sản xuất cho loại linh kiện đặc biệt mà chức người thiết kế quy định khơng phải nhà sản xuất Linh kiện gọi chung PLD Để thực việc thiết kế ứng dụng IC PLD đòi hỏi người sử dụng phải kết hợp kiến thức kỹ thuật số lẫn ngơn ngữ lập trình cho thiết bị Để IC PLD thực chức logic ngơn ngữ lập trình, trình biên dịch ngơn ngữ rút gọn biểu thức cho tối ưu nhất, thiết lập mảng cầu chì phù hợp với chức logic cách hủy giữ số cầu chì mảng cầu chì 3.2 PHÂN LOẠI PLD - SPLD : Small PLD - CPLD : Complex PLD + PLA : Programmable Logic Array + PAL : Programmable Array Logic + GAL : Generic Array Logic + PEEL : Programmable Electronic Erasable Logic Để lập trình cho IC SPLD-CPLD ta dùng ngơn ngữ lập trình ABEL trình biên dịch ABEL (Advanced Boolean Equation Language) - FPGA : field-programmable gate array GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Để lập trình IC ta dùng ngơn ngữ lập trình VHDL, Vielog, trình biên dịch Maxplus, Xillinx 3.3 CẤU TRÚC CÁC LOẠI PLD 3.3.1 Ý tưởng sở Xét hình vẽ sau: A B A A B B And array A B A B A B A B A B A B A B Product lines A B Input lines Or array O1 O1 O1 O1 Sum of product outputs Ý tưởng thiết kế PLD Mạch gồm mảng (array) cổng AND mảng cổng OR kết nối qua lại để tạo ngõ Mỗi ngõ hàm biến ngõ vào A B Mỗi ngõ vào đưa đến cổng đệm đảo cổng đệm khơng đảo, đảo Các đường vào đưa tới dàn cổng AND “Mỗi cổng AND nối với đường vào khác cho tạo tích biến vào” Các ngõ cổng AND gọi đường tích (product) Mỗi đường tích nối đến ngõ vào cổng OR có ngõ vào Qua liên kết cầu chì ( fuse link) Ban đầu tất liên kết nguyên vẹn ngõ cổng OR số (1) VD: O1 AB AB AB AB A B B A B B A A Các ngõ O1, O2, O3, O4 lập trình cho hàm biến A B cách phá bỏ cách chọn lựa cầu chì Các PLD thiết kế cho ngõ vào cổng OR bị phá huỷ cầu chì hoạt động logic Ví dụ với cổng OR ta phá huỷ cầu chì 4, ngõ O1 trở thành: GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm O1 AB AB AB AB Có thể lập trình ngõ cổng OR thành hàm mong muốn cách thức vừa làm Một tất ngõ lập trình, thiết bị tạo vĩnh viễn hàm chọn Khi số ngõ vào PLD tăng lên sơ đồ mạch trở nên rối rắm Vì lý nhà chế tạo PLD có ký hiệu tượng trưng đơn giản để thể mạch bên thiết bị Ký hiệu tượng trưng cho PLD Các kết nối từ đường biến vào đến cổng AND dấu X dấu chấm (dot) Trong X thể cầu chì cịn ngun, dấu chấm thể kết nối cứng ( khơng thể thay đổi) Chẳng hạn hình vẽ ngõ vào A B nối tới cổng AND tích AB Các ngõ vào A B không nối tới cổng AND không ảnh hưởng đến ngõ cổng AND Điều quan trọng để hiểu ký hiệu tượng trưng cổng AND có ngõ vào khác có đường Ngõ vào thật kết nối với cổng AND ký hiệu X dấu chấm Một số ưu điểm dùng PLD • Tăng khả tích hợp: Giảm khối lượng mạch thiết kế tăng chức cho mạch • Cơng suất thấp: CMOS số mạch kết hợp làm giảm đáng kể công suất nguồn cung cấp • Tăng độ tin cậy: Nguồn cung cấp thấp việc giảm tối đa mạch liên kết làm cho việc truyền khối đáng tin cậy • Giá thành thấp GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm • Dễ sử dụng: Dù tin hay khơng, sau trải qua thời gian ban đầu nghiên cứu PLD, thấy PLD dễ sử dụng hàm logic riêng rẽ • Dễ dàng thay đổi: Khi bạn cần có thay đổi thiết kế, không cần phải thay đổi “dây nối”, tất thay đổi bên PLD thực thay đổi cách nhanh chóng 3.3.2 PAL ( Programmable Array Logic) PAL có mảng cổng AND mảng cổng OR, PAL ngõ vào cho cổng OR buộc cố định Điều có nghĩa cổng AND lập trình để tạo tích mong muốn biến ngõ vào Đảo Cấu trúc PAL f1 X X X X X X ; f X X X X X 3.3.3 PLA ( Programmable Logic Array) PLA gồm mảng cổng OR lập trình mảng cổng AND lập trình để thực biểu thức logic ( dạng tổng tích) Một PLA với m ngõ vào, n ngõ p biểu thức nhân có 2n ngõ vào cho cổng AND, m.p ngõ vào cho cổng OR Để thực việc lập trình, dấu nối bên đánh dấu dấu 'x' hay gọi cầu chì nối, việc lập trình để thực chức logic cách thành lập mối cầu chì thực cần thiết Số nối cầu chì n.m PLA 2.n.p cho chuỗi AND m.p cho chuỗi OR GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Cấu trúc PLA f1 X X X X X X X ; f X X X X X X X Khi mảng cổng AND mảng cổng OR lập trình làm cho PLA trở nên đa loại PLD Một PLA có sẵn TIFPLA840 Nó PLA 14 32 Có 14 biến vào, 32 cổng AND để tạo tích 14 biến cổng OR để kết hợp 32 ngõ AND 3.3.4 PLD (Sequential PLD) Phần lớn thiết kế số cần flipflop, người ta thiết kế thêm PLD có chứa flipflop Các PLD thường gọi PLD có ghi (registered PLD) hay PLD (sequential PLD), thường ghi từ D flipflop Cấu trúc PLD 3.3.5 GAL (Generic Array Logic) Giống PAL có mảng cổng AND mảng cổng OR ngõ vào cho cổng OR buộc cố định, GAL cho phép xóa lập trình lại nhiều lần Một số GAL thông dụng: GAL16V8, 22V10 GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Cấu trúc GAL16V OLMC (Output Logic Macro Cell) Cho phép người dùng cấu hình ngõ Nó cấu hình cho mạch tổ hợp mạch Cấu trúc OLMC Tám số hạng tích tạo thành mảng AND lập trình được đưa tới cổng OR để thực logic tổ hợp Một số hạng tích dùng để điều khiển xóa khơng đồng ghi nội GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Một số hạng tích dùng để thực cho phép ngõ chọn xung đồng hồ (Output Enable/Clock select) Các ngõ vào cho mảng cổng AND lập trình gồm: Các ngõ vào đảo ngõ vào, hồi tiếp từ chân I/O cấu ngõ vào, hồi tiếp từ ngõ Marcocell Ngõ cổng OR ngõ vào đưa đến cổng XOR Ngõ vào lại cổng XOR nối đến bit có khả lập trình Cổng XOR dùng để thực ngõ tích cực mức thấp hay mức cao Một OLMC cung cấp kiểu cấu hình ngõ - Simple Mode Cấu hình mode xem ngõ vào ngõ tổ hợp Tất ngõ có tới biểu thức nhân nối đến, hai MRC (chân 15,16) đơn ngõ khơng có đường hồi tiếp Chân 1, 11 ngõ cho tín hiệu vào mảng AND OLMC Single Mode - Complex Mode Ở mode cấu hình MRC tạo ngõ ngõ vào/ra I/O Trong mode có sáu ngõ vào I/O , MRC lại thực chức ngõ ( chân số 12 , 19), khơng có ngõ hồi tiếp MRC khác Nếu yêu cầu thiết kế cần dùng đến ngõ I/O ta nên nghĩ đến việc dùng mode ghi Có biểu thức nhân nối đến ngõ MRC, biểu thức nhân lại dùng vào việc lập trình cho phép xuất giá trị ngõ Chân 1, 11 đóng vai trị chân đưa liệu vào mảng lập trình AND GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm OLMC Complex Mode - Regsitered Mode Trong mode cấu hình MACROCELL (MRC) xem ngõ ghi ngõ vào/ra I/O , ta có đến ghi ngõ vào I/O tương ứng với MRC linh kiện Mỗi ngõ I/O có biểu thức nhân (hay đường tích - product term) Tất MRC nối chung với tín hiệu CLOCK (chân số 1) ,tín hiệu OUTPUT ENABLE (chân số 11) , bit định vị mode có giá trị hình sau OLMC Registered Mode GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm 3.3.6 FPGA (Field-programmable gate array) Field-programmable gate array (FPGA) vi mạch dùng cấu trúc mảng phần tử logic mà người dùng lập trình FPGA xem loại vi mạch bán dẫn chuyên dụng ASIC, khác biệt quan trọng kiến trúc FPGA cho phép có khả chứa khối lượng lớn cổng logic, so với vi mạch bán dẫn lập trình có trước Thiết kế hay lập trình cho FPGA thực chủ yếu ngôn ngữ mô tả phần cứng HDL VHDL, Verilog, …, hãng sản xuất FPGA lớn Xilinx, Altera thường cung cấp gói phần mềm thiết bị phụ trợ cho trình thiết kế Cấu trúc tổng thể FPGA minh họa hình sau: Các khối logic lập trình (logic block) Hệ thống mạch liên kết lập trình Khối vào/ra (IO Pads) Phần tử thiết kế sẵn khác RAM, ROM, nhân vi xử lý Kiến trúc tổng quan FPGA Khối logic lập trình GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Khối logic FPGA Phần tử FPGA khối logic (logic block) Khối logic cấu thành từ LUT (Look up table) phần tử nhớ đồng flip-flop, LUT khối logic thực hàm logic từ đầu vào, kết hàm tùy vào mục đích mà gửi ngồi khối logic trực tiếp hay thông qua phần tử nhớ flip-flop Slice: khối logic tạo thành slice Số lượng Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA Hệ thống mạch liên kết lập trình Hệ thống mạch liên kết lập trình Mạng liên kết FPGA cấu thành từ đường kết nối theo hai phương ngang đứng, tùy theo loại FPGA mà đường kết nối chia thành nhóm khác Các đường kết nối nối với thông qua khối chuyển mạch lập trình (programmable switch), khối chuyển mạch chứa số lượng nút chuyển lập trình đảm bảo cho dạng liên kết phức tạp khác Các phần tử tích hợp sẵn GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số Chương 3: Bộ nhớ hàm Ngoài khối logic tùy theo loại FPGA khác mà có phần tử tích hợp thêm khác nhau, ví dụ PowerPC, tích hợp nhân AVR…, hay cho ứng dụng xử lý tín hiệu số DSP FPGA tích hợp DSP Slide nhân cộng tốc độ cao, thực hàm A*B+C Ngồi FPGA Xilinx cịn có block RAM, mường tượng nhớ nhỏ nằm FPGA Những FPGA nhỏ (khoảng vài chục kí lơ bit vài triệu bit tùy theo loại FPGA) dùng để tạo nhớ nhỏ ROM, Ứng dụng FPGA Ứng dụng FPGA bao gồm: xử lý tín hiệu số DSP, hệ thống hàng khơng, vũ trụ, quốc phịng, hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mơ hình phần cứng máy tính Do tính linh động cao q trình thiết kế cho phép FPGA giải lớp toán phức tạp mà trước thực nhờ phần mềm máy tính, ngồi nhờ mật độ cổng logic lớn FPGA ứng dụng cho toán địi hỏi khối lượng tính tốn lớn dùng hệ thống làm việc theo thời gian thực GV: TS Võ Đình Tùng Bài giảng thiết kế hệ thống số 3.4 THIẾT KẾ HỆ TỔ HỢP DÙNG PLD 2.4 THIẾT KẾ MẠCH TUẦN TỰ DÙNG PLD GV: TS Võ Đình Tùng Chương 3: Bộ nhớ hàm