1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình Vi mạch số lập trình (Nghề Điện tử công nghiệp)

125 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 125
Dung lượng 6,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cấu trúccủa PAL kế thừa cấu trúc của PROM, sử dụng hai mảng logic nhưng nếu như ở các PROM mảng OR là mảng lập trình được thì ở PAL mảng AND lập trìnhđược, còn mảng OR được gắn cứng, ngh

Trang 1

TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP VÀ THƯƠNG MẠI

GIÁO TRÌNH

Tên mô đun: Vi mạch số lập trình

NGHỀ: ĐIỆN TỬ CÔNG NGHIỆP

TRÌNH ĐỘ TRUNG CẤP/CAO ĐẲNG NGHỀ

Ban hành kèm theo Quyết định số: /QĐ-CĐCNPY, ngày tháng năm 2018

của Hiệu trưởng trường Cao đẳng Công nghiệp và Thương mại

Vĩnh Phúc, năm 2018

Trang 2

Trang

CHƯƠNG TRÌNH MÔ ĐUN 2

BÀI 1: ĐẠI CƯƠNG VỀ LẬP TRÌNH CỠ NHỎ 4

1.1.Tổng quan về điều khiển lập trình: 4

1.1.1 Điều khiển nối cứng và điều khiển lập trình 4

1.1.2.Cấu trúc của một bộ lậpi tình cỡ nhỏ 5

1.2.Thiết bị điều khiển lập trình 11

1.2.1 Địa chỉ các ngõ vào/ ra 11

1.2.2 Phần chữ chỉ vị trí và kích thước của ô nhớ 13

1.2.3 Ma trận Fast CONNECT Switch 14

1.2.4 Cấu trúc bộ nhớ 15

1.3 Xử lí chương trình 16

1.3.1 Vòng quét chương trình 16

1.3.2 Cấu trúc chương trình 16

1.3.3 Phương pháp lập trình 21

1.4 Cài đặt sử dụng phần mềm 22

1.4.1 Những yêu cầu với máy tính PC 22

1.4.2 Cài đặt phần mềm lập trình ứng dụng 24

BÀI 2: CÁC TỆP LỆNH CỦA DỮ LIỆU 26

2.1 Các liên kết logic 26

2.1.1 Các lệnh vào/ra và các lệnh tiếp điểm đặc biệt 26

2.1.2 Các lệnh liên kết logic cơ bản 28

2.1.3 Liên kết các cổng logic cơ bản 31

2.2.4 Bài tập ứng dụng 34

2.2 Các lệnh ghi/xóa giá trị cho tiếp điểm 34

2.2.1 Lệnh Set(s) và Reset(r) 34

2.2.2 Các ví dụ 35

2.3.Timer 40

2.3.1 On - Delay Timer (TON) 40

2.3.2 Retentive On - Delay Timer (TONR) 53

2.4 Couter (Bộ đếm) 55

2.4.1 Bộ đếm lên (Counter up) 55

Trang 3

2.4.2 Bộ đếm lên/ xuống (Counter up - down) 56

BÀI 3: CÁC PHÉP TOÁN SỐ CỦA BỘ LẬP TRÌNH CỠ NHỎ 61

3.1.Chức năng truyền dẫn 61

3.1.1 Truyền Byte, Word, Doubleword 61

Tạo Project trên ISE 69

3.2 Chức năng so sánh 74

3.2.1 Chức năng dịch chuyển 74

3.3 Đồng hồ thời gian 104

BÀI 4:LẮP ĐẶT MÔ HÌNH ĐIỀU KHIỂN BẰNG LẬP TRÌNH CỠ NHỎ 107

4.1 Giới thiệu 107

Cách nối dây 107

4.3 Các mô hình và bài tập ứng dụng 108

4.3.1 Điều khiển van điện từ 2 cuộn dây 108

4.3.3 Điều khiển hệ thống cung cấp thuỷ lực 114

4.3.4 Điều khiển hệ thống thông gió 116

4.3.5 Điều khiển động cơ thuận nghịch 119

Trang 4

CHƯƠNG TRÌNH MÔ ĐUN

Tên mô đun: VI MẠCH SỐ LẬP TRÌNH (FPGA)

Mã mô đun:

Thời gian thực hiện mô đun: 75 giờ (Lý thuyết: 15 giờ; Thực hành: 57 giờ; KT: 3

giờ)

I Vị trí, tính chất của mô đun:

- Vị trí: Trước khi học mô đun này cần hoàn thành các môn học cơ sở nghề và một

số mô đun chuyên môn nghề như: PLC cơ bản, Kỹ thuật Vi điều khiển

- Tính chất: Là mô đun tự chọn trong chương trình đào tạo ngành/ nghề Điện tửcông nghiệp

- Về kiến thức:

nhỏ

- Về kỹ năng:

vi

hiện được một số bài toán ứng dụng đơn giản trong công nghiệp

- Về năng lực tự chủ và trách nhiệm:

1 Nội dung tổng quát và phân phối thời gian:

Thời gian

Tổng số

Lý thuyết

Thực hành, thí nghiệm, thảo luận, bài tập

Kiểm tra

Trang 5

1 Bài 1: Đại cương về điều khiển lập trình

cỡ nhỏ

1.1 Tổng quát về điều khiển lập trình

1.2 Thiết bị điều khiển lập trình

Trang 6

BÀI 1: ĐẠI CƯƠNG VỀ LẬP TRÌNH CỠ NHỎ

Mục tiêu:

- Trình bày được cấu trúc và nhiệm vụ các khối chức năng của bộ lập trình

cỡ nhỏ

- Thực hiện được sự kết nối giữa bộ lập trình cỡ nhỏ và các thiết bị ngoại vi

- Mô tả được cấu trúc của chương trình bộ lập trình cỡ nhỏ

- Chủ động, sáng tạo và đảm bảo an toàn trong quá trình học tập

Nội dung chính:

1.1.Tổng quan về điều khiển lập trình:

1.1.1 Điều khiển nối cứng và điều khiển lập trình

Vi mạch khả trình gồm các dạng sau:

v SPLD (Simple Programmable Logic Device) bao gồm các loại IC khả

trình PROM, PAL, PLA, GAL Đặc điểm chung của nhóm IC này làchứa số lượng cổng tương đương vài chục (PROM) đến vài trăm(PAL, GAL) cổng

v CPLD (Complex Programmable Logic Device) là IC khả trình phứctạp thường được ghép từ nhiều SPLD trên một chip đơn Số lượngcổng tương đương của CPLD đạt từ hàng nghìn đến hàng chục nghìncổng

v FPGA (Field – Programmable Gate Array) là IC khả trình được cấutrúc từ mảng các khối logic lập trình được

PROM (Programmable Read – Only Memory) được phát minh bởi WenTsing Chow năm 1956 khi làm việc tại Arma Division của công ty AmericanBosch Arma tại Garden, New York PROM được chế tạo theo đơn đặt hàng từlực lượng không quân Mỹ lúc bấy giờ với mục đích có được một thiết bị lưutrữ các tham số về mục tiêu một cách an toàn và linh động Thiết bị này dùngtrong máy tính của hệ thống phóng tên lửa Atlas E/F và được giữ bí mật trongvòng vài năm trước khi Atlas E/F trở nên phổ biến PROM là vi mạch lậptrình đầu tiên và đơn giản nhất trong nhóm các vi mạch bán dẫn có thể lậptrình được (PLD – Programmable Logic Device)

PAL (Programmable Array Logic) ra đời cuối những năm 1970 Cấu trúccủa PAL kế thừa cấu trúc của PROM, sử dụng hai mảng logic nhưng nếu như

ở các PROM mảng OR là mảng lập trình được thì ở PAL mảng AND lập trìnhđược, còn mảng OR được gắn cứng, nghĩa là các thành phần tích có thể thayđổi nhưng tổ hợp của chúng sẽ cố định, cải tiến này tạo sự linh hoạt hơn trong

Trang 7

việc thực hiện các hàm khác nhau Ngoài ra cấu trúc PAL còn phân biệt vớiPROM là ở mỗi đầu ra của mảng OR lập trình được được dẫn bởi khối logicgọi là Macrocell.

PLA (Programmable Logic Array) ra đời năm 1975, và là chip lập trìnhthứ hai sau PROM Cấu trúc của PLA không khác nhiều so với cấu trúc củaPAL, ngoại trừ khả năng lập trình ở cả hai ma trận AND và OR Nhờ cấu trúc

đó mà PLA có khả năng lập trình linh động hơn, nhưng bù lại tốc độ của PLAthấp hơn nhiều so với PROM và PAL và các sản phẩm cùng loại Thực tếPLA được ứng dụng không nhiều và nhanh chóng bị thay thế bởi những côngnghệ mới hơn như GAL, CPLD,…

GAL (Generic Array Logic) được phát triển bởi công ty LatticeSecmiconductor vào năm 1983 Cấu trúc của GAL không khác biệt PALnhưng thay vì lập trình sử dụng công nghệ cầu chì nghịch thì GAL dùng côngnghệ PROM CMOS xóa bằng điện, chính vì vậy mà đôi khi tên gọi GAL ítđược sử dụng, mà còn gọi là PAL được cải tiến

Tất cả các chip khả trình PROM, PAL, GAL có khuyết điểm là thiết kếđơn giản, chi phí thấp cho sản xuất cũng như thiết kế, có thể chuyển dễ dàng

từ công nghệ này sang công nghệ khác Tuy nhiên, nhược điểm của nó là tốc

độ làm việc thấp, số lượng cổng logic tương đương nhỏ, do đó không đáp ứngđược những thiết kế phức tạp đòi hỏi nhiều tài nguyên và tốc độ cao hơn,chính vì vậy mà CPLD (Complex Programmable Logic Devices) ra đời

CPLD được Altera tiên phong nghiên cứu và chế tạo đầu tiên, nhằm tạo

ra những IC khả trình dung lượng lớn như MAX5000, MAX7000 Sau sựthành công của hãng Altera, thì một loạt các hãng khác cũng bắt tay vàonghiên cứu chế tạo CPLD như Xilinx với các dòng sản phẩm như họ CPLDXC95xx, Lattice với họ ISP Mach 4000, ISP March XO,…

Số lượng cổng của CPLD ngày càng trở nên nhỏ cho những ứng dụnglớn và phức tạp hơn Năm 1985, công ty Xilinx đưa ra ý tưởng hoàn toànmới, đó là kết hợp thời gian hoàn thành sản phẩm và khả năng điều khiểnđược của PLD với mật độ và ưu thế về chi phí của Gate Array để tạo ra FPGA(Field Programmable Gate Array) Hiện nay, Xilinx vẫn là nhà sản xuất chipFPGA số một trên thế giới FPGA có cấu trúc và hoạt động phức tạp hơnCPLD

1.1.2.Cấu trúc của một bộ lậpi tình cỡ nhỏ

Trong phần này trình bày cấu trúc của một số loại IC khả trình thuộcdòng SPLD như PAL, GAL, PLA

PAL:

Trang 8

PAL được cấu trúc từ các mảng AND lập trình được và các mảng ORđược gắn cứng, đồng thời mỗi đầu ra của mảng OR lập trình được dẫn bởikhối logic gọi là Macrocell như trong hình 1.1.

Hình 1.1 – Cấu trúc PAL

Hình 1.2 minh họa cho ta thấy một macrocell (MC) Mỗi macrocell chứamột flip–flop, bộ mux2 và mux8 và cổng logic ba trạng thái Tín hiệu điềukhiển của mux4 có thể được lập trình để cho phép dẫn tín hiệu lần lượt quacác đầu vào 0, 1, 2, 3 của bộ mux4 và gửi ra ngoài cổng giao tiếp IO Tùythuộc vào cấu hình này mà tín hiệu có thể được gửi ra ngoài IO hay không

Trang 10

Như đã trình bày ở phần 1.1, thì cấu trúc của GAL không khác biệt PAL,nhưng thay vì lập trình sử dụng công nghệ cầu chì nghịch thì GAL sử dụngcông nghệ PROM CMOS xóa bằng điện, do đó GAL cho phép lập trình lạigiống như EEPROM

Trang 11

Hình 1.4 – Cấu trúc họ vi mạch GAL Cấu trúc cơ bản của CPLD:

Mục tiêu: trình bày cho người học hiểu rõ cấu trúc cơ bản của họ vi mạch khả trình CPLD.

Hình 1.5 – Cấu trúc cơ bản của CPLD

Thiết bị khả trình phức tạp CPLD (Complex PLD) có mật độ logic caohơn so với các PLD đơn giản đã xem xét ở phần trên CPLD bao gồm nhiềumạch logic, mỗi mạch có thể coi là một SPLD Trong một mạch đơn chỉ thựchiện các chức năng logic đơn giản Các chức năng logic phức tạp cần sốlượng khối nhiều hơn, sử dụng ma trận liên kết chung giữa các khổi để tạo kếtnối CPLD thường dùng để điều khiển ghép cổng phức tạp ở tốc độ rất cao(5ns, tương đương với 200MHz) Cấu trúc cơ bản của CPLD được minh họatrong hình 1.5

CPLD có cấu trúc đồng nhất gồm nhiều khối chức năng "Function Block" được kết nối với nhau thông qua một ma trận kết nối "FastCONECT

Trang 12

Switch matrix" Mỗi khối function block gồm có một khối logic - gồm các

dạng tích AND và OR sắp xếp giống PLA hoặc PAL, cho phép thực hiện cáchàm logic tổ hợp, và nhiều khối MC (Macrocell) có chứa tài nguyên là cácTrigơ cho phép xây dựng các thanh ghi và mạch tuần tự Phần lõi bên trongcủa CPLD được nối ra bên ngoài thông qua các khối vào ra I/O cho phép thiếtlập chức năng cho các chân của IC có chức năng vào hoặc ra hoặc vừa là chânvào vừa là chân ra, ngoài ra còn có thể thiết lập các chân I/O này làm việc ởcác mức logic khác nhau, có điện trở pull-up hoặc pull-down,

Với cấu trúc đồng nhất, giá thành rẻ, tính năng khá mạnh, dễ sử dụng nênCPLD đã và đang được sử dụng rất rộng rãi trong thực tế, giúp cho nhà sảnxuất phát triển nhanh sản phẩm của mình với giá thành rẻ Đặc biệt hiện naycác hãng đã phát triển các họ CPLD với tính năng rất mạnh, công suất tiêu thụthấp, chúng đang được sử dụng rất nhiều để phát triển các sản phẩm điện tử,viễn thông, công nghệ thông tin, nhất là trong các thiết bị cầm tay, di động…Trong thực tế rất có nhiều loại CPLD khác nhau, của các hãng khácnhau, và đã được phát triển với nhiều chủng loại, thế hệ CPLD khác nhau.Cấu tạo, dung lượng, tính năng, đặc điểm, ứng dụng… của mỗi loại CPLDcũng rất khác nhau Trong giáo trình này không đi sâu trình bày cấu tạo cụ thểcủa tất cả các họ CPLD, mà chỉ trình bày kiến trúc chung đơn giản nhất củaCPLD Khi sử dụng cụ thể loại CPLD nào, người học nên tham khảo các tàiliệu khác, nhất là tham khảo các tài liệu kỹ thuật được cung cấp kèm theo cấukiện do các hãng đưa ra (datasheet) Các hãng điện tử nổi tiếng trên thế giớiđang sở hữu, phát triển, cung cấp các loại linh kiện CPLD là Xilinx, Altera…

Cấu trúc cơ bản của FPGA:

Trang 13

Hình 1.6 – Cấu trúc của FPGA

Hình 1.6 trình bày cấu trúc tổng quan nhất cho các loại FPGA hiện nay.Cấu trúc chi tiết và tên gọi của các thành phần có thể thay đổi tùy theo cáchãng sản xuất khác nhau, nhưng về cơ bản FPGA được cấu thành từ các khốilogic (Logic Block), số lượng của các khối này thay đổi từ vài trăm đến vàichục nghìn, và được bố trí dưới dạng ma trận, chúng được kết nối với nhauthông qua hệ thống các kênh nối khả trình Hệ thống này còn có nhiệm vụ kếtnối với các cổng giao tiếp vào ra (IO_PAD) của FPGA Số lượng các chânvào ra thay đổi từ vài trăm đến hàng nghìn chân

Bên cạnh các thành phần chính đó, những FPGA cỡ lớn còn được tích

hợp cứng những khối thiết kế sẵn mà thuật ngữ gọi là Hard IP cores, các IP

cores này có thể là các bộ nhớ RAM, ROM, các khối thực hiện phép nhân,khối thực hiện phép xử lý tín hiệu số (DSP),…bộ vi xử lý cỡ nhỏ và vừa nhưPower PC hay ARM

1.2.Thiết bị điều khiển lập trình

1.2.1 Địa chỉ các ngõ vào/ ra

Cấu trúc cơ bản của họ CPLD XC9500 được mô tả trong hình 2.1

Trang 14

Hình 2.1 – Cấu trúc họ CPLD XC9500

Mỗi khối chức năng (Function Block: FB) được cho trong hình 2.1 baogồm 18 macrocell độc lập nhau, mỗi macrocell có thể thực thi các hàm kếthợp hoặc thanh ghi

Mỗi khối FB có bộ nhận xung clock, kết nối đến ngõ ra và set/reset cáctín hiệu Các FB tạo ra 18 ngõ ra kết nối tới ma trận Fast CONNECT switch

Hình 2.2 – Khối FB của XC9500

Trang 15

Hình 2.3 – Cấu trúc macrocell bên trong khối FB 1.2.2 Phần chữ chỉ vị trí và kích thước của ô nhớ.

Khối IO (IOB) giao tiếp gữa các logic bên trong và các chân người dùngbên ngoài Mỗi IOB bao gồm bộ đệm ngõ vào, bộ lái, bộ mux ngõ ra và bộđiều khiển tiếp đất người dùng có thể lập trình được (hình 2.4)

Bộ đệm ngõ vào tương thích với chuẩn CMOS 5V, TTL 5V và các mứctín hiệu 3.3V Bộ đệm ngõ vào sử dụng điện áp cung cấp bên trong 5V(VCCINT) để đảm bảo ngưỡng ngõ vào là hằng số và không khác với điện áp

VCCIO

Ngõ ra kết nối có thể được tạo ra từ một trong bốn lựa chọn: tín hiệuđược tạo ra từ macrocell, các tín hiệu OE toàn cục, luôn luôn là mức “1” hoặcluôn luôn mức “0” Có hai ngõ vào kết nối toàn cục cho thiết bị với 144macrocell, và bốn ngõ vào kết nối toàn cục kết nối tới các thành phần Cả haicực của bộ điều kiển ba trạng thái của các chân (GTS) có thể được sử dụngtrong thiết bị

Trang 16

Hình 2.4 – Khối IO và kết nối ngõ ra của CPLD XC9500

1.2.3 Ma trận Fast CONNECT Switch

Ma trận Fast CONNECT switch kết nối các tín hiệu tới các ngõ vào FB(hình 2.5) Tất các các ngõ IOB (tương ứng với các chân ngõ vào người dùng)

và tất cả các ngõ ra lái ma trận Fast CONNECT

Trang 17

Hình 2.5 – Ma trận Fast CONNECT Switch 1.2.4 Cấu trúc bộ nhớ

Lập trình trong hệ thống:

XC9500 được lập trình trong hệ thống với chuẩn JTAG 4 chân (JTAG:Joint Test Group) Khi lập trình, tất cả các port ngõ vào trong khối I/O đượcthiết lập ở mức cao “H”

Trang 18

Hình 2.6 – Kết nối CPLD với chuẩ JTAG 1.3 Xử lí chương trình

1.3.1 Vòng quét chương trình

Hình 3.1 – Cấu trúc chung của họ FPGA Spartan 3E

FPGA spartan 3E được cấu trúc từ các thành phần sau:

v CLBs (Configuration Logic Blocks): là các khối chứa các LUTs(Look Up Tables) để thực thi các phép lưu trữ logic như flip-flop haychốt, thực thi các hàm logic

v IOBs (Input/Output Blocks): là các khối điều khiển dữ liệu giữa cácchân I/O và các logic bên trong của thiết bị Mỗi IOB hỗ trợ dữ liệuhai chiều hoạt động ở ba trạng thái

v Khối RAM: cung cấp cho việc lưu trữ dữ liệu với các khối RAM18Kbit

v Khối Multiplier : Tính toán các số nhị phân 18 bit

v Khối DCM (Digial Clock Manager): cung cấp các giải pháp đo, trễ,nhân, chia và dịch pha các tín hiệu clock

1.3.2 Cấu trúc chương trình

Khối logic khả trình của FPGA của hãng Xilinx là các khối CLB CLB làphần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chính tạo nên cácmạch logic

Mỗi CLB được cấu thành từ 4 Slice, mỗi Slice lại được cấu thành từ 2LUT (Look Up Tables) Phân bố của các CLB được thể hiện ở hình 3.2

Trang 19

Hình 3.2 – Phân bố của các CLB trong FPGA

Các CLB được phân bố theo hàng và theo cột, mỗi CLB được xác địnhbằng một tọa độ X và Y trong ma trận Đối với Spartan 3E thì số lượng hàngthay đổi từ 22 đến 76, số lượng cột từ 16 đến 56 tùy thuộc vào các linh kiện

cụ thể

a SLICE:

Mỗi CLB được tạo thành từ 4 slice và các slice này chia làm hai nhómtrái và nhóm phải Nhóm 2 slice bên trái có khả năng thực hiện các chức nănglogic và làm việc như phần tử nhớ nên được gọi là SLICEM (Slice Memory).Nhóm hai slice bên phải chỉ thực hiện được các chức năng logic nên được gọi

là SLICEL (Slice Logic) Thiết kế như vậy xuất phát từ thực tế nhu cầu thựchiện chức năng logic thường lớn hơn so với nhu cầu lưu trữ dữ liệu, do đóviệc hỗ trợ chỉ một nửa làm việc như phần tử nhớ làm giảm kích thước và chiphí FPGA, mặt khác làm tăng tốc độ làm việc cho toàn khối

Trang 20

Hình 3.3 – Bố trí slice bên trong một CLB

Cả hai thành phần SLICEM và SLICEL có chứa các thành phần để thựcthi các hàm logic, thuật toán và ROM:

Trang 21

Cấu trúc chi tiết của một slice được thể hiện ở hình 3.5.

Hình 3.5 – Cấu trúc của slice

Trang 22

Những đường gạch đứt thể hiện những kết nối tới các tài nguyên mà chỉSLICEM mới có, những đường gạch liền là những kết nối mà cả hai dạngslice đều có.

b Bảng tham chiếu LUT:

Hình 3.6 – Phân bố các LUT trên một slice

Bảng tham thiếu LUT được phân bố ở góc bên trên và bên dưới của slice

và được gọi tên tương ứng là G-LUT và F-LUT Phần tử nhớ đóng vai trò làđầu ra của các LUT được gọi tương ứng là flip-flop X (FFX) và flip-flop Y(FFY) LUT là đơn vị logic và là tài nguyên logic cơ bản của FPGA, LUT cókhả năng được cấu trúc để thực hiện một hàm logic bất kỳ với bốn đầu vào.Cấu trúc của LUT được thể hiện như sau:

Hình 3.7 – Cấu trúc LUT

LUT về cơ bản là một bộ chọn kênh 16 ngõ vào, các ngõ vào của LUTA[3:0] đóng vai trò là tín hiệu chọn kênh, ngõ ra của LUT là đầu ra của bộchọn kênh Khi cần thực hiện một hàm logic bất kỳ nào đó, một mảng nhớSRAM 16 bit được tạo ra để lưu trữ kết quả bảng sự thật của hàm, tổ hợp 16giá trị của hàm tương ứng sẽ là các kênh chọn của khối chọn kênh Khi làmviệc, tùy thuộc vào giá trị của A[3:0] mà đầu ra D sẽ nhận một trong số 16 giá

Trang 23

trị lưu trữ tương ứng trong SRAM Bằng cách như vậy, một hàm logic bất kỳvới bốn đầu vào và một đầu ra có thể thực hiện được trên LUT.

Hai LUT có trong SLICEM có thể được cấu trúc để làm việc như RAM16x1 gọi là RAM phân tán hoặc được cấu trúc để làm việc như một thanh ghidịch 16 bit SHL16

Các LUT có thể được kết hợp với nhau để thực hiện các hàm logic tùybiến có số lượng đầu vào lớn hơn 4 thông qua các bộ chọn kênh mở rộng Ởcác thế hệ FPGA sau này, nguyên lý làm việc của LUT vẫn không thay đổinhưng số lượng đầu vào có thể nhiều hơn

1.3.3 Phương pháp lập trình

a.Phần tử nhớ:

Phần tử nhớ có trong CLB là FFX và FFY có thể được cấu hình để làmviệc như D flip-flop hoặc chốt, làm việc với các tín hiệu điều khiển clockhoặc không có clock, vì vậy cấu trúc của phần tử nhớ trong FPGA phức tạphơn so với cấu trúc của D flip-flop thông thường Các đầu ra QX và QY củacác phần tử nhớ cũng là các đầu ra của slice Trong phần lớn các ứng dụngthường gặp thì phần tử nhớ được cấu trúc để làm việc như D flip-flop có xungclock

b.Bộ chọn kênh mở rộng:

Trong cấu trúc của slice có chứa hai bộ mux đặc biệt gọi là bộ mux mởrộng F5MUX và FiMUX

Hình 3.8 – FiMUX và F5MUX

Trang 24

Mỗi LUT được thiết kế để có thể thực hiện được mọi hàm logic bốn đầuvào Mục đích của các bộ chọn kênh này là tăng tính linh động của FPGAbằng cách kết hợp các phần tử logic chức năng như LUT, chuỗi bit nhớ, thanhghi dịch, RAM phân tán ở các slice, các CLB khác nhau để tạo ra các hàm tùybiến với nhiều đầu vào hơn.

Hình 3.9 – Cấu tạo của F5MUX

Bảng sự thật của bộ F5MUX được thể hiện chi tiết trong bảng 3.2

1.4.1 Những yêu cầu với máy tính PC

Spartan 3E cũng như trong các FPGA thế hệ sau này đều được tích hợpcác chuỗi bit nhớ (carry chain) và các chuỗi số học (arithmetic chain) đặc biệt,các chuỗi này kết hợp với các LUT được sử dụng tự động hầu hết trong cácphép toán số học thường gặp như cộng, trừ, nhân, góp phần rất lớn vào việctăng tốc cho các phép toán này, đồng thời thiết kiệm tài nguyên logic (LUT).Các chuỗi này được tạo thành bằng các khối chọn kênh và các cổng logicriêng biệt, các phần tử đó cũng có thể được sử dụng độc lập để thực hiện cáchàm logic đơn giản khác

Chuỗi bit nhớ thường gặp trong phép toán cộng, với mỗi slice chuỗi bitnhớ được bắt đầu từ tín hiệu CIN và kết thức ở COUT Các chuỗi đơn lẻ trong

có thể được nối trực tiếp giữa các CLB với nhau để tạo thành các chuỗi dàihơn theo yêu cầu Mỗi một chuỗi bit nhớ này có thể được bắt đầu tại bất kỳmột đầu vào BY nào của các slice

Trang 25

Các chuỗi số học logic bao gồm chuỗi thực hiện hàm XOR với các cổngXORG, XORF phân bố ở phần trên và phần dưới của slice, chuỗi AND vớicác công GAND, FAND Các chuỗi này kết hợp với các LUT để thực hiệnphép nhân hoặc tạo thành các bộ đếm nhị phân.

Hình 3.10 – Chuỗi bit nhớ

Việc sử dụng các chuỗi này sẽ tối ưu hóa tài nguyên và tăng tốc độ choFPGA Thiết kế điển hình của bộ cộng 1 bit FULL_ADDER trên FPGA đượcthể hiện như trong hình 3.11, và bộ nhân trong hình 3.12

Hình 3.11- Sơ đồ logic của bộ cộng 1 bit FULL_ADDER trên

FPGA

Trang 26

Hình 3.12 – Bộ nhân trong FPGA

Với sơ đồ như hình 3.11 và 3.12, ta thấy bộ công 1 bit FULL_ADDER

và bộ nhân trong FPGA thực thi ít mất thời gian và tài nguyên hơn so với bộcộng 1 bit FULL_ADDER và bộ nhân thông thường sử dụng IC số

1.4.2 Cài đặt phần mềm lập trình ứng dụng

Trong mỗi CLB của FPGA có chứa 4x16 = 64 bit RAM tương ứng với 4LUT nằm trong 2 SLICEM của CLB Phần RAM có thể sử dụng như mộtkhối RAM 64 bit một port hoặc khối RAM 32 Bit hai port, khi đó khối RAMđược tạo thành từ hai mảng nhớ 32 bit và lưu trữ dữ liệu giống nhau Vì cácRAM này phân bố rải rác theo CLB nên trong cấu trúc của FPGA chúng đượcgọi là RAM phân tán để phân biệt với các khối RAM nằm tập trung và cókích thước lớn hơn gọi là RAM khối

Hình 3.13 – RAM phân tán trong FPGA

RAM phân tán trong FPGA có thể sử dụng ở một trong hai dạng nhưhình 3.13 Đối với kiểu single-port RAM thì có một cổng đọc/ghi dữ liệu, còndual-port RAM thì có một cổng đọc/ghi dữ liệu và một cổng chỉ thực hiện đọc

dữ liệu từ RAM

Hình 3.14 cho ta thấy giản đồ thao tác đọc/ghi dữ liệu RAM phân tán củaFPGA

Trang 27

Hình 3.14 – Thao tác đọc/ghi dữ liệu RAM phân tán trong FPGA của

Xilinx

Tài nguyên RAM phân tán trong FPGA được sử dụng hết sức linh động,một khối CLB đơn lẻ có thể được cấu hình để tạo thành các khối RAM phântán 64x1, 32x2, 16x4 Các đầu vào G[4:1] và F[4:1] được dùng như các đầuvào địa chỉ Các khối RAM lớn hơn có thể được tạo thành bằng cách ghép tàinguyên trong các CLB khác nhau lại sử dụng các bộ chọn kênh mở rộng, khi

đó các cổng BY, BY được sử dụng như các bit địa chỉ bổ xung

Trang 28

BÀI 2: CÁC TỆP LỆNH CỦA DỮ LIỆU

Mục tiêu của bài:

- Trình bày được các chức năng của Set (S) và Reset (R), counter, Timer (bộđếm, Bộ định thời)

- Lập trình, kết nối, chạy thử các chức năng của S, R, Timer, counter trongcác bài toán thực tế

- Chủ động, sáng tạo và đảm bảo an toàn trong quá trình học tập

2.1 Các liên kết logic

2.1.1 Các lệnh vào/ra và các lệnh tiếp điểm đặc biệt

Sơ đồ nguyên lý của khối điều khiển vào ra (IOB) trong Spartan 3E đượctrình bày ở hình 3.17

Hình 3.17 – Sơ đồ nguyên lý của khối đệm vào ra IOB

Các khối IOB trong FPGA cung cấp các cổng vào ra lập trình được theomột chiều hoặc hai chiều giữa các chân vào/ra của FPGA với các khối logicbên trong Các khối một chiều là các khối chỉ đóng vai trò là ngõ vào, sốlượng của các ngõ vào này thường chiếm không nhiều

Trang 29

a Ngõ vào trễ:

Mỗi một đường dữ liệu vào chứa các khối làm trễ có thể lập trình được

gọi là programmable input delay block Các khối này bao gồm một phần tử

làm trễ thô có thể được bỏ qua, khối làm trễ tín hiệu ở mức độ chính xác vừaphải Tiếp theo là chuỗi sáu phần tử làm trễ được điểu khiển bởi các bộ chọnkênh Đối với đường vào clock thông qua các phần tử nhớ tới IQ1, IQ2 thì cóthể chọn 3 mức làm trễ Còn đối với đường vào không có clock tới cổng I thì

có thể thay đổi ở 6 mức làm trễ Tất cả khối làm trễ có thể được bỏ qua, khi

đó tín hiệu được gửi đồng thời tới các chân ra có clock và không có clock

Khái niệm DDR (Double Data Rate transmission) chỉ dạng đường truyền

dữ liệu có xung clock ở tốc độ gấp 2 lần tốc độ cho phép của xung nhịp clockbằng cách kích hoạt tại thời điểm sườn lên và sườn xuống của xung nhịp Với

cả 3 đường dữ liệu có trong IOB, mỗi đường đều có một cặp phần tử nhớ chophép thực hiện truyền dữ liệu theo phương thức DDR

Trang 30

Hình 3.19 – Nguyên lý DDR

Hình 3.19 thể hiện cách thực hiện DDR trong FPGA Hai phần tử nhớhoạt động ở chế độ flip-flop Đầu ra được nối với bộ DDR_MUX để điềukhiển dữ liệu vào/ra Cùng một thời điểm có hai xung nhịp đồng hồ lệch phanhau 1800 gửi tới đầu vào xung nhịp CLK1 và CLK2 với chu kỳ T của flip-flop Giả sử tại thời điểm sườn dương của tín hiệu CLK1 thì flip-flop 1 hoạtđộng, thì sau đó nửa chu kì, thì tại thời điểm sườn âm của xung nhịp CLK1tương ứng với sườn dương của CLK2 thì flip-flop 2 hoạt động Như vậy chu

kỳ nhận/gửi dữ liệu là T/2, hay tốc độ nhận/gửi dữ liệu được tăng lên gấp đôi

Để tạo ra hai xung nhịp lệch pha nhau có thể dùng khối DCM, từ một tínhiệu xung nhịp chuẩn sinh ra tín hiệu xung nhịp thứ hai bằng cách dịch pha

1800 Phương pháp này đạt được độ trễ xung nhịp thấp nhất Bên cạnh đó,phương pháp thứ hai như mô tả ở hình bên phải trong hình 3.19 là dùng cổngđảo có trong IOB để tạo lệch pha 1800

2.1.2 Các lệnh liên kết logic cơ bản

Các kết nối khả trình (Programmable Interconnects) của FPGA dùng đểliên kết các phần tử chức năng khác nhau bao gồm IOB, CLB, RAM khối,khối nhân chuyên dụng, DCM lại với nhau Các kết nối khả trình của FPGAđược thiết kế cân bằng giữa yếu tố linh động và tốc độ làm việc (giảm thiểutrễ do đường truyền gây ra) Đối với các FPGA họ Spartan 3E có 4 loại kếtnối sau: kết nối dài (long line), kết nối kép (double line), kết nối ba (hex line)

và kết nối trực tiếp (direct line) Các dạng kết nối này liên hệ với nhau thôngqua cấu trúc ma trận chuyển (switch matrix)

a Ma trận chuyển:

Ma trận chuyển (Switch matrix) là các khối thực hiện kết nối giữa cácdạng tài nguyên của FPGA bao gồm kết nối dài, kết nối kép, kết nối ba và kết

Trang 31

nối trực tiếp Ô liên kết được định nghĩa là một khối bao gồm ma trận chuyển

và các phần tử chức năng của FPGA như IOB, CLB, RAM khối, DCM và các

bộ nhân chuyên dụng

Hình 3.20 – Các thành phần kết nối khác nhau trong Xilinx FPGA

Với CLB, IOB, DCM chỉ cần một ma trận chuyển để tạo thành một ô kếtnối, nhưng với các phần tử lớn hơn như RAM khối hay MULT18 thì cầnnhiều ma trận kết nối tương ứng có số ô kết nối lớn hơn

Hình 3.21 – Mảng kết nối trong FPGA Spartan 3E

Trang 32

b Các dạng kết nối:

Các kiểu kết nối có trong FPGA bao gồm:

v Kết nối dài (Long line):

Hình 3.22 – Kết nối dài trong FPGA

Đường kết nối dài gồm tổ hợp 24 đường kéo dài theo cả chiều dọc vàchiều ngang và kết nối tới một trong sáu gạch nối Tại bất kỳ một kết nối sẽ

có bốn đường để lái hoặc nhận tín hiệu từ ma trận chuyển Do điện dung củakết nối này thấp cho nên kết nối dài rất phù hợp để thực hiện các tín hiệu tần

số cao với ảnh hưởng của tải là nhỏ nhất

v Kết nối ba (hex line)

Hình 3.23 – Kết nối ba trong FPGA

Kết nối ba là kênh kết nối gồm tám đường nối tới một trong ba CLB liêntiếp

v Kết nối kép (Double line)

Hình 3.24 – Kết nối kép

Kết nối kép là kênh kết nối gồm 8 đường nối tới một trong hai CLB liêntiếp Kết nối kép có số lượng nhiều và linh hoạt hơn trong FPGA so với kếtnối dài và kết nối ba

Trang 33

Hình 3.26 – RAM khối trong FPGA

RAM khối có hai port là port A và port B cho phép thực hiện các thao tácđọc/ghi độc lập với nhau, mỗi một port có các tín hiệu xung clock, kênh dữliệu và các tín hiệu điều khiển riêng:

v Đọc/ghi từ port A

v Đọc/ghi từ port B

v Truyền dữ liệu từ A sang B

Trang 34

v Truyền dữ liệu từ B sang A

RAM khối trên thực tế đều là các khối RAM hai port và có thể được khởitạo để hoạt động ở RAM 2 port (Dual – port RAM) hoặc RAM một port(Single port RAM) Các cổng vào ra của RAM khối được mô tả ở hình 3.27

Hình 3.27 – RAM khối

Tên gọi của các RAM được đặt theo cú pháp RAMB16_S[WA]_S[WB],trong đó WA và WB là độ rộng dữ liệu của port A và Port B Vì vậy một RAM

2 port có tên RAMB16_S9_S18 là một RAM 2 port có độ rộng port A là 9-bit

và độ rộng của port B là 18-bit RAM 1 port có tên tương ứng làRAMB16_[w], vì vậy với một RAM có tên RAMB16_S18 là một RAM 1port có độ rộng 18-bit

b Khối nhân chuyên dụng 18x18:

Các khối nhân chuyên dụng 18x18 được thiết kế riêng, thường được ứngdụng trong các bài toán xử lý tín hiệu số, tên của bộ nhân chuyên dụng nàytrong thư viện chuẩn của Xilinx là MULT18X18SIO

Số lượng của bộ nhân chuyên dụng trong FPGA Spartan 3E từ 4 đến 36tùy thuộc vào loại IC Khối nhân này thực hiện nhân hai số có dấu 18 bit, kếtquả cho ra là một số có dấu 36 bit

Trang 35

Hình 3.28 – Sơ đồ khối của khối nhân 18 bit

c Khối DCM:

Khối DCM là một khối đặt biệt trong FPGA có nhiệm vụ điều chỉnh vàtạo ra xung đồng hồ theo những yêu cầu cụ thể của bài toán DCM có cấu tạophức tạp và có số lượng hạn chế trong Spartan 3E với số lượng từ 2 đến 8khối DCM Các công việc chính mà khối DCM có thể thực hiện là:

v Loại bỏ độ trễ giữa các xung clock ở các vị trí khác nhau

v Tổng hợp tần số: nhân, chia tần số với một số

v Dịch pha: dịch pha của xung nhịp đi 00, 900, 1800 hoặc 2700

Hình 3.29 – Khối DCM

Trang 36

2.2.4 Bài tập ứng dụng

FPGA cũng giống như những linh kiện điện tử khác đều có các thông sốgiới hạn của chính bản thân nó Ta cần quan tấm đến một số thông số giới hạnsau khi sử dụng FPGA

v Điện áp hoạt động của FPGA

v Số thanh ghi của FPGA

v Số chân của FPGA

v Số IO của FPGA

v Số khối logic của FPGA

v Số cổng của FPGA

v Nhiệt độ hoạt động của FPGA

v Số Slice Flip Flop

v Số LUTs 4 ngõ vào

v Số BUFGMAXS

v Số chân hỗ trợ CLK

v Công suất tiêu thụ của FPGA

v Các thành phần tích hợp của FPGA như DSP,…

Có hai phương pháp chính để lưu giữ chương trình cho FPGA như sau:

v Lưu giữ chương trình trực tiếp trên FPGA

v Lưu trữ bằng các phần tử nhớ khác như: Platform Plash PROM, SPISerial Flash PROM (SPI), StrataPlash parallel Flash PROM (BPI Uphay BPI Down), card CF,…

Hầu hết các FPGA đều không có bộ nhớ để lưu giữ chương trình, do đókhi ta đổ chương trình trực tiếp lên FPGA thì chương trình đó sẽ bị mất đi khimất nguồn điện Còn với phương pháp cấu hình bằng các phần tử nhớ khác thìchương trình được lưu giữ trong phần tử nhớ đó, khi cấp nguồn điện thìchương trình trong phần tử nhớ sẽ được đưa lên FPGA để cho FPGA hoạtđộng

Trang 37

2.2.2 Các ví dụ

Tùy thuộc vào từng họ linh kiện FPGA cụ thể mà nhà sản xuất cung cấp cho

ta những đặc tính điện của họ linh kiện đó Trong phần này trình bày một số

đặc tính điện liên quan đến họ linh kiện FPGA Spartan – 3E của hãng

Xilinx

a Điều kiện hoạt động tối đa cho phép:

Điều kiện hoạt động tối đa cho phép là điều kiện mà người dùng phảituân theo để tránh làm cho linh kiện bị hư hỏng Điều kiện hoạt động tối đa

cho phép được cho trong bảng 3.3

Bảng 3.3 – Điều kiện hoạt động tối đa của họ linh kiện Spartan – 3E

-0.5 VCCAUX+0.5 V

b Chi tiết kỹ thuật nguồn cung cấp:

Chi tiết kỹ thuật nguồn cung cấp họ linh kiện FPGA Spartan -3E được

cho trong các bảng 3.4; 3.5 và 3.6

Trang 38

Bảng 3.4 – Điện áp ngưỡng cung cấp cho việc Reset mở nguồn:

Bảng 3.5 – Tỉ lệ độ dốc điện áp cung cấp

VCCINTR Độ dốc từ GND tới mức giá trị

VCCO2R Độ dốc từ GND tới mức giá trị

VCCO cung cấp của Bank 2

Bảng 3.6 – Các mức điện áp cung cấp cần thiết để duy trì các nội dung của RAM

VDRINT Mức điện ápVCCINT yêu cầu để duy trì dữ

liệu của RAM

VDRAUX Mức điện áp VCCAUX yêu cầu để duy trì dữ

liệu của của RAM

Chú ý là nội dung của RAM bao gồm các dữ liệu cấu hình

c Các điều kiện hoạt động chung được khuyến cáo sử dụng:

Các điều kiện hoạt động chung được khuyến cáo sử dụng được cho trongbảng 3.7

Bảng 3.7 – Các điều kiện hoạt động chung được khuyến cáo sử dụng

Trang 39

VCCAUX Điện áp cung cấp

d Đặc tính điện DC của các chân I/O:

Đặc tính điện DC của các chân I/O người dùng, các chân sử dụng chomục đích Dual, các chân chuyên dụng được cho trong bảng 3.8

Bảng 3.8 – Đặc tính điện DC của các chân I/O người dùng, các chân sử dụng cho mục đích Dual, các chân chuyên dụng

hiệu Mô tả Điều kiện kiểm tra Min Norm Max Đơn vị

IL

Dòng rò tại các

chân I/O, chân ngõ

vào, chân dùng cho

Dòng diện qua điện

trở treo tại các chân

I/O chân dùng cho

Điện trở treo tương

đương tại các chân

I/O, chân ngõ vào,

Trang 40

IREF Dòng VREF trên các

CIN Dung kháng ngõ

e Dòng điện tĩnh:

Các điều kiện về dòng điện tĩnh yêu cầu được cho trong bảng 3.9

Bảng 3.9 – Đặc tính dòng điện tĩnh cung cấp của họ Spartan – 3E

Ký hiệu Mô tả Linh kiện Norm Max

(thương mại)

Max (công nghiệp)

Đơn vị

f Chuẩn I/O Single – Ended:

Một số điều kiện hoạt động được khuyển cáo sử dụng cho các chân I/O

người dùng theo chuẩn Single – Ended được cho trong bảng 3.10 và bảng

3.11

Ngày đăng: 11/10/2021, 11:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w