Trong toàn bộ quy trình thiết kế, khi chuyển từ một công ñoạn thiết kế này sang một công ñoạn thiết kế khác ta thường thực hiện việc mô phỏng, kiểm tra ñể ñảm bảo không có sai sót xảy ra. Do ñó, hai công cụ này ñược sử dụng xen kẽ
với nhau trong suốt quy trình thiết kế.
4.2. Mô phỏng và kiểm chứng mô hình bằng ModelSim
4.2.1. Kim tra hot ñng truyn thông ñn gi n ca mô hình
ðể ñánh giá hoạt ñộng truyền thông của mô hình, các dữ liệu ñầu vào sẽ ñược xây dựng ñể yêu cầu hệ thống thực hiện một quá trình truyền khối 4 nhịp với ñịa chỉ tăng và một quá trình truyền khối 8 nhịp với ñịa chỉ cuộn. Trong các quá trình truyền này sẽ thêm vào các quá trình ñợi ñể kiểm tra hoạt ñộng của hệ
thống khi có yêu cầu mở rộng quá trình truyền từ bus tớ. Trạng thái bận (BUSY) và việc truyền tín hiệu báo bận cũng ñược tạo ra trong mô phỏng với quá trình truyền cuộn nhịp 8 ñể kiểm tra hoạt ñộng của bus chủ.
a) Mô phỏng truyền khối tăng với nhịp 4
Hình 36 là kết quả mô phỏng trên chương trình ModelSim của quá trình truyền khối tăng với nhịp 4. ðây là một quá trình truyền dữ liệu ñọc và nó diễn ra như sau:
Tại thời ñiểm 100ns, bus chủ M1 phát tín hiệu HBUSREQx1 = ‘1’ ñể phát yêu cầu truy cập bus vì trước ñó lõi IP ñã phát yêu cầu truyền ñến bus chủ M1 (IP_REQx1 = ‘1’). Bởi vì không có bus chủ nào ñang thực hiện truyền nên bus chủ M1 sẽ ñược cấp quyền truy cập bus tại thời ñiểm 200ns (HGRANTx = ‘1’) và ñược quyền sở hữu bus ñịa chỉ và tín hiệu tại thời ñiểm 300ns theo ñúng quy
ñịnh của quá trình chuyển giao bus. Tại thời ñiểm này, bus chủ M1 phát ñi các tín hiệu HBURSTx1 = “011” và HWRITEx1 = ‘0’ ñể thông báo ñây là một quá trình ñọc dữ liệu gồm 4 khối với ñịa chỉ tăng. Tín hiệu HTRANSx1 = “10” (NONSEQ) thông báo bắt ñầu khối ñầu tiên của quá trình truyền khối và trong các chu kỳ sau thì nó có giá trị là “11” (SEQ) ñể thông báo ñang thực hiện một quá trình truyền khối. ðịa chỉ bắt ñầu của quá trình truyền khối là h00000038 nên các ñịa chỉ tiếp theo sẽ là: h0000003C, h00000040 và h00000040 (do mỗi khối có ñộ rộng là 4 byte).
Tại thời ñiểm 500ns (tương ứng với khối truyền có ñịa chỉ là h00000040), do lõi IP gắn với bus tớ chưa thể cung cấp dữ liệu ñọc cho khối h0000003C nên nó phát tín hiệu IP_OKAYx1 = ‘0’. Bus tớ sẽ thông báo một quá trình truyền ñợi cho bus chủ thông qua tín hiệu HREADYx1 = ‘0’. Ở thời ñiểm 600ns, lõi IP ñã sẵn sàng ghi dữ liệu (IP_OKAY = ‘1’ và HREADYx1 = ‘1’) nên dữ liệu hCB3 của ñịa chỉ h0000003C mới ñược truyền ñi. Quá trình truyền tại ñịa chỉ
h00000040 bị mở rộng thêm một chu kỳ. Các khối truyền tiếp theo ñược tiến hành bình thường cho ñến khi hoàn thành cả 4 khối truyền. ðối chiếu với ñặc tả
của bus AMBA AHB (mục 2.3.3), ta thấy quá trình truyền khối tăng với nhịp 4 diễn ra ñúng như mô tả.