Đèn 1 tắt => điện áp đưa vào hàng 1 = 0V bit nhị phân tương ứng: 0
Đèn 2 tắt => điện áp đưa vào hàng 2 = 0V bit nhị phân tương ứng: 0
Đèn 3 sáng => điện áp đưa vào hàng 3 = 5V bit nhị phân tương ứng: 1
Đèn 4 sáng => điện áp đưa vào hàng 4 = 5V bit nhị phân tương ứng: 1
Đèn 5 sáng => điện áp đưa vào hàng 5 = 5V bit nhị phân tương ứng: 1
Đèn 6 sáng => điện áp đưa vào hàng 6 = 5V bit nhị phân tương ứng: 1
Đèn 7 sáng => điện áp đưa vào hàng 7 = 5V bit nhị phân tương ứng: 1
Đèn 8 sáng => điện áp đưa vào hàng 8 = 5V bit nhị phân tương ứng: 1
=> chuỗi bit xuất ra 8 chân hàng : 0011 1111 3F trong hệ Hexa
chọn cột 2, đưa điện áp cột 2 về 0, xuất dữ liệu ra các hàng 1,2,3,4,5,6,7,8 như sau:
Đèn 1 tắt => điện áp đưa vào hàng 1 = 0V bit nhị phân tương ứng: 0
Đèn 2 tắt => điện áp đưa vào hàng 2 = 0V bit nhị phân tương ứng: 0
Đèn 3 tắt => điện áp đưa vào hàng 3 = 0V bit nhị phân tương ứng: 0
Đèn 4 sáng => điện áp đưa vào hàng 4 = 5V bit nhị phân tương ứng: 1
Đèn 5 tắt => điện áp đưa vào hàng 5 = 0V bit nhị phân tương ứng: 0
Đèn 6 tắt => điện áp đưa vào hàng 6 = 0V bit nhị phân tương ứng: 0
Đèn 7 tắt => điện áp đưa vào hàng 7 = 0V bit nhị phân tương ứng: 0
Đèn 8 tắt => điện áp đưa vào hàng 8 = 0V bit nhị phân tương ứng: 0
=> chuỗi bit xuất ra 8 chân hàng: 0001 0000 1F trong hệ Hexa
tiếp tục quét với các cột 3,4,5,6,7,8 tương tự như vậy, sau đó chuyển sang ma trận
Led tiếp theo. Với tốc độ quét cột > 24h/s thì hình ảnh sẽ liên tục không bị nhấp nháy.
2. Phân loại Led ma trận
Về kích thước thì hện nay trên thị trường có 2 loại phổ biến là matrix led 5x7 pixels và
matrix led 8x8 pixels.
5
Matrix led 5x7 Matrix led 8x8
Những bảng led kích thước lớn hơn đều được ghép lại từ những modul led có kích
thước nhỏ (8x16, 16x16, 16x32….) và những modul led thì lại cấu tạo từ 2 loại ma
trận led trên.
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)
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). Bảng indoor không sử dụng ngoài trời được vì không đủ độ
sáng và không chịu được mưa nắng. Bảng outdoor có độ sáng cao, kết cấu chắc chắn,
chịu được mưa nắng. Bảng semi-outdoor (bán ngoài trời) có độ sáng cao, sử dụng tốt
ngoài trời nhưng chịu mưa nắng kém nên bảng quảng cáo loại này thường được đặt ở
dưới mái hiên nhà.
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.
Loại 1 màu Loại 2 màu
Loại 3 màu
6
II. Tổng quan về quảng cáo đa năng
Các biển quảng cáo đa năng dùng ma trận led 2D có nội dung thay đổi được một cách
dễ dàng linh hoạt thông qua cab usb, wifi, internet…
Nội dung quảng cáo có thể là chữ, hình ảnh, ảnh động hay là đoạn video.
Hiệu ứng dùng cho các biển quảng cáo phải đa dạng, đẹp mắt, gây sự chú ý… như
cuộn tròn, chữ chạy với nhiều tốc độ, nháy ….
Màu sắc đa dạng tạo điểm nhấn, tăng tính thẩm mỹ.
Có thể hiển thị nhiều loại Font chữ : tiếng anh, tiếng việt
Có thể tích hợp thêm tính năng audio.
Kích thước biển quảng cáo có thể thay đổi dễ dàng nhờ ghép thêm các modul led.
Trong bài đồ án này chúng em thiết kế bảng quảng cáo có các tính năng : chữ chạy từ
phải qua trái với nhiều tốc độ, vì ma trận led phổ biến trên thị trường hiện nay là loại
8x8 2 màu RG nên chúng em quyết định chọn loại này, nội dung quảng cáo thay đổi
được qua cab usb, font chữ tiếng anh và tiếng việt.
III. FPGA
Field-programmable gate array (FPGA) là vi mach dùng cấu trúc mảng phần tử logic
mà người dùng có thể lập trình được. (Chữ field ở đây muốn chỉ đến khả năng tái lập
trình “bên ngoài” của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức
tạp của nhà máy bán dẫn). Vi mạch FPGA được cấu thành từ các bộ phận:
• Các khối logic cơ bản lập trình được (logic block)
• Hệ thống mạch liên kết lập trình được
• Khối vào/ra (IO Pads)
7
• Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý
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.
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần
tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ tái lập trình của
FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt quan
trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng
logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó.
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả
phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx,
Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế,
cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys,
Synplify Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ
quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL).
Kiến trúc FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau.
Khối logic FPGA
Phần tử chính của FPGA là các khối logic (logic block). Khối logic được cấu thành từ
LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic có thể
thực hiện bất kì hàm logic nào từ 4 đầu vào, kêt quả của hàm này tùy vào mục đích mà
gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop.
8
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang
và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm
khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài và rất dài. Các
đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được
(programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập
trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợp
thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của
Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…,
hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP
Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx
chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
IV. Tổng quan ngôn ngữ VHDL
Ngôn ngữ VHDL được cung cấp để hổ trợ phát triển các hệ thống phần cứng dựa trên
các loại mạch (chip) tích hợp tốc độ cao (VHSIC-Very High Speed Integrated Circuit).
Việc sử dụng các loại chíp kiểu này đã thay thế dần các IC logic mà thường được sử
dụng trong việc thiết kế mạch số, đem lại nhiều lợi ích và thuần tiện trong việc phát
triển các hệ thống số mà phương thức thiết mạch số truyền thống khó hoặc không thể
thực hiện được.
VHDL không phải là 1 ngôn ngữ lập trình tuy vậy nó cung được hỗ trợ các cấu trúc, cú
pháp như giống như những ngôn ngữ lập trình thông dụng như C hay Basic. Do vậy
VHDL sẽ phải lược bỏ đi những phần không thích hợp khi áp dụng cho việc thiết kế 1
phần cứng chứ không phải 1 phần mềm. VHDL là ngôn ngữ miêu tả phần cứng khá
thông dụng có thể tương thích với nhiều môi trương ( công cụ) phát triển cho chip của
nhiều hãng sản xuất chip khác nhau.
Sử dụng VHDL để miêu tả phần cứng tức là chỉ rõ cách thức giao tiếp của mạch cứng
với các mạch bên ngoài và hoạt động, cấu trúc bên trong của mạch để nó có thể đáp
ứng và xử lý các tín hiệu khi lắp ghép nó vào 1 hệ thống . Cách thức giao tiếp bao gồm
việc thống kê số lượng các chân giao tiếp với mạch bên ngoài và định dạng cho chúng
là chân nhập hay là xuất tín hiệu.
Sự miêu tả ở đây có các mức như miêu tả cấu trúc (Structural) và miêu tả cách thức,
đặc tính (behavioral)
Miêu tả cấu trúc hệ thống tức là miêu tả hệ thống thông qua tập hợp các cổng logic cơ
bản hoặc các thành phần được hỗ trợ và cách thức kết nối giũa các thành phần đó với
nhau. Hình thức miêu tả này đã được sử dụng nhiều trong các công cụ thiết kế phần
cứng truyền thống. còn đối với ngôn ngữ VHDL thì việc sử dụng cách thức miêu tả này
thông qua các toán tử logic (AND, OR, ) tương ứng với các thành phần logíc cơ bản
kết hợp các toán tử này để hình thành lên cấu trúc số.
9
Hình thức miêu tả cao nhất là behavioral. Hình thức này sẽ chỉ cách thức xử lý tín hiệu
khi nó đi qua hệ thống. Mô tả behavioral được chia thành 2 hình thức miêu tả đó là
dataflow và Algorithmic. Người thiết kế có thể kết hợp các hình thức miêu tả này với
nhau trong file thiết kế của mình.
Cấu trúc của 1 file thiết kế dữa trên ngôn ngữ VHDL thông thường bao gồm 3 phần
-phần khai báo các thư viện sử dụng trong thiết kế.
-phần khai báo đối tượng thiết kế .
-phần mô tả cấu trúc của đối tượng.
Trên 1 bản thiết kê có thể có nhiều đối tượng thiết kế được lặp ghép với nhau. Mỗi đối
tượng (entity) có thể hiểu như là 1 module mạch hay 1 tổ hợp logic. Các chân giao tiếp
của đối tượng phải được định nghĩa trong phần khai báo đối tượng.
Trong phần mô tả cấu trúc của đối tượng thì người thiết kế sẽ sử dụng các mức mô tả
đã đề cập phía trên để mô tả cấu trúc bên trong hay cách thức xử lý tín hiệu của đối
tượng thiết kế.
Trong khuôn khổ của đồ án chúng em không đi sâu về cú pháp hay kỹ thuật lập trình
của ngôn ngữ VHDL mà chỉ trình bày một cách tổng quan về cách thức sử dụng ngôn
ngữ miêu tả trong thiết kế phần cứng có sử dụng các vi mạch tổ hợp.
CHƯƠNG III: THIẾT KẾ HỆ THỐNG SỬ DỤNG PHẦN MỀM XILINX ISE
I. Tổng quan phần mền Xilinx ISE
Xilinx ISE (Integrated Software Environment) là một bộ phần mềm thiết kế của hãng
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 đó.
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
10
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ể .
* 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 .
II. SƠ ĐỒ KHỐI HỆ THỐNG
11
R
O
W
MATRIX LED
8X8 RG
G
R
ULN2803
74HC595
1. Kit spactan3
1.1. Các thành phần của kit:
1. Xilinx XC3S500E Spartan-3E FPGA
2. Xilinx 4 Mbit Platform Flash configuration PROM
3. Xilinx 64-macrocell XC2C64A CoolRunner CPLD
4. 64 MByte (512 Mbit) of DDR SDRAM, x16 data interface, 100+ MHz
5. 16 MByte (128 Mbit) of parallel NOR Flash (Intel StrataFlash)
6. 16 Mbits of SPI serial Flash (STMicro)
7. 2-line, 16-character LCD screen
8. PS/2 mouse or keyboard port
9. VGA display port
10. 10/100 Ethernet PHY (requires Ethernet MAC in FPGA)
11. Two 9-pin RS-232 ports (DTE- and DCE-style)
12. On-board USB-based FPGA/CPLD download/debug interface
13. 50 MHz clock oscillator
14. SHA-1 1-wire serial EEPROM for bitstream copy protection
15. Hirose FX2 expansion connector
16. Three Digilent 6-pin expansion connectors
17. Four-output, SPI-based Digital-to-Analog Converter (DAC)
18. Two-input, SPI-based Analog-to-Digital Converter (ADC) with programmable-
gain
19. pre-amplifier
20. ChipScope™ SoftTouch debugging port
21. Rotary-encoder with push-button shaft
22. Eight discrete LEDs
23. Four slide switches
12
1.2. Sơ đồ chân XC3S500E
XC3S500E có kiểu chân BGA, 320 chân như hình:
Cách đánh số chân: Vị trí của 1 chân được xác định theo qui tắc ma trận 2 chiều. Chiều
ngang (dòng) là số từ 0 tới 18. Chiều dọc (cột) là chữ từ A tới V. Ví dụ: chân A1, là
chân ở dòng A, cột 1. Đây là chân GND của FPGA. Tài nguyên: 10000 logic cells, có
232 chân I/O cho người dùng tự định nghĩa.
13
1.3. Bộ tạo dao động trên kit
Có 3 nguồn cấp xung clk cho FPGA:
• Dùng thạch anh có sẵn 50 MHz trên board.
Ngõ ra của thạch anh nối với chân C9 của chip.
• 2. Cấp xung clk thông qua chân cắm 8 pin trên board (hình 3.1)
Ngõ ra của thạch anh nối với chân B8 của chip.
• 3. Cấp Cấp xung clk thông qua chân cắm SMA, chân cắm này chỉ nhận clk từ
máy phát clk, không dùng
trực tiếp thạch anh được .
Ngõ ra clk nối với chân A10 của chip.
14
Không có nhận xét nào:
Đăng nhận xét