huong dan kit......................................................................................................................................................................................................................................................................................................................................................................................................................
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2CHƯƠNG 1 GIỚI THIỆU CHIP CPLD XC2C256
1 TỔNG QUAN CPLD (Complex Programmable Logic Device)
CPLD là thiết bị logic lập trình phức hợp có mật độ logic lập trình cao hơn so với các PLD đơn giản như PLA và PAL
CPLD bao gồm nhiều mạch logic, mỗi mạch có thể coi là một SPLD Trong một mạch đơn SPLD chỉ thực hiện các chức năng logic đơn giản Các chức năng logic phức tạp hơn 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ết nối CPLD thường dùng để điều khiển ghép cổng phức hợp ở tốc độ rất cao
Kiến trúc cơ bản của CPLD như hình 1:
Trang 3vừa ra Ngoài ra còn có thể thiết lập các chân I/O làm việc ở các mức logic khác nhau, có điện trở pull-up, có điện trở pull-down,
HìCấu hình CPLD được lưu lại khi mất điện và không đổi trong quá trình hoạt động
Trong thực tế có nhiều loại CPLD khác nhau, của các hãng khác nhau, 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 CPLD cũng khác nhau 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 CPLD là Xilinx, Altera,…
Hiện nay, các họ CPLD đã được phát triển với tính năng rất mạnh, công suất tiêu thụ thấp CPLD đ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,…
2 Tổng quan CPLD CoolRunner II
Họ CPLD CoolRunner II có đặc điểm như sau:
• Là sự phát triển tiếp của PLD như PLA ,PAL
• Có cấu trúc đồng nhất là các MACROCELL
• Gồm nhiều khối tương tự PAL
• Công nghệ xử lý tốc độ cao từ 200MHz
• Gồm nhiều khối I/O có đặc tính nâng cao
• Cấu trúc cho phép thiết kế linh hoạt
• Năng lượng cực thấp sử dụng công nghệ REALDIDITAL
Trang 4• Sử dụng công nghệ CMOS nên cực kỳ tiết kiệm năng lượng
Các thành viên của họ Coolrunner II như sau:
Bng 1.1: Các thành viên h Coolrunner II
Khi muốn thiết kế logic trên chip CPLD nào thì người thiết kế cần hiểu rõ cấu trúc cũng như các thông số kỹ thuật của từng loại chip Sau đây đề tài sẽ trình bày chip CPLD Coolrunner II XC2C256
3 CPLD XC2C256
Đặc điểm trên nhãn thiết bị CPLD XC2C256 cho biết:
Kiểu thiết bị XC2C256 Kiểu đóng gói TPQ144
Mã ngày sản xuất 0837 Tốc độ -7
Multiple Levels of Security Yes Yes Yes Yes Yes Yes
DataGate, Clock Divide, Differential I/O No No Yes Yes Yes Yes
Trang 54 Mô tả cấu trúc Coolrunner II
Hì
- Gồm 40 tín hiệu từ AIM (Advanced Interconnect Matrix) truyền đến PLA
- Đặc điểm của khối PLA :
Hình 1.6 S đ PLA
- Đặc điểm của các khối macrocell:
Trang 7- KHỐI XUNG CLOCK: Cool Runner có bộ chia tần số 2,4,6,, 16
Hình 1.20 Khi chia tn s
5 QUY TRÌNH THIẾT KẾ CHO CPLD
Quá trính thiết kế cho CPLD được thực hiện trên công cụ phần mềm ISE, bao gồm các bước như sau:
Bước 1: Nhập thiết kế (Design Entry)
Đây là bước đầu tiên và quan trọng nhất của quá trình thiết kế cho CPLD Các công cụ thiết kế cho phép nhập thiết kế theo các cách sau:
- Nhập thiết kế sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL, Verilog, ABEL,…) Người thiết kế có thể sử dụng chương trình soạn thảo để thực hiện việc mô tả toàn bộ bản thiết kế của mình dưới dạng HDL mà công cụ thiết kế có thể tổng hợp được
- Nhập thiết kế theo sơ đồ nguyên lý schematic Người thiết kế sử dụng các module có sẵn trong thư viện schematic để kết nối chúng với nhau tạo thành bản thiết kế theo yêu cầu Các này có thể thực hiện thiết kế nhanh nhưng sẽ rất khó khăn và không tối ưu tài nguyên của CPLD khi thiết kế phức tạp, không sử dụng được các công cụ thiết kế của hãng khác
- Nhập thiết kế dưới dạng sơ đồ: điển hình là đồ hình trạng thái, sau
đó chúng được chuyển đổi sang HDL
Bước 2: Kiểm tra mô phỏng thiết kế
Trang 8Bước 3: Tổng hợp thiết kế (Design Synthesis)
Bước 4: Thực hiện thiết kế ( Design Implementaion)
Ở bước này sử dụng file netlist và file constrants để mô tả nguyên tắc thiết kế, gán các vị trí vào/ra trên chip, các ràng buộc tốc độ, thời gian, tần số,…
Bước này bao gồm các bước: Biên dịch (Translate), Phân bố bản thiết kế vào chip (Map), Định vị và định tuyến kết nối (Place and Route)
Trang 9CHƯƠNG 2 PHẦN 1 GIỚI THIỆU X BOARD
1 KIT THỰC HÀNH CPLD: X BOARD
X board là board mạch được thiết kế sử dụng cho các thiết kế CPLD dựa trên con chip CoolRunner-II của hãng Xilinx Với việc sử dụng board này cùng với các modul hiển thị cho phép người sử dụng có thể thực hành, kiểm tra, tải các chương trình thiết kế VHDL Trên board có cổng USB2 sẽ cung cấp nguồn cho board và tải chương trình thiết kế
Hình 2.1 Board thực hành CPLD (X Board)
2.2 ĐẶC ĐIỂM CỦA KIT THỰC HÀNH CPLD:X BOARD
J3 J4
J10
Chip Xilinx CX2C256 TQ144
Trang 10Hình 2.2 Đặc điểm của kit thực hành CPLD X Board
Kit thực hành CPLD X Board gồm có:
- Chip CPLD Coolrunner II XC2C256-TQ144
- Port USB2 cho phép truyền dữ liệu và chương trình JTAG
- Bộ biến đổi A/D 16bit cho phép đo các đường tín hiệu thực trong quá trình board hoạt động (dữ liệu sẽ được gửi lên PC thông qua card USB)
- Bộ dao động (1000/100/10 KHz)
- 12 LED đơn
- 2 công tắc nhấn
- 6 port kết nối gồm 6 chân (trong đó có 2 chân nguồn VCC=3.3V,GND)
- Port 26 chân, 16 chân 6 chân
- Nguồn điện áp hoạt động của board là 3,3V
2.3 PHÂN TÍCH SƠ ĐỒ CHÂN CỦA X BOARD
Trang 112.3.1 CHIP CPLD Coolrunner II
Hình 2.3: S đ chân kt ni Coolrunner II vi I/O trên board
Kết nối Coolrunner II với 12 LED đơn trên board gồm các chân sau:
LED0 P131 LED1 P105 LED2 P88 LED3 P87 LED4 P86 LED5 P74 LED6 P82 LED7 P83 LED8 P26 LED9 P20 LED10 P6 LED11 P138 Kết nối Coolrunner II với các port I/0 như sau:
Trang 12J1-IO1 P5 J1-IO2 P4 J1-IO3 P3 J1-IO4 P2
J2-IO1 P143 J2-IO2 P142 J2-IO3 P140 J2-IO4 P139
J3-IO1 P104 J3-IO2 P103 J3-IO3 P102 J3-IO4 P101
J4-IO1 P100 J4-IO2 P98 J4-IO3 P97 J4-IO4 P96
J5-IO1 P82 J5-IO2 P81 J5-IO3 P80 J5-IO4 P79
J6-IO1 P78 J6-IO2 P77 J6-IO3 P76 J6-IO4 P75
J7-IO1 P43
Trang 13J7-IO2 P42 J7-IO3 P41 J7-IO4 P40
J8-IO1 P39 J8-IO2 P35 J8-IO3 P34 J8-IO4 P33 Kết nối Coolrunner II với giao diện J14 -JTAG
Hình 2.4 Sơ đồ J14
J14-TMS-JTAG P65
Trang 14J14-TDI-JTAG P63 J14-TDO-JTAG P122 J14-TCK-JTAG P67
Cung cấp nguồn cho X Board
X Board được cấp nguồn thông qua port USB (JP3), JP2 cho phép chọn nguồn điện áp sử dụng bên ngoài
Hình 2.5: Sơ đồ nguyên lý J13
Hình 2.13 Khi J14 (Khi JTAG)
Các chân I/O
Trang 15Hình 2.6 Các port I/O
Trang 16Các port của CPLD được nối trực tiếp ra các port IO để giao tiếp với các khối khác Ngoài ra còn có các port sử dụng cho chức năng configCPLD
Hình 2.7 Port A có ch c năng
Hình 2.8 port B có ch c năng parallel configuration
Hình 2.9 Port D có ch c năng JTAG
Trang 17Hình 2.10 Micro Processor CY7C68013L-56 Micro Processor CY7C68013L-56 có một số tính năng như sau:
- Tần số dao động thạch anh tối đa 24 Mhz
- Bus giao tiếp port A
Hình 2.11 IC2 có ch c năng JP1
Hình 2.12 Khi xung J11
Trang 18CHƯƠNG 2 PHẦN 2 GIỚI THIỆU CÁC MODULE PHÁT TRIỂN KIT
2.1 Module SWT (Switch module board)
SWT board có 4 switch dùng để đặt các ngõ vào trạng thái “on” hay “off” Xem hình 2.1
- Mỗi switch mắc nối tiếp với điên trở
- Header 6 chân: 4 chân SW, 2 chân nguồn: Vcc và GND
Mô t ch c năng:
- Các switch có thể dùng ở 2 mode: mode switch và mode dữ liệu
- Khi switch ở vị trí trên: SW được nối với nguồn Vcc (mức “1”), khi SW ở
vị trí dưới: SW nối với GND (mức “0”)
- SWT có thể kết nối trực tiếp với Digilent system boards, hay kết nối thông qua cáp 6 pin
Hình 2.1a
Hình 2.1b
Trang 19Hình 2.1c: S đ nguyên lý ca module SWT
2.2 Module 8LD (8 LED đơn)
8TD board có 8 led đơn được kết nối với các transistor Led sáng tương ứng với mức logic cao khi được cung cấp bởi dòng ít hơn 1mA Xem hình 2.2
- 8 led sáng màu xanh
Trang 20
Hình 2.2a
Hình 2.2b
Trang 21Hình 2.2c: Sơ đồ nguyên lý của module 8LD
3.3 Module SSD ( LED 7 đoạn)
Module SSD có 2 led 7 đoạn có thể kết nối trực tiếp với Digilent system board Led 7 đoạn có độ sáng cao với dòng nhỏ hơn 5mA, vì thế có thể kết nối trược tiếp với hầu hết các hệ thống board Xem hình 3.3
- 2 led 7 đoạn
- Connector 6 chân
Hình 3.3a
Trang 22- Một mạch quét điều khiển hiển thị trên 2 led Khi có tín hiệu anode, tín hiệu trên cathode trên mỗi led sẽ lặp đi, lặp lại liên tục với tần số nhanh hơn đáp ứng của mắt Mỗi led chỉ sáng ở một nửa thời gian,lúc mắt chưa nhận ra trạng thái tắt của led thì nó đã sáng lại và do đó led sáng như liên tục Nếu tần số quét thấp (khoảng 45Hz), thì ta sẽ thấy led sáng nhưng bị rung
- Để hiển thị tốt, cả 2 led nên được điều khiển sáng trong khoảng thời gian
từ 1ms đến 16ms (tương ứng với tần số quét từ 1KHz đến 60Hz) Ví dụ, với f=60Hz, thời gian cả 2 led sáng một lần là 16ms, mỗi led chỉ sáng trong khoảng ½ chu kỳ quét, hay 8ms Nếu Cat1 = 0 trong khi AB và AC bằng 1 thì số “1” sẽ hiển thị ở led vị trí 1 Sau đó nếu Cat2 = 0 trong khi
AA, AB và AC bằng 1 thì số “7” sẽ xuất hiện ở vị trí led 2 Nếu Cat1 và AB,AC được dẫn trong 8ms và sau đó Cat2, AA,AB,AC dẫn trong 8ms thì hiển thị số “17” Xem giản đồ thời gian ở hình 3.3d
Trang 23Hình 2.3d
Hình 3.3e
Hình 3.3f: Sơ đồ nguyên lý của module SSD
Trang 243.4 Module PS/2
Module PS/2 cho phép Digilent system board gởi và nhận tín hiệu từ bàn phím PS/2 hay chuột
- Header 6 chân để kết nối với board hệ thống
- Cổng PS/2 dùng kết nối với bàn phím hay chuột
- Jumpers chọn nguồn kết nối
Hình 3.4a
Trang 25- Chú ý: Một số bàn phím và chuột có thể hoạt động ở điện áp 3.3V, tuy nhiên một số loại cần điện áp 5V Cẩn thận kết nối đúng cực khi dùng nguồn ngoài, và điện áp không được lớn hơn 5V
- Bàn phím và chuột cả hai dùng “khoảng thời gian” tín hiệu giống nhau
Cả hai dùng từ 11 bit gồm bit start, stop, và bit parity lẻ, nhưng gói dữ liệu được tổ chức khác nhau, giao tiếp bàn phím cho phép truyền dữ liệu theo hai hướng (host device có thể làm sáng led trên bàn phím) Tín hiệu
dữ liệu và xung clock chỉ được truyền khi việc truyền dữ liệu xảy ra, trong các trường hợp khác chúng ở trạng thái “idle”, có mức logic ‘1’, hình 3.4d “Khoảng thời gian” được định nghĩa tín hiệu cần thiết cho chuột giao tiếp với host, hay giao tiếp hai hướng của bàn phím
Hình 3.4d: Bus thời gian
Bàn phím
- Bàn phím dùng cực thu để hở để bàn phím hay host device gắn vào có thể dẩn trên bus 2 dây (nếu host device không gởi dữ liệu tới bàn phím, khi đó host chỉ là port ngõ vào)
Trang 26- Bàn phím loại PS/2 dùng mã scan để truyền data phím nhấn (gần như tất
cả bàn phím hiện nay dùng loại PS/2) Mỗi phím nhấn có 1 mã scan mà
mã này sẽ được gởi khi phím nhấn, nếu nhấn phím và giử thì mã scan sẽ được gởi lặp đi lặp lại mỗi 100ms Khi 1 phím được thả ra, mã “F0” sẽ được gởi đi theo sao mã scan của phím đó Nếu 1 phím được “shift” để tạo ra ký tự mới (chử in), khi đó ký tự shift được gởi thêm và mã scan nguyên thủy, và host device phải xác định dùng ký tự nào Đối với các phím mở rộng, gởi “E0” phía trước mã scan ( ta có thể gởi nhiều hơn 1
mã scan), khi phím mở rộng được thả ra, “E0 F0” được gởi theo sau mã scan
Hình 3.4e
- Host device cũng có thể gởi dữ liệu đến bàn phím:
o ED: Set đèn Led Num Lock, Caps Lock, và Scroll Lock Sau khi nhận “ED” bàn phím sẽ gởi lại “FA” , khi đó host gởi 1 byte để set trạng thái led Bit 0 set Scroll Lock, bit 1 set Num Lock, bit 2 set Caps Lock, bit 3 đến 7 không dùng đến
o EE: Echo Trong lúc đang nhận lệnh echo, bàn phím gởi lại “EE”
o F3: Set tốc độ lặp lại mã scan Bàn phím nhận “F3” và gởi về “FA”, sau đó host gởi byte thứ 2 set tốc độ lặp lại
o FE: Gởi lại (resend) Trong lúc đang nhận “FE” bàn phím gởi lại mã scan cuối cùng
- Bàn phím gởi dữ liệu đến host trong từ 11 bit gồm bit ‘0’ start, theo sau là
8 bit mã scan (LSB first), bit parity lẽ, và cuối cùng bit ‘1’ stop Bàn phím
Trang 27phát ra 11 clock (20-30KHz) khi dữ liệu được gởi, data chỉ có giá trị ở
cạnh xuống của xung clock
Mouse
- Khi chuột di chuyển ngõ ra là tín hiệu xung clock và tín hiệu dữ liệu,
ngược lại tín hiệu ở mức logic ‘1’ Mỗi lần chuột di chuyển, 3 từ 11 bit
được gởi từ chuột về host device Mỗi từ 11 bit chứ bit ‘0’ start, theo sau
là 8 bit dữ liệu (LSB first), bit parity lẽ, và cuối cùng bit ‘1’ stop Vì vậy,
mỗi lần truyền dữ liệu gồm 33 bit, vị trí bit 0, 11 và 22 là ‘0’ start bit; bit
11,21, và 33 là ‘1’ stop bit 3 vùng data 8 bit chứ dữ liệu di chuyển Dữ
liệu có giá trị khi có cạnh xuống của xung clock, tần số của clock từ
20-30KHz
- Giá trị của các vùng dữ liệu khi chuột di chuyển trong hệ thống tọa độ:
o Khi di chuyển sang phải sẽ tạo ra số dương ở field X và tạo ra số
âm khi di chuyển sang trái
o Di chuyển lên tạo số dương ở field Y, và số âm khi di chuyển
xuống
o Độ lớn của X và Y cho biết tốc độ di chuyển của chuột, số càng lớn
thì tốc độ di chuyển của chuột càng nhanh
o XY và YY bit trong status byte cho biết chuột di chuyển overflow, ‘1’
nghĩa là overflow xảy ra
o XS và YS bit trong status byte là các bit dấu, ‘1’ chỉ số âm
o L và R field trong status byte cho biết nút trái hay phải được nhấn,
‘1’ nút được nhấn
- Khi chuột di chuyển liên tục, 33 bit sẽ được truyền đi lặp lại mỗi 50ms
Hình 3.4f
Trang 28Hình 3.4g: Sơ đồ nguyên lý của module PS/2
Module RS232 được thiết lập như một thiết bị truyền dữ liệu (Data communications equipment - DCE), nó kết nối với thiết bị đầu cuối (Data terminal equipment - DTE) như port nối tiếp trên PC, dùng cáp thẳng
- Max2322 chuyển đổi RS232
- Connector DB9 và header 6 chân
- Truyền và nhận dữ kiệu
- Chức năng RTS và CTS handshaking
Hình 3.5a
Trang 29- Module RS232 được thiết kế làm việc cả với các board lập trình logic và board điều khiển nhúng Hầu hết Digilent system board có connector 6 chân cho phép module RS232 kết nối trực tiếp hay kết nối thông qua cáp
6 chân
Hình 3.5b
- Module RS232 được kết nối như một DTE Tín hiệu RS232 được đặt tên từ DCE Tín hiệu TXD mang dữ liệu từ DCE đến DTE, vì vậy tín hiệu TXD ở chân 3 là ngõ ra của bộ receiver kết nối vối ngõ vào của UART trên Digilent system board Tương tự, tín hiệu RXD mang dữ liệu từ DTE đến DCE và là ngõ vào của bộ receiver trên module RS232, kết nối với ngõ ra của UART trên system board Hình 3.5b
- Tín hiệu CTS ở chân 1 có thể kết nối với ngõ vào của transmitter và RTS ở chân 2 có thể kết nối với ngõ ra của receiver Các kết nối này thực hiện bằng các jumper block JP1, JP2
- Board điều khiển nhúng Digilent, như Cerebot, có 1 hay nhiều kết nối với tín hiệu UART có cấu hình đúng cho kết nối trực tiếp với module RS232.Trên các board lập trình logic Digilent, như Basys hay Nexys, UART phải được định nghĩa mức logic của FPGA hay CPLD và các kết nối tín hiệu phải được định nghĩa để kết nối với UART, và các chân thích hợp
Trang 30Dùng jumper blocks JP1 và JP2
- JP1 và JP2 dùng để đặt cấu hình cho module RS232 hoạt động ở 3 dây
hay 5 dây Chân 1 và 2 của JP1 được nối với chân 1 và 2 của connector
J1 Chân 1 và 2 của JP2 nối với CTS transmitter và RTS receiver
- Để cấu hình cho module RS232 như DTE 3 dây không handshaking,
ngắn mạch 2 chân JP2, không ngắn mạch JP1 Vòng lặp này, RTS quay
lại CTS trên module RS232, không nối chân 1 và 2 trên J1
- Để cấu hình cho module RS232 như DTE 5 dây với RTS/CTS bắt tay, nối
chân 1 của JP1 với chân 1 của JP2, nối chân 2 của JP1 với chân 2 của
JP2 Kết nối này, CTS transmitter đến chân 1 của J1 và RTS receiver
đến chân 2 của J1
Hình 3.5c: Sơ đồ nguyên lý của module RS232
Trang 313.6 Module CLS
Module CLS có thể dùng để hiển thị thông tin quan trọng trong quá trình phát triển chương chình, hay giao tiếp với người sử dụng sau khi project hoàn thành
Module có khả năng thực thi rất nhiều chức năng khác nhau như xóa những ký
tự đặc biệt, đặt nhiều chế độ hiển thị khác nhau, cuộn, và hiển thị những ký tự
do người dùng định nghĩa Các hướng dẫn cũng được ghi rỏ dùng những chuỗi escape để gởi các lệnh đến bộ vi điều khiển Atmel Atmega48 trên board Hiển thị trên module được điều khiển bởi AVR và AVR điều khiển tất cả tính chất trên board
Hình 3.6a
Mô t ch c năng:
- Giao tiếp với AVR trên module dùng UART, SPI, kết nối nối tiếp TWI Những ký tự được ghi ra màn hình đơn giản bằng cách gởi ký tự trên link giao tiếp Các ký tự xuất hiện trên màn hình ở vị trí hiện tại của con trỏ
- Để set vị trí con trỏ, và gởi các hướng dẫn khác bằng cách gởi các chuỗi escape Một chuỗi escape được chỉ rõ: đầu tiên gởi ký tự escape, theo sau là ‘[‘ , zero hay những thông số bằng số khác được phân biệt bằng dấu ‘;’ theo sau là ký tự cho yêu cầu riêng Tất cả các hướng dẫn được liệt kê trong “Instruction Set” như bảng 3.6a
Communication Options
Để set phương pháp giao tiếp trên board, dùng các jumper MD0, MD1 và MD2 trên board Cấu hình các jumpers được trình bày ở bảng 3.6b Đối với board Rev D board, jumper không nối được miêu tả bằng 0, và có nối là 1 Với board Rev E, jumper không nối được miêu tả là 1 và có kết nối là 0
Connetor J1 dùng cho giao tiếp SPI Connector J2 dùng cả cho giao tiếp UART và TWI Connector J4 và J5 được dùng cho các thiết bị TWI
Trang 32Hình 3.6b
Power Supply Options
Module tương ứng với nguồn DC ngoài có điện áp từ 2.7V đến 5.5V Dùng điện áp ngoài khoảng này có thể làm hỏng module và các thiết bị kết nối Module có thể lấy nguồn thông qua header 6 chân của board J1 hay J2, hay thông qua connector J6 hay J7
Khi module được kết nối với vi điều khiển Digilent khác hay FPGA board, các board này cấp nguồn cho module PmodCLS qua Pmod connector Host board được jump cung cấp 3.3V trên chân Vcc của connector Module khi đó được cấp nguồn bởi host board power supply
Instruction Set
Module CLS có khả năng thực thi nhiều chỉ dẫn khác nhau Hướng đẫn được gởi dùng chuổi escape Mỗi chuổi escape bắt đầu với ký tư ESC ( code ký tự là 0x1B or decimal 27), theo sau là ‘[‘, kế tiếp là 0 hay thông
số phân biệt bởi dấu ‘;’ và cuối cùng ký tự yêu cầu
Trang 33Bảng 3.6c
Trang 34Bảng 3.6d
EEPROM
Trước khi muốn lưu trữ bất kỳ giá trị nào vào địa chỉ EEPROM, ghi vào EEPROM thì trước hết phải enable Lệnh enable ghi EEPROM phải được gởi trước Nếu lệnh enable ghi EEPROM không gởi trước lệnh ghi EEPROM sẽ bị lờ đi
T"o ký t%
Module có thể hiển thị 8 ký tự cùng một lúc, nhưng chỉ có khả năng lưu trữ 4 trong 8 ký tự 3 ký tự được lưu trong bảng ký tự của EEPROM, và 1
ký tự được đưa vào Ram của LCD
Để tạo 1 ký tự mới, gởi lệnh (ESC)[<pn>…<pn>;<ps>d trong đó, <pn> là thông số dạng số mô tả hàng của ký tự và <ps> là thông số lựa chọn (số thập phân từ 0 đến 7) Một ký tự được định nghĩa: gồm có 8 hàng vì thế chuổi escape để định nghĩa phải có 8 <pn> theo sau là <ps> đặc trưng của ký tự
Để tạo 1 ký tự mới, trước hết phải vẽ mẫu Sau đó, xác định giá trị của mỗi hàng trên ký tự Lưu ý, bên trái có trọng số bit lớn nhất Ghi lại mỗi hàng, từ trên xuống dưới, và ghi lại ký tự ghi vào Mỗi hàng của ký tự chứa 6 pixels, và chỉ 6 bit thấp của mỗi byte được dùng
Ví dụ, ký tự sau được ghi vào viết như sau:
IcdChar(0x1B);
IcdString(‘[14;13;21;31;23;16;31;14;0d”);
Trong đó IcdChar() và IcdString() là các hàm ghi ký tự và dãy ký tự
Lệnh ở trên ghi ký tự vào địa chỉ ‘0’ trên bảng Ram của LCD Để hiển thị
ký tự này, gởi địa chỉ của ký tự, ví dụ trường hợp này:
IcdChar(0x00);
Ký tự sẽ xuất hiện ở vị trí con trỏ của LCD
Trang 35Hình 3.6e: Sơ đồ chân của các connector
Trang 36CHƯƠNG 3 ISEWebPACK
3.1 GIỚI THIỆU:
ISE WebPACK là công cụ phần mềm cho phép lập trình ngôn ngữ VHDL, thiết kế, kiểm tra các thiết kế, tải được miễm phí trên mạng, sử dụng được cho CPLD Coolrunner II
Trong chương 4 này, sẽ gồm có 4 phần là:
- Hướng dẫn cài đặt
- Hướng dẫn thiết kế một project
- Hướng dẫn chạy kiểm tra mô phỏng thiết kế
- Hướng dẫn giao tiếp với kit CPLD X Board
3.2 HƯỚNG DẪN CÀI ĐẶT
Phần mềm ISE WebPACK phục vụ cho việc viết chương trình VHDL có thể tải miễn phí từ trang web của Xilinx:
http://www.xilinx.com/ise/logic_design_prod/webpack.htm
Hình 3.1 Ti phn m'm ISE t( trang web ca XIlinx
Hoặc cài đặt từ dĩa CD có bản quyền:
Trang 373.3 HƯỚNG DẪN TẠO MỘT THIẾT KẾ MỚI:
3.3.1 KHAI BÁO THIẾT KẾ
Bắt đầu phần mềm ISE, chọn:
Start → Programs→ Xilinx ISE 10.1→ ISE → Project Navigator
Tạo một thiết kế mới như sau:
Bước 1: Chọn File→New Project
Hình 3.2 C)a s* thit k - Tên thit k
Bước 2: Đặt tên thiết kế là “Tutorial” và đường dẫn lưu file thiết kế
Bước 3: Chọn Next>
Bước 4: Nhập những thông số cho project mới như sau:
Device Family: CoolRunner-II
Device: xc2c256
Package: TQ144
Speed Grade: -7
Synthesis Tool: XST (VHDL/Verilog)
Simulator: ISE Simulator (VHDL/Verilog)
Language: VHDL
Trang 38Hình 3.3 Chn các thông s cho chip CPLD
Bước 5: Chọn Next> Chọn tiếp Next> trong cửa sổ New Source
Bước 6: Chọn tiếp Next> trong cửa sổ Add Existing Source Chọn Finish
Bước 7: Tạo một nguồn mới cho thiết kế bằng cách chọn Project →New
Trang 39Bước 9: Chọn Next>
Đầu tiên ta cần tạo một module chia tần số từ 100 kHz từ bộ dao động trên board xuống tần số thấp đủ để mắt người quan sát được Vì vậy ta sử dụng bộ chia xung clock Coolrunner II chia 16, sau đó tạo bộ đếm 10 để có tần số đạt được khoảng 6 Hz
Bước 10: Tạo module đếm 4 bit
Hình 3.5 Khai báo ngu n VHDL
Bước 11: Module chia tần số có 2 port: clock_osc là ngõ “in”, clock_div là
ngõ “out”
Bước 12: Chọn Next> tiếp theo cho đến khi chọn nút Finish
Lúc này file “clock_divide.hdl” được tạo ra trong thiết kế ở cửa sổ Sourse in
Project
Hình 3.6 C)a s* Source in Project
Mã nguồn sẽ tự động xuất hiện khi ta nhấp đôi chuột vào file hdl hoặc bấm
chuột phải, chọn Open
Trang 403.3.2 SOẠN THẢO CHƯƠNG TRÌNH HDL
3.3.2.1 SOẠN THẢO DỰA TRÊN KHUÔN MẪU
Để sử dụng các dạng khuôn mẫu có sẵn của ngôn ngữ thiết kế, ta theo các bước như sau:
Bước 1: Trong phần soạn thảo file HDL, di chuyển con trỏ đến giữa phần begin
và end Behavioral
Bước 2: Mở phần mẫu ngôn ngữ bằng cách nhấn nút Project navigator trên thanh công cụ
Hoặc chọn Edit → Language Template
Bước 3: Theo đường dẫn sau:
VHDL → Device Primitive Instantiation → CPLD → Clock Components → CR-II Clock Divider → Divide by 16 → Simple Divider (CLK_DIV16)
Bước 4: Chép tất cả dòng chương trình mẫu để vào file clock_divide.hdl
Bước 5: Đóng cửa sổ Language Template nếu muốn
Bước 6: Chú ý những chữ có màu trong khi soạn thảo HDL là những dòng lệnh
Hình 3.7 CLK_16 trong file HDL
...Hình 2.1 Board thực hành CPLD (X Board)
2.2 ĐẶC ĐIỂM CỦA KIT THỰC HÀNH CPLD: X BOARD
J3 J4
J10
Chip Xilinx CX2C256 TQ144
Trang... class="page_container" data-page="10">Hình 2.2 Đặc điểm kit thực hành CPLD X Board
Kit thực hành CPLD X Board gồm có:
- Chip CPLD Coolrunner II XC2C256-TQ144
- Port USB2... CHO CPLD
Quá trính thiết kế cho CPLD thực công cụ phần mềm ISE, bao gồm bước sau:
Bước 1: Nhập thiết kế (Design Entry)
Đây bước quan trọng q trình thiết kế cho CPLD