Đồ án: Thiết kế và đánh giá Bus AMBA trong SoC (ĐH SPKT TP.HCM)

Đồ án tốt nghiệp: Thiết kế & đánh giá hệ thống bus AMBA trong SoC. Tìm hiểu kiến trúc, hoạt động, và ứng dụng thực tế của chuẩn AMBA.

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

131
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Hướng dẫn tổng quan về thiết kế hệ thống Bus AMBA trong SoC

Trong bối cảnh ngành công nghiệp vi mạch bán dẫn phát triển mạnh mẽ, System on a Chip (SoC) đã trở thành nền tảng cốt lõi cho các hệ thống nhúng và IoT hiện đại. Một thiết kế SoC điển hình tích hợp nhiều thành phần phức tạp như vi xử lý, bộ nhớ, và các khối giao tiếp ngoại vi trên một vi mạch duy nhất. Để các thành phần này có thể giao tiếp hiệu quả, một kiến trúc bus hệ thống mạnh mẽ và được tiêu chuẩn hóa là yếu-tố-sống-còn. Chuẩn AMBA bus (Advanced Microcontroller Bus Architecture), được phát triển bởi ARM Holdings, đã nổi lên như một tiêu chuẩn công nghiệp hàng đầu cho on-chip interconnect. Đồ án tốt nghiệp "Thiết kế và đánh giá hoạt động của hệ thống bus theo chuẩn AMBA trong SOC" cung cấp một cái nhìn chi tiết về việc xây dựng và kiểm chứng một hệ thống bus như vậy. Mục tiêu chính là mô phỏng một hệ thống bus hoàn chỉnh, cho thấy cách các khối IP giao tiếp với nhau thông qua các giao thức phổ biến như AXI (Advanced eXtensible Interface)APB (Advanced Peripheral Bus). Việc hiểu rõ cấu trúc và hoạt động của hệ thống này là nền tảng quan trọng cho bất kỳ kỹ sư thiết kế vi mạch nào, giúp tối ưu hóa hiệu năng, giảm công suất tiêu thụ và đẩy nhanh quá trình tích hợp hệ thống. Bài viết này sẽ phân tích sâu các khía cạnh của đồ án, từ cơ sở lý thuyết về bus protocol đến phương pháp thiết kế, kiểm chứng và đánh giá kết quả thực tiễn.

1.1. Vai trò cốt lõi của System on a Chip SoC hiện nay

System on a Chip (SoC) là một mạch tích hợp (IC) chứa đựng tất cả các thành phần cần thiết của một máy tính hoặc hệ thống điện tử. Các thành phần này bao gồm bộ xử lý trung tâm (CPU), bộ nhớ (SRAM, Flash), các cổng I/O, bộ xử lý tín hiệu số (DSP), và các khối giao tiếp ngoại vi (UART, I2C, SPI). Tất cả được tích hợp trên cùng một chip. Theo tài liệu nghiên cứu, "Các thiết kế SoC đang được sử dụng rất nhiều trong các hệ thống nhúng và IoT" [1]. Sự tích hợp cao độ này mang lại nhiều lợi ích: giảm kích thước, giảm chi phí sản xuất, tăng hiệu suất và giảm năng lượng tiêu thụ. Đây là lý do tại sao SoC là trái tim của hầu hết các thiết bị điện tử thông minh ngày nay, từ điện thoại di động đến các thiết bị đeo và hệ thống điều khiển công nghiệp. Việc thiết kế một SoC thành công phụ thuộc rất lớn vào khả năng kết nối và giao tiếp hiệu quả giữa các khối chức năng bên trong.

1.2. Giới thiệu chuẩn AMBA bus và các giao thức phổ biến

AMBA bus là một họ các giao thức kết nối trên chip được sử dụng rộng rãi, đặc biệt trong các hệ thống tích hợp vi xử lý ARM. AMBA định nghĩa một tiêu chuẩn chung cho việc kết nối và quản lý các khối chức năng (IP core) trong một SoC. Các giao thức chính trong họ AMBA bao gồm: AHB (Advanced High-performance Bus), APB (Advanced Peripheral Bus), và AXI (Advanced eXtensible Interface). Giao thức AXI được thiết kế cho các kết nối hiệu năng cao, băng thông rộng, phù hợp cho vi xử lý, bộ điều khiển bộ nhớ và DMA controller. Ngược lại, APB là một giao thức đơn giản, tiêu thụ ít năng lượng, lý tưởng để kết nối các ngoại vi tốc độ thấp như UART, I2C, SPI. Một hệ thống SoC điển hình thường kết hợp cả hai, sử dụng AXI cho bus hệ thống chính và APB cho bus ngoại vi, được kết nối thông qua một cầu chuyển đổi (Bridge). Việc lựa chọn và triển khai đúng các giao thức này là chìa khóa để cân bằng giữa hiệu năng và tài nguyên hệ thống.

II. Thách thức trong tích hợp IP core và On chip interconnect

Việc thiết kế SoC hiện đại không chỉ đơn thuần là đặt các khối chức năng cạnh nhau. Thách thức lớn nhất nằm ở giai đoạn IP core integration – quá trình kết nối và đảm bảo hàng chục, thậm chí hàng trăm khối IP từ các nhà cung cấp khác nhau có thể hoạt động hài hòa. Mạng lưới kết nối này, được gọi là On-chip interconnect, đóng vai trò như hệ thần kinh trung ương của SoC. Các vấn đề chính phát sinh bao gồm đồng bộ hóa dữ liệu giữa các Bus masterBus slave hoạt động ở các tốc độ khác nhau, quản lý và phân xử các truy cập đồng thời để tránh xung đột, và đảm bảo độ trễ (latency) thấp cùng thông lượng (throughput) cao. Một bus protocol không hiệu quả có thể trở thành nút thắt cổ chai, làm giảm hiệu suất toàn bộ hệ thống mặc dù các khối IP riêng lẻ rất mạnh mẽ. Đồ án đã tập trung giải quyết vấn đề này bằng cách thiết kế một khối AXI Interconnect, có chức năng giải mã địa chỉ và phân xử truy cập, đảm bảo luồng dữ liệu được điều phối một cách thông minh và hiệu quả. Việc hiểu rõ những thách thức này là bước đầu tiên để xây dựng một kiến trúc bus mạnh mẽ và đáng tin cậy cho các ứng dụng phức tạp.

2.1. Vấn đề đồng bộ hóa giữa Bus master và Bus slave

Trong kiến trúc AMBA, một Bus master (ví dụ: CPU, DMA controller) là thành phần chủ động khởi tạo các giao dịch đọc hoặc ghi. Ngược lại, một Bus slave (ví dụ: bộ nhớ, ngoại vi) là thành phần thụ động, chỉ đáp ứng các yêu cầu từ master. Thách thức nảy sinh khi hệ thống có nhiều master và nhiều slave. Mỗi master có thể yêu cầu truy cập đến bất kỳ slave nào vào bất kỳ thời điểm nào. Cần có một cơ chế để đảm bảo rằng tại một thời điểm, chỉ có một master được quyền truy cập vào một slave cụ thể. Hơn nữa, các master và slave có thể hoạt động ở các tần số khác nhau hoặc có các yêu cầu về thời gian đáp ứng khác nhau. Giao thức AXI giải quyết một phần vấn đề này bằng cơ chế bắt tay hai chiều (VALID/READY) trên các kênh độc lập, cho phép master và slave tự điều chỉnh tốc độ trao đổi dữ liệu mà không làm đình trệ toàn bộ bus.

2.2. Sự cần thiết của Arbiter bộ phân xử bus hiệu quả

Khi nhiều Bus master cùng lúc yêu cầu truy cập vào bus, một thành phần gọi là Arbiter (bộ phân xử bus) sẽ quyết định master nào được cấp quyền. Đây là một chức năng quan trọng bên trong khối AXI Interconnect. Một bộ phân xử cần phải hiệu quả để tránh tình trạng "starvation" (một master có độ ưu tiên thấp không bao giờ được cấp quyền) và giảm thiểu độ trễ truy cập. Các thuật toán phân xử phổ biến bao gồm Round-Robin (xoay vòng) hoặc ưu tiên cố định (Fixed-priority). Việc lựa chọn thuật toán phù hợp phụ thuộc vào yêu cầu của hệ thống. Ví dụ, một luồng dữ liệu thời gian thực có thể cần được ưu tiên cao hơn. Thiết kế một Arbiter hiệu quả đảm bảo rằng tài nguyên bus được chia sẻ một cách công bằng và tối ưu, qua đó nâng cao hiệu suất tổng thể của System on a Chip.

III. Phương pháp thiết kế bus AXI và APB bằng ngôn ngữ Verilog

Để hiện thực hóa hệ thống bus AMBA, phương pháp RTL design (Register-Transfer Level) sử dụng ngôn ngữ mô tả phần cứng (HDL) là cách tiếp cận tiêu chuẩn. Đồ án đã sử dụng ngôn ngữ Verilog để mô tả chi tiết hoạt động của từng khối chức năng, từ AXI Interconnect, AXI RAM cho đến cầu chuyển đổi AXI-APB. Quá trình này bao gồm việc phân tích sâu các đặc tả kỹ thuật của từng bus protocol, sau đó chuyển hóa chúng thành các máy trạng thái (State Machine), các thanh ghi và logic tổ hợp. Thiết kế được chia thành các module độc lập, giúp dễ dàng quản lý, tái sử dụng và kiểm chứng. Ví dụ, khối AXI Interconnect được thiết kế với máy trạng thái gồm 8 trạng thái chính như STATE_IDLE, STATE_DECODE, STATE_WRITE, STATE_READ để quản lý toàn bộ vòng đời của một giao dịch. Tương tự, các khối slave như AXI-SPI Controller hay APB-I2C Controller được xây dựng với các thanh ghi điều khiển, cho phép Bus master cấu hình và khởi tạo các hoạt động giao tiếp ngoại vi. Cách tiếp cận này đảm bảo rằng thiết kế tuân thủ nghiêm ngặt chuẩn AMBA, tạo nền tảng vững chắc cho các bước mô phỏng (Simulation)tổng hợp (Synthesis) sau này.

3.1. Phân tích giao thức AXI Advanced eXtensible Interface

Giao thức AXI là trung tâm của hệ thống bus hiệu năng cao. Thiết kế AXI dựa trên năm kênh giao tiếp độc lập: Kênh địa chỉ ghi (Write address), Kênh dữ liệu ghi (Write data), Kênh đáp ứng ghi (Write response), Kênh địa chỉ đọc (Read address), và Kênh dữ liệu đọc (Read data). Theo tài liệu, "mỗi kênh có nhiệm vụ, vai trò khác nhau và hoàn toàn không phụ thuộc vào các kênh khác" [6]. Sự độc lập này cho phép xử lý song song các giao dịch đọc và ghi, giúp tối đa hóa băng thông. AXI cũng hỗ trợ các giao dịch burst, cho phép truyền một khối dữ liệu chỉ với một địa chỉ ban đầu, giảm đáng kể chi phí giao tiếp. Cơ chế bắt tay hai chiều thông qua cặp tín hiệu VALID và READY trên mỗi kênh đảm bảo sự đồng bộ linh hoạt giữa master và slave. Việc mô tả chính xác hoạt động của 5 kênh này trong Verilog là yêu cầu cốt lõi để thiết kế một thành phần tương thích AXI.

3.2. Cấu trúc và hoạt động của APB Advanced Peripheral Bus

Trái ngược với sự phức tạp của AXI, APB (Advanced Peripheral Bus) được thiết kế với mục tiêu đơn giản và tiêu thụ ít năng lượng. Giao thức APB không có cơ chế burst và hoạt động dựa trên một máy trạng thái đơn giản gồm ba trạng thái: IDLE, SETUP, và ACCESS. Một giao dịch APB luôn mất ít nhất hai chu kỳ xung nhịp để hoàn thành. Trong trạng thái SETUP, địa chỉ và tín hiệu điều khiển được thiết lập. Trong trạng thái ACCESS, dữ liệu được truyền. Giao diện APB chỉ có một tập tín hiệu tối thiểu (PCLK, PADDR, PWRITE, PSEL, PENABLE, PWDATA, PRDATA), giúp cho việc thiết kế vi mạchkiểm chứng hệ thống (Verification) trở nên đơn giản hơn rất nhiều. Do đó, APB là lựa chọn lý tưởng cho việc kết nối các ngoại vi tốc độ thấp không yêu cầu băng thông cao như I2C, SPI, hoặc các bộ định thời.

3.3. Thiết kế cầu chuyển đổi AXI to APB Bridge trong SoC design

Để kết nối bus AXI hiệu năng cao với bus APB công suất thấp, một cầu chuyển đổi (AXI-to-APB Bridge) là bắt buộc. Khối này hoạt động như một Bus slave trên bus AXI và một Bus master trên bus APB. Nhiệm vụ của nó là nhận một giao dịch AXI (thường là một giao dịch ghi hoặc đọc đơn lẻ), lưu trữ tạm thời địa chỉ và dữ liệu, sau đó khởi tạo một giao dịch APB tương ứng để truy cập vào ngoại vi. Sau khi giao dịch APB hoàn tất, cầu sẽ gửi tín hiệu đáp ứng trở lại cho AXI master. Như mô tả trong tài liệu [16], "cầu chuyển đổi AXI-APB" giúp phân chia hệ thống thành hai vùng bus riêng biệt, cho phép tối ưu hóa hiệu năng và tài nguyên. Việc thiết kế cầu chuyển đổi đòi hỏi phải xử lý cẩn thận sự khác biệt về giao thức và thời gian giữa hai bên để đảm bảo dữ liệu được truyền đi một cách chính xác.

IV. Bí quyết kiểm chứng hệ thống Verification và mô phỏng RTL

Một thiết kế dù phức tạp đến đâu cũng vô giá trị nếu không được kiểm chứng hoạt động chính xác. Quá trình kiểm chứng hệ thống (Verification) là một trong những giai đoạn tốn nhiều thời gian và công sức nhất trong quy trình thiết kế vi mạch. Mục tiêu là phát hiện và sửa lỗi trong thiết kế RTL design trước khi chuyển sang giai đoạn FPGA implementation hoặc sản xuất ASIC. Phương pháp chính được sử dụng trong đồ án là mô phỏng (Simulation). Một môi trường kiểm tra (testbench) toàn diện được xây dựng để tạo ra các kịch bản (test case) khác nhau. Môi trường này bao gồm một mô hình AXI Master có khả năng tạo ra các lệnh đọc/ghi với địa chỉ và dữ liệu đa dạng. Các lệnh này được gửi đến hệ thống bus AMBA đang được kiểm tra (Device Under Test - DUT). Kết quả của quá trình mô phỏng là các dạng sóng tín hiệu, cho phép kỹ sư phân tích chi tiết từng chu kỳ xung nhịp để xác nhận rằng hệ thống hoạt động đúng theo đặc tả của bus protocol. Quá trình này giúp xác thực chức năng truy cập từ master đến các slave khác nhau, bao gồm cả truy cập trực tiếp đến AXI slave và truy cập gián tiếp qua cầu nối đến APB slave.

4.1. Xây dựng môi trường mô phỏng Simulation cho thiết kế

Môi trường mô phỏng (testbench) là một đoạn mã Verilog hoặc VHDL được viết riêng để kiểm tra thiết kế. Trong đồ án này, một khối mô hình AXI Master được tạo ra để mô phỏng hoạt động của một CPU hoặc DMA controller. Mô hình này có khả năng đọc các kịch bản kiểm tra từ một tệp tin, sau đó tuần tự tạo ra các giao dịch AXI tương ứng. Các kịch bản này được thiết kế để kiểm tra các trường hợp biên, ví dụ như ghi và đọc một chuỗi dữ liệu dài (burst transaction), truy cập vào các địa chỉ không hợp lệ, hoặc thực hiện các giao dịch đọc và ghi xen kẽ. Việc xây dựng một testbench linh hoạt và có khả năng bao phủ cao là yếu tố then chốt để đảm bảo chất lượng của quá trình kiểm chứng hệ thống (Verification).

4.2. Phân tích dạng sóng và đánh giá kết quả truy cập đọc ghi

Sau khi chạy mô phỏng (Simulation), kết quả được trực quan hóa dưới dạng các biểu đồ sóng. Các kỹ sư sẽ kiểm tra cẩn thận các dạng sóng này để xác thực nhiều khía cạnh. Thứ nhất, kiểm tra sự tuân thủ giao thức: tín hiệu VALID và READY có tuân theo cơ chế bắt tay không? Các tín hiệu điều khiển như ARLEN, ARSIZE có được thiết lập đúng không? Thứ hai, kiểm tra tính toàn vẹn dữ liệu: dữ liệu được ghi vào một địa chỉ có thể được đọc ra chính xác không? Đồ án đã trình bày chi tiết các dạng sóng mô phỏng cho từng kịch bản, ví dụ như "Dạng sóng hoạt động ghi của AXI Master vào AXI Ram" (Hình 4.10), cung cấp bằng chứng cụ thể cho thấy thiết kế hoạt động đúng như mong đợi. Đây là bước xác thực chức năng không thể thiếu trước khi tiến hành tổng hợp.

V. Cách triển khai hệ thống Bus AMBA trên FPGA và đánh giá

Sau khi thiết kế đã được xác thực qua mô phỏng (Simulation), bước tiếp theo là triển khai nó trên phần cứng vật lý để đánh giá hiệu năng trong môi trường thực. FPGA (Field-Programmable Gate Array) là một nền tảng lý tưởng cho việc tạo mẫu (prototyping) các thiết kế ASICSoC. Quá trình FPGA implementation bao gồm hai giai đoạn chính: tổng hợp (Synthesis) và Place & Route. Giai đoạn tổng hợp sẽ chuyển đổi mã RTL design (Verilog/VHDL) thành một bản mô tả ở mức cổng logic (netlist), bao gồm các thành phần cơ bản của FPGA như Bảng tra cứu (LUT), Flip-Flop (FF) và Khối RAM (BRAM). Giai đoạn tiếp theo sẽ sắp xếp và kết nối các cổng logic này trên kiến trúc vật lý của chip FPGA. Kết quả cuối cùng của quá trình này không chỉ là một hệ thống hoạt động mà còn là các báo cáo chi tiết về mức độ sử dụng tài nguyên, tần số hoạt động tối đa và công suất tiêu thụ. Những con số này là cơ sở quan trọng để đánh giá chất lượng và hiệu quả của thiết kế bus AMBA.

5.1. Quy trình tổng hợp Synthesis và FPGA implementation

Quy trình tổng hợp (Synthesis) được thực hiện bằng các công cụ tự động hóa thiết kế điện tử (EDA) như Vivado (cho Xilinx FPGA) hoặc Quartus (cho Intel/Altera FPGA). Kỹ sư sẽ cung cấp mã RTL và các ràng buộc về thời gian (timing constraints), ví dụ như tần số xung nhịp mong muốn. Công cụ tổng hợp sẽ tối ưu hóa logic để đáp ứng các ràng buộc này trong khi sử dụng tài nguyên hiệu quả nhất. Sau khi tổng hợp, quá trình Place & Route sẽ ánh xạ netlist vào các tài nguyên cụ thể trên FPGA và định tuyến các kết nối giữa chúng. Quá trình này có ảnh hưởng lớn đến hiệu suất cuối cùng. Một thiết kế được viết tốt sẽ giúp công cụ EDA tạo ra một layout hiệu quả, cho phép hệ thống chạy ở tần số cao hơn và tiêu thụ ít năng lượng hơn.

5.2. Đánh giá tài nguyên tần số và công suất tiêu thụ

Đánh giá định lượng là bước cuối cùng để xác nhận sự thành công của một thiết kế. Đồ án đã cung cấp các kết quả đo lường chi tiết. Bảng 4.6 cho thấy "Tài nguyên sử dụng của thiết kế trên kit FPGA", liệt kê số lượng LUT, FF, và BRAM đã được sử dụng. Con số này cho biết mức độ phức tạp và chi phí phần cứng của thiết kế. Bảng 4.7 và 4.8 tóm tắt về định thời và công suất tiêu thụ ở các tần số khác nhau (50 MHz, 100 MHz, 120 MHz). Các kết quả này cho thấy khả năng hoạt động của hệ thống ở tốc độ cao và cung cấp một ước tính về mức tiêu thụ điện năng. Việc phân tích các chỉ số này giúp các kỹ sư đưa ra quyết định tối ưu hóa, ví dụ như cân bằng giữa tốc độ và năng lượng, hoặc lựa chọn một kiến trúc khác để giảm chi phí tài nguyên.

VI. Tương lai và hướng phát triển cho đồ án Bus AMBA trong SoC

Đồ án "Thiết kế và đánh giá hoạt động của hệ thống bus theo chuẩn AMBA trong SOC" đã xây dựng thành công một nền tảng vững chắc cho việc nghiên cứu và phát triển các hệ thống trên chip. Kết quả mô phỏng và triển khai trên FPGA đã chứng minh tính đúng đắn và hiệu quả của thiết kế. Tuy nhiên, đây mới chỉ là bước khởi đầu. Một hệ thống SoC design thực tế luôn phức tạp hơn nhiều, đòi hỏi sự tích hợp của các thành phần cao cấp hơn và các cơ chế quản lý tinh vi hơn. Hướng phát triển trong tương lai của đề tài này rất rộng mở, tập trung vào việc nâng cao hiệu năng, bổ sung tính năng và приблизиться hơn nữa đến các ứng dụng thương mại. Việc tích hợp một lõi vi xử lý ARM thực sự thay vì một mô hình AXI Master đơn giản sẽ cho phép chạy các phần mềm điều khiển, biến hệ thống từ một thiết kế phần cứng đơn thuần thành một hệ thống nhúng hoàn chỉnh. Thêm vào đó, việc bổ sung các khối IP phức tạp như DMA controller hay Memory controller sẽ giải quyết các bài toán về truyền dữ liệu hiệu năng cao, một yêu cầu thiết yếu trong xử lý video, mạng và lưu trữ.

6.1. Hướng phát triển tích hợp vi xử lý ARM và DMA controller

Một trong những hạn chế của đồ án hiện tại là việc sử dụng "một mô hình Master đơn giản để thay thế" cho CPU. Hướng phát triển quan trọng nhất là tích hợp một lõi vi xử lý ARM (ví dụ: Cortex-M series) làm Bus master chính. Điều này cho phép hệ thống có khả năng thực thi các chương trình phần mềm, điều khiển các ngoại vi một cách linh hoạt thông qua việc ghi/đọc vào các thanh ghi điều khiển. Ngoài ra, việc bổ sung một DMA controller (Direct Memory Access) là cực kỳ cần thiết. DMA cho phép di chuyển các khối dữ liệu lớn giữa bộ nhớ và ngoại vi mà không cần sự can thiệp của CPU, giải phóng vi xử lý để thực hiện các tác vụ khác và tăng đáng kể thông lượng của hệ thống.

6.2. Tiềm năng ứng dụng trong các hệ thống nhúng và IoT

Một hệ thống bus AMBA được thiết kế và kiểm chứng tốt là xương sống cho vô số ứng dụng thực tế. Khi được tích hợp đầy đủ với CPU, bộ nhớ và các ngoại vi cần thiết, System on a Chip này có thể được ứng dụng trong nhiều lĩnh vực. Trong các thiết bị IoT, nó có thể thu thập dữ liệu từ cảm biến thông qua giao tiếp I2C/SPI, xử lý dữ liệu cục bộ và gửi lên đám mây. Trong các hệ thống điều khiển công nghiệp, nó có thể quản lý các cơ cấu chấp hành và giao tiếp qua các mạng công nghiệp. Nền tảng được phát triển trong đồ án có thể được mở rộng để tạo ra các SoC chuyên dụng cho xử lý âm thanh, hình ảnh hoặc các ứng dụng yêu cầu bảo mật cao. Việc nắm vững quy trình thiết kế vi mạchIP core integration trên nền tảng AMBA mở ra nhiều cơ hội để tạo ra các sản phẩm điện tử sáng tạo và hiệu quả.

21/09/2025

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan: Giới thiệu, trình bày lý do chọn đề tài, mục tiêu và giới hạn của đề tài. Chương 2: Cơ sở lý thuyết: Giới thiệu về hệ thống bus, chuẩn bus AMBA AXI và APB, chuẩn truyền thông SPI và I2C và thiết kế RTL sử dụng Verilog. Chương 3: Thiết kế hệ thống: Trình bày những vấn đề xoay quanh sơ đồ khối, chức năng cách thức hoạt động của thiết kế. Chương 4: Mô phỏng và đánh giá kết quả: Xây dựng test dùng để kiểm tra chức năng của thiết kế, so sánh giữa mô phỏng và lý thuyết.

Chương 5: Kết luận và hướng phát triển: Dựa trên kết quả mô phỏng, thực hiện đánh giá về hoạt động, tính năng và tầm quan trọng của thiết kế trong thực tế. 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 HỆ THỐNG TRÊN CHIP (SOC) Hệ thống trên chip là một mạch tích hợp trong đó tích hợp tất cả hoặc hầu hết các thành phần có trong một máy tính hoặc một hệ thống điện tử. Những thành phần được tích hợp thường là bộ xử lý trung tâm (CPU), bộ nhớ, các cổng I/O, tất cả các thành phần này nằm trên một chip điện tử nhỏ. Các nhà sản xuất vi mạch hiện nay đang có xu hướng tích hợp càng nhiều module vào trong cùng một mạch.

Ví dụ về một hệ thống trên chip đơn giản hiện nay được thể hiện ở hình 2.1 [1], hệ thống sẽ được tích hợp đầy đủ các module như CPU, Ethernet, bộ nhớ SRAM, các khối giao tiếp bộ nhớ ngoài, các khối giao tiếp ngoại vi thông dụng bằng các chuẩn UART, I2C, USART hay các bộ chuyển đổi ADC, DAC. Tất cả đều mang đặc điểm chung là được kết nối với bus hệ thống chính là AHB/APB. Kiến trúc bus này đang được áp dụng phổ biến trong các hệ thống trên chip hiện nay.1: Ứng dụng của chuẩn AMBA Bus trên một SoC [1] 5 2.2 TỔNG QUAN HỆ THỐNG BUS TRONG SOC Hệ thống bus trong SOC được sử dụng để liên kết các lõi IP lại với nhau. Có rất nhiều các chuẩn bus khác nhau được sử dụng trong thiết kế SOC [17], các chuẩn bus này đưa ra các quy định để các thiết kế lõi IP có thể liên kết được với các IP cùng chuẩn.

Việc sử dụng đồng nhất một chuẩn bus trên các IP sẽ giúp việc tích hợp trở nên dễ dàng hơn. Một số chuẩn bus thông dụng hiện nay có thể kể đến như Wishbone của, AMBA của ARM hay Avalon của Altera. Hiện nay, các lõi xử lý của ARM đang dần trở nên rất phổ biến trong các thiết kế SOC, do đó việc sử dụng chuẩn bus họ AMBA trên các thiết kế lõi IP cũng chiếm đa số nhằm mục đích tạo sự tương thích. AMBA được chia thành nhiều chuẩn, trong đó gồm APB, AHB, AXI, ACE, CHI, trong đó AXI và APB là hai chuẩn được dùng nhiều nhất hiện tại.

Chi tiết về một hệ thống bus thường gặp trong các thiết kế SOC được thể hiện ở hình 2. Trong hệ thống này, CPU đóng vai trò AXI Master sẽ đưa ra yêu cầu truy cập đến các khối khác trong hệ thống thông qua bus tốc độ nhanh AXI, một khối AXI2APB Bridge được gắn để chuyển đổi giữa hai giao thức bus AXI và APB nhằm kết nối với các IP tốc độ chậm khác cũng sử dụng bus APB.2: Hệ thống bus thường gặp trong SOC [5] 6 2.1 AXI bus AXI là một giao thức bus hệ thống thuộc họ AMBA của hãng ARM Holdings và được sử dụng rộng rãi cho các thiết kế SoC dùng vi điều khiển ARM. AXI là giao thức mở theo cơ chế burst, mang những đặc điểm có lợi khi ứng dụng vào các hệ thống tần số cao, hiệu năng cao. Chuẩn bus này phù hợp với các thiết kế cần độ trễ thấp và băng thông cao.

Bên cạnh đó, AXI cũng rất tương thích với các giao thức khác cùng họ AMBA là AHB và APB. Có 3 loại giao thức được quy định bởi giao thức AXI: • Một Master kết nối với Interconnect bus. • Một Slave kết nối với Interconnect bus. • Một Master kết nối trực tiếp với một Slave.1 Cấu trúc Giao thức AXI quy định cách thức hoạt động cho việc đọc và ghi dữ liệu.

Hai hoạt động này được gọi chung là một truy cập và được hiểu là một transaction. AXI được chia thành năm kênh độc lập với nhau. Mỗi kênh có nhiệm vụ, vai trò khác nhau và hoàn toàn không phụ thuộc vào các kênh khác.3 thể hiện năm kênh giao tiếp: ● Kênh địa chỉ ghi (Write address channel): dữ liệu về địa chỉ ghi và các thông số của transaction như độ dài burst, loại burst sẽ được truyền đến Slave thông qua kênh này. ● Kênh dữ liệu ghi (Write data channel): truyền dữ liệu cần ghi được sang phía Slave.

● Kênh đáp ứng ghi (Write response channel): chứa thông tin phản hồi của lần ghi hiện tại, giúp Master xác định transaction đã hoàn thành hay chưa. ● Kênh địa chỉ đọc (Read address channel): dữ liệu về địa chỉ đọc và các thông số của transaction như độ dài burst, loại burst sẽ được truyền đến Slave thông qua kênh này. ● Kênh dữ liệu đọc (Read data channel): truyền dữ liệu ở địa chỉ đọc được đến Master.3: Các kênh giao tiếp giữa AXI Master và Slave [6] Các tín hiệu bên trong mỗi kênh được giao thức AXI quy định và được trình bày ở bảng các bảng sau từ 2. Trong đó các tín hiệu ở kênh địa chỉ đọc được thể hiện ở bảng 2.1, các tín hiệu ở kênh dữ liệu đọc được thể hiện ở bảng 2.2, các tín hiệu ở kênh địa chỉ ghi được thể hiện ở bảng 2.3, các tín hiệu ở kênh dữ liệu ghi được thể hiện ở bảng 2.4 và các tín hiệu ở kênh đáp ứng ghi được thể hiện ở bảng 2.1: Các tín hiệu của kênh Địa chỉ đọc Tín hiệu Nguồn ARID Master ARADDR Master ARLEN Master ARSIZE Master ARBURST Master ARLOCK Master ARCACHE Master ARPROT Master ARQOS Master ARREGION Master 8 ARUSER Master ARVALID Master ARREADY Slave Bảng 2.2: Các tín hiệu của kênh Dữ liệu đọc Tín hiệu Nguồn RID Slave RDATA Slave RRESP Slave RLAST Slave RUSER Slave RVALID Slave RREADY Master Bảng 2.3: Các tín hiệu của kênh Địa chỉ ghi Tín hiệu Nguồn AWID Master AWADDR Master AWLEN Master AWSIZE Master AWBURST Master AWLOCK Master AWCACHE Master AWPROT Master AWQOS Master AWREGION Master AWUSER Master AWVALID Master AWREADY Slave 9 Bảng 2.4: Các tín hiệu của kênh Dữ liệu ghi Tín hiệu Nguồn WID Master WDATA Master WSTRB Master WLAST Master WUSER Master WVALID Master WREADY Slave Bảng 2.5: Các tín hiệu của kênh Đáp ứng ghi Tín hiệu Nguồn BID Slave BRESP Slave BUSER Slave BVALID Slave BREADY Master 2.2 Các quy định về hoạt động Một truy cập ghi hoặc đọc trong giao thức này được xem là một Transaction.

Một transaction đọc sẽ diễn ra trên 2 kênh địa chỉ đọc và kênh dữ liệu đọc.4 thể hiện hoạt động của một Transaction đọc.4: Hoạt động của Transaction đọc [6] Một transaction đọc sẽ gồm hai bước: ● Master gửi dữ liệu về địa chỉ cần đọc và thông tin điều khiển để khởi động một transaction đọc trên kênh địa chỉ đọc. ● Dữ liệu và thông tin phản hồi sẽ được Slave đưa đến Master thông qua kênh dữ liệu đọc. Số lượng dữ liệu được quy định bởi thông tin điều khiển đã được đưa đến trên kênh địa chỉ đọc. Một transaction ghi sẽ được trao đổi trên 3 kênh: kênh địa chỉ ghi, kênh dữ liệu ghi và kênh phản hồi.5 thể hiện hoạt động của một transaction ghi.5: Hoạt động của transaction ghi [6] 11 Một transaction ghi gồm 3 bước xử lý: ● Phía master gửi dữ liệu về địa chỉ cần ghi và thông tin điều khiển để khởi động một transaction ghi trên kênh địa chỉ ghi.

● Dữ liệu được ghi sẽ đưa đến phía Slave thông qua kênh dữ liệu ghi. Số lượng dữ liệu được quy định bởi thông tin điều khiển đã được đưa đến trên kênh địa chỉ ghi. ● Slave gửi tín hiệu phản hồi thông qua kênh phản hồi ghi khi transaction ghi hoàn tất.3 Cơ chế bắt tay của AXI4 Giao thức AXI hoạt động dựa trên cơ chế bắt tay hai chiều (two-way handshake), việc bắt tay sẽ xoay quanh cặp tín hiệu VALID và READY ở mỗi kênh. Nguyên tắc hoạt động của cơ chế bắt tay là phía gửi sẽ tích cực tín hiệu VALID bất cứ lúc nào có thông tin hợp lệ cần truyền.

Tín hiệu VALID phải được giữ cho đến khi tín hiệu READY tích cực và việc trao đổi dữ liệu ở mỗi kênh xảy ra dựa trên cạnh lên xung clock tại thời điểm mà VALID và READY đều tích cực. Phía nhận chỉ tích cực tín hiệu READY khi đã sẵn sàng nhận dữ liệu, sẽ có 3 trường hợp gồm READY có thể tích cực trước, trong hoặc sau khi VALID đã tích cực. Năm kênh độc lập của AXI đều có những tín hiệu VALID và READY riêng cho từng kênh. Sẽ có ba trường hợp của cơ chế bắt tay, trong đó trường hợp đầu tiên là tín hiệu VALID tích cực trước tín hiệu READY được thể hiện ở.7 thể hiện trường hợp tín hiệu VALID tích cực sau READY.

Và cuối cùng trường hợp tín hiệu VALID tích cực cùng lúc với READY được thể hiện ở hình 2.6: Trường hợp tín hiệu VALID tích cực trước READY [6] Hình 2.7: Trường hợp tín hiệu VALID tích cực sau READY [6] Hình 2.8: Trường hợp tín hiệu VALID tích cực cùng lúc với READY [6] 2.4 Cơ chế burst AXI hoạt động dựa theo cơ chế burst. Burst được chia thành 3 loại: burst FIXED, burst INCR, burst WRAP. Một burst bao gồm tất cả các lần trao đổi dữ liệu của một transaction. Mỗi transfer dữ liệu gọi là một beat.

Mỗi burst sẽ chứa 13 một hoặc nhiều beat. Thông tin điều khiển sẽ chứa các thuộc tính của các burst trong transaction.9 thể hiện hoạt động của cơ chế burst.9: Mô tả về cơ chế burst Đặc điểm của cơ chế burst AXI là phía Master không cần cung cấp từng địa chỉ cho các truy cập mà chỉ cần địa chỉ byte đầu tiên của chuỗi mà transaction đó cần ghi. Phía Slave dựa trên thông tin điều khiển để xác định địa chỉ của các beat tiếp theo từ địa chỉ đầu tiên này. Vì thế sẽ làm mạch logic xử lý giao tiếp AXI tại phía slave phức tạp hơn vì phải tự tính toán các địa chỉ beat nhưng giúp tăng hiệu suất của hệ thống bus.5 AXI Interconnect AXI Interconnect là một thiết kế dùng để kết nối nhiều module Master và nhiều module Slave trong một hệ thống lại với nhau [18].

Công việc của Interconnect là phân xử nếu có nhiều master cần truy cập và giải mã địa chỉ khi truy cập đến nhiều Slave. Cấu trúc một thiết kế Interconnect thường chứa các bộ phân xử, giải mã và đa hợp.10 mô tả kết nối xoay quanh khối Interconnect trong một hệ thống bus.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ