ii LỜI NÓI ĐẦU Trong kỷ nguyên công nghệ, việc thiết kế và phát triển hệ thống trên chip ngày càng được quan tâm bởi nhu cầu các thiết bị điện tử ngày nay là nhỏ, thực hiện được nhiều c
Sơ lược về sự phát triển thiết kế vi mạch hiện nay
Trong bối cảnh sự phát triển về công nghệ ngày càng nhanh như hiện tại, các yêu cầu về các thiết bị phần cứng ngày càng tăng cao giúp cho công nghệ vi mạch tích hợp trở thành hạt nhân trong ngành công nghiệp điện tử Công nghệ vi mạch tích hợp đã và đang trở thành một lĩnh vực đóng vai trò quan trọng trong công cuộc cách mạng hóa ngành công nghiệp điện tử, điều đó giúp cho sự phát triển của nó mạnh mẽ hơn bao giờ hết Vi mạch tích hợp (VLSI) đã giúp tăng cường hiệu suất, tích hợp nhiều chức năng trên một con chip, đồng thời cũng làm giảm kích thước của các thiết bị điện tử đi rất nhiều lần Một phần quan trọng của việc tích hợp các chức năng của vi mạch là khả năng kết nối các thành phần khác nhau trên một con chip duy nhất Trong đó, giao thức (BUS) là một phần không thể thiếu để đảm bảo sự tương tác một cách thống nhất và hiệu quả giữa các thành phần với nhau trong một hệ thống kiến trúc chip - SoC (System on Chip) Hiểu được tầm quan trọng của các giao thức, việc nghiên cứu và phát triển các giao thức đã đạt được nhiều thành tựu to lớn trong những năm gần đây, tiêu biểu có thể kể đến các chuẩn giao thức như WISHBONE, Avalon, CAN, I2C hay bộ giao thức AMBA (AXI, AHB, APB, ) Từ đó yêu cầu về việc thực hiện các bộ chuyển đổi giao thức được đặt ra và cho đến nay các bộ giao thức chuyển đổi đã được tạo ra, ứng dụng nhiều trong các kiến trúc thiết kế chip SoC như các bộ chuyển đổi giao thức APB-WISHBONE, APB-I2C, AXI-AHB,…
Lý do chọn đề tài
Nhận thấy sự cần thiết trong việc nghiên cứu và phát triển các bộ chuyển đổi giao thức trong lĩnh vực thiết kế vi mạch cùng với sự phức tạp ngày càng gia tăng của các ứng dụng vi mạch đòi hỏi sự tối ưu hóa trong việc quản lý giao tiếp giữa các thành phần trong một hệ thống, đặc biệt là khi các thành phần này sử dụng các giao thức khác nhau Với việc các nghiên cứu trước đây thường đã tập trung vào việc phát triển các giao thức chuyển đổi có hiệu suất cao nhưng vẫn còn các thiếu sót, hạn chế Điều này tạo ra thêm các cơ hội cho việc nghiên cứu, phát triển về bộ
2 chuyển đổi giao thức AHB Lite – APB Bus, và cũng là mục tiêu của đề tài này Đó cũng là lý do chính để người thực hiện quyết định lựa chọn đề tài “Thiết kế và kiểm bộ chuyển đổi giao thức AHB Lite – APB Bus” Với việc chuyển đổi giữa hai giao thức này, người thực hiện hy vọng có thể phát triển một bộ chuyển đổi giao thức phù hợp với các yêu cầu hiện nay, góp phần cải thiện hiệu suất, tối ưu tương tác giữa các vi mạch trên cùng một con chip.
Mục tiêu đề tài
Người thực hiện thực hiện đề tài này thông qua các tài liệu chuyên ngành cũng như kiến thức đã được tích lũy trong quá trình học tập, làm việc để thực hiện thiết kế và kiểm tra đánh giá một bộ chuyển đổi giao thức từ AHB Lite qua APB Bus Với các yêu cầu cụ thể như sau:
- Thực hiện thiết kế bộ chuyển đổi giao thức AHB Lite – APB Bus cải thiện sự rõ ràng và toàn vẹn trong quá trình truyền dữ liệu so với thiết kế trước đó[6]
- Thực hiện mô phỏng và đánh giá các chức năng của bộ chuyển đổi
- Trình bày kết quả và đánh giá bộ chuyển đổi.
Giới hạn đề tài
Đề tài được đề ra nhằm mục đích phát triển bộ chuyển đổi giao thức AHB Lite -APB Bus Về phạm vi nghiên cứu: Việc thực hiện thiết kế và mô phỏng đánh giá sử dụng ngôn ngữ HDL Verilog cùng các tiện ích của công cụ XILINX ISE Đề tài chỉ tập trung vào việc chuyển đổi giao thức từ AHB qua APB và không đề cập đến các giao thức cũng như ngoại vi khác.
BỐ CỤC ĐỀ TÀI
Bài báo cáo đề tài được trình bày trong trong 5 chương với các nội dung cụ thể dựa trên mục tiêu đã được đề ra ở mục 1.3 cũng như quá trình nghiên cứu thiết kế và đánh giá bộ chuyển đổi giao thứ AHB-APB Bố cục của đề tài như sau:
Trong chương này tôi trình bày các nội dung tổng quan của bài báo cáo bao gồm tình hình nghiên cứu liên quan về đề tài, mục tiêu, lý do chọn đề tài, các giới hạn trong nghiên cứu đề tài và bố cục bài báo cáo
Chương 2: Cơ sở lý thuyết
Trong chương này tôi trình bày sơ lược về kiến trúc SoC và AMBA cùng các lý thuyết cơ bản và vai trò của 2 giao thức AHB, APB
Chương 3: Thiết kế hệ thống
Trong chương này tôi trình bày quá trình thiết kế các khối cấu trúc và chi tiết của bộ chuyển đổi giao thức AHB Lite-APB Bus
Chương 4: Mô phỏng, kiểm tra và đánh giá kết quả
Trong chương 4 tôi nêu ra các yếu tố, tiêu chí đánh giá quan trọng của đề tài
Tiếp đó thực hiện mô phỏng, kiểm tra và so sánh kết quả đạt được với các tiêu chí đã nêu cũng như phân tích đánh giá hiệu năng của thiết kế
Chương 5: Kết luận và hướng phát triển
Trong chương cuối cùng tôi trình bày tổng hợp và nhận xét các giá trị đạt được từ thiết kế so với mục tiêu đề ra ở mục 1.3 Ngoài ra đưa ra phương hướng phát triển đề tài sau khi đã nới rộng được các giới hạn về thời gian và công nghệ.
TỔNG QUAN VỀ KIẾN TRÚC SOC VÀ BỘ GIAO THỨC AMBA
AMBA (Advanced Microcontroller Bus Architecture) ra mắt vào năm 1996 và được thiết kế bởi công ty sản xuất chip rất nổi tiếng - ARM (Advanced RISH Machines) Hiện tại AMBA đã và đang là một kiến trúc bus được sử dụng rộng rãi trong SoC
AMBA cung cấp các chuẩn bus giúp các thành phần trên SoC được kết nối và có thể dễ dàng giao tiếp với nhau Điều này góp phần tăng hiệu năng và tiết kiệm chi phí hệ thống một cách rõ rệt Hình 2.1 bên dưới minh hoạ các phiên bản và các chuẩn giao thức trong AMBA
Hình 2.1: Một số chuẩn bus của họ AMBA Đến thời điểm hiện tại, AMBA đã có tất cả 5 phiên bản Một số chuẩn giao thức của nó có thể kể ra như: APB, AHB, AXI, ACE và CHI Mỗi chuẩn giao thức đều mang những tính năng và đặc điểm khác nhau Tuy nhiên, chúng đều được thiết kế để hỗ trợ truyền dữ liệu một cách nhanh chóng và hiệu quả giữa các thành phần của SoC
Các lợi ích của AMBA có thể kể đến như:
- Tính linh hoạt: AMBA có thể cung cấp nhiều chuẩn bus khác nhau, nhằm mục đích kết nối và truyền nhận dữ liệu tuỳ thuộc vào các thành phần khác nhau trên SoC
- Hiệu suất lớn: AMBA sử dụng tính năng pipelining và burst transfer, giúp tối ưu hoá được lượng dữ liệu và tốc độ truyền dữ liệu trên bus
- Độ tin cậy cao: việc xung đột dữ liệu trên bus được kiểm soát chặt chẽ để đảm bảo tính toàn vẹn dữ liệu
- Chi phí thấp: Khi thiết kế có thể tái sử dụng các thành phần IP có sẵn, điều này giúp giảm được chi phí đi đáng kể và đồng thời tăng tốc độ sản xuất
- - Tích hợp dễ dàng: AMBA cung cấp những tài liệu về cách sử dụng và tích hợp các thành phần vào trong một SoC, giúp người thiết kế có thể dễ dàng phát triển và kiểm tra được thiết kế của họ
Hình 2.2: Kiến trúc của một SoC và vị trí của bộ giao thức AMBA
Các thành phần ngoại vi (Peripheral) giao tiếp thông qua AXI sử dụng băng thông và hiệu suất cao Trong khi đó, system MMU khi giao tiếp với các 6 interconnect thì lại cần sử dụng băng thông thấp hơn nên cần sử dụng giao thức APB
TỔNG QUAN VỀ GIAO THỨC AMBA AHB LITE
2.2.1 Giới thiệu chung về hệ thống AHB LITE
AHB LITE là một phiên bản được đơn giản hóa của giao thức bus hiệu suất cao là AHB (Advanced High-performance Bus) AHB LITE được tối giản so với AHB nhưng vẫn cung cấp đầy đủ các tính năng cơ bản, giải quyết các yêu cầu về thiết kế hệ thống hiệu suất cao, hỗ trợ một thiết bị chủ và cung cấp hoạt động xung nhịp và băng thông cao bao gồm [2]:
- Truyền liên tục: AHB LITE hỗ trợ truyền liên tục, cho phép nhiều lần truyền dữ liệu diễn ra liên tiếp mà không cần cấp dữ liệu và địa chỉ một cách riêng biệt Truyền liên tục cải thiện thông lượng dữ liệu tổng thể và giảm lưu lượng trên bus
- Hoạt động cạnh đơn xung đồng hồ: AHB LITE hoạt động theo sự tích cực cạnh lên của xung đồng hồ, điều này giúp đơn giản hóa các ràng buộc về thiết kế và thời gian của hệ thống
- Cấu hình bus dữ liệu rộng: AHB LITE hỗ trợ nhiều cấu hình bus dữ liệu, bao gồm 64, 128, 256, 512 và 1024 bit Điều này cho phép truyền dữ liệu tốc độ cao và giúp dễ dàng giao tiếp với các loại thành phần khác nhau trong hệ thống
Thiết bị tớ phổ biến của AHB LITE là thiết bị bộ nhớ nội, giao diện bộ nhớ ngoài, ngoại vi băng thông cao Mặc dù ngoại vi băng thông thấp có thể được xem là thiết bị tớ AHB LITE, vì lý do hiệu suất của hệ thống, chúng thường được đặt trên APB bus để giảm tải cho bus AHB LITE, tăng hiệu suất cũng như giảm độ trễ cho các thành phần khác trên bus này, trong khi bus APB giao tiếp bởi các thành phần đơn giản, năng lượng thấp và băng thông nhỏ hơn [2] Hình 2.3 thể hiện một hệ thống AHB LITE đơn giản
Hình 2.3: Hệ thống AHB LITE đơn giản
Một hệ thống AHB LITE bao gồm một thiết bị chủ duy nhất, kết nối và giao tiếp với 3 thiết bị tớ Trong hệ thống này, còn có bộ giải mã và bộ ghép kênh Bộ giải mã có nhiệm vụ quan sát địa chỉ được gửi từ thiết bị chủ để chọn thiết bị tớ thích hợp cho một giao dịch Bộ ghép kênh định tuyến dữ liệu đầu ra từ thiết bị tớ được chọn trở về thiết bị chủ
2.2.1.1 Thành phần thiết bị chủ AHB LITE
Hình 2.4 minh họa sơ đồ khối của thành phần thiết bị chủ trên hệ thống AHB LITE.
Hình 2.4: Sơ đồ khối của thành phần thiết bị chủ
Thành phần này có nhiệm vụ cung cấp dữ liệu, địa chỉ và thông tin điều khiển cho các quá trình giao dịch dữ liệu Các đường tín hiệu của thành phần này là:
Các đường tín hiệu đầu vào:
- Tín hiệu phản hồi giao dịch: HREADY, HRESP
- Tín hiệu toàn cục: HRESET, HCLK
- Đường dữ liệu đầu vào: HRDATA
Các đường tín hiệu ngõ ra:
- Tín hiệu xử lý và điều khiển: HADDR, HWRITE, HSIZE, HBURST, HPROT, HTRANS, HMASTLOCK
- Đường dữ liệu ngõ ra: HWDATA
2.2.1.2 Thành phần thiết bị tớ AHB LITE
Hình 2.5 thể hiện sơ đồ khối của thành phần thiết bị tớ trên hệ thống AHB LITE.
Hình 2.5: Sơ đồ khối của thành phần thiết bị tớ
Thành phần này có nhiệm vụ nhận, phản hồi trong các quá trình giao dịch đọc, ghi từ thiết bị chủ Các đường tín hiệu của thành phần này là:
Các đường tín hiệu đầu vào:
- Đường tín hiệu lựa chọn: HSELx
- Tín hiệu xử lý và điều khiển: HADDR, HWRITE, HSIZE, HBURST, HPROT, HTRANS, HMASTLOCK, HREADY
- Tín hiệu dữ liệu đầu vào: HWDATA
- Tín hiệu toàn cục: HRESETn, HCLK
Các đường tín hiệu ngõ ra:
- Tín hiệu phản hồi giao dịch: HREADYOUT, HRESP
- Tín hiệu dữ liệu đầu ra: HRDATA
Thành phần bộ giải mã có nhiệm vụ giải mã địa chỉ từ thiết bị chủ gửi đến các thiết bị tớ, phục vụ cho quá trình lựa chọn thiết bị tớ trong các quá trình giao dịch dữ liệu Thành phần này cũng cung cấp tín hiệu cho bộ ghép kênh, từ thiết bị tớ gửi về thiết bị chủ [2]
Bộ ghép kênh nhận tín hiệu lựa chọn từ bộ giải mã, nhiệm vụ là ghép kênh dữ liệu đọc và tín hiệu phản hồi từ các thiết bị tớ đến thiết bị chủ cho mỗi quá trình đọc hoặc ghi trên bus AHB LITE [2]
2.2.2 Tổng quan hoạt động trên AHB LITE
Thiết bị chủ bắt đầu một giao dịch khi gửi đến thiết bị tớ thông tin về địa chỉ, dữ liệu và các tín hiệu điều khiển thích hợp Các tín hiệu điều khiển cung cấp thông tin về, hướng, độ rộng của giao dịch, chỉ ra liệu quá trình truyền có thành cụm hay không, có thể là đơn lẻ, tăng dần hoặc theo gói…[2]
Bus ghi dữ liệu chuyển dữ liệu từ thiết bị chủ đến thiết bị tớ, và bus đọc dữ liệu chuyển dữ liệu từ thiết bị tớ đến thiết bị chủ Tất cả các giao dịch bao gồm hai giai đoạn sau:
- Giai đoạn địa chỉ (yêu cầu truy cập): chỉ một chu kỳ xung đồng hồ cho địa chỉ và tín hiệu điều khiển
- Giai đoạn dữ liệu (truy cập dữ liệu): một hoặc nhiều chu kỳ xung đồng hồ cho việc lấy mẫu dữ liệu
Thiết bị tớ không thể yêu cầu giai đoạn địa chỉ (yêu cầu truy cập) được mở rộng, vì thế, tất cả các thiết bị tớ phải có khả năng lấy mẫu địa chỉ trong giai đoạn này Tuy nhiên, thiết bị tớ có thể yêu cầu thiết bị chủ mở rộng giai đoạn dữ liệu (truy cập dữ liệu) bằng cách sử dụng tín hiệu HREADY tích cực mức thấp Khi đó, trạng thái đợi sẽ được chèn vào một giao dịch và cho thiết bị tớ thêm thời gian để cung cấp hoặc lấy mẫu dữ liệu Ngoài ra, thiết bị tớ sử dụng tín hiệu HRESP để cho biết một giao dịch là thành công hay thất bại [2]
2.2.3 Mô tả các đường tín hiệu
Phần này sẽ trình bày các loại đường tín hiệu như: đường tín hiệu toàn cục, tín hiệu của thiết bị chủ, tín hiệu của thiết bị tớ, tín hiệu của bộ giải mã và tín hiệu của bộ ghép kênh, chi tiết được trình bày bên dưới
2.2.3.1 Các đường tín hiệu toàn cục
Bảng 2.1 thể hiện tên, nguồn phát và mô tả chi tiết các tín hiệu toàn cục là:
Bảng 2.1: Mô tả các đường tín hiệu toàn cục
Tên đường tín hiệu Nguồn Mô tả
HCLK Nguồn xung clock Đây là đường tín hiệu tạo ra xung clock Mỗi thành phần AHB sử dụng một tín hiệu HCLK duy nhất Đồng thời, tất cả các thay đổi của các tín hiệu đầu ra phải xảy ra sau cạnh lên của tín hiệu này
TỔNG QUAN VỀ GIAO THỨC AMBA APB
2.3.1 Giới thiệu chung về giao thức AMBA APB
APB là viết tắt của Advanced Peripheral Bus, được hiểu là chuẩn bus ngoại vi nâng cao APB là một trong các chuẩn bus của họ AMBA, được sử dụng trong một hệ thống trên chip của ARM
APB là một chuẩn bus đơn giản, cung cấp một giao diện được tối ưu hóa để tiết kiệm điện năng và chi phí APB dành cho việc kết nối 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 APB bus cũng có thể được chuyển đổi từ bus hiệu suất cao nâng cao là AMBA AHB LITE, cũng như AHB LITE hoặc giao diện mở rộng nâng cao là AMBA AXI [3]
2.3.1.1 Thành phần thiết bị chủ APB
Hình 2.12 minh họa sơ đồ khối của thành phần thiết bị chủ trên hệ thống APB
Hình 2.12: Sơ đồ khối của thành phần thiết bị chủ APB
Thành phần này có nhiệm vụ cung cấp dữ liệu, địa chỉ và thông tin điều khiển cho các quá trình giao dịch dữ liệu.
2.3.1.2 Thành phần thiết bị tớ APB
Hình 2.13 minh họa sơ đồ khối của thành phần thiết bị tớ trên hệ thống APB
Hình 2.13: Sơ đồ khối của thành phần thiết bị tớ APB
Thành phần này có nhiệm vụ nhận, phản hồi thông tin trong các quá trình giao dịch đọc, ghi dữ liệu từ thành phần thiết bị chủ gửi đến
2.3.2 Mô tả các đường tín hiệu
Trong AMBA APB, có 10 đường tín hiệu cơ bản cần quan tâm, trong đó có 8 đường dựa trên giao thức AMBA APB 2 là: PCLK, PRESET, PADDR, PSEL, PENABLE, PWRITE, PWDATA, PRDATA Bảng 2.9 là mô tả cụ thể các đường tín hiệu trong chuẩn bus này
Bảng 2.9: Mô tả một số đường tín hiệu trong AMBA APB
Tên đường tín hiệu Mô tả
PCLK Xung đồng hồ, tín hiệu đồng bộ tích cực cạnh lên
PRESETn Tín hiệu khởi tạo, tích cực mức thấp
PADDR Bus địa chỉ APB, thiết bị chủ gửi địa chỉ đi trên chân này đến thiết bị tớ, chiều rộng tối đa là 32 bits
PSEL Tín hiệu lựa chọn, tích cực mức cao Thiết bị chủ gửi tín hiệu này để lựa chọn thiết bị tớ
PENABLE Tín hiệu cho phép, tích cực mức cao Thiết bị chủ gửi tín hiệu này đến thiết bị tớ để cho phép quá trình đọc hoặc ghi dữ liệu
Tín hiệu điều khiển quá trình đọc và ghi Khi tích cực mức thấp, quá trình đọc sẽ được thực hiện, khi tích cực mức cao, quá trình ghi sẽ được thực hiện
PWDATA Thiết bị chủ ghi dữ liệu đến thiết bị tớ thông qua chân này, độ rộng tối đa là 32 bits
PRDATA Thiết bị chủ đọc dữ liệu được ghi gửi về từ thiết bị tớ thông qua chân này, độ rộng tối đa là 32 bits
PREADY Tín hiệu báo hiệu sẵn sàng cho thiết bị chủ, được sử dụng để mở rộng việc truyền tải dữ liệu của APB
PSELVERR Là tín hiệu phản hồi lỗi, tín hiệu này cho biết rằng việc truyền tải dữ liệu hiện tại có đúng hay không
2.3.3 Các trạng thái hoạt động của APB
Hình 2.14 minh họa các trạng thái hoạt động của APB
Hình 2.14: Các trạng thái hoạt động của APB
Từ hình 2.14, có thể thấy APB có 3 trạng thái hoạt động là: IDLE, SETUP và
ACCESS, mô tả cụ thể như sau:
IDLE: đây là trạng thái mặc định trên APB, ở trạng thái này, đường tín hiệu PSEL và đường tín hiệu PENABLE được kéo xuống mức 0, lúc này, thiết bị tớ không quan tâm đến giá trị của các tín hiệu điều khiển còn lại trên bus như:
SETUP: khi giao dịch được yêu cầu, bus chuyển sang trạng thái SETUP Trong đó, các tín hiệu được lựa chọn thích hợp, PSEL được xác nhận (PSEL=1) Bus chỉ ở trạng thái SETUP cho một chu kỳ, và luôn chuyển đến trạng thái thứ 2 ACCESS ở chu kỳ tiếp theo với cạnh lên của xung clock Ở trạng thái này, đường tín hiệu
ACCESS: tín hiệu cho phép PENABLE được xác định tại trạng thái này
(PENABLE=1) Tín hiệu địa chỉ, tín hiệu ghi, tín hiệu đọc và tín hiệu lựa chọn phải ổn định trong quá trình chuyển từ trạng thái SETUP sang trạng thái ACCESS Lúc này, PSEL=1 và PENABLE=1 Trong trạng thái ACCESS, thiết bị tớ phải nhận xong các giá trị điều khiển và phải lái PRDATA đến giá trị hợp lệ nếu đó là một truy cập “đọc”
Chú ý, mỗi truy cập “đọc” hay “ghi” từ thiết bị chủ APB đến thiết bị tớ APB phải qua 2 bước là SETUP và ACCESS Thoát khỏi trạng thái ACCESS được điều khiển bởi chân PREADY từ thiết bị tớ:
Nếu PREADY là mức thấp, thì vẫn ở trong trạng thái ACCESS
Nếu PREADY là mức cao, thì thoát khỏi trạng thái ACCESS, bus được trở về trạng thái IDLE nếu không có giao dịch vào được yêu cầu, bus trở về trạng thái
SETUP một cách trực tiếp nếu có một giao dịch khác theo sau đồng thời
2.3.4 Quá trình ghi dữ liệu trên APB bus
2.3.4.1 Quá trình ghi không đợi
Hình 2.15 minh họa quá trình ghi dữ liệu không đợi trên bus APB
Hình 2.15: Quá trình ghi dữ liệu không đợi
Từ hình 2.15 ta có thể thấy, có 7 đường tín hiệu được thể hiện bằng dạng sóng là: PCLK, PADDR, PWRITE, PSEL, PENABLE, PWDATA và PREADY, hoạt động cụ thể như sau:
Từ thời điểm T0 đến T1: đường tín hiệu PSEL và PENABLE đều được kéo xuống mức thấp, đây là trạng thái IDLE
Từ thời điểm T1 đến T2: thiết bị chủ bắt đầu gửi địa chỉ thông qua đường tín hiệu PADDR đến thiết bị tớ, vì đây là quá trình ghi dữ liệu nên PWRITE được kéo lên mức cao, đồng thời, thiết bị chủ chọn thiết bị tớ thông qua PSEL Đây là trạng thái SETUP, PSEL=1 và PENABLE=0
Tại thời điểm T2: thiết bị chủ kéo đường tín hiệu PENABLE lên mức cao, cùng lúc đó, tín hiệu sẵn sàng PREADY bằng 1, do đây là quá trình ghi không đợi nên dữ liệu được phép ghi, và thiết bị chủ sẽ ghi dữ liệu vào thiết bị tớ Đây là trạng thái ACCESS, PSEL=1 và PENABLE=1
Tại thời điểm T3: kết thúc quá trình ghi dữ liệu không đợi
2.3.4.2 Quá trình ghi có đợi
Hình 2.16 minh họa quá trình ghi dữ liệu có trạng thái đợi trên bus APB
Hình 2.16: Quá trình ghi dữ liệu có đợi
Quá trình này ban đầu sẽ diễn ra tương tự so với quá trình ghi dữ liệu không đợi, nhưng từ thời điểm T2 đến T4, trong khi đang ở trong trạng thái ACCESS, sau khi đợi 2 chu kỳ xung đồng hồ, thiết bị tớ mới phản hồi lại đã sẵn sàng thông qua đường tín hiệu PREADY tích cực mức cao cho thiết bị chủ tại thời điểm T4
2.3.5 Quá trình đọc dữ liệu trên APB bus
2.3.5.1 Quá trình đọc không đợi
Hình 2.17 minh họa quá trình đọc dữ liệu không có trạng thái đợi trên bus APB
Hình 2.17: Quá trình đọc dữ liệu không đợi
Từ thời điểm T0 đến T1: trạng thái khởi tạo, sẵn sàng để bắt đầu việc truyền dữ liệu Đây là trạng thái IDLE, PSEL và PENABLE đều ở mức thấp
Tại thời điểm T1: thiết bị chủ bắt đầu gửi địa chỉ trên đường tín hiệu PADDR, đây là địa chỉ của thiết bị tớ, khi đó PWRITE được kéo xuống mức thấp để thực hiện quá trình đọc dữ liệu Khi PSEL được kéo lên mức cao, điều này cho biết thiết bị chủ đã chọn thiết bị tớ
Từ thời điểm T1 đến T2: giữ trạng thái không đổi Tại thời điểm này, dữ liệu chưa được đọc Đây là trạng thái SETUP, đường tín hiệu PSEL=1 và PENABLE=0
TỔNG QUAN VỀ CÔNG NGHỆ FPGA VÀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VERILOG
FPGA là viết tắt của Field Programmable Gate Array, công nghệ này được phát triển vào những năm 1980, là một loại vi mạch số được sử dụng trong các hệ thống điện tử để thực hiện các chức năng logic và xử lý tín hiệu FPGA có thể được lập trình và cấu hình lại sau khi sản xuất, các nhà thiết kế có thể tùy chỉnh lại chức năng của chúng để phù hợp với từng ứng dụng cụ thể [4]
FPGA được sử dụng rộng rãi trong các ứng dụng điện tử như mạng viễn thông, máy tính, hệ thống nhúng, điều khiển, xử lý hình ảnh và video, và nhiều lĩnh vực khác FPGA có thể được lập trình bằng ngôn ngữ mô tả phần cứng là Verilog Verilog được triển vào những năm 1980, bởi Công ty Gateway Design Automation (nay là Synopsys) Ngôn ngữ này đã và đang trở thành một trong những ngôn ngữ mô tả phần cứng phổ biến nhất [4]
Verilog cung cấp cú pháp để mô tả các mạch logic số, bao gồm khối logic, cổng logic và các phép toán logic, người dùng có thể sử dụng những gì mà Verilog có để mô tả mạch logic số Sau khi mô tả mạch logic số bằng ngôn ngữ Verilog, người dùng có thể sử dụng các công cụ tổng hợp để kiểm tra chức năng hoặc tổng hợp sơ đồ khối của mạch logic đó
28 THIẾT KẾ VÀ ĐÁNH GIÁ BỘ CHUYỂN ĐỔI AHB LITE SANG APB BUS 28
ĐẶC TẢ MÔ HÌNH
3.1.1 Yêu cầu của mô hình kiểm tra chức năng bộ chuyển đổi
Với mục tiêu đã đề ra, mô hình kiểm tra chức năng bộ chuyển đổi phải đạt được các yêu cầu, và thực hiện được các chức năng sau:
- Bộ chuyển đổi giao tiếp với 1 thiết bị tớ, yêu cầu về tần số hoạt động tối đa là 100MHz, triển khai trên Kit FPGA “xc7k70tfbv676-1”
- Với dữ liệu được giả định, chuyển đổi được dữ liệu đó thông qua bộ chuyển đổi AHB LITE sang APB bus, từ đó có thể giao tiếp được với thiết bị ngoại vi là RAM controller
- Đảm bảo độ chính xác của dữ liệu được truyền và tính đồng bộ giữa các thiết bị được kết nối và hệ thống bộ chuyển đổi
- Thực hiện được các quá trình giao dịch như: đọc, ghi dữ liệu đơn lẻ, đọc, ghi dữ liệu liên tục (tăng dần hoặc theo gói)
3.1.2 Hoạt động của mô hình kiểm tra chức năng bộ chuyển đổi
Từ các yêu cầu của hệ thống đã đề ra ở phần trên, thì quá trình hoạt động của hệ thống sẽ diễn ra như sau:
- Phía giao diện thiết bị tớ AHB LITE của bộ chuyển đổi sẽ nhận dữ liệu từ các hàm chức năng được định nghĩa trong tệp giả định dữ liệu ngõ vào Các hàm chức năng mô tả quá trình đọc, ghi liên tục, đọc, ghi đơn lẻ
- Dữ liệu sau đó được chuyển đổi sang APB bus Trong quá trình chuyển đổi, hệ thống sẽ xem xét các giai đoạn hoạt động của AHB LITE, cũng như sự điều khiển của máy trạng thái để thực hiện đúng chức năng
- Ngoài việc kiểm tra và đánh giá bộ chuyển đổi một cách riêng việt, nhóm sinh viên cho bộ chuyển đổi giao tiếp với thiết bị RAM controller, để điều khiển đọc hoặc ghi dữ liệu
THIẾT KẾ CHO CÁC THÀNH PHẦN CỦA HỆ THỐNG
3.2.1 Thiết kế bộ chuyển đổi AHB LITE sang APB bus
3.2.1.1 Thiết kế module giao diện thiết bị tớ AHB LITE
Hình 3.1 thể hiện sơ đồ khối của module giao diện thiết bị tớ AHB LITE
Hình 3.1: Sơ đồ khối tổng quát của module giao diện thiết bị tớ AHB LITE
Sơ đồ khối của module giao diện thiết bị tớ AHB LITE được đặt tên là
AHB_SLAVE Module này đóng vai trò như giao diện thiết bị tớ AHB LITE, nhận dữ liệu và tín hiệu điều khiển từ thiết bị chủ để tạo ra các dữ liệu phù hợp tại ngõ ra Hình 3.2 thể hiện các khối chính bên trong module giao diện thiết bị tớ AHB LITE
Hình 3.2: Các khối chính trong module giao diện thiết bị tớ AHB LITE
Các khối chính trong module giao diện thiết bị tớ AHB LITE bao gồm: khối pipelining, khối lựa chọn thiết bị tớ, khối phát hiện giao dịch hợp lệ, chi tiết về
30 thiết kế các khối sẽ được mô tả ở phần bên dưới Hình 3.3 thể hiện sơ đồ mô tả các bước thiết kế module giao diện thiết bị tớ AHB LITE
Hình 3.3: Sơ đồ các bước thiết kế module giao diện thiết bị tớ AHB LITE
Các bước thiết kế module giao diện thiết bị tớ AHB LITE bao gồm: định nghĩa các ngõ vào và ra, định nghĩa các tham số có liên quan, mô tả hành vi cho khối pipelining, mô tả hành vi cho khối lựa chọn ngoại vi, khối phát hiện giao tiếp hợp lệ Bước đầu tiên mô tả các đường tín hiệu ngõ vào và ngõ ra của module giao diện thiết bị tớ AHB LITE ở bảng 3.1
Bảng 3.1: Các đường tín hiệu của module giao diện thiết bị tớ AHB LITE
Tên đường tín hiệu Hướng Mô tả
BS_HADDR [31:0] Ngõ vào Đường tín hiệu địa chỉ
BS_HWDATA [31:0] Ngõ vào Đường tín hiệu ghi dữ liệu
BS_HWRITE Ngõ vào Đường tín hiệu điều khiển đọc hoặc ghi BS_HCLK Ngõ vào Đường tín hiệu xung đồng hồ
BS_HRESETn Ngõ vào Đường tín hiệu reset tích cực mức thấp BS_HTRANS [1:0] Ngõ vào Đường tín hiệu xác định loại giao dịch BS_HREADY Ngõ vào Đường tín hiệu phản hồi sẵn sàng
BS_VALID Ngõ ra Đường tín hiệu báo giao dịch hợp lệ BS_HADDR_1 Ngõ ra Thanh ghi lưu trữ địa chỉ thứ nhất
BS_HADDR_2 Ngõ ra Thanh ghi lưu trữ địa chỉ thứ hai
BS_HWDATA_1 Ngõ ra Thanh ghi lưu trữ dữ liệu thứ nhất
BS_HWDATA_2 Ngõ ra Thanh ghi lưu trữ dữ liệu thứ hai
BS_HWRITE_REG Ngõ ra Thanh ghi lưu trữ giá trị của đường tín hiệu HWRITE trước đó
BS_TEMP_SELX [2:0] Ngõ ra Đường tín hiệu ngõ ra, xác định giá trị tạm thời của thiết bị tớ được truy cập
Bảng 3.2: Các tham số của module giao diện thiết bị tớ AHB LITE
Tên tham số Mô tả
RAM1 Có giá trị là 3’b001, ngoại vi thứ nhất
RAM2 Có giá trị là 3’b010, ngoại vi thứ hai
RAM3 Có giá trị là 3’b100, ngoại vi thứ ba
UNDEFINED Có giá trị là 3’b000, không lựa chọn ngoại vi
IDLE Có giá trị là 2’b00, trạng thái không truyền dữ liệu
BUSY Có giá trị là 2’b01, trạng thái đang truyền dữ liệu
NON_SEQ Có giá trị là 2’b10, trạng thái truyền dữ liệu không tuần tự SEQ Có giá trị là 2’b11, trạng thái truyền dữ liệu tuần tự
Các tham số được định nghĩa cho khối chọn thiết bị tớ được thể hiện ở bảng 3.2 giúp xác định thiết bị nào được chọn cho giao tiếp Các hằng số được sử dụng tại khối valid_logic để xác định tín hiệu hợp lệ BS_VALID được phát ra từ module giao diện thiết bị tớ AHB LITE dựa trên trạng thái của các đường tín hiệu:
BS_HTRANS, BS_HREADY và BS_HADDR
Thiết kế hành vi cho khối pipelining:
Khối pipelining có nhiệm vụ giữ lại các giá trị của tín hiệu BS_HADDR và BS_HWDATA cho hai chu kỳ trước đó và được sử dụng trong trường hợp xử lý giao tiếp truy cập vào bộ nhớ Khối này sẽ lưu giữ giá trị của các tín hiệu đầu vào trong hai vòng lặp liên tiếp để đảm bảo rằng dữ liệu truyền từ các chu kỳ trước đó vẫn còn trong hệ thống khi nó cần được sử dụng Nói chung, thiết kế này có chức
32 năng giúp tăng tốc độ xử lý của mạch bằng cách cho phép các giao tiếp tiếp theo được xử lý song song với các giao tiếp trước đó, đây là tính chất của AHB LITE Hình 3.4 thể hiện sơ đồ kết nối của khối pipelining
Hình 3.4: Sơ đồ kết nối của khối pipelining Ở khối pipelining, giá trị các đường tín hiệu tại các thanh ghi dưới sự tác động của đường tín hiệu BS_HRESETn được thể hiện ở bảng 3.3
Bảng 3.3: Mô tả hoạt động của khối pipelining Đường tín hiệu tác động Giá trị trên các đường tín hiệu ngõ ra
BS_HADDR_1