1. Trang chủ
  2. » Giáo án - Bài giảng

Tài liệu hướng dẫn thực hành môn thiết kế hệ thống số HỌC VIỆN KỸ THUẬT MẬT MÃ

70 142 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu hướng dẫn thực hành môn thiết kế hệ thống số
Trường học Học viện Kỹ thuật Mật mã
Chuyên ngành Điện tử viễn thông
Thể loại Tài liệu thực hành
Định dạng
Số trang 70
Dung lượng 2,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ VIỄN THÔNG

THỰC HÀNH THIẾT KẾ HỆ THỐNG SỐ

GIẢNG VIÊN/SINH VIÊN

Trang 3

Giới thiệu 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

Trang 4

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ử nguyenhuuson@actvn.edu.vn

Chân thành cảm ơn

Trang 5

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

Trang 6

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

Trang 7

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

 4 Linear Flash BPI

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

 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

Trang 8

 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:

Trang 9

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:

1 Spartan-6 FPGA XC6SLX-2CSG324

DDR2 SDRAM

3 SPIx4 flash và headers SPI và chân cắm ngoài

4 Linear Flash BPI StrataFlash 8-bit (J3 device), 3 pins

shared w/ SPI x4

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

Trang 10

12 LEDs FPGA INIT, DONE

13

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:

https://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à:

Trang 11

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

Trang 12

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

Trang 13

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:

Trang 14

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

Trang 15

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

Trang 16

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

Trang 17

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

Trang 18

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

Trang 19

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

Trang 20

Bài 2 Tổng quan về phần mềm thiết kế Vivado trên FPGA

Mục tiêu:

 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

I 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

Trang 21

- 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

- 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:

https://www.xilinx.com/support/download/index.html/content/xilinx/en/download

Trang 22

 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”

Trang 23

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: vivado/start

https://reference.digilentinc.com/vivado/installing-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

Trang 24

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 <file_name>.vhd (hoặc <file_name>.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

Trang 25

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:

Trang 26

Mã nguồn tham khảo cho testbench:

Trang 27

d Cấu hình chân và nạp chương trình

Để cấu hình chân, trong cửa sổ Sources ta chọn Constraints, phải chuột chọn Add

Sources

Chọn “Add or create constraint source” -> “Create File”

Trong File type: chọn ngôn ngữ lập trình (XDC)

Trong File name: chọn tên cho file văn bản chứa code -> finish

Cấu hình chân trên board ARTY A7-35T:

set_property -dict { PACKAGE_PIN H5 IOSTANDARD LVCMOS33 } [get_ports

{ led[ ] }]; #IO_L24N_T3_35 Sch=led[ ]

set_property -dict { PACKAGE_PIN J5 IOSTANDARD LVCMOS33 } [get_ports

{ led[ ] }]; #IO_25_35 Sch=led[ ]

set_property -dict { PACKAGE_PIN T9 IOSTANDARD LVCMOS33 } [get_ports

{ led[ ] }]; #IO_L24P_T3_A01_D17_14 Sch=led[ ]

set_property -dict { PACKAGE_PIN T10 IOSTANDARD LVCMOS33 } [get_ports

{ led[ ] }]; #IO_L24N_T3_A00_D16_14 Sch=led[ ]

Sau khi đã chuẩn bị xong file chương trình vhdl ( hoặc v) và file gán chân xdc, chúng ta tiến hành tổng hợp và cứng hóa chương trình, Run Systhesis  Run Implementation Sau khi hoàn tất synthesis và implementation ta tiếp tục Generate Bitstream (có thể trực tiếp Generate Bitstream luôn, lúc này Vivado sẽ tự động thực hiện synthesis và implemantation)

Trang 28

hiển thị ở cửa sổ messages, tiến hành sửa lỗi rồi tiếp tục Generate Bitstream Toàn bộ quá trình này sẽ tốn khoảng 3~5 phút tùy thuộc vào cấu hình của máy tính chạy Vivado

Sau khi Generate Bitstream hoàn tất, cửa sổ thông báo sẽ được hiển thị như sau:

Tiếp tục nạp code xuống board ARTY A7-35T, ta chọn Open Hardware Manager

Chọn Open Target rồi Auto connect

Nếu như board đã được kết nối với máy tính thông qua cáp micro USB, cửa sổ Hard ware

sẽ hiển thị như hình dưới, click phải chuột vào xc7a35t_(0) rồi chọn Program Device

Trang 29

Ở cửa sổ tiếp theo, trong tab Bitstream File ta trỏ về file bitstream sw_led.bit theo đường

1 Sinh viên tiến hành viết một chương trình điều khiển led thông qua công tắc switch trên board

2 Mở rộng bài toán, sinh viên viết chương trình điều khiển 4leds trên board ARTY A7-35T sử dụng các switches hoặc các nút nhấn buttons

3 Tập làm quen với board clock thông qua điều khiển 4leds đơn hoặc 4leds RBGs

Trang 30

Bài 3: Bộ cộng Full – Adder 4bits

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

 Máy tính cài đặt phần mềm ISE design suite 14.7

 Board Spartan-6 SP601

 Sinh viên thực hiện bài thực hành theo yêu cầu của giảng viên

 Làm báo cáo thực hành

III Nội dung

Bộ cộng full-adder 4bits được xây dựng từ 4 bộ cộng full-adder với bảng sự thật và được mô tả như sau:

Từ mô tả trên, ta định nghĩa được 1 ENTITY với các cổng vào ra như sau:

S: out STD_LOGIC_VECTOR( downto );

Carryout: out std_logic

);

end fourbit_adder;

Trang 31

Từ bảng sự thật trên, ta rút ra biểu thức đại số logic của bộ cộng full-adder:

s<=a xor b xor c;

co<=(a and b) or c and A OR B));

Kết hợp 4 bộ cộng này lại ta được full-adder 4bits

Dưới đây là chương trình tham khảo

S: out STD_LOGIC_VECTOR( downto );

Carryout: out std_logic

fa0:fa port map ( =>A 0),b=>B 0),c=>Cin,co=>temp1, =>S 0));

fa1:fa port map ( =>A 1),b=>B 1),c=>temp1,co=>temp2, =>S 1));

fa2:fa port map ( =>A 2),b=>B 2),c=>temp2,co=>temp3, =>S 2));

fa3:fa port map ( =>A 3),b=>B 3),c=>temp3,co=>Carryout, =>S 3));

Trang 33

IV Kết quả mô phỏng bằng ISIM:

Bài tập:

1 Bài tập trên lớp: sinh viên thực hiện viết file Testbench cho bộ cộng full – adder

2 Bài tập về nhà: thực hiện xây dựng các mạch logic thông dụng khác sử dụng ngôn ngữ VHDL

Trang 34

Bài 4: Điều khiển màn hình chỉ thị số LED

I Mục đích

Giúp sinh viên hiểu phương pháp điều khiển hiển thị lên màn hình chỉ thị LED, cụ thể là

ở đây chúng tôi sử dụng module led 7 đoạn Pmod-SSD của Digilent Đây là bài thực hành tiêu biểu cho bài toán hiển thị vì chức năng này là gần như là bắt buộc với hầu hết các hệ thống số Bài thực hành giúp sinh viên hiểu và có khái niệm rõ ràng hơn khi so sánh chương trình viết cho Vi điều khiển và viết cho FPGA sử dụng VHDL

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

 Máy tính cài đặt phần mềm Vivado

 Board ARTY A7-35T

 Sinh viên thực hiện bài thực hành theo yêu cầu của giảng viên

 Làm báo cáo thực hành

III Nội dung

1 Sơ lược về module led 7 đoạn Pmod-SSD

Module led 7 đoạn sử dụng trong bài thực hành này được sản xuất bởi hãng Digilent, cấu tạo gồm 2 led 7 đoạn cathode chung trên bảng mạch có 10 chân đầu vào Mỗi một led 7 đoạn bao gồm 7 led đơn dạng thanh xếp theo hình số tám và có thêm 1 led đơn tròn phía góc dưới bên phải Do mạch sử dụng led cathode chung, nên cực cathode của 8 led đơn được đấu chung với nhau và đặt tên là CAT Các chân còn lại dùng để điều khiển trạng thái sáng tắt của led đơn, đặt tên theo thứ tự là AA, AB, AC, AD, AE, AF, AG Các led trên board Pmod-SSD chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1 Cấu tạo của board Pmod-SSD và nguyên lý tắt sáng của

2 led 7 đoạn trên board được thể hiện ở hình dưới:

Ở bài thực hành này, sinh viên được yêu cầu viết chương trình để hiển thị số lên 2 đèn led 7

Trang 35

9 use IEEE.STD_LOGIC_1164 ALL ;

10 use IEEE.NUMERIC_STD ALL ;

20 the values to display

21 seg1_value : in std_logic_vector( downto );

22 seg2_value : in std_logic_vector( downto );

37 signal mux_state_s : std_logic := '0';

38 signal seg_coder_in_s: std_logic_vector( downto ):=( others =>'0');

39 signal prescale_cnt_s: integer range to CLK_FREQ/MUX_FREQ):=0

Ngày đăng: 19/04/2021, 12:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w