Tải bản đầy đủ (.doc) (34 trang)

Thiết kế được bộ điều khiển matrix led 2d quảng cáo dùng FPGA

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 (1.23 MB, 34 trang )

Đồ án thiết kế hệ thống số
Đề tài : Thiết kế được bộ điều khiển matrix led 2D quảng
cáo đa năng dùng FPGA

1


Lời mở đầu
Ngày nay khi nhu cầu về thông tin quảng cáo rất lớn , việc áp dụng các
phương tiện kĩ thuật mới vào các lĩnh vực trên là rất cần thiết .
Khi bạn đến các nơi công cộng, bạn dễ dàng bắt gặp những áp phích
quảng cáo điện tử chạy theo các hướng khác nhau với nhiều hình ảnh và
màu sắc rất ấn tượng.
Từ yêu cầu của môn học đồ án thiết kế hệ thống số và thực tiễn như
trên, chúng em quyết định chọn đề tài cho bài tập lớn môn học là:

Thiết kế được bộ điều khiển matrix led 2D quảng cáo đa năng
dùng FPGA
Khi đề tài được mở rộng thì sẽ có khả năng ứng dụng thực tiễn rất lớn .
Trong thời đại bùng nổ thông tin hiện nay, khả năng ứng dụng và tiềm
lực phát triển của hệ thống này là rất lớn, đặc biệt ở Việt Nam, các hệ
thống như vậy còn rất ít, hầu hết đều được nhập từ nước ngoài với giá
thành khá cao.
Và trong quá trình thực hiện đề tài, nhóm em xin chân thành cảm ơn
thầy NGUYỄN NGỌC MINH đã giúp đỡ để giúp chúng em hoàn thành
đồ án này.
Hà Nội , 10/4/2013.

MỤC LỤC
MỤC LỤC...........................................................................................................................................................2
I.Đặt vấn đề và nhiệm vụ của đồ án.................................................................................................................4


2


1.1 Đặt vấn đề...............................................................................................................................................4
1.2 Nhiệm vụ của đồ án................................................................................................................................5
Chương I : TÌM HIỂU VỀ LED MATRIX..............................................................................................................5
1.1 Led matrix...............................................................................................................................................5
1.2 Phân loại Led matrix...............................................................................................................................6
1.3 Nguyên tắc làm sáng đèn trên bảng LED...............................................................................................8
1.4 Nguyên tắc quét bảng ma trận LED.......................................................................................................8
1.5 Phương pháp tạo mã chữ....................................................................................................................10
Chương II : TỔNG QUAN VỀ FPGA.................................................................................................................11
2.1 Giới thiệu FPGA....................................................................................................................................11

2.1.1Ý nghĩa và vai trò của FPGA....................................................................11
2.2.2 Tại sao phải dùng FPGA..........................................................................12
2.2 Kiến trúc FPGA......................................................................................................................................12
Chương III : NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL....................................................................................13
3.1 Giới thiệu về VHDL................................................................................................................................13
3.2 Cấu trúc của chương trình mô tả bằng VHDL......................................................................................13

3.2.1 Khai báo thư viện.....................................................................................14
3.2.2.Mô tả thực thể..........................................................................................15
3.2.3. Kiến trúc của mô hình.............................................................................15
Chương IV : Thiết kế hệ thống.......................................................................................................................17
4.1.Giới thiệu về Xilinx ISE Design Suite 13.2.............................................................................................17
4.2. Sơ đồ hệ thống....................................................................................................................................19

4.2.2. IC đệm dòng ULN 2803..........................................................................25
4.2.3 Tranzito 2n3904.......................................................................................26

3


4.4 Lưu đồ thuật toán.................................................................................................................................28
Kết luận...........................................................................................................................................................28
Hình ảnh thực tế của mạch............................................................................................................................29
Phụ lục.............................................................................................................................................................30
1.Tài liệu tham khảo....................................................................................................................................30
2. Các thiết bị đã sử dụng...........................................................................................................................30
3.Code cho Module điều khiển (chạy chữ DTMT từ phải qua trái)...........................................................30

I.Đặt vấn đề và nhiệm vụ của đồ án
1.1 Đặt vấn đề
Sự phát triển của nền kinh tế thị trường ngày nay của đất nước ta tới những năm
gần đây có nhiều sự thay đổi , các mặt hàng phục vụ đời sống con người ngày càng
đa dạng và phong phú trong đời sống sinh hoạt ,các hoạt động kinh tế kết hợp sự
phát triển của công nghệ hiện đại đã làm cho cuộc sống đầy đủ tiện nghiw
hơn.Việc đưa thông tin quảng cáo đến với người tiêu dùng thông qua nhiều hình
thức khác nhau
Trong nhiều hình thức đa dạng của thông tin quảng cáo như : báo ,đài .tivi, tờ
rơi ,áp phích ..thì việc dùng bảng thông tin điện tử là một cách đơn giản và hiệu
quả để quảng cáo.Chúng ta bắt gặp rất nhiều bảng thông tin như vậy trong thực tế
Một số hình ảnh biển điện tử trong thực tế :
4


-Biển quảng cáo

-Trang


trí hiệu ứng



1.2 Nhiệm vụ của đồ án
Thiết kế được bộ điều khiển matrix led 2D quảng cáo đa năng dùng FPGA . Điều
khiển 4 led matrix chạy chữ DTMT từ phải qua trái sử dụng ngôn ngữ VHDL

Chương I : TÌM HIỂU VỀ LED MATRIX
1.1 Led matrix
Ma trận Led tức là Dot Matrix Led là tập hợp nhiều đèn Led được bố trí thành
dạng ma trận hình chữ nhật hoặc hình vuông với số hàng là a và số cột là b.Ma trận
Led được rất nhiều trong các ứng dụng hiển thị như là các biển quảng cáo ,hiển thị
thay thế LCD hoặc thậm chí là dùng để hiển thị video..Để giảm số lượng các
đường điều khiển ,trong các ma trận Led các Led được nối chung với nhau theo
hàng và theo cột .Số lượng Led trên ma trận Led là axb trong khi số lượng ngõ ra
bằng tổng số hàng và cột : a+b .Việc điều khiển 1 ma trận Led kích thước lớn đòi
hỏi thiết kế mạch driver và điều khiển rất phức tạp
5


1.2 Phân loại Led matrix
Bảng hiển thị ma trận LED (diot-matrix display) có rất nhiều loại và đủ kích cỡ to
nhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn được ghép lại với nhau trong
một khối. Trong khối đó các LED đơn được sắp sếp theo các hàng và các cột, tại
mỗi giao điểm của hàng với cột là một LED đơn, và người ta thường phân biệt các
loại bảng LED theo số hàng và cột. Một bảng LED 5x7 tức là có 5cột dọc và 7
hàng ngang, tổng cộng sẽ có 5x7=35 LED đơn được ghép lại. Cũng như vậy một
bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại. Và nhiều loại cỡ to hơn
như 16x16 hay 32x32…

Về môi trường hoạt động thì có loại indoor (trong nhà) và outdoor (ngoài trời),
semi-outdoor (bán ngoài trời)
Về màu sắc có loại 1 màu (red, green, blue), có loại 2 màu, loại 3 màu, với mỗi
loại thì sơ đồ sắp xếp chân hàng và cột lại khác nhau
Về độ phân giải thì tùy vào ứng dụng cụ thể mà chọn loại P10, P16, P20, …(P16
có nghĩa là khoảng cách điểm LED đến điểm LED là 16 mm)

6


Hình 1: Minh họa một bảng led matrix 8x8

Sơ đồ cấu tạo: một ma trận led có 16 chân được sắp xếp theo thứ tự 8 hàng 8 cột
được đánh số từ 1 đến 8, số chân của led được đánh từ 1 đến 16 theo sơ đồ hình vẽ

Hình 2: Sơ đồ ghép nối của bảng led matrix 8x8

7


Khi đóng vỏ, sự phân bố chân các hàng và cột là không theo thứ tự (do tính phức
tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch cho đúng, nên theo thứ
tự đó ta có các chân số cột gồm: 13,3,4,10,6,11,15,16;các chân số hàng theo thứ tự
là: 9,14,8,12,1,7,2,5. Bảng ma trận LED có hai loại, loại có các cột là các chân
Anode, còn hàng là các chân Cathode và loại kia thì ngược lại các cột là Cathode,
hàng là Anode. Khi sử dụng LED ta cần chú ý điều này để điều khiển cho đúng
1.3 Nguyên tắc làm sáng đèn trên bảng LED
Khi muốn làm sáng LED đơn, ta cần đưa điên áp dương vào chân Anode và điện
áp âm vào chân Cathode với giá trị thích hợp, khi đó LED sáng. Giá trị điện áp và
dòng điện tuỳ thuộc vào màu sắc từng loại LED

Dòng chảy qua các LED để đảm bảo độ sáng bình thường là từ 10mA cho đến
25mA.Khi ta muốn làm sáng một điểm trên bảng ma trận LED ta cũng làm tương
tự
1.4 Nguyên tắc quét bảng ma trận LED
Trong đề tài này em sử dụng 4 bảng LED 8x8 ghép lại thành một bảng cỡ 8x32 (8
hàng và 32 cột). Để hiển thị ký tự lên bảng LED, ở đây ta dùng phương pháp quét
cột và xuất dữ liệu hàng. Quá trình quét cột là ta gửi tín hiệu cho phép đến từng cột
trong từng thời điểm. Cùng lúc đó ta gửi dữ liệu hàng đến 8 hàng.Trong đề tài này
tín hiệu cho phép cột là mức logic ‘0’, và dữ liệu hàng tươngứng là mức ‘1’ hay ‘1’
của từng hàng, mức ‘0’ ứng với LED sáng (on) và mức‘1’ là tắt (off)
• Đầu tiên ta đưa dữ liệu cần hiển thị đến 8 hàng, ví dụ 11100110
• Kích hoạt cột thứ nhất và các LED tương ứng sẽ sáng. Tạo một thời gian trễ,
sau đó tắt cột thứ nhất.
• Gửi tiếp giá trị dữ liệu 8 hàng của cột thứ 2, kích hoạt cột thứ 2, tạo trễ vàlại
tắt cột thứ 2.
• Quá trình quét đó cứ tiếp diễn cho đến khi quét hết 32 cột của bảng
LED.Việc quét hiển thị này diễn ra trong thời gian rất ngắn, cỡ vài chục ms,
ta sẽ thấy hình ảnh hay chữ hiển thị trên bảng LED. Tuy rằng trong mỗi thời
điểm chỉ có một cột được sáng nhưng do thời gian quét rất nhanh và dohiện
tương lưu ảnh trong võng mạc của mắt nên ta thấy hình ảnh xuất hiện liên
8


tục. Tần số quét cần phải đảm bảo sao cho đủ hoặc lớn hơn 24hình/s.Thường
ta chọn tần số quét từ 40Hz đến 100Hz hoặc có thể lớn hơn.
Dữ liệu hiển thị của hàng được lấy từ StrataFlash ROM của Kit hoặc từ ROM
ngoài
Trạng thái của một LED sẽ được quyết định bởi tín hiệu điện áp đi vào đồng
thời cả 2 chân. Ví dụ để LED sáng thì điện áp 5V phải đưa vào chân dương và
chân âm phải được nối mass, LED sẽ tắt khi chân âm nối với điện áp mức cao

Với đề tài này, chúng em chọn loại ma trận LED 8x8 để hiển thị.Ta có sơ đồ
nguyên lý của Ma trận LED 8x8:

Để 1 phần ma trận có thể sáng như hình vẽ Thực hiện quét dòng và cột:Chọn cột 1,
đưa điện áp cột 1 về 0.
• Đèn 1 tắt =>Điện áp đưa vào hàng 1 là 0V


Đèn 2 tắt =>Điện áp đưa vào hàng 2 là 0V.

• Đèn 3 tắt =>Điện áp đưa vào hàng 3 là 0V
• Đèn 4 tắt =>Điện áp đưa vào hàng 4 là 0V.
• Đèn 5 tắt =>Điện áp đưa vào hàng 5 là 0V.
9


• Đèn 6 tắt =>Điện áp đưa vào hàng 6 là 0V


Đèn 7 tắt =>Điện áp đưa vào hàng 7 là 0V.

• Đèn 8 tắt =>Điện áp đưa vào hàng 8 là 0V
• Chọn cột 2 : đưa điện áp cột về 0.Sau đó quét lần lượt các hàng
1,2,3,4,5,6,7,8.
• Đèn 1 sáng =>Điện áp đưa vào hàng 1 là 5V
• Đèn 2 sáng=>Điện áp đưa vào hàng 2 là 5V


Đèn 3 sáng =>Điện áp đưa vào hàng 3 là 5V




Đèn 4 sáng=>Điện áp đưa vào hàng 4 là 5V

• Đèn 5 sáng =>Điện áp đưa vào hàng 5 là 5V


Đèn 6 sáng => Điện áp đưa vào hàng 6 là 5V

• Đèn 7 sáng => Điện áp đưa vào hàng 7 là 5V
• Đèn 8 sáng =>Điện áp đưa vào hàng 8 là 5V
Tiếp tục quét với các cột từ 3 đến 8 bằng cách như trên, sau đó chuyển sang quét
đèn LED thứ hai một cách tương tự.
Để mắt người nhận biết được toàn bộ hình ảnh của ma trận ta phải tiến hànhquét
nhiều lần. Do mắt người không phân biệt được sự thay đổi ảnh nếu ảnh đóđược
quét với tốc độ 24 hình/s nên nếu ta quét ảnh với tốc độ lớn hơn hoặc bằng24
hình/s thì ảnh sẽ chạy liên tục và không bị giật
1.5 Phương pháp tạo mã chữ
Tạo mã chữ có thể thực hiện thủ công hay sử dụng phần mêm Matix.Để đơn
giản,nhanh ,thuận tiện,và chính xác dùng phần mềm matix tiết kiệm thời gian tạo
mã chữ.Phần mềm có thể tạo mã chữ cho ma trận led 8x8


Với dữ liệu tích cực ở mức 0(chữ cần hiển thị là những đèn tắt trên lền đèn
sáng)



Với dữ liệu tích cực ở mức 1(chữ cần hiển thị là những đèn sang trên lền
đèn tắt)

10


Ở đây ,để tạo font chữ D (thủ công)-mức tích cực thấp:

Font chữ D là:
1111111100000000011111100111111001111110100000011111111111111111

Chương II : TỔNG QUAN VỀ FPGA
2.1 Giới thiệu FPGA
FPGA là viết tắt của thuật ngữ tiếng anh “Field programmable Gate Array”, nghĩa
là Mảng cổng lập trình được dạng trường. FPGA thuộc họ ASIC lập trình được
2.1.1Ý nghĩa và vai trò của FPGA
ASIC lập trình được đã xuất hiện từ lâu dưới dạng PLD (Programmable Logic
Device), nhưng vai trò của các dạng ASIC này là không nhiều vì số lượng cổng
trên Chip rất ít dẫn tới chức năng của các PLD này cũng nghèo nàn và thường chỉ
sử dụng với những nhiệm vụ rất hạn chế trong toàn hệ thống. Kể từ năm 1980,Các
công ty sản xuất PLD hàng đầu đã đẩy mạnh quá trình nghiên cứu về FPGA và
nhanh chóng cho ra các thế hệ FPGA với số lượng cổng và tốc độ ngày càng
cao.các FPGA hiện nay có số lượng cổng đủ lớn để có thể thay thế cả một hệ thống
bao gồm lõi CPU, Bộ điều khiển bộ nhớ (Memory Controller), các ngoại vi như
SPI,Timer, I2C, GPIO, PWM, Video/Audio Controller… (nghĩa là tương đương
với các SoC hiện đại).Tuy nhiên,FPGA không thể nào so sánh được với ASIC và
SoC cả về kinh tế lẫn tốc độ hoạt động. Nhưng bù lại, với khả năng tái cấu hình
mạnh, FPGA đóng một vai trò vô cùng to lớn trong việc giảm giá thành và thời
gian chế tạo ASIC bằng cách sử dụng FPGA trong quá trình thiết kế luận lý trước
khi đưa ra sản xuất các ASIC mẫu. Quy trình sản xuất Chip ASIC bằng cách này
11



gọi là fabless rất phổ biến hiện nay trên thế giới, giúp các công ty nhỏ và vừa và
đặc biệt là các nước yếu về công nghệ như Việt nam tham gia vào thế giới của IC.
2.2.2 Tại sao phải dùng FPGA
• Để điều khiển VGA sử dụng CPU làm controller cần CPU với tốc độ 27Mhz
hoạt động 100% CPU
• MCU/CPU/DSP vẫn cần các hardware khác bên cạnh trong các ứng dụng
chuyên dụng


Các ứng dụng xử lý hình ảnh/video, các ứng dụng mạng neuron,IA cần tốc
độ xử lý rất lớn. Mặc dù các DSP đủ mạnh và các SoC mạnh có thể thực
hiện được, nhưng sự lựa chọn còn phụ thuộc vào vấn đề kinh tế

• Có thể thiết kế ra 1 con CPU của chính mình với FPGA
• Đến với FPGA,sẽ có cơ hội để tiếp cận gần nhất thế giới của IC
• Có thể thực hiện một hệ thống với đầy đủ CPU/Peripheral/IO… và kết nối
chúng theo ý muốn,hoặc thậm chí một hệ thống đầy đủ không cần cả CPU
như các Chip giải mã/nén Video/Audio, các Chip xử lý hình ảnh/giọng nói,
các Chip PID Motor Controller, networking chip …
2.2 Kiến trúc FPGA
FPGA được cấu thành từ các khối logic(logic Block) được bố trí dưới dạng ma
trận,chúng được nối với nhau thông qua hệ thống các kênh kết nối lập trình
được.Hệ thống này còn có nhiệm vụ kết nối với các cổng giao tiếp IO_PAD của
FPGA

12


PGA là công nghệ IC lập trình mới nhất và tiên tiến nhất hiện nay. Thuật ngữ Field
Programmable chỉ quá trình tái cấu trúc IC có thể đƣợc thực hiện bởi người dùng

cuối, trong điều kiện bình thường. Ngoài khả năng đó FPGA có mật độ tích hợp
logic lớn nhất trong số các IC khả trình với số cổng tương đương lên tới hàng trăm
nghìn, hàng triệu cổng. FPGA không dùng các mảng lập trình giống như trong cấu
trúc của PAL, PLA mà dùng ma trận các khối logic Điểm khác biệt cơ bản thứ ba
của FPGA so với các IC kể trên là ở cơ chế tái cấu trúc,toàn bộ cấu hình của FPGA
thường được lưu trong một bộ nhớ động (RAM),chính vì thế mà khi ứng dụng
FPGA thường phải kèm theo một ROM ngoại vi để nạp cấu hình cho FPGA mỗi
lần làm việc

Chương III : NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL
3.1 Giới thiệu về VHDL
VHDL là viết tắt của VHSIC HDL (very –high-sped-intergrated-circuit Hardware
Description Language) hay ngôn ngữ mô tả phần cứng cho các vi số mạch tích hợp
tốc độ cao
VHDL ra đời trên yêu cầu của bài toán thiết kế phần cứng lúc bây giờ ,nhờ sử dụng
ngôn ngữ này mà thời gian thiết kế của sản phẩm bán dẫn giảm đi đáng kể ,đồng
thời với giảm thiểu chi phí cho quá trình này do đặc tính độc lập với công nghệ
,với các công cụ mô phỏng và khả năng tái sử dụng các khối đơn lẻ .Các ưu điểm
chỉnh của VHDL có thể liệt kê như là : tính công cộng ,được hỗ trợ bởi nhiều công
nghệ,tính độc lập với công nghệ,khả năng mô tả mở rộng ,khả năng trao đổi ,tái sử
dụng
3.2 Cấu trúc của chương trình mô tả bằng VHDL
Cấu trúc tổng thể của một khối thiết kế VHDL gồm ba phần :
• Phần khai báo thư viện
• Phần mô tả thực thể
• Phần mô tả kiến trúc
13


Cấu trúc của một thiết kế VHDL


3.2.1 Khai báo thư viện
Khai báo thư viện phải đặt đầu tiên trong mỗi thiết kế VHDL ,lưu ý rằng nếu ta sử
dụng một tệp mã nguồn để chứa nhiều khối thiết kế khác nhau thì mỗi khối đều
phải yêu cầu có khai báo thư viện đầu tiên nếu không khi biên dịch sẽ phát sinh ra
lỗi
Ví dụ về khai báo thư viện
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

Khai báo thư viện sẽ bắt đầu bằng từ khóa Lbrary Tên thư viên(chú ý là VHDL
không phân biệt chữ thường và chữ in hoa).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 :

14


3.2.2.Mô tả thực thể
Thực thế (entity) của mô hình.
Phần khai báo thực thể chỉ rõ TÊN của thực thể và liệt kê các lối vàovà ra và có
dạng chung như sau
Entity tên_thực_thể is
Generic (khai báo generic);
Port (khai báo các tín hiệu vào ra);
End tên_thực_thể;
 Một thực thể luôn bắt đầu với từ khóa entity, theo sau là tên của thực thể và
từ khóa is. Rồi đến các khai báo cổng với từ khóa port. Mộtthực thể luôn kết
thúc với từ khóa end và tên của thực thể.

 Tên thực thể là tên của thực thể do người dùng đặt.
 Các tín hiệu vào ra: tên của các tín hiệu do người dung đặt, ngăncách với
nhau bởi dấu phẩy, chỉ ra các tín hiệu nối với bên ngoài.
 Các chế độ của tín hiệu khai báo trong “port”: chỉ ra chiều của tínhiệu, có
các mode sau:
• in: chỉ ra rằng tín hiệu là một tín hiệu vào.
• out : chỉ ra rằng tín hiệu là một tín hiệu ra khỏi thực thể và chỉ các thựcthể
khác dùng đến tín hiệu này mới có thể đọc giá trị của nó.
• buffer : tín hiệu là tín hiệu ra và giá trị của nó có thể được đọc cả ở bên
trong thực thể.
• inout : tín hiệu có thể là tín hiệu vào hoặc tín hiệu ra
3.2.3. Kiến trúc của mô hình.
Cấu trúc của nó như sau:
ARCHITECTURE tên_architecture OF tên_entity IS
15


[các phần khai báo:signal, component…]
BEGIN
[code]
ENDtên_architecture;
Trong kiến trúc mô hình chúng ta có thể khai báo tất cả mọi thứ liên quan tới
chương trình, trong đó có các process, các chương trình con với lời gọi hàm
component, và khai báo các signal và các câu lệnh“port map” để kết nối các thành
phần con có trong kiến trúc. Nói chung cũng như ngôn ngũ C thì ở đây kiến
trúc(architecture) là thân của chương trình của ta
1.Mô tả hành vi
Mô tả hành vi gần giống như mô tả bằng lời cách thức tính toán kết quảđầu ra dựa
vào các giá trị đầu vào. Toàn bộ mô tả hành vi phải đƣợc đặt trongmột khối quá
trình {process (sensitive list) end process;} ý nghĩa của khối này là nó tạo một

quá trình để ―theo dõi sự thay đổi của tất cả các tín hiệu có trong danh sách tín
hiệu (sensitive list), khi có bất kỳ một sự thay đổi giá trị nào của tín hiệu trong
danh sách thì nó sẽ thực hiện quá trình tínhtoán ra kết quả tƣơng ứng ở đầu ra.
Chính vì vậy trong đó rất hay sử dụng cácphát biểu tuần tự như if, case, hay các
vòng lặp loop.Việc mô tả bằng hành vi không thể hiện rõ được cách thức cấu tạo
phầncứng của vi mạch như các dạng mô tả khác và tùy theo những cách viết
khácnhau thì có thể thu được những kết quả tổng hợp khác nhau.Trong các mạch
dãy đồng bộ, khối làm việc đồng bộ thường được mô tả bằng hành vi, ví dụ như
trong đoạn mã sau mô tả thanh ghi sau:
process(clk)
begin
if clk'event and clk='1' then
Data_reg <= Data_in;
end if;
end process

16


2.Mô tả luồng dữ liệu
Mô tả luồng dữ liệu (dataflow)là dạng mô tả tƣơng đối ngắn gọn và rất hay được
sử dụng khi mô tả các khối mạch tổ hợp. Các phát biểu trong khối begin end là
các phát biểu đồng thời (concurrent statements) nghĩa là không phụ thuộc thời
gian thực hiện của nhau, nói một cách khác không có thứtự ưu tiên trong việc sắp
xếp các phát biểu này đứng trƣớc hay đứng sau trong đoạn mã mô tả. Ví dụ cho
khối full_adder thì mô tả luồng dữ liệu như sau:
architecture dataflow of full_adder is
begin
sum <= (a xor b) xor Cin;
Cout <= (a and b) or (Cin and (a xor b));

end dataflow;

3. Mô tả cấu trúc
Mô tả cấu trúc (structure) là mô tả sử dụng các mô tả có sẵn dưới dạng khối con
(component). Dạng mô tả này cho kết quả sát với kết quả tổng hợp nhất. Mô tả cụ
thể về cấu trúc mạch, ưu điểm của phương pháp này là khi tổng hợp trên thư viện
cổng sẽ cho ra kết quả đúng với ý tưởng thiết kế nhất

Chương IV : Thiết kế hệ thống
4.1.Giới thiệu về Xilinx ISE Design Suite 13.2
Xilinx ISE (Integrated Software Environment) là một bộ phần mềm thiết kế của
Xilinx , cho phép ta thực hiện các hệ thống nhúng của Xilinx từ khâu thiết kế ban
đầu (thông qua VHDL, Verilog HDL, ABEL hoặc là vẽ Schematic) cho đến khâu
cuối cùng là nạp thiết kế của mình lên FPGA. Để bắt đầu một thiết kế, ta phải tạo
một project mới trong ISE thông qua công cụ quản lý ISE Project Navigator. Sau
đó ISE Project Navigator sẽ quản lý tất cả các quá trình thiết kế trong trong project
đó.
Với sự hỗ trợ sản xuất đầy đủ cho các họ FPGA Xilinx Virtex-6 và Spartan-6, sản
phẩm ISE tiếp tục sự tiến triển như là bộ phần mềm thiết kế của ngành công nghiệp
17


miền riêng với thiết kế mạch tương thích và cấu hình công cụ logic, kỹ thuật số xử
lý tín hiệu (DSP), xử lý nhúng và thiết kế hệ thống cấp độ. Thêm vào đó, Xilinx
kết hợp một số cơ sở kiến trúc phần mềm và cải tiến phương pháp để cải thiện thời
gian chạy, sắp xếp tích hợp hệ thống và mở rộng khả năng tương tác IP trên các họ
thiết bị thế hệ mới nhất.
Quy trình thiết kết trong ISE bao gồm các quá trình sau : Design Entry ->
Synthesis -> Implementation -> Verification -> Device Configuration.
• Design Entry : Đây là bước đầu tiên trong quá trình thiết kế của ISE. Trong

suốt quá trình design entry, ta sẽ thiết kế những file nguồn (Source File) theo
những yêu cầu ban đầu (những mô tả chức năng của hệ thống mà ta cần phải
thiết kế). Ở bước này, ta sẽ dùng những ngôn ngữ mô tả phần cứng như :
VHDL, Verilog HDL, Abel hoặc dạng Schematic để thiết kế . Chúng ta có
thể dùng nhiều ngôn ngữ khác nhau trong cùng một thiết kế. Ví dụ như :
thiết kế các module chức năng bằng Verilog HDL, sau đó dùng dạng
schematic (sơ đồ khối) để thiết kế hệ thống chính.
• Synthesis : Sau khi thiết kế hệ thống và thực hiện những mô phỏng để kiểm
tra chức năng logic của hệ thống, chúng ta phải chạy synthesis để chuyển đổi
những file nguồn được viết bằng VHDL,Verilog HDL, … thành file netlist.
Những file netlist này cần thiết để đưa vào quá trình Implementation.


Implementation : Quá trình này sẽ chuyển đổi thiết kế ở mức logic thành
các file định dạng vật lý để có thể download xuống FPGA. Sau khi chạy
Synthesis, chúng ta sẽ có những file netlist, quá trình Implementation sẽ
chuyển đổi những file netlist đó thành những file cấu hình vật lý cụ thể dựa
vào linh kiện FPGA cụ thể mà ta đang sử dụng, do đó quá trình này đòi hỏi
chúng ta phải chỉ rõ linh kiện FPGA nào đang được sử dụng.

• Verification: Sau khi chạy bước Implementation, chúng ta sẽ có thể mô
phỏng thiết kế của mình một cách chính xác hơn. Vì quá trình mô phỏng ở
bước Design Entry chỉ có thể mô phỏng chức năng của mạch chứ nó chưa
thể mô phỏng thời gian (timing), timing tùy thuộc vào linh kiện vật lý cụ
thể .
18





Device Configuration: Đây là bước cuối cùng trong suốt quá trình thiết kế .
Ở bước này các file định dạng cấu hình sẽ được dùng để tạo ra những file
bitstream để nạp xuống chip FPGA

4.2. Sơ đồ hệ thống

4.2.1 Kit NEXYS2 Spartan 3E

1.Tổng quan:
Kit nexys2 là board mạch phát triển dựa trên nền một Xilinx Spartan 3E FPGA.
• 500K-gate Xilinx Spartan 3E FPGA


USB2-based FPGA configuration and high-speed data transfers (using the
free Adept Suite Software)



USB-powered (batteries and/or wall-plug can also beused)

• 16MB of Micron PSDRAM &16MB of Intel StrataFlash ROM
19


• Xilinx Platform Flash for nonvolatile FPGA configurations
• Efficient switch-mode power supplies (good for battery powered
applications)


50MHz oscillator plus socket for second oscillator




60 FPGA I/O’s routed to expansion connectors (one high-speed Hirose FX2
connector and four 6-pin headers)



8 LEDs, 4-digit 7-seg display, 4 buttons, 8 slide switches



Ships in a plastic carry case with USB cable

2. Power Supplies
Kit Nexys2 được cung cấp nguồn điện đầu vào từ một cáp USB, từ một nguồn từ
5VDC-15VDC

20


Nguồn điện cung cấp nguồn 3.3 v cho toàn bộ Kit .Một sô thiết bị yêu cầu nguồn
2.5v,1.8v,1.2v nhưng chủ yếu cung cấp nguồn 3.3v là chính và như thế sẽ có các
nguồn cung cấp bổ xung được tạo ra từ nguồn cung cấp 3.3 v.Các nguồn cung cấp
chủ yếu được tạo ra bởi hiệu quả điều tiết chuyển từ tuyến tính công nghệ .Những
điều chỉnh không chỉ sử dụng hiệu quả sức mạnh nguồn usb mà cũng cho phép kit
chạy các gói pin trong thời gian dài

Tổng số Board phụ thuộc vào cấu hình FPGA ,tần số đồng hồ và các kết nối bên
ngoài. trong thử nghiệm mạch với khoảng 20K cửa chuyển, một tần số 50MHz , và

tất cả các đèn LED chiếu sáng, khoảng 200mA được rút ra từ việc cung cấp 1.2V,
50mA từ Cung cấp 2.5V và 100mA từ việc cung cấp 3.3V. Yêu cầu hiện nay sẽ
tăng nếu mạch lớn được cấu hình trong FPGA, và nếu bảng ngoại vi được gắn
Nexys2 cũng có thể nhận được nguồn từ (hoặc cung cấp năng lượng để) một Board
thiết bị ngoại vi kết nối với một Kết nối Pmod hoặc để mở rộng 100-pin lớn kết nối
Nhảy gần kết nối và Pmod nối mở rộng lớn (JP1 - JP5) có thể kết nối.Đầu vào
Nexys2 để pin của kết nối.Các jumper Pmod có thể được sử dụng để định tuyến
hoặc các đầu vào Các bus hoặc 3.3V quy định để các chân điện Pmod,trong khi kết
nối nhảy mở rộng chỉ có thể thực hiện hoặc phá vỡ kết nối với các bus đầu vào.

21


Nexys2 với 6 lớp PCB , với các lớp bên trong dành riêng cho VCC và GND FPGA
và các IC khác trên bảng đều có một bổ sung lớn của tụ điện bỏ qua đặt càng gần
càng tốt để mỗi pin VCC. Điện cung cấp định tuyến và vượt qua sự tụ điện trong
một nguồn cung cấp năng lượng rất sạch, ổn định, và tiếng ồn thấp

3. FPGA and Platform Flash Configuration
FPGA trên bảng Nexys2 phải được cấu hình (orprogrammed) của người dùng trước
khi nó có thể thực hiện bất kỳ chức năng. Trong cấu hình, một "chút" tập tin được
chuyển vào tế bào bộ nhớ trong FPGA để xác định các chức năng logic và mạch
liên kết nối. ISE / WebPack miễn phí phần mềm CAD từ Xilinx có thể được sử
dụng để tạo ra các file bit từ VHDL, Verilog, hoặc các tập tin nguồn sơ đồ dựa trên

FPGA có thể được lập trình trong hai cách:
• Trực tiếp từ máy tính qua cổng USB on-board,
• Từ một nền tảng trên tàu Flash ROM (cácFlash ROM cũng là người sử dụng
có thể lập trình thông qua Cổng USB).
FPGA sẽ tự động tải một cấu hình từ Flash ROM Platform tại điện trên nếu cấu

hình chế độ nhảy được thiết lập để "Master nối tiếp ". Nếu chế độ nhảy được thiết
lập để "JTAG", các FPGA sẽ chờ đợi chương trình từ máy tính (thông qua cáp
USB).
Digilent’s freelycủa máy tính dựa trên Adept phần mềm có thể được sử dụng để
cấu hình FPGA và Flash Platform với bất kỳ tập tin được lưu trữ phù hợp trên máy
tính. Adept sử dụng cáp USB vào chuyển một tập tin bit được lựa chọn từ các máy
tính để FPGA hoặc Nền tảng Flash ROM. Sau khi FPGA được cấu hình, nó sẽ vẫn
như vậy cho đến khi nó được thiết lập lại bởi một sự kiện điện chu trình hoặc nút
reset FPGA (BTNR) bị ép. Nền tảng Flash ROM sẽ giữ lại một tập tin chút cho đến
khi nó được lập trình, bất kể sự kiện điện chu trình

22


4.Clock
KIT Nexys2 bao gồm một 50MHz dao động và một ổ cắm cho một dao động thứ
hai. Tín hiệu đồng hồ từ các dao động kết nối vớiđồng hồ toàn cầu chân đầu vào
trên FPGA để họ có thể lái đồng hồ khối tổng hợp có sẵn trong FPGA. Các đồng
hồ tổng hợp(gọi là DLL, hoặc trì hoãn các vòng lặp bị khóa) cung cấp quản lý
đồng hồkhả năng bao gồm tăng gấp đôi hoặc gấp bốn lần đầu vàotần số, phân chia
tần số đầu vào của bất kỳ số nguyên,và xác định các giai đoạn chính xác và các
mối quan hệ chậm trễ giữa tín hiệu đồng hồ khác nhau.

5.Memory
Kit Nexys2 có bộ nhớ RAM bên ngoài và các thiết bị ROM. Bộ nhớ RAM bên
ngoài là một Micron M45W8MW16 Cellular RAM thiết bị DRAM giả tĩnh
128Mbit tổ chức như 8Mbytes x 16bits. Nó có thể hoạt động như một SRAM
23



không đồng bộ điển hình với đọc và ghi lần chu kỳ 70ns, hoặc như một bộ nhớ
đồng bộ với một bus 80MHz. Khi operatedas một SRAM không đồng bộ, bộ nhớ
RAM di động tự động làm mới mảng DRAM nội bộ của mình, cho phép một thiết
kế bộ điều khiển bộ nhớ đơn giản (tương tự như bất kỳ SRAM) trong FPGA. Khi
hoạt động ở chế độ đồng bộ, chuyển liên tục lên đến 80MHz là có thể.
ROM bên ngoài là một 128Mbit Intel TE28F128J3D75-110 thiết bị StrataFlash tổ
chức như 8Mbytes x 16bits. Bên trong, nó chứa 128 khối có thể được xóa riêng lẻ,
và nó hỗ trợ 110ns chu kỳ thời gian đọc, với 25ns trang chế độ đọc trong khối. Nó
có một ghi 32-byte bộ đệm bên trong mà canbe bằng văn bản với thời gian chu kỳ
70ns, và bộ đệm 32 byte có thể được chuyển giao cho các mảng Flash trong 218us
(điển hình).
Cả hai thiết bị chia sẻ một bus dữ liệu 16-bit thông thường và bus địa chỉ 24-bit.
Bộ nhớ RAM di động là byte địa chỉ bằng cách sử dụng tín hiệu trên byte và thấpbyte (MT-UB và MT-LB), nhưng StrataFlash được cấu hình cho 16 byte chỉ hoạt
động (nó không phải là byte địa chỉ). Sản lượng cho phép (OE) và viết cho phép
(WE) tín hiệu được chia sẻ bởi cả hai thiết bị, thiết bị buteach có con chip cho phép
các tín hiệu cá nhân (CE). Ngoài ra, bộ nhớ RAM di động có đồng hồ (MT-CLK),
chờ đợi (MT-WAIT), địa chỉ hợp lệ (MT-ADV) và kiểm soát đăng ký cho phép
(MT_CRE) báo hiệu có sẵn cho các FPGA để sử dụng với chuyển đồng bộ, và có
StrataFlash Đặt lại (RP #) và trạng thái (STS) tín hiệu chuyển đến FPGA.

24


Mã nguồn VDHL có sẵn trong một tài liệu tham khảo designposted trên trang web
Digilent để minh họa cho việc sử dụng các thiết bị này. Một cơ sở xây dựng hệ
thống tập tin isalso có sẵn để sử dụng các thiết bị với công cụ Xilinx của EDK và
lõi xử lý MicroBlaze, cả hai đều có sẵn từ Xilinx. Thông tin đầy đủ có sẵn cho cả
các thiết bị từ các trang web nhà sản xuất.

4.2.2. IC đệm dòng ULN 2803

Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này
của chuổi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp
như: TTL, CMOS hoặc PMOS/NMOS. ULN2803 có tác dụng ổn dòng trong
khoảng thời gian rất ngắn. Tác dụng này làm cho các LED sáng đều vì trong khi
quét do phải sáng cả hàng LED nên sự sụt dòng là rất lớn sẽ làm cho LED tối

25


×