Tải bản đầy đủ (.pdf) (107 trang)

Thiết kế mạch quang báo sử dụng kit EPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.38 MB, 107 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH ĐIỆN TỬ CÔNG NGHIỆP

THIẾT KẾ MẠCH QUANG BÁO SỬ DỤNG KIT FPGA

GVHD:NGUYỄN ĐÌNH PHÚ
SVTH:NGUYỄN THANH LIÊM
MSSV:14141477
SVTH:HỒ LONG ĐẠI
MSSV: 14141445

SKL 0 0 6 5 3 8

Tp. Hồ Chí Minh, tháng 7/2018


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

Tp. Hồ Chí Minh, ngày 19 tháng 7 năm 2018

NHIỆM VỤ ĐỒ ÁN MÔN HỌC
Họ và tên sinh viên: Nguyễn Thanh Liêm
Hồ Long Đại
Ngành: Điện tử cơng nghiệp
Giảng viên hướng dẫn: ThS. Nguyễn Đình Phú


Ngày nhận đề tài: 10/03/2018

MSSV: 14141477
MSSV: 14141445
Lớp: 14141CLDT1
ĐT: 0903982443
Ngày nộp đề tài: 19/07/2018

1. Tên đề tài: Thiết kế mạch quang báo sử dụng kit FPGA.
2. Các số liệu, tài liệu ban đầu: Giáo trình “Thiết kế vi mạch số với VHDL – Th.S
Nguyễn Đình Phú, Th.S Trương Thị Bích Ngà” – Đại Học Sư Phạm Kỹ Thuật
TP.HCM tháng 08/2017.
3. Nội dung thực hiện đề tài: Thiết kế mạch quang báo sử dụng kit FPGA làm bộ điều
khiển trung tâm bao gồm phần giao diện từ máy tính để gửi dữ liệu và mạch phần
cứng là các bảng led để hiển thị dữ liệu.
4. Sản phẩm: Hệ thống mạch quang báo sử dụng kit FPGA.

TRƯỞNG NGÀNH

GIẢNG VIÊN HƯỚNG DẪN

i


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Nguyễn Thanh Liêm

MSSV: 14141477
Hồ Long Đại
MSSV: 14141445
Ngành: Điện tử công nghiệp
Tên đề tài: Thiết kế mạch quang báo sử dụng kit FPGA.
Họ và tên Giáo viên hướng dẫn: ThS. Nguyễn Đình Phú
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
2. Ưu điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm:……………….(Bằng chữ:............................................................................ )
.......................................................................................................................................
Tp. Hồ Chí Minh, ngày tháng năm 2018
Giáo viên hướng dẫn


ii


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***----

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Thanh Liêm
MSSV: 14141477
Hồ Long Đại
MSSV: 14141445
Ngành: Điện tử công nghiệp
Tên đề tài: Thiết kế mạch quang báo sử dụng kit FPGA.
Họ và tên Giáo viên phản biện: ....................................................................................
.......................................................................................................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
2. Ưu điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................

4. Đề nghị cho bảo vệ hay không?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm:……………….(Bằng chữ:............................................................................ )
.......................................................................................................................................
Tp. Hồ Chí Minh, ngày tháng
năm 2018
Giáo viên phản biện
iii


MỤC LỤC
LỜI CÁM ƠN ................................................................................................................. 1
LỜI MỞ ĐẦU ................................................................................................................. 2
Chương 1. TỔNG QUAN .............................................................................................. 3
1.1.

Đặt vấn đề .......................................................................................................... 3

1.2.

Mục tiêu ............................................................................................................. 3

1.3.

Phương pháp nghiên cứu ................................................................................. 3

1.4.


Phạm vi nghiên cứu .......................................................................................... 4

1.5.

Bố cục đồ án ...................................................................................................... 4

Chương 2. CƠ SỞ LÝ THUYẾT .................................................................................. 6
2.1. Tổng quan về FPGA ........................................................................................... 6
2.1.1 Giới thiệu về FPGA ........................................................................................ 6
2.1.2 Kiến trúc chung của một FPGA .................................................................... 6
2.2. Tổng quan về ngôn ngữ VHDL ......................................................................... 7
2.2.1 Giới thiệu ngôn ngữ VHDL ........................................................................... 7
2.2.2 Một số ưu điểm của ngôn ngữ VHDL........................................................... 8
2.2.3 Cấu trúc một chương trình sử dụng ngơn ngữ VHDL ............................... 9
2.3. Sơ lược về các nguyên lý................................................................................... 13
2.3.1. Nguyên lý điều chế độ rộng xung PWM .................................................... 13
2.3.2. Lý thuyết về điểm ảnh ................................................................................. 14
2.3.3. Sơ lược về chuẩn UART ............................................................................. 15
2.3.4. Sơ lược về chuẩn I2C .................................................................................. 17
2.4. Khảo sát module Led P10 ................................................................................. 20
2.4.1. Led RGB (Led 3 màu) ................................................................................. 21
2.4.2.

IC 74HC595 .............................................................................................. 22

2.4.3.

IC 74LS138 ............................................................................................... 25

2.4.4.


IC 74HC245 .............................................................................................. 27

iv


2.4.5.

IC APM4953 ............................................................................................. 29

2.4.6.

Nguyên lý hoạt động ................................................................................ 30

2.5.

Khảo sát IC thời gian thực DS1307 .............................................................. 31

2.6. FPGA EP4CE6E22C8N .................................................................................... 36
Chương 3. TÍNH TỐN VÀ THIẾT KẾ ................................................................... 38
3.1. Giới thiệu và tóm tắt ......................................................................................... 38
3.1.1. Yêu cầu của hệ thống .................................................................................. 38
3.1.2. Phương án thiết kế ...................................................................................... 38
3.2. Thiết kế sơ đồ khối ............................................................................................ 39
3.3. Khối cảm biến .................................................................................................... 40
3.4. Khối xử lý trung tâm dùng FPGA.................................................................... 40
3.4. Thiết kế bảng quang báo ................................................................................... 41
3.5. Thiết kế khối nguồn ........................................................................................... 42
3.6. Sơ đồ kết nối FPGA với các ngoại vi ................................................................ 43
Chương 4. THI CÔNG HỆ THỐNG .......................................................................... 45

4.1. Phần cứng .......................................................................................................... 45
4.1.1. Lắp ráp và kiểm tra thiết bị ...................................................................... 45
4.1.2. Cố định bộ điều khiển ................................................................................ 47
4.1.3. Cố định bộ nguồn ....................................................................................... 48
4.2. Phần mềm .......................................................................................................... 48
4.2.1. Phần mềm lập trình cho kit FPGA ........................................................... 48
4.2.2. Thiết kế khối FPGA .................................................................................... 57
4.2.3. Chương trình C# ........................................................................................ 83
Chương 5. KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ ....................................................... 87
5.1. Kết quả ................................................................................................................ 87
5.1.1. Hình ảnh sản phẩm ................................................................................... 87
5.1.2. Hình ảnh giao diện trên máy tính ............................................................ 88

v


5.1.3. Kết quả đạt được ....................................................................................... 88
5.2. Đánh giá .............................................................................................................. 92
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................... 93
6.1. Kết luận .............................................................................................................. 93
6.2. Hướng phát triển .............................................................................................. 94
TÀI LIỆU THAM KHẢO ........................................................................................... 95

vi


DANH SÁCH HÌNH
Hình 2. 1 Cấu trúc tổng thể của một FPGA ..................................................................... 6
Hình 2. 2 Mạch cộng bán phần ...................................................................................... 10
Hình 2. 3 Đồ thị dạng xung điều chế PWM ................................................................... 13

Hình 2. 4 Hệ màu RGB .................................................................................................. 15
Hình 2. 5 Cấu trúc một byte truyền ................................................................................ 16
Hình 2. 6 Hệ thống các thiết bị giao tiếp theo chuẩn I2C .............................................. 17
Hình 2. 7 Dạng sóng ghi dữ liệu vào thiết bị tớ ............................................................. 18
Hình 2. 8 Dạng sóng đọc dữ liệu từ thiết bị tớ ............................................................... 19
Hình 2. 9 Dạng sóng chi tiết của SDA và SCL .............................................................. 20
Hình 2. 10 Module Led P10 ........................................................................................... 21
Hình 2. 11 Sơ đồ chân Led RGB ................................................................................... 22
Hình 2. 12 Sơ đồ chân IC 74HC595 .............................................................................. 22
Hình 2. 13 Sơ đồ khối thanh ghi 74HC595 .................................................................... 24
Hình 2. 14 Sơ đồ chân IC 74138 .................................................................................... 25
Hình 2. 15 Mạch logic bên trong IC 74LS138 ............................................................... 25
Hình 2. 16 Sơ đồ chân IC 74HC245 .............................................................................. 27
Hình 2. 17 Sơ đồ chi tiết bên trong IC 74HC245........................................................... 28
Hình 2. 18 IC APM4953 ................................................................................................ 29
Hình 2. 19 Cấu tạo IC APM4953 ................................................................................... 29
Hình 2. 20 Sơ đồ chân ngõ vào của module led ma trận P10 ........................................ 30
Hình 2. 21 Chiều đi của dữ liệu vào 74HC595 .............................................................. 31
Hình 2. 22 Sơ đồ chân DS1307 ...................................................................................... 32
Hình 2. 23 Sơ đồ giao tiếp theo chuẩn I2C của DS1307 ............................................... 33
Hình 2. 24 Tổ chức bộ nhớ của DS1307 ........................................................................ 33
Hình 2. 25 Tổ chức các thanh ghi thời gian ................................................................... 34
Hình 2. 26 Cấu trúc bên trong DS1307 .......................................................................... 35
Hình 2. 27 Các ngoại vi được tích hợp trên board ......................................................... 36
Hình 3. 1 Sơ đồ khối hệ thống ....................................................................................... 39
Hình 3. 2 FPGA EP4CE6E22C8N ................................................................................. 41
Hình 3. 3 Tám bảng led được ghép lại với nhau ............................................................ 42
Hình 3. 4 Nguồn tổ ong 5V - 40A.................................................................................. 42
Hình 3. 5 Sơ đồ kết nối FPGA với các ngoại vi............................................................. 43


vii


Hình 4. 1 Hub ngõ vào, ra và chân cấp nguồn Led P10................................................. 45
Hình 4. 2 Kết nối giữa 2 bảng led hàng ngang .............................................................. 46
Hình 4. 3 Kết quả sau khi thi cơng ................................................................................. 47
Hình 4. 4 Cố định bộ điều khiển trên thanh sắt.............................................................. 47
Hình 4. 5 Cố định bộ nguồn ........................................................................................... 48
Hình 4. 6 Giao diện ban đầu khi mở phần mềm ............................................................ 49
Hình 4. 7 Cửa sổ chọn đường dẫn và tên dự án ............................................................. 50
Hình 4. 8 Cửa sổ chọn loại chip FPGA cho dự án ......................................................... 51
Hình 4. 9 Giao diện lựa chọn ngơn ngữ thiết kế ............................................................ 52
Hình 4. 10 Giao diện để người dùng nhập code ............................................................ 53
Hình 4. 11 Giao diện biên dịch chương trình ................................................................. 54
Hình 4. 12 Biên dịch thành cơng .................................................................................... 54
Hình 4. 13 Biên dịch bị lỗi ............................................................................................. 55
Hình 4. 14 Giao diện gán chân ....................................................................................... 55
Hình 4. 15 Giao diện nạp chương trình xuống FPGA ................................................... 56
Hình 4. 16 Sơ đồ khối bên trong FPGA ......................................................................... 57
Hình 4. 17 Sơ đồ chân khối UART ................................................................................ 58
Hình 4. 18 Mơ hình máy trạng thái khối UART_RX .................................................... 60
Hình 4. 19 Sơ đồ chân của khối DATA PROCESSING................................................ 62
Hình 4. 20 Sơ đồ chân .................................................................................................... 65
Hình 4. 21 Mơ hình trạng thái đọc ghi vào DS1307 ...................................................... 66
Hình 4. 22 Sơ đồ chân của khối CHARACTERS CONTROL ...................................... 72
Hình 4. 23 Sơ đồ bên trong khối CHARACTER CONTROL ....................................... 73
Hình 4. 24 Sơ đồ chân của khối Rom_char ................................................................... 73
Hình 4. 25 Mạch đa hợp để mơ tả khối Rom_char ........................................................ 76
Hình 4. 26 Sơ đồ chân khối Char_Control ..................................................................... 77
Hình 4. 27 Vị trí hiển thị các ký tự ................................................................................ 78

Hình 4. 28 Sơ đồ chân của DISPLAY CONTROL ....................................................... 79
Hình 4. 29 Sơ đồ chân của SIGNAL CONTROL .......................................................... 81
Hình 4. 31 Giao diện C# trên máy tính .......................................................................... 83
Hình 4. 32 Lưu đồ của nút nhấn connect ....................................................................... 84
Hình 4. 33 Lưu đồ của timer .......................................................................................... 84
Hình 4. 34 Lưu đồ của nút nhấn send ............................................................................ 85
Hình 4. 35 Lưu đồ của nút nhấn send ............................................................................ 85
Hình 5. 1 Sản phẩm sau khi thi cơng ............................................................................. 87
Hình 5. 2 Giao diện trên máy tính .................................................................................. 88
viii


Hình 5. 3 Hiển thị chữ với màu đỏ ................................................................................. 89
Hình 5. 4 Hiển thị chữ màu xanh dương ........................................................................ 90
Hình 5. 5 Hiển thị đồng hồ kim...................................................................................... 91

ix


DANH SÁCH BẢNG
Bảng 4. 1 Bảng I/O của khối DATA PROCESSING .................................................... 62
Bảng 4. 2 Sơ đồ I/O khối I2C CONTROL..................................................................... 65
Bảng 4. 3 Các chân I/O của khối CHARACTERS CONTROL .................................... 72
Bảng 4. 4 Các chân I/O của khối Rom_char .................................................................. 74
Bảng 4. 5 Tín hiệu vào, ra của ký tự số 0....................................................................... 74
Bảng 4. 6 Mối liên hệ giữa ký tự vào và output của Rom_char .................................... 75
Bảng 4. 7 Các chân I/O của khối Char_control ............................................................. 77
Bảng 4. 8 Các chân I/O của khối DISPLAY CONTROL .............................................. 79
Bảng 4. 9 Các chân I/O của khối SIGNAL CONTROL ................................................ 81


x


LỜI CÁM ƠN
Trong thời gian thực hiện đề tài này, chúng tơi đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cơ và bạn bè.
Chúng tôi cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại Học Sư
Phạm Kỹ Tḥt TP.HCM nói chung, các thầy cơ trong Khoa Đào Tạo Chất Lượng Cao
và Bộ môn Điện tử Công Nghiệp nói riêng đã truyền đạt cho chúng tơi kiến thức về các
môn đại cương cũng như các môn học chuyên ngành, giúp chúng tơi có được cơ sở lý
thuyết vững vàng và tạo điều kiện giúp đỡ chúng tôi trong suốt q trình học tập.
Chúng tơi xin cám ơn các bạn trong lớp đã động viên, hỗ trợ, giúp đỡ trong q
trình thực hiện đồ án.
Cuối cùng, chúng tơi xin gửi lời cảm ơn chân thành đến thầy Ths.Nguyễn Đình
Phú giảng viên Bộ môn Điện Tử Công Nghiệp - trường Đại Học Sư Phạm Kỹ Thuật
TP.HCM người đã tận tình hướng dẫn, chỉ bảo chúng tơi trong suốt q trình làm đề
tài.

Chúng tơi xin chân thành cảm ơn!
Hồ Chí Minh, ngày 11 tháng 07 năm 2018

1


LỜI MỞ ĐẦU
Với sự phát triển nhanh chóng của khoa học kỹ thuật như hiện nay, điện tử đang
trở thành một ngành công nghiệp quan trọng và được ứng dụng rộng rãi trong thực tế.
Điện tử đã đang đáp ứng những địi hỏi khơng ngừng từ các lĩnh vực cơng, nông, lâm,
ngư nghiệp cho đến các nhu cầu thiết bị trong đời sống hàng ngày và nhiều hơn thế nữa.
Các thiết bị điện tử đã, đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang

lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội
đi đôi với sự phát triển của khoa học và công nghệ.
Và một trong các thiết bị đang được nghiên cứu và phát triển đó là led ma trận.
Chúng ta có thể dễ dàng bắt gặp những bảng quảng cáo hay cổng chào sử dụng led ma
trận để hiển thị. Điều nó nói lên rằng led ma trận ngày càng phổ biển và đang được ứng
dụng nhiều trong đời sống.
Đã có rất nhiều phương án được đưa ra để điều khiển các bảng quang báo bằng
led ma trận này này như IC số hay vi xử lý nhưng các phương án nay đều có nhược điểm
là tốc độ xử lý chậm. Vì vậy để tăng tốc độ xử lý nên nhóm chúng tơi quyết định chọn
hướng điều khiển bảng led quang báo bằng Kit FPGA với đề tài “Thiết kế mạch quang
báo sử dụng Kit FPGA”.

2


Chương 1. TỔNG QUAN
1.1.

Đặt vấn đề

Trong thời đại ngày nay, công nghệ điện tử ngày càng phát triển và được ứng
dụng rất nhiều trong các lĩnh vực khác nhau. Và một trong những lĩnh vực đó là dịch vụ
quảng cáo, khuếch trương sản phẩm. Để làm cho sản phẩm hoặc hình ảnh cơng ty thu
hút sự chú ý, quan tâm của khách hàng thì các dịch vụ quảng cáo phải thật ấn tượng, bắt
mắt. Có rất nhiều phương án được đưa ra để giải quyết vấn đề này như bảng quảng cáo
huỳnh quang, dạ quang, bảng quảng cáo mica, … nhưng phương án phổ biến và tiết kiệm
nhất hiện nay đó là led matrix.
Để điều khiển mạch quang báo sử dụng led matrix này đã có rất nhiều phương án
được đề xuất và áp dụng như: mạch quang báo được khiển bằng IC số hay mạch quang
báo dùng vi xử lí để điều khiển. Với mạch quang báo dùng IC số có rất nhiều hạn chế là

sản phẩm tạo ra không được đẹp mắt, khi muốn nâng cấp mạch sẽ phức tạp. Cịn với
mạch quang báo dùng vi xử lí thì cũng rất phổ biến nhưng có hạn chế là tốc độ xử lý tín
hiệu từ máy tính truyền về chip vi xử lý phụ thuộc lớn vào tần số làm việc của chip.
Chính vì những do trên để nhằm gia tăng tốc độ xử lý, nhóm chúng tơi quyết định sử
dụng chip FPGA, đây là một chip sản xuất bằng silicon bên trong nó chứa rất nhiều khối
logic mà có thể kết nối được thơng qua lập trình bằng ngơn ngữ phần cứng vì vậy tốc độ
đáp ứng sẽ được cải thiện đáng kể.

1.2.

Mục tiêu

Sử dụng phương pháp quét led ma trận với tần số cao để hiển thị bảng quang báo
bằng cách sử dụng kit FPGA làm bộ điều khiển trung tâm.
Ngồi ra cịn giao tiếp truyền nhận với máy tính để nhận dữ liệu hiển thị theo
chuẩn truyền UART.
Thiết kế giao diện chương trình truyền dữ liệu từ máy tính được viết bằng ngơn
ngữ C# để giao tiếp với người sử dụng.

1.3.

Phương pháp nghiên cứu
Trong đề tài này, nhóm đã sử dụng các phương pháp nghiên cứu sau:

3











1.4.





1.5.

Phương pháp tham khảo tài liệu: bằng cách thu thập thơng tin từ sách, tạp
chí về điện tử, viễn thơng, truy cập từ mạng internet, các đồ án của khóa
trước.
Phương pháp quan sát: khảo sát một số mạch điện từ mạng internet, khảo
sát các hệ thống quang báo hiện hành để chọn lựa phương án thiết kế sau
này.
Phương pháp thực nghiệm: từ những ý tưởng và kiến thức của nhóm, kết
hợp sự hướng dẫn của giáo viên, nhóm đã lắp ráp thử nghiệm nhiều dạng
mạch khác nhau để từ đó chọn lọc những mạch điện tối ưu.
Bên cạnh đó việc tham khảo ý kiến của bạn bè, thầy/cô là đặc biệt quan trọng
không thể thiếu.

Phạm vi nghiên cứu
Sử dụng 1 Kit FPGA Cyclone IV EP4CE6E22C8.
Sử dụng 8 tấm panel led RGB matrix P10, kích thước của 1 tấm là: 32x16.
Sử dụng 1 bộ nguồn 5V-40A.
Hệ thống sử dụng ngoài trời.


Bố cục đồ án
Gồm có 6 chương:
Chương 1: Tổng quan
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, đối
tượng và phạm vi nghiên cứu, bố cục đồ án.
Chương 2: Cơ sở lý thuyết
Chương này giới thiệu các linh kiện, thiết bị sử dụng thiết kế.
Chương 3: Thiết kế và tính tốn
Thiết kế mơ hình điều khiển tồn mạch, ứng dụng kit FPGA và ngơn ngữ
VHDL để tạo ra các module điều khiển bảng led quang báo.
Chương 4: Thi công hệ thống

4


Thi công phần cứng, lắp ráp và kiểm tra mạch. Viết tài liệu hướng dẫn sử
dụng phần mềm Quatus II để tạo ra module mà phần mềm hỗ trợ.
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Trình bày hình ảnh đồ án đã hoàn thiện và kết quả đạt được.
Chương 6: Kết Luận Và Hướng Phát Triển
Trình bày những gì đã hoàn thiện và chưa hoàn thiện so với mục tiêu và
nêu hướng phát triển đồ án.

5


Chương 2. CƠ SỞ LÝ THUYẾT
2.1. Tổng quan về FPGA
2.1.1 Giới thiệu về FPGA

FPGA là viết tắt của "Field Programmable Gate Array", là vi mạch dùng cấu trúc
mảng phần tử logic mà người dùng có thể lập trình được.
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng
nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện
logic thì FPGA khơng đạt được mức độ tối ưu như những loại này, và hạn chế trong khả
năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể
tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút
ngắn thời gian đưa sản phẩm vào sử dụng.

2.1.2 Kiến trúc chung của một FPGA
Cấu trúc tổng thể của FPGA bao gồm:
- Khối logic có thể tái cấu hình.
- Khối kết nối có thể lập trình.
- Khối I/O khả trình.

Hình 2. 1 Cấu trúc tổng thể của một FPGA
6


a. Khối logic có thể tái cấu hình
Mục đích của việc lập trình khối logic trong FPGA là để cung cấp các tính tốn
và các phần tử nhớ cơ bản được sử dụng trong hệ thống số. Một phần tử logic cơ bản
gồm một mạch tổ hợp có thể lập trình, một Flip-Flop hoặc một chốt (latch). Ngồi khối
logic cơ bản đó, nhiều Chip FPGA hiện nay gồm một hỗn hợp các khối khác nhau, một
số trong đó chỉ được dùng cho các chức năng cụ thể, chẳng hạn như các khối bộ nhớ
chuyên dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers). Tất nhiên,
cấu hình bộ nhớ được sử dụng trên tất cả các khối logic để điều khiển các chức năng cụ
thể của mỗi phần tử bên trong khối đó.

b. Khối kết nối có thể lập trình

Các liên kết trong một FPGA dùng để liên kết các khối logic và I/O lại với nhau
để tạo thành một thiết kế. Bao gồm các bộ ghép kênh, các transistor và cổng đệm ba
trạng thái. Nhìn chung, các transistor và bộ ghép kênh được dùng trong một cụm logic
để kết nối các phần tử logic lại với nhau, trong khi đó cả ba đều được dùng cho các cấu
trúc định tuyến bên trong FPGA. Một số FPGA cung cấp nhiều kết nối đơn giản giữa
các khối logic, một số khác cung cấp ít kết nối hơn nên định tuyến phức tạp hơn.

c. Khối I/O khả trình
I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành
phần bên ngoài. Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là
việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu sẽ được hỗ trợ.
Theo thời gian, các kiến trúc FPGA cơ bản đã được phát triển hơn nữa thông qua việc
bổ sung các khối chức năng đặc biệt có thể lập trình, như bộ nhớ trong (Block RAMs),
logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thêm vào
do nhu cầu của các nguồn tài nguyên cho một ứng dụng. Kết quả là nhiều FPGA ngày
nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó.

2.2. Tổng quan về ngôn ngữ VHDL
2.2.1 Giới thiệu ngôn ngữ VHDL
VHDL viết tắt của VHSIC Hardware Description Language. VHSIC là viết tắt của
Very High Speed Integrated Circuit. VHDL là ngôn ngữ mô tả phần cứng được phát
7


triển dùng cho chương trình VHSIC (Very High Speed Integrated Circuit) của bộ quốc
phịng Mỹ.
VHDL là một ngơn ngữ mơ tả phần cứng (HDL) được sử dụng để mô tả một hệ
thống thiết kế logic. Được dùng trong thiết kế CPLD hoặc FPGA, phần mềm sẽ nạp
chương trình vào CPLD hoặc FPGA để có được một hệ thống logic mà chúng ta đã thiết
kế.

Trước khi VHDL ra đời, có nhiều ngôn ngữ mô tả phần cứng được sử dụng nhưng
không có một tiêu chuẩn thống nhất. Vì các ngơn ngữ mơ phỏng phần cứng đó được các
nhà cung cấp thiết bị phát triển, nên mang các đặc trưng gắn với các thiết bị của nhà cung
cấp đó và thuộc sở hữu của nhà cung cấp.
Trong khi đó, VHDL được phát triển như một ngôn ngữ độc lập không gắn với bất
kỳ một phương pháp thiết kế, bộ mô phỏng hay cơng nghệ phần cứng nào. Người thiết
kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi vẫn sử dụng một
ngôn ngữ duy nhất.

2.2.2 Một số ưu điểm của ngơn ngữ VHDL
Tính cơng cộng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện
nay là một tiêu chuẩn của IEEE, VHDL không thuộc sở hữu của bất kỳ cá nhân hay tổ
chức nào. Do đó VHDL được hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà
cung cấp công cụ thiết kế mô phỏng hệ thống. Ðây là một ưu điểm nổi bật của VHDL,
giúp VHDL trở nên ngày càng phổ biến.
Khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế: VHDL cho phép
thiết kế bằng nhiều phương pháp như phương pháp thiết kế từ trên xuống, hay từ dưới
lên dựa vào các thư viện có sẵn. Như vậy VHDL có thể phục vụ tốt cho nhiều mục đích
thiết kế khác nhau, từ việc thiết kế các phần tử phổ biến đến việc thiết kế các IC ứng
dụng đặc biệt (Application Specified IC).
Ðộc lập với công nghệ: VHDL hồn tồn độc lập với cơng nghệ chế tạo phần
cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức độ cổng có thể được chuyển thành
các bản tổng hợp mạch khác nhau tùy thuộc vào công nghệ chế tạo phần cứng nào được
sử dụng. Ðây cũng là một ưu điểm quan trọng của VHDL nó cho phép người thiết kế
không cần quan tâm đến công nghệ phần cứng khi thiết kế hệ thống, như thế khi có một
cơng nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống
đã thiết kế.

8



Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế: VHDL
được phát triển như một ngơn ngữ lập trình bậc cao, vì vậy nó có thể sử dụng để thiết kế
một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngơn ngữ VHDL
có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. VHDL cũng cho
phép dùng lại các phần đã có sẵn.

2.2.3 Cấu trúc một chương trình sử dụng ngơn ngữ VHDL
Cấu trúc gồm 3 thành phần chính như sau:
-

-

Khai báo LIBRARY (thư viện): tương tự như C, chúng ta cần khai báo thư viện
cho chương trình VHDL. Một số thư viện sau thường dùng cho thiết kế: IEEE,
STD, work, ... Thư viện phải được khai báo vào đầu mỗi chương trình.
Khai báo ENTITY (thực thể): Khai báo các chân I/O của mạch thiết kế, các
tham số tĩnh dùng chung (generic) của một chương trình VHDL.
Khai báo ARCHITECTURE (kiến trúc): là phần mơ tả chính của một chương
trình VHDL. Mơ tả các chức năng chính của thiết kế hay cịn gọi là hàm.

a. Khai báo LIBRARY (thư viện)
Khai báo thư viện bắt đầu bằng từ khóa Library Tên thư viện (chú ý là VHDL
khơng phân biệt chữ hoa chữ thường). Sau đó trên từng dịng kế tiếp sẽ khai báo các
gói thư viện con mà thiết kế sẽ sử dụng, mỗi dòng phải kết thúc bằng dấu chấm phẩy.
Ví dụ như trong thư viện IEEE gồm các gói sau:
 Gói std_logic_1164: định nghĩa các kiểu dữ liệu chuẩn.
 Gói std_logic_arith: cung cấp các chức năng số học.
 Gói std_logic_unsigned: Thực hiện các phép toán với kiểu dữ liệu
std_logic_vector, dữ liệu coi là không dấu.


b. Khai báo ENTITY (thực thể)
Khai báo thực thể trong VHDL là phần định nghĩa các chỉ tiêu phía ngoài của
một phần tử hay một hệ thống. Khai báo Entity là chỉ ra tên và liệt kê các cổng vào/ra.
Các cổng là các (dây) tín hiệu mà qua đó entity giao tiếp với mơi trường bên ngồi.
Ví dụ, một mạch cộng bán phần được chỉ ra ở hình 2.18:

9


Hình 2. 2 Mạch cộng bán phần
Khai báo Entity như sau:
entity HALF-ADDER is
port (A, B: in bit;
SUM, CARRY: out bit);
end HATF-ADDER;
Mạch cộng bán phần này gồm có hai đầu vào là A và B; và hai đầu ra là SUM và
CARRY, BIT là một kiểu cấu trúc ngôn ngữ được định nghĩa trước của FPGA.

c. Khai báo ARCHITECTURE (kiến trúc)
Phần thứ 3 trong chương trình VHDL là khai báo Architecture. Mỗi một khai
báo Entity đều phải đi kèm với ít nhất một Architecture tương ứng. Khai báo
Architecture trong chương trình phải kết hợp tên của Architecture và một Entity trong
chương trình đó. Phần thân Architecture có thể bao gồm các khai báo về các tín hiệu
bên trong, các phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả hoạt động
của hệ thống. Tên của Architecture là nhãn được đặt tuỳ theo người viết chương trình.
Cấu trúc bên trong của Architecture có thể được viết theo một trong số các kiểu mẫu
sau:
- Tập hợp kết nối bên trong của các thiết bị.
- Tập các câu lệnh đồng thời.

- Tập các câu lệnh tuần tự.
- Kết hợp của ba dạng trên.
Các kiểu mơ hình này sẽ được mơ tả cụ thể như sau:

10


 Kiểu kiến trúc
Kiểu này được xây dựng dựa trên một tập các thành phần được kết nối. Ví dụ
như mạch cộng bán phần được chỉ ra sau đây:
architecture HA-STRUCTURE of HALF-ADDER is
component XOR2
port (X, Y: in BIT;
N: out BIT);
End
component;
Component
AND2

Port (L, M: in BIT;
N: out BIT);
End
component
; Begin
X1: XOR2 port map (A, B, SUM);
A1: AND2 port map (A, B, CARRY);
End HA-STRUCTURE;
 Kiểu luồng dữ liệu
Trong kiểu này, luồng dữ liệu qua Entity trước tiên được biểu diễn bằng các
phép gán đồng thời. Kiểu luồng dữ liệu của mạch cộng bán phần được chỉ ra trong ví

dụ sau:
Architecture DATAFLOW of HALF-ADDER is
Begin
SUM <= A xor B after 8ns;
CARRY <= A and B after 4ns;
11


End DATAFLOW;
Trong ví dụ này kiểu luồng dữ liệu sử dụng hai phép gán tín hiệu đồng thời
(hoặc gán nối tiếp). Trong phép gán cho tín hiệu thì ký hiệu gán là “<=”. Giá trị của
biểu thức bên phải được gán cho tín hiệu bên phía tay trái. Một phép gán đồng thời
được thực hiện chỉ khi có bất kỳ tín hiệu trong biểu thức phía phải có sự thay đổi, tức
là giá trị tín hiệu thay đổi. Thơng tin trễ cũng có thể được thêm vào phép gán bằng
cách sử dụng mệnh đề “after”.
 Kiểu behavior
Kiểu behavior chỉ ra cách thức hoạt động của một entity như là một tập hợp lệnh
được thực hiện theo kiểu nối tiếp bằng cách sử dụng process. Chúng không chỉ ra rõ
ràng cấu trúc của entity mà chỉ ra chức năng của nó. Ví dụ sau xem xét kiểu behavior
của bộ bán tổng.
Architecture BEHAVIOR of HALF-ADDER is
Begin
Process (A, B)
Variable X, Y: BIT;
Begin
X := A;
Y := B;
SUM<=X xor Y;
CARRY <= X and Y;
End process;

End BEHAVIOR;
Một process cũng có một phần để khai báo (trước từ khóa “begin”) và một phần
để trình bày (giữa từ khóa “begin” và “process”). Các lệnh bên trong phần trình bày
này được thực hiện theo kiểu nối tiếp. Danh sách các tín hiệu được chỉ ra trong dấu
ngoặc sau từ khóa “process” tạo thành một danh sách “nhạy”. Tức là, khi có sự thay

12


đổi của bất kỳ giá trị nào trong danh sách này thì mới thực hiện các lệnh trong process.
Tuy nhiên, tất cả các process trong một chương trình thì đều thực hiện đồng thời.
Khai báo biến (bắt đầu bằng từ khóa “variable”), trong ví dụ này có hai biến X
và Y. Các biến được gán với ký hiệu là “:=” và giá trị của vế phải gán cho giá trị biến
bên trái.

2.3. Sơ lược về các nguyên lý
2.3.1. Nguyên lý điều chế độ rộng xung PWM
Nguyên lý điều chế độ rộng xung là mạch tạo ra xung vuông với chu kỳ là hằng số
nhưng hệ số cơng tác (cịn gọi là hệ số chu kỳ - duty cycle) có thể thay đổi được. Sự thay
đổi của hệ số chu kỳ làm thay đổi điện áp trung bình hay dịng điện trung bình.
Sự thay đổi điện áp hoặc dịng điện trung bình dùng để điều khiển các tải như động
cơ DC thì điều khiển tốc độ động cơ, điều khiển bóng đèn thì làm thay đổi cường độ
sáng của bóng đèn, …

Hình 2. 3 Đồ thị dạng xung điều chế PWM

Điện áp trung bình ngõ ra của xung PWM được tính theo công thức:
1

𝑡1


1

𝑇

1

𝑡1

1

𝑈𝑡𝑏 = ∫0 𝑈𝑑𝑡 + ∫𝑡1 0𝑑𝑡 = ∫0 𝑈𝑑𝑡 = 𝑈𝑡1
𝑇
𝑇
𝑇
𝑇

[2.1]

Trong đó: t1 là thời gian 𝑇𝑂𝑁 của một chu kỳ xung PWM.
U là giá trị điện áp của mức logic cao.
T là thời gian trong một chu kỳ của xung PWM.

13


Mà ta có:
𝐼𝑡𝑏 =

𝑈𝑡𝑏

𝑅

=> 𝐼𝑡𝑏 =

[2.2]
1 𝑈𝑡1
𝑇 𝑅

(1)

Vì U - điện áp là một hằng số, R- điện trở là một hằng số, theo công thức (1), 𝐼𝑡𝑏
sẽ tỉ lệ thuận theo t1. Khi t1 càng lớn thì 𝐼𝑡𝑏 càng lớn và ngược lại.
Do vậy để thay đổi cường độ dòng điện đơn giản ta chỉ cần thay đổi thời gian 𝑇𝑂𝑁
của chu kỳ xung PWM. 𝑇𝑂𝑁 càng lớn thì cường độ dòng điện đi qua một led càng cao
làm cho độ sáng của một led càng mạnh và ngược lại độ sáng của led sẽ yếu khi giảm
𝑇𝑂𝑁 trong một chu kỳ xung PWM.
Biết phương pháp tăng giảm cường độ dòng điện dựa trên phương pháp điều khiển
tăng giảm độ rộng xung PWM, ta có thể điều chỉnh được cường độ dịng điện qua ba
chân màu, từ đó có thể trộn màu theo ý muốn.

2.3.2. Lý thuyết về điểm ảnh
a. Hệ màu RGB
Mơ hình màu RGB sử dụng mơ hình bổ sung trong đó ánh sáng đỏ, xanh lục và xanh
lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành các màu khác.
Từ viết tắt RGB trong tiếng Anh có nghĩa là đỏ (red), xanh lục (green) và xanh lam
(blue), là ba màu gốc trong các mơ hình ánh sáng bổ sung. Thơng thường mỗi giá trị
RGB này sẽ được trữ mỗi giá trị dưới dạng số nguyên 1byte (8bit). Vì vậy để lưu được
bộ RGB thì cần 3 byte để lưu trữ.
Mức độ trộn màu sắc giữa 3 màu cơ bản Red, Green và blue sau được thể hiện trong
hình ảnh sau:


14


×