Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ Thiết kế lõi IP APB-UART I2C Controller

mã tài liệu 301000100138
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file thuyết minh, code, kết quả Mô phỏng và.... ,nhiều tài liệu liên quan kèm theo ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ Thiết kế lõi IP APB-UART I2C Controller
giá 759,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

MỤC LỤC Thiết kế lõi IP APB-UART I2C Controller

LỜI CAM ĐOAN.. 1

MỤC LỤC.. 2

DANH MỤC TỪ VIẾT TẮT.. 4

LỜI MỞ ĐẦU.. 5

Chương 1:  CƠ SỞ LÝ THUYẾT.. 7

1.1.        Giới thiệu chương:7

1.2.        Tổng quan về quy trình thiết kế vi mạch số:7

1.2.1.           Quy trình thiết kế vi mạch số:. 7

1.2.1.1.            Specification:7

1.2.1.2.            Verification:8

1.2.1.3.            Physical design:9

1.2.2.           Công cụ:. 10

1.2.2.1.            Specification:10

1.2.2.2.            Verification:11

1.2.2.3.            Physical Design:11

1.3.        Cơ sở lý thuyết UART.. 11

1.3.1.           Giới thiệu chung về UART. 11

1.3.2.           Chức năng chính của UART:. 12

1.3.2.1.            Định dạng khung dữ liệu truyền theo chuẩn UART:12

1.3.2.2.            Các chế độ truyền dữ liệu:12

1.3.2.3.            Tốc độ Baud(bps). 12

1.3.3.           Các chức năng khác của UART. 13

1.3.3.1.            Giao tiếp với bus APB.. 13

1.3.3.2.            Các tín hiệu ngắt16

1.4.        Cơ sở lý thuyết I2C.. 16

1.4.1.           Giới thiệu chung về I2C:. 16

1.4.1.1.            Lịch sử phát triển của I2C:16

1.4.1.2.            Đặc điểm giao tiếp I2C:17

1.4.2.           Đặc điểm chung của I2C:. 18

1.4.2.1.            Định dạng khung dữ liệu:18

1.4.2.2.            Điều kiện START và STOP:18

1.4.2.3.            Địa chỉ thiết bi.19

1.4.2.4.            Chế độ Master-Slave:19

1.5.        Tổng quan về Altera DE2 Board Development and Education.21

1.5.1.           Giới thiệu:. 21

1.5.2.           Specification:. 21

Chương 2:       UART’S SPECIFICATION.. 23

2.1.        Giới thiệu chương:23

2.2.        Đặc tính của lõi IP UART Controller:23

2.3.        Thiết kế mức kiến trúc:23

2.4.        Thanh ghi cấu hình của UART:26

2.5.        Thiết kế mức chức năng:28

2.5.1.           Khối AMBA APB INTERFACE:. 28

2.5.1.1.            Register File:29

2.5.1.2.            Cấu trúc khối TxFIFO:30

2.5.1.3.            Cấu trúc khối các tín hiệu ngắt:32

2.5.2.               Khối BAUD RATE GENERATOR:33

2.5.3.               Khối TRANSMITTER:34

2.5.4.           Khối RECEIVER:. 36

2.6.        Kết luận chương:40

Chương 3:       I2C’S SPECIFICATION.. 41

3.1. Giới thiệu chương:41

3.2.        Đặc tính của lõi IP I2C Controller:41

3.3.        Thiết kế mức kiến trúc:41

3.4.        I2C Register Map:43

3.5.        Thiết kế mức chức năng:46

3.5.1.           APB Interface:. 46

3.5.1.1.            Tập thanh ghi:46

3.5.1.2.            Khối điều khiển ngắt:48

3.5.2.           Tx FIFO và RxFIFO:. 49

3.5.3.           Clock Divider:. 49

3.5.4.           I2C Interface:. 51

3.5.4.1.            Finite State Machine:51

3.5.4.2.            Mạch phát hiện điều kiện Start/Stop:53

3.5.4.3.            Mạch xác định hướng truyền dữ liệu:54

3.5.4.4.            Mạch truyền nhận dữ liệu:54

3.5.4.5.            Mạch xác định ACK:56

3.5.4.6.            Mạch kích hoạt/bất hoạt khối tạo Clock:57

3.6.        Kết luận chương:57

Chương 4   MÔ PHỎNG VÀ TỔNG HỢP. 58

4.1.        Giới thiệu chương:58

4.2.        Giới thiệu phần mềm ModelSIM Altera 6.6d Starter Edition, Quartus II Web Edition và cấu trúc testbench:58

4.2.1.           ModelSIM và Quartus II:. 58

4.2.2.           Testbench. 59

4.3.        Phương pháp và kết quả mô phỏng:60

4.3.1.           APB Master giả lập:. 60

4.3.2.           Mô phỏng UART:. 61

4.4.        Mô phỏng I2C:62

4.4.1.           Mode Master truyền – Slave nhận:. 62

4.4.2.           Mode Master nhận – Slave truyền:. 64

4.5.        Mô phỏng APB – UART/I2C Controller:66

4.6.        Tổng hợp bằng phần mềm Quartus II 9.0 Web Edition:69

4.7.        Kết luận chương:70

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI. 71

TÀI LIỆU THAM KHẢO.. 72

PHỤ LỤC.. 73

 

DANH MỤC TỪ VIẾT TẮT

I2C                           Inter Intergrated Circuit

UART                      Universal Aschynorous Receiver Transmitter

IP                              Intellectual Property

RTL                          Register Transfer Level

FPGA                       Field Programmable Gate Array

I/O                            Input / Output

IC                             Intergrated Circuit

BRG                         Baud Rate Generater

APB                         Advanced Peripheral Bus

AMBA                     Advanced Microcontroller Bus Architecture

ACK                        Acknowledge

FIFO                        First In First Out

Tx                            Transmitter

Rx                            Receiver

DMA                       Direct Memory Access

LỜI MỞ ĐẦU

Ngày nay, cùng với sự phát triển không ngừng của các dòng vi điều khiển, các loại thiết bị ngoại vi, các chuẩn giao tiếp cũng phát triển ngày càng đa dạng. Các loại vi điều khiển hay các loại thiết bị ngoại vi khác nhau (như LCD, sensor hay các loại bộ nhớ) sẽ sử dụng các chuẩn giao tiếp khác nhau. Vậy liệu có thể tích hợp các chuẩn giao tiếp khác nhau (như I2C, UART) trên cùng 1 chip để có thể chuyển đổi linh hoạt giữa các chuẩn giao tiếp khi ta thay đổi sử dụng các loại ngoại vi khác nhau? Trên cơ sở đó, UART/I2C Controller IP core được thiết kế cho phép vi xử lý lựa chọn linh hoạt giữa 2 chuẩn giao tiếp.

Trong nội dung đồ án này, lõi IP UART/I2C Controller được thiết kế theo quy trình thiết kế vi mạch số của tập đoàn Synopsys, một trong những tập đoàn hàng đầu thế giới cung cấp công cụ chuyên dụng trong ngành thiết kế vi hiện nay. Lõi IP được phân tích đến mức cổng logic, từ đó Soft IP được viết bằng ngôn ngữ lập trình phần cứng Verilog, code ở mức RTL được kiểm tra sửa lỗi trên phần mềm ModelSim.Sau đó, lõi IP được tổng hợp ở mức cổng logic trên phần mềm Quartus II, Student Edition và được nạp trên Kit Altera DE2 sử dụng chip FPGA Cyclone II.

Lõi IP UART/I2C Controller do nhóm thiết kế đáp ứng các yêu cầu kĩ thuật đặt ra. UART Controller tương thích chuẩn công nghiệp 16550 và có khả năng truyền nhận dữ liệu song công. UART hoạt động với khung dữ liệu 8 bit, 1 bit Start và 1 bit Stop, đồng thời hỗ trợ tốc độc baud cấu hình được, chế độ Auto Flow cũng như chế độ kiểm tra chẵn lẻ. I2C Controller được thiết kế có thể cấu hình hoạt động là Master hoặc Slaver, hỗ trợ tối đa 128 thiết bị cùng hoạt động với chế độ định địa chỉ 7 bits. I2C Controller hỗ trợ 4 mức tốc độ hoạt động 100kbps, 400kbps, 1Mbps và 3.4Mbps. Ngoài ra, lõi IP giaotiếp với vi xử lý theo chuẩn AMBA APB, sử dụng các FIFO 8x16 trong các hoạt động truyền và nhận dữ liệu.

Nội dung đồ án bao gồm 4 chương:

  • Chương 1: Cơ sở lý thuyết
  • Chương 2: Thiết kế khối UART
  • Chương 3: Thiết kế khối I2C
  • Chương 4: Mô phỏng và tổng hợp

PHÂN CÔNG CÔNG VIỆC

Công việc

Lê Hữu Việt

Võ Thị Kim Nga

Lê Hà Bảo Ngọc

Tìm hiểu lý thuyết

I2C

UART

Board Education and Developtment Altera DE2

Thiết kế UART

Receiver

Transmitter

Baudrate

APB Interface

 

Thiết kế I2C

Clock Devider

I2C Interface

Tx FIFO

Rx FIFO

APB Interface

APB Master

Code RTL

Theo phần đã thiết kế

Mô phỏng

Tổng hợp code và mô phỏng, sửa lỗi độc lập

 

Bên cạnh đó, do được thực tập tốt nghiệp suốt 3 tháng tại Trung tâm Thiết Kế Vi mạch thành phố Đà Nẵng, nên chúng tôi quyết định chọn Đồ án tốt nghiệp theo hướng thiết kế vi mạch để vận dụng các kiến thức đã học được trong quá trình thực tập.

   Nhóm chúng tôi xin chân thành cảm ơn toàn thể thầy cô khoa Điện Tử Viễn Thông đã nhiệt tình hỗ trợ nhóm trong suốt quá trình thực hiện đồ án tốt nghiệp, đặc biệt là Ts. Huỳnh Việt Thắng tận tình hướng dẫn nhóm hoàn thành đồ án theo đúng mục tiêu đề ra.

 

Chương 1:             CƠ SỞ LÝ THUYẾT

1.1.         Giới thiệu chương:

Chương này giới thiệu tổng quan về quy trình thiết kế vi mạch số, cung cấp cái nhìn sơ lược về lịch sử nền công nghiệp vi mạch tích hợp, những bước tiến công nghệ cũng như các khái niệm cơ bảntrong luồng chế tạo vi mạch. Sau đó trình bày cơ sở lý thuyếtchuẩn bus AMBA APB, UART, I2C và giới thiệu sơ lược về Altera DE2 Board Development and Education.

1.2.         Tổng quan về quy trình thiết kế vi mạch số[9]:

1.2.1.     Quy trình thiết kế vi mạch số:

Hình 1.1. Tổng quan về quy trình thiết kế vi mạch số.

Quy trình thiết kế vi mạch số bao gồm 4 bước chính sau:

1.2.1.1.          Specification:

Specification (Hình 1.2) là quá trình nghiên cứu các đặc tính kĩ thuật của lõi IP, từ đó phân tích thiết kế lõi IP đến mức cổng logic,bao gồm 5 bước chính:

Nghiên cứu: Tìm kiếm, đọc hiểu tài liệu và phân tích các giao thức, chức năng, các thông số mong muốn,… để tạo ra bảng chức năng chi tiết.

High-level Design: Thiết kế mức kiến trúc: Bao gồm vẽ sơ đồ khối là thiết kế được chia thành các khối riêng biệt, mỗi khối sẽ đảm nhiệm một chức năng riêng theo ý muốn của kĩ sư thiết kế. Và vẽ sơ đồ tín hiệu là xác định số lượng, chức năng và định thời các tín hiệu. Nếu thiết kế có giao diện được mô tả trong các giao thức chuẩn, các tín hiệu đó sẽ được liệt kê trong tài liệu về giao thức đó.

Hình 1.2. Chi tiết 2 quá trình thiết kế: Specificaton và Verification.

Low-level Design: Phân tích cấu trúc của thiết kế ở mức cổng. Tất cả các khối được phân tích bằng việc sử dụng các bộ MUX, các cổng AND, OR, XOR, NOT và Flip-flop,… Bước này chiếm rất nhiều thời gian do đó đóng vai trò đặc biệt quan trọng trong luồng thiết kế. Kết quả thu được sau khi phân tích là sơ đồ cấu trúc chi tiết của thiết kế.

Coding: Việc viết code RTL được hoàn thành dựa vào sơ đồ cấu trúc chi tiết của thiết kế đã được phân tích ở bước thiết kế mức chức năng.

Block-level check: Kiểm tra và mô phỏng tất cả các khối riêng biệt bằng các công cụ kiểm tra cũng như các phần mềm mô phỏng.

1.2.1.2.          Verification:

Verification (Hình 1.2): quá trình được sử dụng để kiểm tra tính đúng đắn về mặt chức năng của thiết kế, nhằm đảm bảo chắc chắn thiết kế logic phù hợp với specification. Có 2 loại Verification thông dụng là Functional Verification và Timing Verification.

Mục đích: phát hiện các lỗi trong thiết kế. Bởi vì lỗi tìm thấy ở block-level ít gây thiệt hại. Lỗi tìm thấy ở system-level ảnh hưởng đến thời gian sản xuất IC ra thị trường. Lỗi tìm thấy sau khi chế tạo gây tốn kém khá lớn vì chi phí chế tạo lại. Lỗi tìm thấy bởi khách hàng có thể gây thiệt hại hàng triệu đô la và mất uy tín

Verification gồm 3 bước chính:

-            RTL-level Simulation: Mô phỏng, phát hiện và sửa lỗi trong thiết kế ở mức RTL code.

-            Gate-level Simulation: Mô phỏng và kiểm tra tính tương đương trong thiết kế ở mức cổng logic.

-            FPGA Test: Kiểm tra hoạt động cơ bản của thiết kế trên KIT FPGA

1.2.1.3.          Physical design:

Hình 1.3. Chi tiết quá trình thiết kế vật lý.

Synthesis (Hình 1.4.): là quá trình chuyển đổi thiết kế dưới dạng mô tả bằng ngôn ngữ phần cứng(RTL-level) sang mô tả bằng các cổng logic (Gate-level). Quá trình tổng hợp logic được thực hiện bằng cách tổ hợp RTL code và thư viện công nghệ, là thư viện chứa các cell chuẩn và thông số của chúng bao gồm các cổng logic cơ bản (AND OR XOR NOT) và các Macro Cell ( Adder, Mux, Memory, Flip-flop).

Hình 1.4. Quá trình tổng hợp logic.

Pre-layout Timing: Phân tích các vi phạm về timing sau khi tổng hợp

Place and Route: Xác định vị trí các cổng logic đặt trên chip vật lý đồng thời đảm bảo tối thiểu hóa độ trễ trên các Critical Path, độ nghẽn khi routing và độ trễ đường dây bằng cách thay đổi kích thước các cổng logic, chèn thêm các bộ đệm hoặc thực hiện tổng hợp lại từng phần.

Post-layout Timing: Phân tích, kiểm tra timing cho các đường timing sau quá trình Place & Route.

Physical Verification: Kiểm tra layout của IC có thỏa mãn các tiêu chí kĩ thuật theo các luật lệ thiết kế, tính đồng nhất giữa Schematic và Layout.

1.2.2.     Công cụ sử dụng trong thiết kế vi mạch số:

1.2.2.1.          Specification:

Microsoft Word: viết mô tả thiết kế và hướng dẫn sử dụng.

Notepad++/ Emeditor: viết code RTL.

XEmacs: tự động kết nối các khối con.

LEDA (Synopsys) : Kiểm tra lỗi cú pháp trong code RTL.

Microsoft Visio: Vẽ sơ đồ khối, sơ đồ tín hiệu, sơ đồ chi tiết mức cổng logic và sơ đồ máy trạng thái hữu hạn.

Công cụ FPGA: Quartus (Altera), Leonardo Spectrum (Mentor Graphics), ISE Design Suite (Xilinx) được dùng để biên dịch code RTL trên FPGA.

1.2.2.2.          Verification:

VCS (Synopsys): Trình mô phỏng hoạt động trên hệ điều hành Linux, được sử dụng trong công nghiệp.

ModelSim (Mentor Graphic): Trình mô phỏng dùng để kiểm tra chức năng logic của thiết kế..

1.2.2.3.          Physical Design:

Design Compiler: tổng hợp code RTL thành các cổng logic.

IC Compiler: thực hiện quá trình layout thiết kế.

Prime Timer: kiểm tra timing của thiết kế.

Hercules: kiểm tra thiết kế vật lý, Design Rule Check (DRC) và Layout Versus Schematic (LVS).

 

1.3.          Cơ sở lý thuyết về AMBA APB

1.3.1.     Giới thiệu chung về Bus APB [1]

APB (Advanced Peripheral Bus) là 1 phần của cấu trúc bus AMBA (Advanced Microcontroller Bus Architecture).

AMBA APB thường được sử dụng để giaotiếp với các thiết bị ngoại vi có băng thông thấp và không yêu cầu hiệu suất cao.

Sơ đồ tín hiệu vào ra Bus APB như Hình 1.5.

                                             

Hình 1.5. Cấu trúc bus AMBA APB.

 

1.3.2.     Những đặc trưng cơ bản của AMBA APB [1]

-Những phiên bản cập nhật nhất của AMBA APB đảm bảo rằng sự thay đổi của tín hiệu chỉ xảy ra tại sườn lên của xung clock.

-Những đặc trưng cơ bản nhất của AMBA APB:

+Hoạt động của APB bus dựa trên 3 trạng thái cơ bản như Hình 1.6.

.........

Hình 4.8: Slave truyền

Giải thích kết quả:

-  Master Receiver:

+                        Khi Master ở trạng thái Receive, ban đầu sẽ phát byte địa chỉ nên bit i_tx_busy tích cực, sau đó sẽ nhận dữ liệu từ Slave nên i_rx_busy bật lên.

+                        Cứ sau mỗi lần dịch đủ 8 bit của 1byte thì bit i_rxff_wr lại bật lên để ghi vào RxFIFO, tương ứng con trỏ ghi rxff_wptr cũng tăng lên để ghi dữ liệu vào đúng địa chỉ. Dữ liệu nhận được có thể thấy theo tín hiệu rx_din là 8’h7f, 8’h80, 8’h81.

+                        Cuối mỗi byte, bit ack_return bật lên để trả ACK cho Slave, bit zero tích cực.

+                        Máy trạng thái hữu hạn hoạt động lần lượt từ IDLE sang FIRSTBYTE rồi đến RECEIVE.

+                        Để kiểm soát đường truyền, cái bit hiz, onezero phải tích cực thống nhất. Trong quá trình tạo điều kiện START và STOP thì onezero bật lần lượt. Trong khi truyền dữ liệu thì hiz bật, thả SDA cho dữ liệu từ Slave.

-  Slave Transmitter:

+                        Sau khi phát hiện bit START, Slave nhảy vào trạng thái FIRSTBYTE để kiểm tra địa chỉ. Khi byte đầu tiên đúng với địa chỉ của mình (s_right_add tích cực) và xác nhận hướng truyền là từ Slave qua Master thì Slave nhảy sang trạng thái TRANSMIT.

+                        Dữ liệu truyền đi 8’h7f, 8’h80, 8’h81. Tín hiệu i_txff_rd tích cực để đọc các byte dữ liệu này trong TxFIFO.

+                        Trong quá trình truyền 8 byte dữ liệu, hiz tắt để SDA truyền dữ liệu. Tại xung clock thứ 8 của SCL, hiz bật để chờ nhận ACK từ Master.

Đánh giá kết quả:

-  Byte đầu tiên Master truyền đúng địa chỉ của Slave (1010101) và bit R/W = 1 (master nhận).

-  Các byte dữ liệu tiếp theo truyền được là 8’h7f, 8’h80, 8’h81 đúng với dữ liệu đưa xuống I2C Slave.

-  Transmit FIFO của Slave và Receive FIFO của Master hoạt động đúng với thiết kế.

-  Tốc độ SCL tương ứng là 100kps.

4.2.    Mô phỏng APB – UART/I2C Controller:

Phương pháp mô phỏng:

-  Cấu hình cho 2 thiết bị I2C ở mode Master nhận – Slave truyền như ở mục 3.3.3.2 với APB – UART/I2C Controller đóng vai trò là I2C Master:

+                        Thiết lập các thanh ghi cấu hình của I2C Slave:

  • Control Register (011): xác định thiết bị là Slave, xóa FIFO truyền; xóa FIFO nhận.
  • Address Register (1010101): gán địa chỉ thiết bị Slave.
  • Interrupt Enable Register (111): cho phép ngắt Truyền, ngắt Nhận và ngắt Overrun.
  • Status Register: cho phép I2C Slave hoạt động

+                        Thiết lập các giá trị của các thanh ghi điều khiển I2C Master như sau:

  • Control Register (111): xác định thiết bị là Master; xóa FIFO truyền; xóa FIFO nhận.
  • Transmit Address Register (1010101): cho Master biết địa chỉ của Slave sẽ giao tiếp
  • Interrupt Enable Register (111): cho phép ngắt Truyền; ngắt Nhận và ngắt Overrun.
  • Clock Devider Register (00): tốc độc chuẩn 100kbps.
  • Command Register (011): phát tín hiệu Start, bật W/R để báo Slave biết Master sẽ đọc dữ liệu. Sau đó phát Stop (001).
  • Status Register: cho phép I2C Master hoạt động.

-  Cấu hình cho UART:

+                        Control Register (1110101): Xóa FIFO truyền; xóa FIFO nhận; set mức ngưỡng FIFO truyền và nhận 8 byte; bật chế độ Autoflow

+                        Baudrate Register : (11011000): đưa tốc độ Baud tương ứng là 19200.

+                        Interrupt Enable Register (11111): cho phép ngắt Truyền, ngắt Nhận, ngắt Overrun, ngắt Frame và ngắt Parity

+                        Status Register (111): bật bit kiểm tra chẵn lẻ Parity, chọn Bsel = 8 và cho phép UART hoạt động.

-  Dữ liệu được lưu trong FIFO nhận của I2C Master sẽ được APB Master đọc ra và đưa lên UART.

-  UART phát dữ liệu vừa nhận từ APB. Đồng thời nối đầu ra TX vào đầu vào RX nên UART cũng đồng thời nhận dữ liệu.

-  Kiểm tra dữ liệu trên đường truyền SDA có đúng với dữ liệu đưa vào I2C Slave.

-  Kiểm tra hoạt động clock SCL.

-  Kiểm tra dữ liệu phát ra và nhận vào trên đường TX và RX có đúng với dữ liệu từ I2C.

-  Kiểm tra các tín hiệu nội của UART và I2C.

Kết quả mô phỏng:

Hình 4.11: Truyền nhận của UART/I2C Controller

Giải thích kết quả:

-         Kết quả trên mô phỏng thêm trường hợp sử dụng bit RESTART. Khi có bit RESTART, đường SCL kéo lên mức 1.

-         Ban đầu Master nhận dữ liệu 8’h7f, 8’h80, 8’h81, 8’h82 từ Slave. Sau khi có bit RESTART, Master nhảy về lại trạng thái FIRSTBYTE để truyền địa chỉ và hường truyền. Sau RESTART, Master truyền các byte dữ liệu 8’h02, 8’h03, 8’h04, 8’h05. Ta thấy các con trỏ ghi RxFIFO rxff_wptr, và con trỏ đọc TxFIFO txff_rptr tăng lên theo các byte dữ liệu nhận hay truyền.

-         Dữ liệu nhận từ I2C được APB điều khiển đọc ra và truyền qua UART các byte 8’h7f, 8’h80, 8’h81.

Đánh giá kết quả:

-            I2C Master nhận được 4 byte dữ liệu từ I2C Slave. Theo điều khiển của APB Master đã truyền 3 byte đầu cho UART.

-            UART truyền và nhận lại đúng 3 byte theo điều khiển của APB Master theo đúng tốc độ baud thiết kế

-            Vậy APB – UART/I2C Controller hoạt động đúng.

4.3.    Tổng hợp bằng phần mềm Quartus II 9.0 Web Edition:

Kết quả tổng hợp:

Hình 4.12: Kết quả tổng hợp trên Quartus

 

Đánh giá kết quả:

-            Thiết kế được nhúng trên EP2C35F672C6, thuộc họ Cyclone II.

-            Lõi IP chỉ sử dụng:

+                        411/33.216 thanh ghi (3%)

+                        554/483.840 bit nhớ (3%)

+                        943/33.216 thành phần logic (<1%)

+                        107/475 chân

Thiết kế được tối ưu hóa trong quá trình coding do vậy gần như tối thiểu số lượng cổng logic sử dụng, từ đó lõi IP chỉ sử dụng khoảng 3% tài nguyên của chip FPGA. Ngoài ra, lõi IP bước đầu đạt yêu cầu về timing, đảm bảo không có đường timing nào vi phạm về setup time hoặc hold time.

4.4.    Kết luận chương:

Dựa vào UART/I2C Controller, chương 4 đã trình bày phương pháp và kết quả mô phỏng kiểm tra chức năng của lõi IP trên phần mềm ModelSIM và tổng hợp phần cứng thiết kế trên Quartus II để đánh giá về timing và dung lượng.Các kết quả cho thấy, thiết kế UART/I2C Controller đã đạt được yêu cầu đề ra.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Sau 5 tháng nghiên cứu đề tài, lõi IP APB-UART/I2C Controller được thiết kế bằng ngôn ngữ mô tả phần cứng Verilog thực hiện đúng theo các yêu cầu kĩ thuật mong muốn, đảm bảo giao tiếp theo giao thức I2C và UART hoạt động song hành.

Quá trình mô phỏng dạng tín hiệu trên ModelSim kiểm tra tất cả chế độ hoạt động cũng như các chức năng logic của lõi IP.Đồng thời, quá trình tổng hợp thiết kế trên chip FPGA cho thấy lõi IP APB-UART/I2C Controller chỉ chiếm nguồn tài nguyên khá nhỏ, thiết kế có thể phát triển mở rộng hơn nữa.

Do thời gian nghiên cứu còn hạn hẹp, nên đề tài chỉ mới dừng lại ở mức Specification (high – level design, low – level design, RTL code, block – level check) và kiểm tra trên FPGA. Nếu có điều kiện về thời gian cũng như sự hỗ trợ của phần mềm, chúng tôi muốn đưa thiết kế của mình xuống mức Verification để có thể kiểm tratổng quát hơn về chức năng, và Physical Design để tối ưu hóa thiết kế và đánh giá được timing và công suất tiêu tốn.

Về hướng phát triển của đề tài, trước mắt chúng tôi muốn mở rộng thêm chức năng của lõi IP. Với UART bằng cách tích hợp khối DMA – hỗ trợ truy cập trực tiếp dữ liệu từ hệ thống bộ nhớ mà không thông qua vi xử lý do đó tăng tốc độ giao tiếp. Với I2C cần bổ sung thêm chức năng Multi – Master để hỗ trợ trường hợp phân định quyền Master khi có nhiều Master tham gia vào đường truyền.

 Ngoài ra, nếu lõi IP này được tích hợp thêm nhiều chuẩn giao tiếp nữa như SPI, USB,.. thì sẽ tăng độ linh hoạt khi chuyển đổi giữa các chuẩn với nhận, do đó việc truyền nhận dữ liệu cũng trở nên dễ dàng hơn.

TÀI LIỆU THAM KHẢO

[1] AMBA Specification, ARM Ltd, 13th May 1999

[2] IEEE Standard Verilog Hardware Description Language, The Institute of Electrical and Electronics Engineers, Inc, 28 September 2001.

[3] “Introduction to I2C Bus”: http://www.semiconductors.philips.com/i2c

[4] I2C interface tutorial http://www.lammertbies.nl/comm/info/I2C-bus.html.

[5] “Introduction to UART”:  http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter

[6] Serial and UART Tutorial https://www.freebsd.org/doc/en/articles/serial-uart/

[7] DE2 Development and Education Board User Manual. ftp://ftp.altera.com/up/pub/Webdocs/DE2_UserManual.pdf

[8] Hướng dẫn về Verilog www.asic-world.com/

[9] Diễn đàn Vi điện tử và IC Việt Nam http://icdesignvn.com

[10] NXP (formerly Philips) Semiconductors I2C Manual. http://www.nxp.com/documents/user_manual/UM10204.pdf

Close