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

Luận văn nghiên cứu khả năng lập trình của FPGAs XC4005XL hãng Xilinx và các chip MAX7000S, chip FLEX10K hãng Altera và ứng dụng thực tiễn

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.71 MB, 149 trang )

GVHD: LÊ ĐỨC HÙNG
 PHẦN 1: KIT XS40 HÃNG XILINX
Họ Xilinx 4000 là thiết bò họ FPGA với 2,000 đến 180,000 cổng tiện ích. Nó
được cấu hình bởi lập trình trong SRAM nội.
CHƯƠNG I: CẤU TRÚC TỔNG QUÁT CỦA FPGA
I. Cấu trúc chung
1. Các logic block
Cấu trúc và nội dung của logic block được gọi là kiến trúc của nó. Kiến trúc
của logic block có thể được thiết kế theo nhiều cách khác nhau. Một số logic block
có thể chỉ đơn giản là các cổng AND hai ngõ nhập. Các logic block khác có cấu trúc
phức tạp hơn như các multiplexer hay các bảng dò tìm (look-up table). Trong một số
1
GVHD: LÊ ĐỨC HÙNG
loại FPGA, các logic block có thể có cấu trúc hoàn toàn giống PAL. Hầu hết các
logic block chứa một số loại flip-flop để hỗ trợ cho việc thực hiện các mạch tuần tự.
2. Khối I/O (IOB)
Mỗi chân I/O của linh kiện XC4000 có một IOB lập trình được với các buffer
tương thích với các mức tín hiệu của TTL và CMOS. Nó được sử dụng như một lối
ra, lối vào hoặc port 2 chiều. Một IOB được đònh cấu hình như một lối vào có thể có
lối vào trực tiếp, chốt. Với việc đònh cấu hình một lối ra, IOB có lối ra trực tiếp. Lối
ra bộ đệm của IOB có bộ điều khiển skew và slew. Các thanh ghi có giá trò đối với
đường dẫn lối vào lối ra của một IOB được truyền các xung đảo riêng biệt. Có một
set và reset toàn cục.
3. Các nguồn kết nối
Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là kiến trúc
routing (routing architecture). Kiến trúc routing gồm các đoạn dây nối và các chuyển
mạch lập trình được. Các chuyển mạch lập trình được có thể có nhiều cấu tạo khác
nhau như: pass-transistor được điều khiển bởi cell RAM, các cầu chì nghòch (anti-
fuse), EPROM transistor và EEPROM transistor. Giống như logic block, có nhiều
cách khác nhau để thiết kế các kiến trúc routing. Một số FPGA cung cấp nhiều kết
nối đơn giản giữa các logic block, một số khác cung cấp ít kết nối hơn nên routing


phức tạp hơn.
II. Các loại FPGA trên thò trường
Phần này giới thiệu một số họ FPGA của các hãng, trong đó giới thiệu kiến trúc
FPGA của các hãng lớn Quicklogic, Xilinx, Actel và Altera
Công ty Kiến trúc tổng quát Kiểu khối Logic Công nghệ lập trình
Xilinx Symetrical Array Lookup Table Static RAM
Actel Row-based Multiplexer-based Anti-fuse
Altera Hierarchical-PLD PLD Block EPROM
Plessey Sea-of-gates NAND-gate Static RAM
Plus Hierarchical-PLD PLD Block EPROM
AMD Hierarchical-PLD PLD Block EEPROM
QuickLogic Symetrical Array Multiplexer-based Anti-fuse
Algotronix Sea-of-gates Multiplexer &
Based Gates
Static RAM
Concurrent Sea-of-gates Multiplexer &
Based Gates
Static RAM
Crosspoint Row-based Transitor Pairs &
Multiplexer
Anti-fuse
2
GVHD: LÊ ĐỨC HÙNG
CHƯƠNG II: MẠCH XS40
I. Đặc điểm
XS40_005XL gồm có:
• XC4005XL FPGA
• Vi điều khiển 8031
• SRAM 32K Byte
• Bộ dao động lập trình được 100MHz

• Cổng song song
• Cổng chuột, bàn phím loại PS/2
• Cổng monitor VGA
• Led 7 đoạn
• 84 chân giao tiếp với XSTEND board
• Socket EFROM nối tiếp
• Jack cắm nguồn 9V DC
• Mức điện thế quy đònh 5V/3.3V
• Dây cáp tải qua cổng LPT
• Phần mềm tiện ích XSTOOL
Mạch XS40_005XL là lý tưởng cho việc thực hiện các thiết kế với FPGA, lập
trình vi điều khiển hoặc codesign phần cứng/phần mềm. XC4005XL gồm 9000 cổng,
hoạt động ở mức thế là 5V. Vì vậy ta có thể nối nó đến các chip TTL. Thiết kế logic
số được nạp vào FPGA. Vi điều khiển sử dụng FPGA như một bộ xử lý chung.
SRAM 32K byte lưu trữ hoặc cung cấp những chương trình/dữ liệu vi điều khiển như
việc lưu trữ thông dụng đối với thiết kế FPGA cơ bản. XC4005XL nối tiếp của
FPGAs được hỗ trợ bởi phần mềm XILINX Foundation và Alliance Series.
Hình 1: Mô tả các thành phần trên mạch XS40
3
GVHD: LÊ ĐỨC HÙNG
II. Mô tả mạch XS40
1. Nguồn điện
Mạch XS40 sử dụng nguồn 9V để thực hiện các thiết kế logic với bộ vi điều
khiển. Đặt mạch XS40 trên một bề mặt không dẫn điện, sau đó cắm nguồn vào jack
J9 của mạch như hình 2. Mạch quy đònh điện thế sẽ tạo ra mức thế được yêu cầu bởi
phần còn lại của XS40.
2. Kết nối Breadboard
Một mạch con không hàn có thể nối đến hai hàng chân của mạch XS40 với
những lỗ cắm cách nhau 0.1” (tốt nhất nên chọn một trong những mạch chuẩn của
A.C.E). Khi cắm vào, tất cả các chân của FPGA, vi điều khiển và SRAM đều được

nối đến những mạch khác trên breadboard. (Các con số được ghi bên cạnh các hàng
chân của mạch XS40 tương ứng với số của chân FPGA). Nguồn điện vẫn có thể được
cắm vào chân J9 của mạch XS40 hoặc được cắm trực tiếp thông qua một số chân ở
bên dưới của mạch. Chỉ cần nối nguồn +5V, +3.3V và nối mass đến các chân của
mạch XS40. (Sử dụng nguồn +3.3V nếu mạch XS40 chứa loại XC4000XL của
FPGA).
Loại mạch XS40 Chân GND Chân +5V Chân +3.3V
XS40-005E V1.4 52 2 ; 54 None
XS40-005XL V1.4 52 2 54
XS40-010E V1.4 52 2 ; 54 None
XS40-010XL V1.4 52 2 54
XS40-010 V1.4 52 2 ; 54 None
Bảng 1: Nguồn điện cung cấp cho các chân của mạch XS40
Hình 2: Các kết nối bên ngoài của mạch XS40
4
GVHD: LÊ ĐỨC HÙNG
Hình 3: Sự sắp xếp các thành phần trên mạch XS40
3. Kết nối máy tính với mạch XS40
Nối mạch XS40 với một máy tính bằng một dây cáp 6’. Một đầu cáp được gắn
vào cổng song song của máy tính và đầu kia nối đến bộ nối DB-25 (J1) ở phần trên
của mạch XS40 (như hình 2).
4. Kết nối một monitor VGA với mạch XS40
Ta có thể hiển thò hình ảnh trên một màn hình VGA bằng cách nối đến bộ nối
15 chân J12 ở phần dưới mạch XS40 (như hình 2). Ta sẽ phải download driver của
VGA vào mạch XS40 để hiển thò hình ảnh.
5. Kết nối chuột/bàn phím với mạch XS40
Các lối vào có thể nhận từ bàn phím hoặc chuột bằng cách nối nó đến chân J5
của bộ nối loại PS/2 ở phần dưới của mạch XS40 (Như hình 2).
6. Sự bố trí các jumper trên mạch XS40
Các jumper được mặc đònh (Như trong bảng 2) để đònh cấu hình cho mạch XS40

trong một môi trường thiết kế. Thay đổi vò trí các jumper với điều kiện là:
• Đang sử dụng chế độ mạch XS40 độc lập, nó không liên kết với cổng song
song của máy tính
• Thiết lập lại tần số xung trên mạch XS40
• Thực thi mã của bộ vi điều khiển từ ROM nội thay vì SRAM ngoại trên
mạch XS40. (Muốn sử dụng tính năng đặc biệt này thì phải thay thế bộ vi
điều khiển ROMLESS trên mạch XS40 với một loại ROM)
5
GVHD: LÊ ĐỨC HÙNG
Jumper Chế độ Chức năng
J4 On
(mặc đònh)
Đặt shunt nếu đang download mạch XS40 hoặc XSP
thông qua cổng song song
Off Tháo bỏ shunt nếu mạch XS40 hoặc XSP đang được đònh
dạng thông qua EEFROM nối tiếp trên mạch
J6 On Đặt shunt khi EEPROM nối tiếp trên mạch (U7) đang
được lập trình
Off
(mặc đònh)
Tháo bỏ shunt trong khi sử dụng mạch thông thường
J7 1-2 (ext)
(mặc đònh)
Đặt shunt vào chân 1 và chân 2 (ext) nếu chương trình
vi điều khiển 8031 được lưu trữ trong SRAM ngoại
32KByte (U8) của mạch XS40
2-3 (int) Đặt shunt vào chân 2 và chân 3 (int) nếu chương trình
được lưu trữ nội bộ trong vi điều khiển
J8 On Đặt shunt trên mạch XS40 hoặc XSP sử dụng loại
XC4000XL 3.3V của họ FPGA

Off Tháo bỏ shunt trên mạch XS40 hoặc XSP sử dụng loại
XC4000E 5V của họ FPGA
J10 On Đặt shunt nếu mạch XS40 hoặc XSP đang được đònh
dạng từ EEFROM nối tiếp trên mạch
Off
(mặc đònh)
Tháo bỏ shunt nếu mạch XS40 hoặc XSP đang được
download từ cổng song song của máy tính
J11 On
(mặc đònh)
Đặt shunt nếu mạch XS40 hoặc XSP đang được
download từ cổng song song của máy tính
Off Tháo bỏ shunt nếu mạch XS40 hoặc XSP đang được đònh
dạng từ EEFROM nối tiếp trên mạch
J12 1-2 (osc)
(mặc đònh)
Đặt shunt vào chân 1 và chân 2 (osc) trong các thao tác
thông thường khi bộ dao động đang phát ra một tín hiệu
xung clk
2-3(set) Đặt shunt vào chân 2 và chân 3 (set) khi tần số bộ dao
động đang được thiết lập
Bảng 2: Thiết lập các jumper trên mạch XS40 và XSTEND
III. Mối quan hệ giữa các linh kiện trên mạch XS40
Trên mạch XS40, vi điều khiển và FPGA đã được kết nối với nhau. Chúng có
những giới hạn để làm cho chương trình vi điều khiển và phần cứng FPGA tương tác
lẫn nhau. Một mức cao sẽ xét bộ vi điều khiển, SRAM và FPGA được kết nối như
thế nào được trình bày như hình 4:
6
GVHD: LÊ ĐỨC HÙNG
Hình 4: Sơ đồ kết nối các thành phần trên mạch XS40

Ghi chú: * = not conectted on XSP Board
** = applies to XS40 + Board
Lối ra của bộ dao dộng lập trình được đưa trực tiếp đến lối vào xung đồng bộ
của FPGA. FPGA sử dụng xung này để phát ra một xung gởi đến lối vào xung
XTAL1 của vi điều khiển. Vi điều khiển đa thành phần 8 bit thấp của một đòa chỉ bộ
nhớ với 8 bit dữ liệu và các lối ra được nối đến P0. Cả những đường dữ liệu SRAM
và FPGA đều được nối đến P0. SRAM sử dụng kết nối này để chuyển dữ liệu đến vi
7
GVHD: LÊ ĐỨC HÙNG
điều khiển và nhận dữ liệu từ vi điều khiển. FPGA được lập trình để chốt đòa chỉ lối
ra ở P0 dưới sự điều khiển của tín hiệu ALE và gửi các bit đòa chỉ đã chốt đến 8
đường đòa chỉ thấp hơn của SRAM.
Trong khi đó, 8 bit đòa chỉ cao là lối ra ở P2 của vi điều khiển. Trên mạch
XS40, SRAM 32Kbyte sử dụng 7 trong 8 bit đòa chỉ này trong khi SRAM 128Kbyte
lấy cả 8 bit đòa chỉ. FPGA cũng nhận đòa chỉ 8 bit cao và giải mã cùng với đường
điều khiển PSENB và Read/Write (chân P3.6 của P3) từ vi điều khiển để phát ra tín
hiệu CBE và OBE cho phép SRAM và lối ra của nó điều khiển, hoặc đưa tín hiệu
CBE hoặc OBE lên cao để vô hiệu hóa SRAM và ngăn cản nó khỏi ảnh hưởng trên
phần còn lại của mạch XS40.
Một trong những lối ra của FPGA điều khiển chân reset của vi điều khiển. Vi
điều khiển có thể tránh khỏi ảnh hưởng trên phần còn lại của mạch bằng cách cho
chân RST lên cao thông qua FPGA. (Khi RST hoạt động, các chân của vi điều khiển
được kéo lên cao).
Những chân I/O đa năng của P1 và P3 của vi điều khiển nối đến FPGA và có
thể dùng chung I/O giữa FPGA và vi điều khiển. Thêm vào chân I/O đa năng đó, các
chân của P3 cũng có những chức năng riêng như các máy phát , máy thu nối tiếp,
các đầu vào ngắt, các đầu vào đònh thời và các tín hiệu điều khiển Read/Write của
SRAM ngoại. Nếu không sử dụng hàm riêng biệt thì ta có thể dùng chân kết hợp cho
I/O đa năng giữa vi điều khiển và FPGA. Tuy nhiên, trong nhiều trường hợp, ta sẽ
lập trình cho FPGA để sử dụng các chân đặc biệt của vi điều khiển. (Ví dụ: FPGA có

thể phát ra tín hiệu ngắt vi điều khiển). Nếu muốn kích chân đặc biệt từ một mạch
bên ngoài thì chân I/O của FPGA đã nối với nó phải ở 3 trạng thái.
Một LED 7 đoạn nối trực tiếp đến FPGA. (Các chân của FPGA có thể truyền
đến một monitor VGA). FPGA được lập trình để vi điều khiển có thể điều khiển
LED 7 đoạn thông qua P1 hoặc P3 hoặc chốt bản đồ bộ nhớ cho LED trong bộ nhớ
của vi điều khiển.
Máy tính truyền các tín hiệu đến mạch XS40 thông qua 8 bit dữ liệu ở lối ra
của cổng song song. FPGA đã truy xuất trực tiếp đến những tín hiệu này. Vi điều
khiển cũng có thể truy xuất những tín hiệu này nếu FPGA được lập trình để chuyển
chúng đến vi điều khiển thông qua các chân I/O đa năng.
Mạch XS40 truyền ngược lại máy tính thông qua cổng song song. Các chân
trạng thái của cổng song song được nối đến các chân P1 và P3 của vi điều khiển.
Hoặc là vi điều khiển hoặc là FPGA kích các chân trạng thái. Máy tính có thể đọc
các chân trạng thái để tìm nạp dữ liệu từ mạch XS40.
FPGA cũng truy xuất đến các đường dữ liệu và xung của bàn phím hoặc chuột
được gắn vào cổng PS/2 của mạch
8
GVHD: LÊ ĐỨC HÙNG
IV. Lưu đồ thiết kế giữa vi điều khiển 8031 và FPGA
Lưu đồ thiết kế cơ bản để xây dựng các ứng dụng cho vi điều khiển và FPGA
như hình 5. Đầu tiên phải tìm ra đặc tính cho hệ thống đang thiết kế. Sau đó, xác
đònh lối vào nào là giá trò cho hệ thống và lối ra nào sẽ phát.
Vào lúc này, hệ thống phải phân chia các hàm giữa vi điều khiển và FPGA.
Một số tín hiệu lối vào sẽ đưa vào vi điều khiển, một số sẽ đưa vào FPGA và một số
khác sẽ đi vào cả hai. Tương tự, một số lối ra sẽ được tính toán bởi vi điều khiển và
một số được tính bởi FPGA. Cũng sẽ có thêm một số lối vào và lối ra mới của hệ
thống được tạo ra bởi yêu cầu của cả FPGA và vi điều khiển.
Thông thường, FPGA sẽ sử dụng chủ yếu các hàm bậc thấp mà ở đó sự chuyển
tiếp các tín hiệu xảy ra thường xuyên hơn và mức logic điều khiển đơn giản hơn.
Ngược lại, vi điều khiển được sử dụng đối với các hàm bậc cao mà ở đó các đáp ứng

xảy ra chậm hơn và mức điều khiển logic phức tạp hơn. Một khi thiết kế được phân
chia, gán giá trò các lối vào, lối ra và các hàm cho vi điều khiển và FPGA thì sau đó
thiết kế chi tiết về phần mềm và phần cứng có thể được bắt đầu. Đối với phần mềm,
ta có thể sử dụng chương trình soạn thảo thông dụng để tạo ra file .ASM (Như ngôn
ngữ assembler) và dòch nó thành file .HEX với ASM51 cho vi điều khiển trên mạch
XS40. Đối với phần cứng FPGA, ta sử dụng phần mềm XILINX Foundation để đưa
bảng sự thật và các phương trình logic vào file .ABL hoặc .VHD và dòch nó thành
file .BIT.
Sử dụng chương trình GXSLOAD (được trình bày ở phần sau) để download các
File .HEX và file .BIT vào mạch XS40. GXSLOAD lưu trữ nội dung file .HEX vào
SRAM trên mạch XS40. Sau đó, nó đònh dạng lại FPGA bằng cách nạp file bitstream
vào FPGA.
Khi mạch XS40 được nạp cả phần cứng và phần mềm, ta phải kiểm tra xem nó
đã thật sự hoạt động hay chưa. Thông thường mạch chưa hoạt động, vì vậy ta phải
xen các tín hiệu kiểm tra vào và quan sát kết quả. XSPORT là một chương trình đơn
giản, cho phép gửi các tín hiệu kiểm tra đến mạch XS40 thông qua cổng song song
của máy tính. Ta có thể nhận thấy sự tác động trở lại của hệ thống đến các tín hiệu
từ cổng song song bằng cách lập trình cho FPGA và vi điều khiển để trạng thái lối ra
thông báo trên LED 7 đoạn (Gần giống với lệnh “printf” trong ngôn ngữ lập trình C).
9
GVHD: LÊ ĐỨC HÙNG
Hình 5: Lưu đồ thiết kế FPGA và vi điều khiển
10
GVHD: LÊ ĐỨC HÙNG
CHƯƠNG III: MẠCH XSTEND
I. Đặc điểm và tính năng
Mạch XS40 đưa ra các mẫu thiết kế FPGA và CPLD. Tuy nhiên, kích thước vật
lý của chúng nhỏ làm giới hạn giá trò sơ đồ mạch hỗ trợ mà chúng có thể áp dụng.
Mạch XSTEND gỡ bỏ giới hạn này bằng cách cung cấp thêm mạch hỗ trợ mà XS40
có thể sử dụng thông qua các giao diện breadboard của chúng.

Mạch XSTEND chứa các tài nguyên, mở rộng vùng ứng dụng của các mạch XS
ở 3 vùng:
• Các nút ấn, các công tắc DIP, các LED và vùng mẫu được sử dụng cho các
ứng dụng cơ bản. Các đặc trưng này kết hợp với các mạch XS, sao chép lại
chức năng của mạch HW/UW FPGA trước đây.
• Giao diện màn hình VGA, giao diện chuột/bàn phím cổng PS/2 và SRAM
cho phép được sử dụng trong video và trong tính toán.
• Mã hoá stereo và mạch 2 kênh vào/ra giúp cho việc xử lý tín hiệu audio
trong việc kết hợp các mạch DSP với phần mềm XILINX’s CORE.
Mạch XSTEND mở rộng khả năng của mạch XS40 bằng cách cung cấp:
• Giao tiếp mở rộng cho mạch XS40
• Hỗ trợ thanh LED và LED 7 đoạn.
• Nút ấn và các công tắc DIP
• Một giao diện với các màn hình VGA
• Một giao diện với bàn phím hoặc chuột loại PS/2
• Một SRAM bổ sung 64 Kbytes (tuỳ ý)
• Một stereo codec với các kênh vào và ra trái/phải
• Một giao diện với cáp XILINX Xchecker
• Một vùng mẫu 2.75” * 3.5” với nguồn 3.3V hoặc 5V
• Một bộ kết nối header được thêm vào mạch con.
Những tài nguyên này được trình bày trong mạch XSTEND đơn giản hoá tổng
quan. Mỗi tài nguyên được mô tả trong hình vẽ bên dưới:
11
GVHD: LÊ ĐỨC HÙNG
Hình 1: Layout mạch XSTEND
II. Mô tả mạch XSTEND
1. Vùng lắp đặt mạch XS40
Một mạch XS40 được gắn trên mạch XSTEND sử dụng socket mạch XS.
Những socket này kết hợp với các chân giao diện breadboard của mạch XS cho
phép chúng nối đến tất cả tài nguyên của mạch XSTEND. Để sử dụng một mạch

XS40 với mạch XSTEND, ta cắm nó vào cột bên phải của socket, (nếu dùng mạch
XS95 thì ta cắm nó vào cột bên trái của socket). Có những chỗ đánh dấu trên mạch
XSTEND cho biết cột thích hợp với mỗi loại mạch XS.
Nếu mạch XS nối với một nguồn điện được cấp thông qua chân J9 thì mạch quy
đònh nguồn điện của nó sẽ cung cấp VCC và GND cho mạch XSTEND thông qua
socket. Mạch XS40 với FPGAs có nguồn điện là 3.3V sẽ cung cấp nguồn 3.3V và
5V cho mạch XSTEND, trong khi đó mạch XS40 với FPGAs và XS95 có nguồn điện
5Võ chỉ cung cấp 5V.
Nguồn cấp điện bên ngoài cũng có thể được dùng với mạch XSTEND. Một
nguồn điện 5V được nối với header J12 và nguồn 3.3V được nối vào header J14 như
12
GVHD: LÊ ĐỨC HÙNG
hình 2. Các nguồn cung cấp này cũng được cắm vào mạch XS cũng như mạch
XSTEND.
Hình 2: Kết nối nguồn cung cấp cho mạch XSTEND
 Chú ý
Không cắm nguồn cấp điện thế bên ngoài khi đang cấp nguồn cho mạch
XSTEND với một mạch XS
Không được đặt shunt vào J12 hoặc J14 hoặc là sẽ làm giảm nguồn cung cấp
nối mass và làm hư hại mạch XSTEND và mạch XS đã gắn vào XSTEND.
2. LED
Mạch XSTEND cung cấp một led thanh với 8 led (D1 – D8) và 2 led 7 đoạn
(U1 và U2) được sử dụng bởi mạch XS. Tất cả các led này đều hoạt động ở mức thấp
có nghóa là 1 đoạn led sẽ sáng khi mức logic thấp được kích vào nó. Nếu muốn các
led này hoạt động hay không hoạt động thì ta phải thiết lập jumper như bảng 1:
Jumper Thiết lập
J8 Gỡ bỏ shunt trên jumper này không cho kết nối nguồn điện với thanh
led D1 – D8. Đặt shunt trên jumper cho phép thanh led hoạt động.
J4 Gỡ bỏ shunt trên jumper này không cho kết nối nguồn điện vớiø led 7
đoạn U1. Đặt shunt trên jumper cho phép led U1 hoạt động

J7 Gỡ bỏ shunt trên jumper này không cho kết nối nguồn điện vớiø led 7
đoạn U2. Đặt shunt trên jumper cho phép led U2 hoạt động
J13 Đặt shunt trên jumper này, cho phép các led hoạt động khi ta đang sử
dụng mạch XSTEND với mạch XS95. Nếu đang sử dụng mạch XS40
với mạch XSTEND thì ta gỡ bỏ shunt trên jumper này
Bảng 1: Thiết lập các Jumper cho mạch XSTEND
Listing 1: Sự kết nối giữa các led của mạch XSTEND
# LEFT LED DIGIT SEGMENT CONNECTIONS (ACTIVE-LOW)
NET LSB<0> LOC=P3;
NET LSB<1> LOC=P4;
NET LSB<2> LOC=P5;
NET LSB<3> LOC=P78;
NET LSB<4> LOC=P79;
13
GVHD: LÊ ĐỨC HÙNG
NET LSB<5> LOC=P82;
NET LSB<6> LOC=P83;
NET LDPB LOC=P84;
#
# LEFT LED DIGIT SEGMENT CONNECTIONS (ACTIVE-LOW)
NET RSB<0> LOC=P59;
NET RSB<1> LOC=P57;
NET RSB<2> LOC=P51;
NET RSB<3> LOC=P56;
NET RSB<4> LOC=P50;
NET RSB<5> LOC=P58;
NET RSB<6> LOC=P60;
NET RDPB LOC=P28;
#
#INDIVIDUAL LED CONNECTIONS (ACTIVE-LOW)

NET DB<1> LOC=P41;
NET DB<2> LOC=P40;
NET DB<3> LOC=P39;
NET DB<4> LOC=P38;
NET DB<5> LOC=P35;
NET DB<6> LOC=P81;
NET DB<7> LOC=P80;
NET DB<8> LOC=P10;
3. Công tắc
Mạch XSTEND có một dải 8 công tắc DIP và 2 nút ấn (được đặt là SPARE và
RESET) được sử dụng từ mạch XS. (Có 1 nút ấn thứ 3 được đặt là PROGRAM,
dùng để khởi tạo chương trình của mạch XS40. Nó không được sử dụng như một đầu
vào đa năng). Khi closed hoặc ON, mỗi công tắc DIP kéo chân của mạch XS nối
mass. Khi công tắc DIP open hoặc OFF thì chân được kéo lên cao thông qua điện trở
10K

Khi được ấn, mỗi nút ấn sẽ kéo chân của mạch XS nối mass. Nếu không thì các
chân được kéo lên cao thông qua điện trở 10K

 Chú ý:
Khi không sử dụng, các công tắc DIP sẽ ở phía bên trái trong cấu hình open
hoặc OFF. Vì vậy các chân của mạch XS không nối mass và có thể chuyển đổi giữa
mức thấp và mức cao
14
GVHD: LÊ ĐỨC HÙNG
Listing 2: Sự kết nối giữa công tắc DIP mạch XSTEND và công tắc nút đẩy
và mạch XS40
# DIP SWITCH CONNECTIONS
NET DIPSW<1> LOC=P7;
NET DIPSW<2> LOC=P8;

NET DIPSW<3> LOC=P9;
NET DIPSW<4> LOC=P6;
NET DIPSW<5> LOC=P77;
NET DIPSW<6> LOC=P70;
NET DIPSW<7> LOC=P66;
NET DIPSW<8> LOC=P69;
#
#PUSHBUTTON SWITCH CONNECTIONS (ACTIVE-LOW)
NET SPAREB LOC=P67;
NET RESETB LOC=P37;
4. Giao diện (interface) VGA
Mạch XSTEND cung cấp một mạch XS với một giao diện monitor VGA thông
qua bộ nối J5. Mạch XS có thể truyền các tín hiệu đồng bộ ngang và các tín hiệu
đồng bộ dọc (tác động ở mức thấp) điều khiển chiều rộng và chiều cao của khung
video và truy xuất đến 2 bit của các tín hiệu màu đỏ, xanh lá cây và xang dương. Vì
vậy nó có thể tạo ra các pixel với bất kỳ 2
2
*2
2
*2
2
=64 màu khác nhau.
Listing 3: Sự kết nối giữa giao diện VGA của mạch XSTEND và XS40
# VGA CONNECTIONS
NET VSYNCB LOC=P67;
NET HSYNCB LOC=P19;
NET RED<1> LOC=P18;
NET RED<0> LOC=P23;
NET GREEN<1> LOC=P20;
NET GREEN<0> LOC=P24;

NET BLUE<1> LOC=P26;
NET BLUE<0> LOC=P25;
5. Stereo Codec
Mạch XSTEND có 1 stereo codec nhận 2 kênh lối vào analog từ J9, lượng tử
hoá giá trò analog và gửi các giá trò số đến mạch XS như một chuỗi bitstream. Codec
cũng nhận một chuỗi bitstream từ mạch XS và chuyển đổi nó thành 2 tín hiệu lối ra
analog ra mạch XSTEND thông qua J10.
15
GVHD: LÊ ĐỨC HÙNG
Codec được đònh cấu hình bằng cách thiết lập shunt trên các jumper như bảng 2
Jumper Thiết lập
J11 Đặt shunt trên jumper này nghóa là không cho phép codec hoạt
động bằng các giữ nó ở trạng thái reset. Gỡ bỏ shunt trên jumper
khi đang sử dụng codec
J17 Gỡ bỏ shunt để ngăn cản chuỗi dữ liệu lối ra từ mạch XS. Đặt
shunt trên jumper khi đang sử dụng codec.
Bảng 2: Thiết lập jumper cho codec XSTEND
Listing 6: Sự kết nối giữa stereo codec của mạch XSTEND và mạch XS40
# STEREO CODEC CONNECTIONS
NET MCLK LOC=P9; #MASTER CLOCK TO CODEC
NET LRCK LOC=P66; #LEFT/RIGHT CODEC CHANNEL CODEC
NET SCLK LOC=P77; #SERIAL DATA CLOCK
NET SDOUT LOC=P6; #SERIAL DATA OUTPUT FROM CODEC
NET SDIN LOC=P70; # SERIAL DATA INPUT FROM CODEC
NET CCLK LOC=44; #CONTROL SIGNAL CLOCK
NET CDIN LOC=P45; #SERIAL CONTROL INPUT TO CODEC
NET CSB LOC=P48; #SERIAL CONTROL CHIP SELECT
Các tín hiệu analog lối vào và lối ra của stereo vào và ra khỏi mạch XSTEND
thông qua các J9 và J10 khoảng 1/8” tương ứng. Lối ra của một máy hát CD có thể
là lối vào thông qua J9 và một bộ tai nghe stereo nhỏ có thể được nối đến J10 để

nghe tín hiệu ở đầu ra đã xử lý
Dữ liệu đã được số hoá ở lối ra từ bộ codec thông qua J17 đến mạch XS đã gắn
trên mạch XSTEND. Shunt sẽ được đặt trên J17 khi bộ codec đang được sử dụng.
Bởi vì dữ liệu nối tiếp ở đầu ra của bộ codec không tristatable và vì nó dùng chung
lối vào của mạch XS với các tài nguyên khác trên mạch XSTEND nên shunt gắn
trên J17 sẽ được gỡ bỏ khi bộ codec không được sử dụng.
6. Giao diện Xilinx Xchecker
Mạch XS40 gắn trên mạch XSTEND có thể được đònh cấu hình và kiểm tra
bằng cách dùng một cáp XILINX Xchecker được cắm vào J19. Khi sử dụng cáp
Xchecker, ta không phải nối cáp giữa mạch XS và cổng song song của máy tính.
Thêm vào đó, khi sử dụng cáp với 1 mạch XSTEND/XS40 kết hợp, ta phải điều
chỉnh lại mạch XS40:
• Gỡ bỏ shunt từ J4, J6, J10 và J11 của mạch XS40
• Gỡ bỏ EPROM từ socket U7
16
GVHD: LÊ ĐỨC HÙNG
Chân Xchecker Chân XS40
1_VCC(+5V) 2
2_RT 32
3_GND 52
4_RD 30
6_TRIG 7
7_CCLK 73
9_DONE 53
10_TDI 15
11_DIN 71
12_TCK 16
13_PROGRAM 55
14_TMS 17
15_INIT 41

16_CLKI 13
17_RST 8
18_CLKO 9
Bảng 3: Kết nối giữa cáp Xchecker và XS40
7. Vùng mẫu (prototyping area)
Mạch XSTEND có 1 vùng mẫu bao gồm thành phần các lỗ xuyên qua trên 1
khung lưới 0.1”*0.1” đặt rải rác với mạng lưới các bus VCC và GND như hình 3. Các
bus truyền VCC liên tục ở phần trên mạch XSTEND trong khi các bus GND chạy
liên tục ở phần dưới mạch. Các bus VCC và GND có các giao tiếp kết nối mà một
dây kim loại nhỏ có thể được hàn gắn để tạo một kết nối đến các thành phần lỗ
xuyên qua bên cạnh.
Hình 3: Vò trí các bus VCC và GND xung quanh các thành phần giao tiếp trong
vùng mẫu mạch XSTEND
17
GVHD: LÊ ĐỨC HÙNG
Khi đặt shunt trên J16 sẽ xác đònh các bus VCC trong vùng mẫu có truyền
nguồn 5V hoặc là 3.3V hay không (xem hình 4). Dó nhiên, sự lựa chọn jumper sẽ
không có hiệu quả nếu ta không cấp các nguồn này vào mạch XSTEND bởi mạch
XS hoặc là bằng cách kết nối với nguồn cung cấp bên ngoài.
Hình 4: Thiết lập shunt cho bus VCC
Mạch XS kết nối đến vùng mẫu thông qua bộ nối J3. Các chân trên bộ nối phải
được sắp xếp phù hợp với các chân trên mạch XS40. Ví dụ: chân J3 ở bên dưới phía
trái của mạch XSTEND tương ứng với chân 21 ở bên dưới phía trái của mạch XS40.
8. Bộ nối mạch con
Các mạch con với các mạch ứng dụng có thể được nối đến mạch XSTEND
thông qua bộ nối J8. Bộ nối 42*2 này truyền tất cả I/O và VCC/GND từ mạch XS40
đến mạch con.
18
GVHD: LÊ ĐỨC HÙNG
Chương IV: PHẦN MỀM HỖ TR THIẾT KẾ

I. Phần mềm tiện ích XSTOOL
Hiện nay XILINX cung cấp các công cụ cho việc lập trình họ FPGAs và
CPLDs. Một vài phiên bản gần đây của phần mềm XILINX tạo ra các file dạng
bitstream tương thích với mạch XS40. XESS corp. cung cấp thêm tiện ích XSTOOLs
cho việc giao tiếp một máy tính với một mạch XS40.
Phần mềm tiện ích XSTOOL này bao gồm các chức năng sau:
• Kiểm tra mạch
• Lập trình tạo tần số cho bộ dao động trên mạch
• Download các thiết kế vào KIT
• Nạp dữ liệu vào KIT
1. Kiểm tra mạch XS40
Mỗi lần lắp đặt mạch XS40 và các jumper ở cấu hình mặc đònh của chúng thì
mạch có thể được kiểm tra bằng cách sử dụng tiện ích GUI-based GXSTEST như
sau:
Nhấp vào biểu tượng (đã có trên màn hình nền khi cài đặt XSTOOLS).
Sau đó hiện cửa sổ:
Kế tiếp, ta sẽ chọn loại cổng song song mà mạch XS40 được kết nối từ danh
sách pulldown Port. GXSTEST bắt đầu với cổng LPT1 như mặc đònh, nhưng ta cũng
có thể chọn cổng LPT2 hoặc LPT3 tuỳ thuộc vào cấu hình máy tính.
Sau khi chọn cổng song song, ta chọn loại mạch XS40 đang cần kiểm tra từ
danh sách pulldown Board Type. Sau đó nhấp chọn nút TEST để bắt đầu thủ tục
kiểm tra. GXSTEST sẽ đònh dạng FPGA để chạy thủ tục kiểm tra trên mạch XS40.
Sau vài giây, nếu việc kiểm tra được thực hiện thành công thì LED 7 đoạn hiển thò
O. Ngược lại nếu E hiển thò trên LED 7 đoạn thì việc kiểm tra thất bại. Cửa sổ trạng
thái sẽ xuất hiện trên màn hình máy tính để khai báo cho ta biết việc kiểm tra thành
công hay thất bại.
Nếu kiểm tra mạch XS40 thất bại, ta sẽ thấy danh sách kiểm tra thông báo
nguyên nhân của việc kiểm tra không thành công đó. Nếu tình trạng không phải là
một trong những nguyên nhân đó thì ta sẽ kiểm tra mạch XS40 bằng một máy tính
khác.

2. Lập trình cho bộ dao động của mạch XS40
19
GVHD: LÊ ĐỨC HÙNG
Mạch XS40/XSP có một bộ dao động lập trình được tần số 100MHz. Tần số
chính 100MHz có thể được chia bởi các hệ số từ 1,2,…đến 2050 để lấy xung từ
100MHz, 50MHz, …xuống 48.7KHz tương ứng. Các tần số đã chia này được gửi đến
phần còn lại của mạch XS40/XSP như một tín hiệu xung.
Các số chia (ước số) được lưu trữ ở bộ nhớ cố đònh trong chip của bộ dao động
để nó tiếp tục hoạt động ở tần số đã được chương trình hoá bất cứ khi nào nguồn
điện được cấp cho mạch XS40/XSP. Các số chia đặc biệt có thể lưu trữ vào chip của
bộ dao động bằng các sử dụng tiện ích GUI-based GXSSETCLK như sau:
Nhấp chọn biểu tượng (đã có trên màn hình nền khi cài đặt
XSTOOLS). Sau đó hiện ra cửa sổ:
Bước kế tiếp là chọn cổng song song mà mạch XS40/XSP được kết nối từ danh
sách pulldown Port. GXSSETCLK bắt đầu với cổng song song LPT1 như đã mặc
đònh, nhưng ta cũng có thể chọn cổng song song LPT2 hoặc LPT3 tuỳ theo cấu hình
máy tính. Sau đó chọn loại mạch XS40/XSP từ danh sách pulldown Board Type.
Kế tiếp, ta đưa vào một số chia có giới hạn trong khoảng từ 1 đến 2050 vào ô
Divisor và nhấp chọn nút SET. Sau đó các lệnh liên tục được cho bởi GXSSETCLK
để đặt các shunt, di chuyển và lưu trữ nguồn điện trong suốt quá trình lập trình cho
bộ dao động. Khi quá trình trên hoàn tất, tần số mới sẽ được lập trình để đưa vào
DS1075
Tín hiệu xung ngoại có thể được thay thế cho bộ dao động nội tần số 100MHz
của DS1075. Việc kiểm tra hộp chọn xung ngoại sẽ cho phép đặc tính này trong chip
của bộ tạo dao động lập trình được. Nếu điều này được chọn, ta sẽ phải tự cung cấp
xung ngoại cho mạch XS40/XSP thông qua chân 64 sau đó.
3. Lập trình
Phần này sẽ cho biết làm thế nào để download một thiết kế logic từ máy tính
vào mạch XS40 và làm sao để lưu trữ một thiết kế trong EEFROM nối tiếp tuỳ ý mà
khi cấp nguồn điện vào thì nó sẽ hoạt động.

a. Download các thiết kế vào mạch XS40
20
GVHD: LÊ ĐỨC HÙNG
Trong giai đoạn triển khai và kiểm tra, thông thường ta sẽ kết nối mạch XS40
đến cổng song song của máy tính và download mạch mỗi khi thay đổi nó. Download
một thiết kế FPGA vào mạch XS40 bằng cách sử dụng tiện ích GXSLOAD như sau:
Nhấp chọn biểu tượng (đã có sẵn trên màn hình nền khi cài đặt
XSTOOLS). Sau đó xuất hiện cửa sổ như hình:
Chọn cổng song song mà mạch XS40 được kết nối đến từ danh sách pulldown
Port. Thông thường GXSLOAD được mặc đònh với cổng song song LPT1 nhưng ta
có thể chọn cổng song song LPT2 hoặc LPT3 tuỳ theo cấu hình của máy tính. Sau đó
chọn loại mạch XS40 đang sử dụng từ danh sách pulldown Board Type.
Sau khi thiết lập loại mạch và cổng song song, ta tải các file .BIT đến FPGA
trên mạch XS40 bằng cách kéo chúng đến vùng FPGA/CPLD của GXSLOAD như
cửa sổ bên dưới:
21
GVHD: LÊ ĐỨC HÙNG
Mỗi lần rê nút chuột trái và thả file, file có vệt sáng xuất hiện trong vùng
FPGA/CPLD và nút Load trong cửa sổ GXSLOAD được cho phép. Nhấp chọn nút
Load file có vệt sáng sẽ được gửi đến mạch XS40 thông qua kết nối cổng song song.
Các file .BIT chứa cấu hình các bitstream được nạp vào FPGA. GXSLOAD sẽ bỏ đi
những file không cho phép download. Trong suốt quá trình download, GXSLOAD sẽ
hiển thò tên file và quá trình download hiện thời.
Ta có thể kéo và thả nhiều file trong vùng FPGA/CPLD. Khi nhấp chọn chuột
vào một file thì tên file đó sáng và chọn nó để download. Chỉ có một file có thể
được chọn để download ở một thời điểm.
Nhấp kép vào file có vệt sáng thì file đó sẽ không được chọn. Vì vậy không có
file nào được download. Khi đó nút Load sẽ không được phép
22
GVHD: LÊ ĐỨC HÙNG

b. Lưu trữ mà không xoá các thiết kế trong mạch XS40
FPGA trên mạch XS40 lưu trữ cấu hình của nó trên chip của SRAM và được
xoá bất cứ khi nào nguồn điện được ngắt. Một khi thiết kế được hoàn thành, ta có
thể lưu trữ bitstream trong một EEFROM nối tiếp được đặt trên socket U7 của mạch
XS40. EEFROM sẽ đònh dạng FPGA để hoạt động ngay khi nguồn điện được cấp
vào.
XILINX XC1700 là một loạt các EEFROM nối tiếp tương thích với mạch XS40.
Hơn nữa, XC1700 chỉ có thể lập trình một lần (OTP), vì vậy cần phải có một chip
mới mỗi lần thay đổi thiết kế logic. Bảng 3 liệt kê các chip EEFROM nối tiếp cần để
lưu trữ các file bitstream đối với mỗi loại mạch XS40
Loại mạch XS40 Kích thước Bitstream EEPROM XILINX
XS40-005E 95,008 XC17128E
XS40-005XL 151,960 XC17256E
XS40-010E 178,144 XC17256E
XS40-010XL 283,424 XC1701
XSP-010 95,008 XC17S10
Bảng 3: Giới thiệu các EEPROM nối tiếp của hãng XILINX đối với mỗi loại
mạch XS40 khác nhau
Ngoài ra cần phải lựa chọn việc lưu trữ các thiết kế vào EEPROM nối tiếp
AT7C256 Atmel lập trình lại được. Nếu mạch XS40-005E, XS40-005XL hoặc mạch
XS40-010E được sử dụng thì mạch XS40 có thể lập trình trực tiếp trên chip Atmel và
các FPGA trên các mạch này có các file bitstream có kích thước phù hợp với
AT7C256. Thiết kế được nạp vào EEPROM Atmel bằng cách kéo file .BIT vào
vùng Flash/EEPROM và nhấp vào nút Load. Tuần tự các bước đưa dữ liệu vào bộ
nhớ là như sau:
i. Toàn bộ EEPROM được xoá.
ii. FPGA trên mạch XS40 được lập trình để tạo ra một giao diện giữa
EEPROM và cổng song song.
23
GVHD: LÊ ĐỨC HÙNG

iii. Nội dung của file .BIT được download vào EEPROM thông qua cổng
song song
Mỗi lần các thiết kế được nạp vào EEPROM, các bước tiếp theo sẽ đònh dạng
mạch XS40 từ EEPROM khi cấp điện
i. Tháo dây cáp tải từ bộ nối J1 của mạch XS40. (Có thể sử dụng lệnh
XSPORT 0 để đảm bảo 2 bit cao của cổng song song đều ở mức logic 0.
Các bit này được nối đến các chân chế độ của FPGA và phải ở mức
logic 0 hoặc FPGA sẽ không cấp điện ở chế độ hoạt động nối tiếp).
ii. Đặt shunt ở jumper J10. Khi đó FPGA được đặt ở chế độ hoạt động nối
tiếp để nó cấp một tín hiệu xung đến EEPROM và tuần tự nạp cấu hình
từ EEPROM vào FPGA.
iii. Tháo bỏ các shunt ở các jumper J4 và J11. Điều này ngăn cản mạch
giao diện PC trên XS40 không bò nhiễu khi có tín hiệu xung từ FPGA.
iv. Cấp nguồn điện vào mạch XS40. FPGA sẽ được đònh dạng từ EEPROM
nối tiếp. Ta có thể nối lại dây cáp nếu cần xen các tín hiệu kiểm tra
vào các thiết kế đang sử dụng chương trình XSPORT
c. Download và Upload dữ liệu đến RAM hoặc từ RAM trên mạch XS40
Mạch XS40 chứa RAM 32Kbytes hoặc 128KByte, nội dung của nó có thể
download và upload bằng GXSLOAD. Điều này thuận lợi cho việc khởi chạy RAM
với dữ liệu sử dụng bằng FPGA và đọc nội dung của RAM sau khi FPGA hoạt động.
RAM được nạp dữ liệu bằng cách kéo và thả một hoặc nhiều file .EXO, .MCS,
.HEX, và/hoặc file .XES vào vùng RAM của cửa sổ GXSLOAD và sau đó nhấp
vào nút Load. Tuần tự các bước đưa dữ liệu vào bộ nhớ là như sau:
i. FPGA trên mạch XS40 được lập trình lại để tạo ra một giao diện giữa
thiết bò RAM và cổng song song của máy tính
ii. Nội dung của các file .EXO, .MCS, .HEX hoặc .XES được download
vào RAM thông qua cổng song song. Dữ liệu các file sẽ viết đè lên
nhau nếu đòa chỉ trùng lấp.
iii. Sau khi dữ liệu đã download vào RAM, một vài file bitstream có vệt
sáng trong vùng FPGA/CPLD được download vào FPGA trên mạch

XS40. Ngoài ra FPGA vẫn còn đònh cấu hình như một giao diện trên
RAM.
Nội dung của RAM được kiểm tra bằng cách upload nó đến máy tính. Để
upload dữ liệu từ một vùng đòa chỉ trong RAM, gõ các ranh giới cao và thấp vào
vùng High Address và Low Address bên dưới vùng RAM và chọn dạng muốn lưu
trữ dữ liệu đang sử dụng trong danh sách pulldown Upload Format. Sau đó chọn
biểu tượng file, kéo và thả nó vào một vài danh mục. Tuần tự các bước đưa dữ liệu
vào bộ nhớ là như sau:
i. FPGA trên mạch XS40 được lập trình lại để tạo ra giao diện giữa thiết
bò RAM và cổng song song của máy tính
24
GVHD: LÊ ĐỨC HÙNG
ii. Dữ liệu RAM giữa đòa chỉ cao và thấp được upload thông qua cổng
song song.
iii. Dữ liệu đã upload được lưu trữ ở dạng file được đặt tên là RAMUPLD
có phần mở rộng tương ứng với file đònh dạng.
II. Phần mềm LEONARDOSPECTRUM
1. Giới thiệu
LeonardoSpectrum là một hệ công cụ thiết kế bậc cao, tổng hợp tất cả các thiết
kế đối với họ FPGA, CPLD hoặc ASIC của các hãng như: Xilinx, Altera, Quicklogic,
Atmel, …. Nó đưa ra các sơ đồ thiết kế, các thiết kế bằng ngôn ngữ Verilog và
VHDL, chương trình gỡ lỗi (register transfer level) để tổng hợp logic, tối ưu hóa
những ràng buộc cơ bản, phân tích đònh thời, đóng gói place and route và kiểm tra lại
sơ đồ.
LeonardoSpectrum có khả năng đònh cấu hình ở ba mức khác nhau:
• Mức 1: là một công nghệ FPGA riêng dễ sử dụng, công cụ tổng hợp sử
dụng cơ sở dữ liệu phân cấp trong bộ nhớ của LeonardoSpectrum.
• Mức 2: là một công cụ tổng hợp và phân tích đònh thời FPGA, nó rất dễ
sử dụng đối với tất cả công nghệ FPGA. Khác với mức 1, mức 2 được sử
dụng cho tất cả các công nghệ FPGA.

• Mức 3: dễ sử dụng, là công cụ phân tích, tối ưu hoá, tổng hợp logic một
cách linh hoạt. Mức 3 cho phép sử dụng phương pháp thiết kế công nghệ
độc lập cho FPGA và CPLD. Hơn nữa, mức 3 còn hỗ trợ thêm các thuật
toán cho công nghệ ASIC và sử dụng kỹ thuật tối ưu hoá mạnh nhất để
đảm bảo kết quả tốt nhất cho một số công nghệ FPGA hoặc ASIC.
25

×