FPGA là vi mạch chứa các logic cells. Các Logic cells thực hiện các mạch Logic và được kết nối với nhau bởi ma trận kết nối và chuyển mạch lập trình được. FPGA là tập hợp các phần tử rời rạc được kết nối theo một cách chung.
Trang 1TÌM HIỂU KIT STARTER SPARTAN 3E
NỘI DUNG TÌM HIỂU: tổng quan về vi mạch FPGA và các khối chức năng
của kit Strater Spartan 3E
CHƯƠNG 1:FPGA- Linh kiện logic khả trình:
- Có hai loại linh kiện logic khả trình chính: CPLD ( Complexprogrammable Logic Devices) và FPGA (Field Programmable Gate Array)
- Các hãng sản xuất FPGA/ CPLD: Xilinx, Atera, Atmel, QuickLogic,Actel…
1.2. Khái niệm FPGA:
- FPGA là vi mạch chứa các logic cells Các Logic cells thực hiện cácmạch Logic và được kết nối với nhaubowir ma trận kết nối và chuyển mạch lậptrình được
- FPGA là tập hợp các phần tử rời rạc được kết nối theo một cách chung
1.3. Các bước thực hiện thiết kế cho FPGA:
- Thiết kế hệ thống và tạo file HDL
- Tiến hành thử nghiệm trong HDL và biểu diễn mô phỏng trên RTL
- Tổng hợp và biên dịch Quá trình tổng hợp có nhiệm vụ chuyển các câulệnh HDL thành các mức trên linh kiện Quá trình biên dịch sẽ chuyển các lệnhHDL thành tín hiệu vật lý trong chip FPGA
- Tạo và tải file chương trình Quá trình này sẽ tạo file netlist File nàyđược tải vào linh kiện FPGA tuần tự va nó sẽ điều khiển mạch logic và cáccông tắc
Trang 2CHƯƠNG 2: Định tuyến và định vị cho FPGAs:
2.1. Định tuyến:
Đây là một trong những bước cơ bản và quan trọng nhất khi thiết kếFPGA,và là bước cuối trong giai đoạn thiết kế để tạo chuỗi bít cho chươngtrình
2.2. Thế hệ bảng định tuyến nguồn:
- Bảng định tuyến nguồn được tao ra để sử dung, gồm hai loại: định tuyếntoàn cục và định tuyến cục bộ
- Các hệ thống FPGA hiện đại có số lượng bảng định tuyến rất lớn với
hàng triệu khối logic
- Trong nhiều trường hợp người ta cần tạo các công cụ định vị và định
tuyến cho FPGA Việc này đảm bảo an toàn khi thay đổi hay thiết lập cácthông số trước khi chúng ta hoàn thiện kiến trúc FPGA
- Quá trình thiết lập thông số cần thiết cho việc định tuyến gồm các bước
chính sau:
• Đánh số chân các khối logic ngõ vào và ngõ ra
• Đạt các khối logic ngõ vào và ngõ ra ở trạng thái cho phép hiệu chỉnh
và sử dụng
• Tương đương hóa các khối logic
• Đánh dấu I/O để điền vào một hàng hoặc cột của FPGA
• Lập quan hệ về chiều rộng giữa các kênh ngang và kênh dọc
• Lập quan hệ về chiều rộng giữa các vùng khác nhau trong FPGA
• Chuyển khối để kết nối các vùng định tuyến lớn
• Thiết lập giá trị FC chỉ giá trị các vùng định tuyến trong một kênh
• Đây có thể là số chân ngõ vào và ngõ ra được kết nối
• Định loại và phân phói các gói theo một tieu chuẩn nhất đinh
• Chúng ta cần định chiều dài mỗi gói, số khóa trong mỗi gói cung nhưphân loại kiểu gói
Trang 3Sau đây là một ví dụ về bảng định tuyến nguồn:
LUT: Look- Up Table
- Thực tế thì vấn đề định tuyến toàn cục FPGA khá giống với chuẩnthiết kế cells (hay MPGA- Metal Programmable Gate Array) Vì vậy nhiều
kỹ thuật định tuyến toàn cục ASIC có thể sủ dụng cho định tuyến toàn cụcFPGA
2.2.2 Định tuyến cục bộ:
- Chọn định tuyến cục bộ theo chi phí thấp nhất
- Loại bỏ các định tuyến cục bộ khác trong cùng khu vực
- Loại các định tuyến không tương thích với định tuyến vừa chọn chođến khi tất cả các định tuyến toàn cục được hoàn thiện kết nối bởi cácđịnh tuyến cục bộ
Trang 4CHƯƠNG 3:Các khối chức năng chính của kit Spartan 3E:
3.1. Các công tắc, nút nhấn, phím điều khiển:
Các công tắc trượt:
- KIT Spartan 3E có 4 công tắc trượt, như hình sau
- Các công tắc này được bố trí ở góc phải, bên dưới của board Chúngđược kí hiệu là SW3, SW2, SW1 SW0 theo thứ tự từ trái sang phải
- Khi ở vị trí UP hay ON, công tắc này sẽ kết nối với chân 3,3V củaFPGA Đây là mức logic cao
- Khi ở vị trí DOWN hay OFF, công tắc này sẽ kết nối với chân masscủa FPGA Đây là mức logic thấp
Trang 5Công tắc nút nhấn:
- KIT này cũng có 4 công tắc nút nhấn Cúng được bố trí ở góc dưới bêntrái của board, được kí hiệu lần lượt là: BTN_NORTH, BTN_SOUTH,BTN_EAST, BTN_WEST
- Khi nhấn và giữ, nút nhấn sẽ được nối đến chân 3,3V của FPGA
- Trong một số ứng dụng, BTN_SOUTH cũng là một reset mềm để chọnchức năng reset cho FPGA
Công tắc nút xoay:
- Trên KIT Có 3 nút nhấn loại này, chúng nằm giữa 4 công tắc nút nhấn
- Khi xoay các nút này, công tác được nối đến chân 3,3V của FPGA
Trang 6LED:
- Có 8 LED đơn trên mạch, được kí hiệu từ LED7 đến LED0 Theo thú
tự tù trái sang phải là LED7 đền LED0
- Mỗi LED được nối sẵn một chân xuống mass, chân còn lại nối với KITSpartan 3E qua một điện trở hạn dòng 330 Ohm
3.2. Clock Sources:board hỗ trợ ba nguồn xung clock cơ bản:
Bộ dao động onboard tần số xung clock 50MHz
Xung clock có thể đươc cung cấp từ ngoài board thông qua SMA-styleconnector.Ngoài ra FPGA có thể phát ra tín hiệu xung clock qua SMA-style connector
Hay lựa chọn cài đặt bộ dao động kiểu 8 chân DIP cung cấp bởi mộtsocket
Điện áp cho tât cả chân I/O trong FPGA bank0 được điều khiển bởijumper JP9.Do đó ,những nguồn xung clock này cũng đươc điều khiển bởiJP9.Ban đầu,JP9 đươc set mức 3.3 V.Bộ dao động on board là một thiết bị có áp3.3 V và có thể không trình diễn như mong đọi khi JP9 set ở mức 2.5 V
3.3. FPGA Configuration option:
The Spartan-3E FPGA Starter Kit board hỗ trợ nhiêu sự lựa chọn cấuhình FPGA:
• Download FPGA design trực tiếp tới Spartan-3E FPGA thong quachân JTAG,sử dụng giao diện USB on board
Trang 7• Ghi chương trình trên on-board 4Mbit Xilinx XCFO4S nối tiếpPlatform Flash PROM,sau đó cấu hình FPGA từ ảnh lưu trữ trongPlatform Flash PROM sử dụng Mast Serial mode.
• Ghi chương trình trên on-board 16Mbit ST Microelectronics SPIserialFlash PROM,rồi cáu hình FPGA từ ảnh lưu trữ trong SPIserial Flash PROM sử dụng SPI mode
• Ghi chương trình trên 128 Mbit Intel StrataFlash parallel NORFlash PROM,rồi cấu hình FPGA từ ảnh lưu trữ trong Flash PROM
sử dụng BPI Up hay BPI Down mode
3.4. Character LCD Screen:
FPGA điều khiển LCD thong qua 4-bit data Mặc dù LCD hỗ trợ giaodiện 8 bits data,the starter Kit Board sử dụng giao diện 4 bits data đễ tang khả năngkết nối và sự phát triển của các ứng dụng khác trên board cũng như giảm thiểu số chânkết nối
- LCD dùng nguồn 5V
- LCD hiểu các mức logic cao, thấp qua điện áp Ở mức cao, LCD điềukhiển mức 5V với TTL và 3,3V với LVCMOS
Trang 8- Điện trở 390 Ohm trên đường Data dùng để hạn dòng cho FPGA khiLCD nhần mức logic cao.
- Một số ứng dụng coi LCD là ngoại vi chỉ ghi và không bao giờ đọc.Điều khiển LCD:
- LCD cho phép hiển thị 2 x 16 kí tự, với địa chỉ theo bảng sau:
3.5. VGA Display Port:
Board gôm một port VGA thong qua DB15 connector.Kết nối port nàytrực tiếp từ PC
Trang 9Ngoài ra The Spartan-3E FPGA Starter Kit board còn có các cổng giaotiếp khác:
10/100 Ethernet Physical Layer Interface
Các connector mở rộng
Trang 10CHƯƠNG 4: KHÁI NIỆM,CÔNG CỤ VÀ KĨ THUẬT EDK
4.1. Giới thiệu:
The Xilinx Embedded Development Kit (EDK) là 1 bộ các công cụ và IPcho phép bạn thiết kế 1 hệ thống nhúng hoàn chỉnh để cài đặt cho thiết bịXilinx Field Programmable Gate Array (FPGA)
Embeded Development Kit: được xem như bao phủ tất cả những thứ liênquan đến hệ thống xử lý nhúng và thiết kế của chúng ,the Xinlinx ISEsoftware phải được cài đặt trước khi chạy EDK
Xilinx Platform Studio (XPS) là một môi trường phát triển hay giao tiếp
đồ họa sử dụng để thiết kế bộ phận phần cứng của hệ thống xử lýnhúng
Software Development Kit(SDK) là một môi trường phát triển tích hợpOther EDK Components :
• Hardware IP for Xinlinx embeded processors
• Driver and lilibraries for embedded software development
• GNU Compiler and debugger for C/C++ software developmenttargeting the MicroBlaze™ and PowerPC™ processors
• Documentation
• Sample projects Làm Thế Nào Để Các Công Cụ Này Xúc Tiến Quá Trình Xử Lý
Trang 11Sau đây là một cái nhìn tổng quát về cách các công cụ làm việc cùng nhau để đơn giảnhóa quá trình thiết kế
• Tiến trình thiết kế yêu cầu được bắt đầu với một ISE project,và sau đó là addmột nguồn vi xử lý nhúng vào ISE project
• XPS được sử dụng đầu tiên cho hệ thống nhúng.Cấu hình vi điềukhiển,ngoai vi, và liên kết các thành phần này diễn ra ở XPS
• SDK là một mội trương phát triển phần mềm cho các ứng dụng đơn giản vàphức tạp
• Xác định chình xác chức năng phần cứng của bạn có thể đươc thực hiệnbằng cách chạy thiêt kế thông qua HDL simulator.XPS có 3 kiểu mô phỏng
Trang 12Sử dụng BSB Wizard ,ban có thể tao file project,chọn board,cấu hình 1 vi xử lý haygiao tiếp I/O,thêm vào ngoại vi bên trong,cài đặt software,và phát ra 1 report tóm tắt
hệ thống
Tạo ra file(*.xmp)
A Xilinx Microprocessor Project (XMP) file là một file mức đỉnh của hệ thốngnhúng.Tất cả các thông tin dự án XPS đươc save trong XMP file,bao gồm vi trí của Microprocessor Hardware Specification (MHS) and Microprocessor SoftwareSpecification (MSS) files
The XMP file cũng chứa đựng thông tin về nguồn C và file header mà XPS biêndịch,cũng như các file thực thi mà SDK biên dịch
Selecting a Board Type:
BSB cho phép bạn chọn 1 kiểu board từ danh sách hay tao ra một board riêng.Selecting and Configuring a Processor
Bạn có thể chọn MicroBlaze hay PowerPC processor và chọn:
• Architecture type
• Device type
• Package
• Speed grade
• Reference clock frequency
• Processor-bus clock frequency
• Reset polarity
• Processor configuration for debug
• Cache setup
• Floating Point Unit (FPU) setting
Selecting and Configuring Multiple I/O Interfaces
BSB hiểu bộ nhớ ngoại và thiết bị I/O có sẵn trên board và cho phép lựa chọn
• Which devices to use
• Baud rate
• Peripheral type
Trang 13• Number of data bits
• Parity
• Whether or not to use interrupts
Adding Internal Peripherals
BSB cho phép bạn thêm vào ngoại vi.Các ngoại vi đươc hỗ trợ bởi board đươclựa chọn và kiến trúc thiết bị FPGA
Setting Up Software
Ngõ vào và ngõ ra chuẩn của thiết bị có thể đươc thực hiện trong BSB,và bạn cóthể chon một ứng dụng mẫu ngôn ngữ C mà bạn muốn XPS phát ra.Mỗi ứng dụngbao gồm một tập lệnh liên kết.Ứng dụng mẫu mà bạn chọn bao gồm kiểm tra bộnhớ,kiểm tra ngoại vi,hay cả 2
Take a Test Drive
Để chạy BSB Wizard ,bạn cần phải bắt đầu với ISE Project Navigator,và tạo ra mộtproject với hệ thống vi xử lý nhúng tại mức đỉnh
• Start ISE Project Navigator
• Select File >New Project.Nó sẽ truy cập tới New Project Wizard
• Sử dụng thông tin ở bản dưới đây để lựa chọn trong Wizard screens
Trang 14Chú ý : Sau khi chạy ISE Project Navigator new project wizard,nó sẽ nhận ra
bạn có một hệ thống nhúng ,và sẽ bắt đầu Platform Studio với thông điệp This project appears to be a blank project Do you want to create a Base System using the BSB Wizard? (This can take a few moments.) Click Yes.
Bây giờ BSB wizard đã bắt đầu,bạn có thể tao ra một project sử dụng cấu hình đượcmiêu tả ở bảng dưới
Trang 17Trong phần kế tiếp ,chúng ta sẽ biết cách quan sát và điều chỉnh newproject trong XSP
Trang 184.3. Xilinx Platform Studio
Bây giờ ban đã tao đươc một project cơ bản với BSB,đây là lúc nhìn vàocác sự chon có sẵn trong Xilinx Platform Studio(XPS).Sử dụng XPS ,bạn có thểxây dựng trên project bạn đã tạo với BSB.Phần này sẽ giúp bạn có cái nhìn tổngquan về XPS,và thảo luận về cách sử dụng XPS để điều chỉnh thết kế của bạn
What is XPS?
XPS bao gồm một giao tiếp đồ họa người dùng (GUI),cùng với một bộ các
công cụ hướng tới dự án thiết kế.Phần này sẽ miệu tả XPS GUI và một vài công cụđươc sử dụng phổ biến
The XPS GUI
Từ XPS GUI ,bạn có thể thiết kế một hệ thống nhúng hoàn chỉnh cho việccài đặt một thiết bị Xilinx FPGA.Cửa sổ chính của XPS đươc cho trên hình 3.1
Chú ý rằng cửa sổ chính của XPS đươc chia thành 3 phần:
• Project Information Area
• System Assembly
• Console Window
Trang 19Project Information Area
The Project Information Area offers control over and information about your project TheProject Information Area includes Project, Applications, and IP Project Tab
The Project Tab,cho ở hình 3-2,là các tham khảo tới các file có liên quan đếnproject.Thông tin đươc nhóm trong các mục tổng quát sau :
• Project FilesTất cả các file thưc hiện project như Microprocessor HardwareSpecification (MHS) files,Microprocessor Software Specification(MSS) files,User Constrains File (UCF) files,iMPACT Commandfiles,Implementation Option files,và Bitgen Option files
• Project optionsTất cả các sự lựa chon đặc trưng dự án nhưDevice,Netlist,Implementation,HDL,và Sim Model options
• Reference Files
Trang 20Tất cả các giá trị nhập và files output đươc sản xuất bởi XPSimplementation processes.
Application Tab
The Application tabs cho trên hình 3-3,là tất cả các cấu hình lựa chọn ứngdụng phần mềm,header files,và source files mà liên hệ với mỗi ứng dụng của dựán.Với việc chọn thẻ này bạn có thể:
• Tao ra và thêm vào một phần mềm ứng dụng,và tải nó tới khốiRAM
• Thiết lập sự lựa chọn biên dịch
• Thêm vào các file header và source tới projectChú ý: Trong lúc XPS cho phép bạn tạo ra và quản lý phần mềm dự án,SDK yêu cầucông cụ cho tất cả software development
Trang 21Những thông tin chi về IP core,bao gồm lịch sử thay đổi các phiên bản,datasheet,và Microprocessor Peripheral Description (MPD) file,thì sẵn có khi click phảimenu.Ban đầu thì IP cores đươc nhóm lại có thứ tự phân cấp theo chức năng.
Trang 22Take a Test Drive:
• Trong XPS GUI ,click chon thẻ Project tab
• Click the Application tab
a Collapse the Project: TestApp_Memory (using the +/- box) entry
b Expand the four sub-headers below Project: TestApp_Peripheral
- Under Processor: ppc440_0, note the xparameters.h file
The xparameters.h file chứa đưng bản đồ địa chỉ hệ thống và là một phầntích hợp của Board Support Package(BSP).Nếu bạn thực hiện theo cácbước ở phần Test Drive,the BSP chưa đươc tao ra,vì vậy file này chưa cósẵn
Under Compiler Options and Sources,chú ý rằng cả hai phần gồm tập lệnh liênkết và kiểm tra ứng dụng thi hành đươc tự động phát bởi BSB Wizard khi the selectedtest applications đươc tạo ra
• Click the IP Catalog tab
Trang 23a Tìm Communication Low-Speed IP category và mở rộng nó.
b Định vị XPS_UART (16550-Style) peripheral và click phải đểxem PDF data sheet của XPS_UART (16550-Style)
c Click vào icon tròn trong hình 3-5 để mở 2 màn hình
System Assembly View
The System Assembly View cho phép bạn quan sát và cấu hình các khối thànhphần của hệ thống.Nếu the System Assembly View chưa được maximized trong cửa
số chính,click vào System Assembly View tab at the bottom of the pane to open it
Bus Interface, Ports, and Address Filters
XPS cung cấp Bus interface,Ports,và các thẻ địa chỉ trong the System AssemblyView(hình 3-5),để tổ chức thông tin về thiết kế của bạn và cho phép bạn dễ dàng hơn
để biên tập hardware platform của mình
Connectivity Panel
Với việc chọn thẻ Bus Interfaces,bạn sẽ thấy Connectivity Panel,( labeled inthefigure above) The Connectivity Panel là một sự thể hiện đồ họa của hardwareplatform interconnects
Trang 24Take a Test Drive
Trong System Assembly View ,click vào thẻ Ports (located at the top of thescreen)
• FPGA device Expand the External Ports category to view the signalsthat are present outside the
• Chú ý tên tín hiệu trong Net column và tìm tín hiệu liên quan tớiRS232_Uart_1.Những điều này sẽ được tham khảo trong phần kếtiếp.Đóng muc này lại khi hoàn thành
• Kéo xuống để định vị RS232_Uart peripheral và mở rộng nó
• Right-click the RS232_Uart_1 peripheral icon and select Configure IP
to launch the RS232_Uart_1:xps_uart16550_v2_00_a parametersdialog
• Click the directories icon (circled in Figure 3-5), and switch betweenthe hierarchical and flat views
Platform Studio Tab
Trong cùng một không gian của System Assembly View,có một thẻ PlatformStudio.The Platform Studio tab display(hình 3-6) cung cấp một lưu đồ thiết kế nhúng Nếu tại bất kì điểm nào bạn không chắc làm bước nào tiếp theo,hay cần thêm thôngtin để thực hiện tiến trình,bạn có thể nhanh chóng tham khảo biểu đồ này