CHƯƠNG 1: TỔNG QUAN Người thực hiện giới thiệu tổng quan về đề tài bao gồm tương quan hướng nghiên cứu, mục tiêu thiết kế và thực hiện đề tài, từ đó đưa ra ý nghĩa thực tiễn của đề tài. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Giới thiệu tổng quan lý thuyết về các đối tượng nghiên cứu liên quan đến đề tài bao gồm giao thức AXI, giao thức APB, giao thức I2C và ngôn ngữ mô tả phần cứng Verilog… CHƯƠNG 3: THIẾT KẾ HỆ THỐNG Từ các yêu cầu và mục tiêu đã đề ra, thực hiện thiết kế theo một trình tự hợp lý với từng phần rõ ràng và sau đó tổng hợp để hoàn thiện hệ thống. CHƯƠNG 4: KẾT QUẢ THỰC HIỆN Trình bày kết quả thực hiện thông qua các kịch bản nhằm làm rõ thiết kế hệ thống thông qua ngôn ngữ mô tả phần cứng Verilog và quan sát kết quả mô phỏng dạng sóng. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Đưa ra kết luận về ưu điểm, hạn chế của hệ thống.
Từ đó đưa ra hướng phát triển của đề tài. 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 GIAO THỨC AXI Giao thức AXI là một giao thức dạng bus giao tiếp trên chip do hãng ARM phát triển. Giao thức hỗ trợ các thiết kế có hiệu năng cao và tần số cao với các tính năng [4]: • Tách riêng các pha thành pha truyền dữ liệu, pha truyền địa chỉ, pha truyền thông tin tín hiệu điều khiển. Tách riêng kênh đọc và kênh ghi.
• Hỗ trợ việc chuyển đổi quá trình giao tiếp theo cơ chế burst chỉ với việc phát địa chỉ đầu tiên của burst. Có thể phát nhiều địa chỉ chồng lấn và các chuyển đổi có thể hoàn thành không theo thứ tự. • Cho phép thiết kế với các tầng thanh ghi giúp định thời của bus tốt hơn. • Hoạt động với tần số cao được đưa vào mà không cần thông qua các cầu nối, chuyển đổi phức tạp.
Phù hợp với bộ điều khiển bộ nhớ có độ trễ truy cập ban đầu cao. • Triển khai các đường tín hiệu, kết nối một cách linh hoạt và tương thích được với các giao thức khác như APB hay AHB.1: Giao diện giao tiếp và kết nối bus của giao thức AXI Giao thức AXI quy định chuẩn giao tiếp giữa một chủ, một tớ và một bus với nhau hay một chủ giao tiếp trực tiếp với một tớ. Trong đó, kết nối bus có thể bao gồm nhiều giao diện giao tiếp khác nhau. Với một giao diện giao tiếp giữa 2 kết nối bus, vai trò là chủ - tớ chính là 2 kết nối bus này.
Có một giao tiếp giữa BUS 0 và BUS 1, nếu BUS 0 đóng vai trò là chủ thì BUS 1 là tớ hoặc ngược lại như hình 2. Giống với các giao thức dạng bus khác, AXI cũng có 2 hoạt động cơ bản là đọc với việc chủ lấy dữ liệu từ tớ và ghi với việc chủ phát dữ liệu cho tớ.1 Cấu trúc phân kênh của giao thức AXI Giao thức AXI hoạt động thông qua 5 kênh và các kênh này là độc lập với vai trò khác nhau như hình 2. Việc truyền hoặc nhận tín hiệu giữa các kênh không bị phụ thuộc vào các kênh còn lại.2: Các kênh trong một interface AXI • Kênh địa chỉ ghi AW: Cho biết thông tin về địa chỉ và điều khiển của một chuyển đổi ghi được truyền từ chủ đến tớ. • Kênh dữ liệu ghi W: Dữ liệu ghi sẽ được truyền từ chủ đến tớ.
• Kênh phản hồi ghi B: Truyền thông tin phản hồi của một chuyển đổi ghi từ tớ đến chủ. • Kênh địa chỉ đọc AR: Cho biết thông tin về địa chỉ và điều khiển của một chuyển đổi đọc được truyền từ tớ đến chủ. • Kênh dữ liệu đọc R: Dữ liệu đọc và thông tin phản hồi của một chuyển đổi đọc được truyền từ tớ đến chủ. Trong đó, một chuyển đổi hay một truy cập sẽ bao gồm thông tin: • Đường địa chỉ: xác định điểm đích, nơi mà chuyển đổi sẽ được thực hiện.
5 • Các đường điều khiển: cho biết các thuộc tính về kích thước, độ dài, phân loại,… của burst. • Đường dữ liệu: dữ liệu của chuyển đổi. • Đường phản hồi: kiểm tra trạng thái của chuyển đổi có truyền thành công dữ liệu hay đang bị lỗi. Một burst là toàn bộ các thay đổi dữ liệu trong một chuyển đổi.
Mỗi chuyển đổi điều khiển một burst với các thuộc tính được quy định bởi các đường điều khiển. Một chuyển đổi đọc được quyết định bởi kênh AR và kênh R. Đối với chuyển đổi đọc, đường dữ liệu và đường phản hồi thông tin sẽ được truyền chung trên kênh R. Quá trình này bắt đầu với việc chủ gửi thông tin địa chỉ và tín hiệu điều khiển trên kênh AR, tớ sẽ gửi trả về các dữ liệu và thông tin phản hồi trên kênh R theo tín hiệu điều khiển từ chủ.
Việc tách riêng các pha thành pha truyền dữ liệu, pha truyền địa chỉ, pha truyền thông tin tín hiệu điều khiển này giúp chuyển đổi kế tiếp được quyền khởi tạo các giá trị mà không cần phải chờ chuyển đổi trước đó hoàn thành như hình 2.3: Chuyển đổi đọc trong giao thức AXI Tương ứng với một chuyển đổi ghi, quá trình này được quyết định bởi 3 kênh: kênh AW, kênh W và kênh B. Quá trình này bắt đầu với việc chủ gửi một thông tin về địa chỉ và tín hiệu điều khiển trên kênh AW, các dữ liệu ghi sẽ được gửi tiếp theo trên kênh W theo tín hiệu điều khiển phát từ phía chủ. Chủ sẽ đợi phản hồi từ tớ khi tớ hoàn tất quá trình ghi dữ liệu. Đối với chuyển đổi ghi, chỉ có một tín hiệu phản hồi được gửi khi quá trình ghi hoàn thành.
Còn với chuyển đổi đọc, mỗi khi có dữ liệu đọc thì sẽ có một phản hồi được gửi về, giá trị của các phản hồi có thể giống hoặc khác nhau. Với chuyển đổi A như hình 2.4, phản 6 hồi 0 đang cho thấy dữ liệu đọc đầu tiên "không lỗi" nhưng phản hồi 1 lại đang báo lỗi cho dữ liệu đọc thứ 2.4: Chuyển đổi ghi trong giao thức AXI 2.2 Cơ chế bắt tay hai chiều của AXI Hoạt động của giao thức AXI dựa trên cơ chế bắt tay hai chiều, sử dụng một tín hiệu VALID và một tín hiệu READY như hình 2.5: Cơ chế bắt tay hai chiều trong giao thức AXI 7 Để cho tớ biết có hay không có các tín hiệu địa chỉ, thông tin điều khiển hoặc dữ liệu hợp lệ trên kênh truyền, phía phát sử dụng tín hiệu VALID, tương tự như một tín hiệu yêu cầu gửi từ phía nhận để yêu cầu nhận thông tin. Còn phía nhận sẽ sử dụng tín hiệu READY này để thông báo cho phía phát biết rằng nó đã sẵn sàng nhận thông tin từ phía phát. Tín hiệu READY tương tự với tín hiệu ACK với mục đích xác nhận yêu cầu từ nguồn.
Trong các trường hợp khác nhau, nguồn và đích có thể là chủ hoặc tớ. Ví dụ, trong một chuyển đổi đọc trên kênh AR, phía chủ đóng vai trò là nguồn phát địa chỉ và thông tin điều khiển, phía tớ là đích. Vì vậy, phía chủ sẽ điều khiển tín hiệu VALID, phía tớ sẽ điều khiển tín hiệu READY. Ngược lại, trên kênh R thì vai trò nguồn phát dữ liệu đọc thuộc về phía tớ, trong khi chủ đóng vai trò là đích.
Lúc này tớ sẽ điều khiển tín hiệu VALID còn chủ điều khiển tín hiệu READY [4]. Tương ứng với 5 kênh của giao thức AXI, có 5 cặp tín hiệu VALID/READY: • Kênh AR: tín hiệu chủ ARVALID và tín hiệu tớ ARREADY. • Kênh R: tín hiệu tớ RVALID và tín hiệu chủ RREADY. • Kênh AW: tín hiệu chủ AWVALID và tín hiệu tớ AWREADY.
• Kênh W: tín hiệu chủ WVALID và tín hiệu tớ WREADY. • Kênh B: tín hiệu tớ BVALID và tín hiệu chủ BREADY. Cơ chế bắt tay hai chiều hoạt động theo nguyên tắc: tín hiệu VALID ở phía phát phải tích cực bất kỳ lúc nào có thông tin truyền hợp lệ, không cần quan tâm là tín hiệu READY như thế nào. Tín hiệu VALID phải giữ mức cao cho đến lúc tín hiệu READY tích cực.
Ở phía nhận, tín hiệu READY có thể tích cực trước, trong quá trình hoặc sau khi có tín hiệu VALID. Nó chỉ tích cực khi đã sẵn sàng nhận dữ liệu.6: Cơ chế bắt tay hai chiều của AXI 8 • Tại T0: Tín hiệu VALID được kích hoạt để thông báo rằng có thông tin hợp lệ đang được truyền trên kênh. • Từ T0 đến T2: VALID vẫn luôn tích cực vì tín hiệu READY ở phía nhận không sẵn sàng. • Tại T2: Tín hiệu READY tích cực cho biết là phía nhận đã chuẩn bị xong để nhận thông tin.
• Từ T2 đến T3: Tín hiệu READY tích cực, lúc này cả phía nhận và phát đều sẽ nhận thông tin về tín hiệu này. Nếu thông tin nhận được là hợp lệ, tín hiệu VALID sẽ được duy trì. Nếu phía phát không còn thông tin mới cần truyền thì sẽ đưa tín hiệu VALID = 0. • Sau T3: Tín hiệu VALID = 0, ở phía phát không còn thông tin để truyền.
Phía nhận vẫn đang sẵn sàng để nhận thông tin từ phía phát. Việc chuyển giao giữa các chuyển đổi như hình 2. Tín hiệu VALID phải chủ động tích cực bất cứ lúc nào khi có thông tin hợp lệ được phát lên kênh truyền. Phía nhận có thể chờ VALID tích cực rồi mới tích cực tín hiệu READY.
Với cơ chế bắt tay hai chiều mỗi kênh có khả năng hoàn thành quá trình chuyển giao của nó một cách độc lập, cho phép tiếp tục thực hiện chuyển giao tiếp theo mà không cần phải chờ đợi các kênh khác hoàn tất. Điều này giúp tăng tính đồng thời và hiệu quả của việc truyền thông trong hệ thống.7: Sự phụ thuộc giữa các tín hiệu bắt tay của một chuyển giao đọc Sự phụ thuộc giữa các tín hiệu bắt tay của chuyển giao đọc hay ghi được thể hiện như hình 2.8 với các đường mũi tên đôi bắt tín hiệu phải theo thứ tự trước đến sau.8: Sự phụ thuộc giữa các tín hiệu bắt tay của một chuyển giao ghi 9 2.3 Cơ chế burst chuyển đổi trên giao thức AXI Giao thức AXI dựa trên cơ chế mỗi chuyển giao sẽ điều khiển một burst. Các đặc tính của burst được xác định thông qua thông tin điều khiển trên kênh truyền địa chỉ AR/AW như hình 2. Phía chủ sẽ bắt đầu chuyển đổi bằng cách phát địa chỉ và thông tin điều khiển trên kênh AR hoặc AW.