Hướng dẫn cài ise suite design 14.7

Bộ tài liệu thực hành thiết kế hệ thống số được soạn thảo nhằm mục đích hỗ trợ sinh viên chuyên ngành Hệ thống nhúng và điều khiển tự động tiếp xúc với ngôn ngữ mô tả phần cứng [VHDL hoặc Verilog] và hỗ trợ cho môn học Thiết kế hệ thống số. Đây là môn học mang tính thực hành cao nên trong cấu trúc chương trình sẽ dành nhiều thời gian hơn cho thực hành thí nghiệm cũng như bắt buộc sinh viên khi kết thúc môn học phải thực hiện các đồ án bài tập thiết kế cỡ vừa và lớn theo nhóm dưới dạng bài tập lớn. Kiến thức và kỹ năng sinh viên thu được ở môn học Thiết kế hệ thống số sẽ giúp ích rất nhiều cho các bài toán chuyên ngành và Đồ án tốt nghiệp sau này bởi các ứng dụng xử lý số đang dần chiếm vai trò quan trọng trong các hệ thống kỹ thuật. Bên cạnh các công cụ truyền thống là vi xử lý, vi điều khiển và máy tính thì thiết kế phần cứng trên FPGA hoặc trên các nên tảng tương tự đang là hướng phát triển mới triển vọng hơn, mang lại hiệu quả vượt trội. Tài liệu này bao gồm xx bài, tương ứng với 5 buổi thực hành. Nội dung chủ yếu hướng đến việc hướng dẫn sinh viên sử dụng ngôn ngữ VHDL để lập trình và mô phỏng trên các phần mềm chuyên dụng của hãng Xilinx như Vivado và ISE 14.7, đồng thời thao tác trên board phát triển Spartan 6 SP601 và ARTY A7– 35T.

2

Vì thời gian hạn chế và là một môn học mới do vậy trong quá trình biên soạn tài liệu hướng dẫn thực hành chắc chắn không tránh khỏi các sai sót. Vì vậy rất mong tiếp tục nhận được các ý kiến đóng góp từ phía các thầy cô trong khoa cũng như các bạn sinh viên chuyên ngành Hệ thống nhúng và điều khiển tự động. Mọi ý kiến đóng góp có thể gửi về Bộ môn Điện tử Máy tính – Học viên Kỹ thuật Mật mã hoặc vào hòm thư điện tử [email protected] Chân thành cảm ơn.

3

Mục lục Bài 1. Tổng quan về phần mềm thiết kế ISE 14.7 trên FPGA ........................................ 6 I.

Giới thiệu Board phát triển Spartan 6 SP601 của Xilinx.................................. 6

II.

Cài đặt phần mềm thiết kế ISE của Xilinx .......................................................... 9

III. Chương trình trên ISE design suite .................................................................. 10 Bài 2. Tổng quan về phần mềm thiết kế Vivado trên FPGA........................................ 19 I.

Giới thiệu Board phát triển ARTY A7-35T ....................................................... 19

II.

Cài đặt phần mềm thiết kế Vivado của Xilinx .................................................. 20

III. Chương trình trên Vivado design suite............................................................. 21 Bài 3: Bộ cộng Full – Adder 4bits ................................................................................... 29 I.

Mục đích ................................................................................................................ 29

II.

Chuẩn bị và thực hiện.......................................................................................... 29

III. Nội dung ................................................................................................................ 29 Bài 4: Điều khiển màn hình chỉ thị số LED ................................................................... 33 I.

Mục đích ................................................................................................................ 33

II.

Chuẩn bị và thực hiện.......................................................................................... 33

III. Nội dung ................................................................................................................ 33 Bài 5: Điều khiển hiển thị ma trận LED ........................................................................ 39 I.

Mục đích ................................................................................................................ 39

II.

Chuẩn bị và thực hiện.......................................................................................... 39

III. Nội dung ................................................................................................................ 39 Bài 6: Điều khiển hiển thị VGA ....................................................................................... 43 I.

Mục đích ................................................................................................................ 43

II.

Chuẩn bị và thực hiện.......................................................................................... 43

III. Nội dung ................................................................................................................ 43 Bài 7:Thiết kế hệ thống đèn tín hiệu giao thông đơn giản .......................................... 47 I.

Mục đích ................................................................................................................ 47

II.

Chuẩn bị và thực hiện.......................................................................................... 47

III. Nội dung ................................................................................................................ 47

4

Bài 8:Thiết kế bộ xử lý logic và số học [ALU] đơn giản ............................................... 53 I.

Mục đích ................................................................................................................ 53

II.

Chuẩn bị và thực hiện.......................................................................................... 53

III. Nội dung ................................................................................................................ 53 Bài 9: Điều khiển Led RBGs, xung clock, PWM trên board ARTY A7-35T .............. 58 I.

Mục đích ................................................................................................................ 58

II.

Chuẩn bị và thực hiện.......................................................................................... 58

III. Nội dung ................................................................................................................ 58 Bài 10: Thiết kế bộ chia tần số đơn giản ........................................................................ 62 I.

Mục đích ................................................................................................................ 62

II.

Chuẩn bị và thực hiện.......................................................................................... 62

III. Nội dung ................................................................................................................ 62 Bài 11: Mở rộng điều khiển VGA trên board ARTY A7-35T ........................................ 65 I.

Mục đích ................................................................................................................ 65

II.

Chuẩn bị và thực hiện.......................................................................................... 65

III. Nội dung ................................................................................................................ 65 PHỤ LỤC........................................................................................................................... 69

5

Bài 1. Tổng quan về phần mềm thiết kế ISE 14.7 trên FPGA Mục tiêu: 

Làm quen với board phát triển Spartan 6 SP601

 Cài đặt và làm quen với phần mêm thiết kế ISE 14.7

I.

Giới thiệu Board phát triển Spartan 6 SP601 của Xilinx 1.

Giới thiệu Board phát triển SP601 của hãng sản xuất thiết bị nổi tiếng Xilinx sử dụng chip FPGA

XC6SLX16 thuộc họ Spartan-6. Các thông số cũng như tính năng kỹ thuật của SP601 phù hợp với những kỹ sư hay sinh viên mới bắt đầu tìm hiểu về môi trường phát triển FPGA. Board SP601 có những tính năng nổi bật như xử lý bộ nhớ DDR2, parallel flash, ethernet 10/100/1000, các cổng GPIO và kết nối UART. Các tính năng bổ sung có thể được thêm vào thông qua cổng kết nối mở rộng VITA 57.1.1 2.

Thành phần, thông số kỹ thuật Board phát triển SP601 cung cấp những tính năng dưới đây: 

1. Spartan-6 XC6SLX16-2CSG324 FPGA

2. Bộ nhớ DDR2 128 MB

3. SPI x4 Flash

4. Linear Flash BPI

5. 10/100/1000 Tri-Speed Ethernet PHY

7. IIC Bus

8Kb NV memory

External access 2-pin header

VITA 57.1 FMC-LPC connector

8. Clock Generation 

Oscillator [Differential]

Oscillator Socket [Single-Ended, 2.5V or 3.3V]

SMA Connectors [Differential]

9. VITA 57.1 FMC-LPC Connector

10. LEDs trạng thái 

FPGA_AWAKE

INIT

6

 

DONE

13. Cổng I/O 

LEDs

Công tắc DIP

Nút nhấn pushbuttons

Header GPIO đực

14. FPGA_PROG_B Pushbutton Switch

15. Configuration Options

3. SPI x4 Flash [both onboard and off-board]

4. Linear Flash BPI

JTAG Configuration

16. Power Management 

AC Adapter and 5V Input Power Jack/Switch

Onboard Power Supplies

Sơ đồ khối và các ngoại vi của SP601:

7

Mô tả chi tiết:

Các thành phần hiển thị ở hình trên được chú thích theo bảng dưới đây: STT

Tên

Chú thích

1

Spartan-6 FPGA

XC6SLX-2CSG324

2

DDR2

3

SPIx4 flash và headers

4

Linear Flash BPI

5

10/100/100 Ethernet

GMII Marvell Alaska

6

RS232 UART [USB bridge]

Sử dụng kết nối CP2103 Serial-to-USB

7

IIC

Kết nối đến chân cắm và VITA 57.1 FMC

8

Clock, socket, SMA

9

VITA 57.1 FMC-LPC

Tín hiệu LVDS, clocks, PRSNT

10

Leds

Led trạng thái của Ethernet PHY

11

LED, Header

FPGA awake led, header ngắt

Elpida EDE1116ACBG 1 Gb DDR2 SDRAM SPI và chân cắm ngoài StrataFlash 8-bit [J3 device], 3 pins shared w/ SPI x4

8

12

13

LEDs

FPGA INIT, DONE

LED

I/O [tích cực mức cao]

Công tắc DIP switch

I/O [tích cực mức cao]

Nút nhấn PushButton

I/O, CPU_RESET [tích cực mức cao]

Header 12-chân [8 chân I/O]

Header đực 6x2, 08 chân I/O [tích cực mức cao]

14

Nút nhấn Pushbutton

FPGA_PROG_B

15

USB JTAG

Đầu nối USB-to-JTAG, cáp nạp

16

Module nguồn

Cung cấp nguồn cho board SP601

II. Cài đặt phần mềm thiết kế ISE của Xilinx

1.

Giới thiệu phần mêm thiết kế ISE design suite ISE [Intergrated Synthesis Environment] là bộ công cụ được đề xuất bởi Xilinx để tổng hợp và phân tích các thiết kế HDL. Bộ design suite này giúp các lập trình viên trong việc biên dịch các thiết kế, kiểm tra các mô hình RTL đồng thời cũng là một công cụ mô phỏng rất mạnh mẽ. ISE design suite được Xilinx khuyến nghị sử dụng cho các sản phẩm của hãng như các dòng Spartan®-6 và Virtex®-6 trở xuống. Phần mềm này hoạt động ổn định trên các hệ điều hành như Window XP/7/Server và Linux, riêng phiên bản ISE 14.7 có hỗ trợ thêm Window 10. Với các dòng sản phẩm mới hơn như Virtex®-7, Kintex®-7, Artix®-7, and Zynq®-7000, Xilinx đề nghị sử dụng bộ phần mềm mới hơn là Vivado® Design Suite. Môn thiết kế hệ thống số với mục đích giúp sinh viên chuyên ngành hệ thống nhúng và điều khiển tự động bước đầu làm quen với FPGA và ngôn ngữ mô tả phần cứng VHDL nên vẫn sử dụng Board Spartan 6 SP601 và bộ phần mềm ISE 14.7. Ở những học kỳ sau với những môn chuyên ngành chuyên sâu hơn, khoa Điện tử Viễn thông sẽ cung cấp cho sinh viên những Board phát triển mới hơn như Artix®-7, and Zynq®-7000 và bộ phần mềm Vivado® Design Suite.

2.

Cài đặt 

File cài đặt của ISE design suite 14.7 có thể được tải về trên trang chủ của Xilinx theo đường link sau: //www.xilinx.com/support/download/index.html/content/xilinx/en/downloadN av/vivado-design-tools/archive-ise.html

Sinh viên lựa chọn phiên bản thích hợp với hệ điều hành trên máy tính của mình. Cấu hình đề xuất để desktop và Laptop chạy ổn định ISE là:

9

CPU:

từ Intel CoreI3 thế hệ thứ 8 trở lên

RAM:

Từ 8GB DDR4 trở lên

HDD:

Yêu cầu dung lượng trống để cài đặt từ 30GB trở lên Khuyến khích sử dụng SSD.

Sau khi tải file cài đặt về máy, tiến hành cài đặt như bình thường.

Lưu ý: Nếu sinh viên sử dụng Window 10 thì phải bật chế độ Virtualization trong BIOS, do Xilinx chạy ISE trên Window10 thông qua máy ảo Oracle VM VirtualBox.

III. Chương trình trên ISE design suite Phần 3 của buổi 1 sẽ hướng dẫn sinh viên cách viết một chương trình giao tiếp I/O đơn giản trên phần mềm ISE 14.7 và nạp chương trình lên board SP601. Chương trình này sẽ sử dụng 04 công tắc GPIO DIP SW để điều khiển đèn GPIO LED trên board. 1.

Tạo project Bước 1: Có 2 cách để tạo một project mới trong ISE 14.7, vào File > New Project hoặc chọn New Project ngay tại màn hình bắt đầu.

10

Bước 2: Sau khi chọn New Project, chương trình hiện ra cửa sổ New Project Wizard, ta chọn thư mục lưu project cũng như đặt tên cho project tại đây:

Bước 3: Ở cửa sổ tiếp theo, trong tab Evaluation Development Board chọn Spartan-6 SP601 Evaluation platform.

11

Bước 4: Sau khi tạo xong project, click phải chuột vào xc6slx 16-2csg324 trong mục hierarchy rồi chọn New Source

Tiếp theo chọn VHDL Module và đặt tên cho file thiết kế sử dụng ngôn ngữ VHDL:

Nhấn Next để tiếp tục chuyển đến cửa sổ soạn thảo như dưới đây:

12

2.

Viết chương trình và biên dịch Sinh viên có thể viết trực tiếp ở cửa sổ của ISE hoặc trên các phần mềm khác như Notepad++ rồi paste lại. Nếu có sẵn file .vhd thì chỉ cần thêm file vào project thông qua add source. Chương trình I/O interfacing được viết dưới đây sử dụng ngôn ngữ VHDL để điều khiển 2 leds đơn trên board SP601 bằng 2 switches. Sinh viên cũng có thể viết bằng Verilog nếu thích.

Để thực hiện biên dịch và tổng hợp thiết kế ta click đúp vào Synthesize trong cửa sổ Design, ta còn có thể kiểm tra cú pháp [check syntax] và xuất sơ đồ RTL thông qua Synthesize.

13

Xuất sơ đồ RTL của thiết kế:

3.

Tạo file testbench để mô phỏng Ngôn ngữ mô tả phần cứng VHDL có rất nhiều các phần mềm mô phỏng mạch số được phát hành bởi các công ty khác nhau, ở đây ta sử dụng công cụ ISIM được tích hợp sẵn trong bộ công cụ ISE design suite. Để tiến hành mô phỏng thiết kế ở phần trên ta thực hiện các bước sau: Bước 1: tạo file testbench, thông qua click phải chuột vào xc6slx16-2csg324 và chọn New Source, sau đó chọn VHDL Test Bench và đặt tên cho file, ở đây tên file được đặt là IO_interfacing_TB

14

Bước 2: Sau khi tạo xong file testbench, ta tiến hành viết mã nguồn để mô phỏng hành vi của Leds và các công tắc [switches] như dưới đây:

Chuyển từ trạng thái Implementation sang Simulation, tiếp theo chọn file IO_Interfacing và click đúp vào Simulate Behavioral để tiến hành mô phỏng. Kết quả mô phỏng được hiển thị ở hình dưới và nó phản ánh chính xác theo đúng như code VHDL đã thể hiện, switch1 điều khiển led1, switch2 điều khiển led2.

4.

Cấu hình chân và nạp chương trình lên board SP601 Sau khi hoàn tất việc mô phỏng, ta có thể nạp code vừa được tổng hợp [synthesize] ở trên vào FPGA Board để kiểm tra nếu có. Trong trường hợp không có kít thì chỉ có thể kiểm tra dựa vào waveform sinh ra sau khi mô phỏng như trên. Bước 1: Để nạp được code vào Board, ta cần kiểm tra các thành phần và linh kiện mà Board đó cung cấp đồng thời thấy thông tin về chân của các linh kiện đó, như code ví dụ ở các bước trên ta cần 2 GPIO Leds và 02 GPIO switches. Thông tin về chân và các thành phần của Board được cung cấp trong tài liệu SP601 Hardware User Guide, công bố bởi Xilinx. Sau khi

15

tra cứu trong Appendix C: SP601 master UCF [ trang 48] ta có được thông tin về GPIO Leds và GPIO switches trên board SP601 như sau:

Bước 2: Khi đã xác định được các thành phần cần thiết, ta thực hiện gán các chân này cho các port mà ta đã khai báo trong ENTITY, cụ thể là switch1, switch2, led1, led2. Bước 3: Để thực hiện gán chân, ta chọn xc6slx16-2csg324, click phải chọn New Source, ở cửa sổ tiếp theo ta chọn Implementation Constraints File rồi đặt tên cho file này, ở đây người viết đặt IO_interfacing_const rồi finish. Tiếp theo trong giao diện constrains file ta thực hiện gán chân như hình dưới đây và lưu file:

Bước 4: Tiến hành tổng hợp thiết kế [synthesize], nếu đã tổng hợp trước đó thì có thể sang bước tiếp theo Implement Design và Generate Programming File. Bước 5: Nạp thiết kế vào board Spartan 6 SP601, trước khi nạp code cần kiểm tra lại xem board đã được cấp nguồn vào kết nối với máy tính thông qua USB JTAG hay chưa.

16

Nếu nguồn và cổng USB JTAG đã được kết nối ta tiến hành Configure Target Device

Ở cửa sổ ISE IMPACT hiện ra chọn Boundary scan, click phải chuột ở giao diện mới, chọn Add Xilinx Device rồi tiến hành add file .bit tạo ra từ quá trình Configuration, vd như ở đây file của người viết là IO_Interfacing.bit. Giao diện Boundary Scan sẽ hiện ra biểu tượng IC FPGA của Xilinx, click phải chuột chọn Program -> Apply -> OK. Nếu chương trình được nạp thành công, hộp thông báo màu xanh “Program Succeeded” sẽ hiện ra như hình dưới.

17

Kết quả hiển thị trên Board Spartan6 SP601 như hình dưới

18

Bài 2. Tổng quan về phần mềm thiết kế Vivado trên FPGA Mục tiêu:

I.

Làm quen với board ARTY A7

Nắm vững các thông số kỹ thuật của ARTY A7

Cài đặt và sử dụng phần mêm thiết kế Vivado.

Giới thiệu Board phát triển ARTY A7-35T 1

Giới thiệu ARTY A7 là board phát triển FPGA của hãng Digilent được xây dựng dựa trên nền tảng FPGA Artix-7 của Xilinx, sản phẩm gồm 2 phiển bản là ARTY-35T và ARTY-100T, phiên bản được sử dụng trong tài liệu này là ARTY-35T. Sản phẩm này của Digilent rất phù hợp cho các nhà nghiên cứu cũng như các sinh viên trong quá trình học tập vè FPGA do tính linh hoạt trong ứng dụng của nó. Ngoài các cổng giao tiếp thông dụng như UARTs, IICs, SPIs và Ethernet MAC, ARTY còn được cung cấp layout headers của Arduino R3 và 4 cổng PMODs, rất tiện dụng trong các project IoTs và ứng dụng vi điều khiển.

19

2

Thành phần, thông số kỹ thuật Các thành phần và thông số kỹ thuật của board ARTY 7 được liệt kê bới danh sách dưới đây [các thông số này là tổng quát cho cả 2 phiên bản 35T và 100T]: 

Xilinx Artix-7 FPGA: -

Clock speeds 100MHz

-

Tích hợp sẵn bộ chuyển đổi ADC [XADC]

-

Nạp chương trình thông qua JTAG và Quad-SPI Flash

System Features: -

256MB DDR3L cùng với 16-bit bus @ 667MHz

-

16MB Quad-SPI Flash

-

Mạch nạp USB-JTAG [ Sản phẩm không bán kèm cáp]

-

Cấp nguồn từ USB hoặc nguồn DC 7V-15V

System Connectivity: -

10/100 Mbps Ethernet

-

USB-UART Bridge

Interaction and Sensory Devices: -

4 công tắc

-

4 nút nhấn

-

1 nút reset

-

4 LEDs đơn

-

4 LEDs RBG

Kết nối mở rộng: -

4 cổng kết nối Pmod

-

Có sẵn các headers để kết nối với shields sử dụng layout của Arduino

II. Cài đặt phần mềm thiết kế Vivado của Xilinx a.

Giới thiệu phần mêm thiết kế Vivado design suite Vivado là bộ phần mềm lập trình cho FPGA và được thiết kế bởi hãng Xilinx. Phiên bản tiền nhiệm của Vivado là ISE design suite, bắt đầu từ các dòng sản phẩm spartan-7 trở lên, người dùng bắt buộc phải sử dụng Vivado để làm việc với các sản phẩm mới hơn của Xilinx. Ngoài ra, phần mềm này chỉ tương thích với Window và Linux.

b.

Cài đặt 

File cài đặt của Vivado design suite có thể được tải về trên trang chủ của Xilinx theo đường link sau: //www.xilinx.com/support/download/index.html/content/xilinx/en/download Nav/vivado-design-tools/2019-2.html

20

Sinh viên lựa chọn phiên bản thích hợp với hệ điều hành trên máy tính của mình. Khoa ĐTVT khuyến khích các bạn sinh viên sử dụng phiên bản miễn phí WebPACK Cấu hình đề xuất để desktop và Laptop chạy ổn định Vivado là: CPU :

từ Intel CoreI3 thế hệ thứ 8

RAM:

Từ 8GB DDR4

HDD:

Dung lượng file cài đặt là 26GB, yêu cầu dung lượng trống để cài đặt từ 30GB trở lên Khuyến khích sử dụng SSD.

Sau khi tải file cài đặt về máy, tiến hành cài đặt như bình thường.

III. Chương trình trên Vivado design suite a.

Tạo 1 project trên Vivado Mở Vivado, chọn “Create project”

Tiếp theo, đặt tên cho project tại ô “Project name”, chọn tick vào “Create project subdirectory” để chương trình tự một folder riêng cho project mới. Chọn “RTL Project” và tick “Do not specify sources at this time”

21

Default Part: để chọn đúng board ARTY-35T, ta lựa chọn như sau: Family: Artix-7 Package: csg324 SpeedL -1L Trong danh sách các board được liệt kê ở dưới, chọn “xc7a35ticsg324-1L” [Nếu như phần mềm Vivado đã được cài sẵn Digilent board file thì chỉ cần chọn tab “Boards” rồi chọn ARTY A7-35T] Link Digilent board file:

//reference.digilentinc.com/vivado/installing-

vivado/start

b.

Viết chương trình và biên dịch Sau khi project đã được tạo xong, để tạo file code VHDL hoặc Verilog, trong cửa sổ Sources -> Design Source, phải chuột chọn Add Sources

22

Chọn “Add or create design source” -> “Create File” Trong File type: chọn ngôn ngữ lập trình [VHDL/ Verilog] Trong File name: chọn tên cho file văn bản chứa code -> finish Ở cửa sổ Define Module tiếp theo, nếu muốn chọn sẵn các cổng input hay output thì chọn ở I/O Port Definitions, nếu không thì chỉ cần “OK”, các cổng I/O này có thể được định dạng bằng code

Sau khi file mã nguồn .vhd [hoặc .v nếu dùng verilog] đã được khởi tạo, ta viết code vào giao diện text editor của phần mềm Vivado như hình dưới.

23

c.

Tạo file testbench Để tạo file testbench, tương tự như khi tạo file code VHDL hay Verilog, trong cửa sổ Sources -> Design Source, phải chuột chọn Add Sources Chọn “Add or create simulation source” -> “Create File” Trong File type: chọn ngôn ngữ lập trình [VHDL/ Verilog] Trong File name: chọn tên cho file văn bản chứa code -> finish

Sau khi viết file testbench, save file, ta tiến hành mô phỏng file vừa viết bằng công cụ ISIM tích hợp sẵn trong Vivado như sau: Cửa sổ PROJECT MANAGER chọn SIMULATION Chọn Run Simulation  Run Behavioral Simulation

Sau khi ISIM mô phỏng xong file testbench, kết quả mô phỏng được hiển thị như hình dưới đây:

24

Mã nguồn tham khảo cho testbench: --------- Company: Engineer: ---------LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY sw_led_TB IS END sw_led_TB; ARCHITECTURE behavior OF sw_led_TB IS COMPONENT sw_led PORT[ sw : IN std_logic; led : OUT std_logic ]; END COMPONENT; signal sw : std_logic := '0'; signal led : std_logic; BEGIN uut: sw_led PORT MAP [ sw => sw, led => led ]; Stimulus process stim_proc: process begin hold reset state for 100 ns. wait for 100 ns; -- insert stimulus here sw temp1,s=>S[0]]; map[a=>A[1],b=>B[1],c=>temp1,co=>temp2,s=>S[1]]; map[a=>A[2],b=>B[2],c=>temp2,co=>temp3,s=>S[2]]; map[a=>A[3],b=>B[3],c=>temp3,co=>Carryout,s=>S[3]];

end Behavioral; library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity fa is port[ a,b,c:in std_logic; co:out std_logic;

Chủ Đề