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.. 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ộ
Trang 1Thiết kế hệ thống xử
lý ảnh video trên
FPGA (CycloneII)
Trang 2Chương 1: 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à
Trang 3cá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ố 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
Trang 4Phầ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
quát
Kiểu khối Logic
Công nghệ lập
trình
Array
Based Gates
Static RAM
& Multiplexer
Anti-fuse
CHƯƠNG II: MẠCH XS40
I Đặc điểm
Trang 5XS40_005XL gồm có:
Vi điều khiển 8031
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
Led 7 đoạn
84 chân giao tiếp với XSTEND board
Socket EFROM nối tiếp
Mức điện thế quy định 5V/3.3V
Dây cáp tải qua cổng LPT
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ứcthế 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
Trang 6Hình 1: Mô tả các thành phần trên mạch XS40
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
Trang 7châ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
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
Trang 8Hình 3: Sự sắp xếp các thành phần trên mạch XS40
Trang 9Chương 2: 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)
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
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)
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)
Trang 10Jumper Chế độ Chức năng
On(mặc định)
Đặt shunt nếu đang download mạch XS40 hoặc XSP thông qua cổng song song
J4
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
(U7) đang được lập trình
J6
Off(mặc định)
Tháo bỏ shunt trong khi sử dụng mạch thông thường
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
J7
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
On Đặt shunt trên mạch XS40 hoặc XSP sử
dụng loại XC4000XL 3.3V của họ FPGA
J8
Off Tháo bỏ shunt trên mạch XS40 hoặc XSP sử
dụng loại XC4000E 5V của họ FPGA
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
J10
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
Trang 11On(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
J11
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
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
J12
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:
Trang 12Hình 4: Sơ đồ kết nối các thành phần trên mạch XS40
** = 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
Trang 13ra 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 đ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
Trang 14trì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
Trang 15Chương 3: 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
Trang 16GXSLOAD 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)
Trang 17Hình 5: Lưu đồ thiết kế FPGA và vi điều khiển
Trang 18MẠ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
Trang 19 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:
Hình 1: Layout mạch XSTEND
II Mô tả mạch XSTEND
1 Vùng lắp đặt mạch XS40
Trang 20Mộ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ư 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
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
Trang 21Khô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:
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)
Trang 23Chương 4: 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
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
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
Trang 24NET DIPSW<7> LOC=P66;
#
#PUSHBUTTON SWITCH CONNECTIONS LOW)
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ỳ 22
*22*22 =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
5 Stereo Codec
Trang 25Mạ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.
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
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
CODEC
CHANNEL CODEC
NET SDOUT LOC=P6; #SERIAL DATA OUTPUT FROM CODEC
FROM CODEC
Trang 26NET CCLK LOC=44; #CONTROL SIGNAL CLOCK
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
Trang 27Chân Xchecker Chân XS40
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
Trang 28Hì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
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
Trang 30Chương 5: 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
Trang 31cổ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
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ổ:
Trang 32Bướ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
Trang 33Trong 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
Trang 34Mỗ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
Trang 35Ta 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
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
Trang 36mộ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
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
Trang 37iii Nội dung của file BIT được download vào EEPROM
thông qua cổng song songMỗ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
Trang 38cử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
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
Trang 40Chương 6: 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
2 Cách sử dụng