Mô phỏng và kiểm chứng mô hình bằng ModelSim

Một phần của tài liệu Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 64)

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ủ.

59

a) Mô phng truyn khi tăng vi nhp 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ả.

60

61

b) Mô phng truyn khi cun vi nhp 8

Thay ñổi dữ liệu lối vào với cấu hình truyền khối tăng nhịp 8 và thực hiện mô phỏng tương tự ta thu ñược kết quả mô phỏng của quá trình truyền khối cuộn với nhịp 8 như trong Hình 37. Lần này, bus chủ M1 yêu cầu một quá trình ghi dữ liệu và phát ra tín hiệu HBURSTx1 = “100” ñể thông báo một quá trình truyền khối cuộn với 8 nhịp. ðịa chỉ của khối truyền ñầu tiên là h00000038 nên khi truyền hết khối có ñịa chỉ h0000003C thì ñịa chỉ tiếp theo không phải là h00000040 (ñịa chỉ biên) mà sẽ bị quay trở về ñịa chỉ h20 (thời ñiểm 500ns). Cũng tại thời ñiểm 500ns thì lõi IP của bus tớ lại yêu cầu một quá trình truyền ñợi kéo dài trong 2 chu kỳ nên dữ liệu h00000CA8 của ñịa chỉ h20 chỉ ñược truyền tại thời ñiểm 800ns (sau 2 chu kỳ).

Ở thời ñiểm 1000ns, do lõi IP gắn với bus chủ M1 ñưa ra thông báo bận (Valid_Wx1 = ‘0’) nên bus chủ phải thay ñổi giá trị của tín hiệu HTRANx1 = “001” (BUSY) ñể thông báo một quá trình truyền bận. Lúc này, khối truyền có ñịa chỉ h0000002C sẽ ñược mở rộng thêm một chu kỳ và khối truyền tiếp theo (ñịa chỉ h00000030) chỉ ñược thực hiện tiếp tại thời ñiểm 1200ns. Kết quả mô phỏng cho thấy hoạt ñộng của quá trình truyền khối cuộn với nhịp 8 với các quá trình ñợi và quá trình bận là hoàn toàn ñúng theo các ñặc tả kỹ thuật.

62

63

4.2.2. Kim tra hot ñng truyn khi khi có các ph n hi truyn

a) Truyn khi vi phn hi truyn RETRY

Trong trường hợp lõi IP cần yêu cầu truyền lại ñịa chỉ của một khối truyền vừa ñược thực hiện, nó gửi tín hiệu IP_RETRY ñến bus tớ và bus tớ sẽ thông báo cho bus chủ cũng như bộ phân xử biết về quá trình này thông qua tín hiệu HRESP (xem thêm về hoạt ñộng RETRY ở các phần 2.3.3 và 3.3.1).

ðể mô phỏng quá trình truyền khối và quá trình chuyển giao bus với phản hồi truyền RETRY từ bus tớ, các ñiều kiện vào cần ñược xây dựng nhằm xuất hiện sự kiện hai bus chủ yêu cầu truy cập bus tại các thời ñiểm khác nhau. Ban ñầu, bus chủ M2 ñược phép truy cập trước và sẽ thực hiện một quá trình truyền khối. Trong quá trình truyền của bus chủ M2, bus tớ sẽ phát ñi một phản hồi truyền RETRY ñể yêu cầu truyền lại ñịa chỉ của một khối truyền. ðồng thời, khi M2 ñang thực hiện truyền thì bus chủ M1 cũng gửi yêu cầu truy cập bus. Do bus chủ M1 có quyền ưu tiên cao hơn nên khi bus chủ M2 có phản hồi RETRY thì nó phải nhường quyền sở hữu bus lại cho bus chủ M1 và chỉ có thể quay lại ñể tiếp tục quá trình truyền ñang bị bỏ dở sau khi M1 ñã hoàn tất quá trình truyền của nó. Kết quả mô phỏng của quá trình này ñược thể hiện ở trong Hình 38.

64

65

Trong mô phỏng này, cả hai bus chủ ñều thực hiện các quá trình ghi dữ liệu với ñịa chỉ tăng theo nhịp 4 và quá trình truyền này diễn ra như sau:

- Bus chủ M2 thực hiện một quá trình truyền khối tăng với nhịp 4, bắt ñầu từñịa chỉ h00000038.

- Tại thời ñiểm 500ns (tương ứng M2 ñang thực hiện truyền với khối có ñịa chỉ h00000044), lõi IP ở bus tớ có yêu cầu truyền lại ñịa chỉ h00000040 (IP_OKAY = ‘0’ và IP_RETRY = ‘1’, tương ứng bus tớ phát ñi tín hiệu HRESPx1 = “10” (RETRY)).

- Cũng tại thời ñiểm này, bus chủ M1 yêu cầu một quá trình truyền nên quyền sở hữu bus sẽ ñược chuyển cho M1 ở chu kỳ tiếp theo, quá trình truyền của M2 sẽ bị tạm dừng cho ñến khi M1 truyền xong.

- Bus chủ M1 bắt ñầu quá trình truyền khối ở ñịa chỉ h000000B4 và sẽ kết thúc ởñịa chỉ h000000C0.

- Tại thời ñiểm 1100ns, sau khi M1 thực hiện xong việc truyền ñịa chỉ của khối truyền cuối cùng (h000000C0) thì bus ñịa chỉ lại ñược trả lại cho M2 ñể thực hiện tiếp quá trình truyền bị bỏ lỡ. Lúc này M2 sẽ tính lại ñịa chỉ và truyền lại khối truyền có ñịa chỉ là h00000040 theo yêu cầu của bus tớ. Dữ liệu của khối này là h00000CA8 sẽ ñược truyền lại tại thời ñiểm 1200ns ñể ñảm bảo dữ liệu của khối cuối cùng của M1 ñã ñược thực hiện xong.

Kết quả mô phỏng ñã chứng tỏñược quá trình truyền có phản hồi RETRY từ bus tớñã ñược thực hiện ñúng. Các ñịa chỉ sau khi thực hiện việc truyền lại ñã ñược tính toán ñúng và dữ liệu tương ứng với ñịa chỉ ñó cũng ñược phát ñi ñúng thời ñiểm. Quá trình chuyển giao bus khi có yêu cầu truyền lại cũng ñã hoạt ñộng tốt, ñảm bảo dữ liệu không bị mất khi chuyển giao quá trình truyền giữa hai bus chủ. Thông qua chiến lược mô phỏng này, ta có thể kết luận rằng hệ thống bus ñược thiết kếñã hoạt ñộng ñúng với quá trình truyền có phản hồi RETRY.

66

b) Truyn khi vi phn hi truyn SPLIT

Quá trình mô phỏng một quá trình truyền khối có phản hồi truyền SPLIT cũng ñược thực hiện bằng cách sử dụng hai yêu cầu truyền từ hai bus chủ tương tự như mô phỏng truyền khối với phản hồi truyền RETRY. Tuy nhiên, trong mô phỏng này, bus chủ M1 sẽñóng vai trò là bus chủ bị ngắt khỏi bus. Mục ñích của việc này là ñể kiểm tra lại sự thay ñổi quyền ưu tiên trong hệ thống bus khi có một phản hồi truyền SPLIT từ bus tớ. Lúc này, bus chủ M2 có thể có quyền ưu tiên thấp hơn nhưng vẫn ñược phép thực hiện một quá trình truyền nếu như bus chủ M1 ñang bị ngắt khỏi bus bởi một phản hồi truyền SPLIT. Kết quả thu ñược sau khi mô phỏng của quá trình truyền này ñược thể hiện ở Hình 39.

67 (adsbygoogle = window.adsbygoogle || []).push({});

68

Quá trình truyền này ñược mô tả như sau:

- Bus chủ M1 yêu cầu một quá trình truyền khối nhịp 4 thông thường và bắt ñầu truyền khối ñầu tiên với ñịa chỉ h00000038 tại thời ñiểm 300ns. - Tại thời ñiểm 400ns, lõi IP ở bus tớ phát ñi tín hiệu IP_OKAY = ‘0’ ñể

yêu cầu một quá trình ñợi thông thường (HRESPx1 = “00” (OKAY)). Do ñó khối truyền ở ñịa chỉ h0000003C ñược mở rộng thêm một chu kỳ. - Tại thời ñiểm 600ns, lõi IP ở bus tớ gửi một yêu cầu truyền SPLIT

(IP_SPLITx1 = ‘1’) vì chưa thể ghi dữ liệu h000002C3 của khối h0000003C trong một chu kỳ. Bus tớ sẽ phát ñi tín hiệu phản hồi HRESPx1 = “11” (SPLIT) trong 2 chu kỳñể thông báo yêu cầu một quá trình truyền SPLIT.

- Vì tại thời ñiểm 530ns, lõi IP gắn với bus chủ M2 có yêu cầu truy cập bus nên sau khi nhận phản hồi truyền SPLIT thì bộ phân xử sẽ cho phép M2 ñược tham gia vào bus ñể thực hiện quá trình truyền (HGRANTx2 = ‘1’ tại 700ns). Bus chủ M2 bắt ñầu thực hiện một quá trình truyền khối với nhịp 4 với ñịa chỉ bắt ñầu là h000000C8 và kết thúc ở khối có ñịa chỉ h000000D4.

- Ở thời ñiểm 1000ns, lõi IP ở bus tớ thay ñổi tín hiệu IP_SPLIT về mức ‘0’ ñể thông báo sẵn sàng quay lại quá trình truyền bị ngắt. Bus tớ phát ñi tín hiệu HSPLITx1 = ‘1’ trong một chu kỳ ñể thông báo bus chủ M1 có thể quay lại bus. Tuy nhiên, do M2 ñang thực hiện dở quá trình truyền nên M1 vẫn phải ñợi ñến khi M2 kết thúc mới ñược quay lại sở hữu bus. - Tại thời ñiểm 1200ns, bus chủ M2 ñã truyền xong ñịa chỉ khối cuối cùng

nên M1 ñược phép sở hữu lại bus ñịa chỉ. Giá trị ñịa chỉ của khối truyền trước khi bị ngắt là h00000040 nay lại ñược phục hồi ñể tiếp tục truyền lại ởñịa chỉ này. Các tín hiệu HTRANSx1 = “10” (NONSEQ) và HBURST = ‘1’ (INCR) phản ánh bus chủ M1 ñang thực hiện lại quá trình truyền ñã bị SPLIT bằng một quá trình truyền khối có ñộ dài không xác ñịnh. Dữ liệu h000002C3 ñược tiếp tục truyền ở chu kỳ sau (ở 1300ns) ñể ñảm bảo quá trình chuyển giao bus dữ liệu ñược thực hiện ñúng. Bus chủ M1 tiếp tục thực hiện quá trình truyền các khối còn lại (có ñịa chỉ h00000040 và h00000044 với dữ liệu tương ứng là h000002CD và h000002A6) theo ñúng yêu cầu của một quá trình truyền khối có ñộ dài không xác ñịnh. Kết quả mô phỏng cho thấy hệ thống bus ñược xây dựng ñã thực hiện ñúng quá trình truyền khối có phản hồi truyền SPLIT. Các ñịa chỉ và dữ liệu của quá trình truyền bị phân chia cũng ñã ñược truyền lại ñúng sau khi bus chủ quay

69

lại sở hữu bus. Quá trình chuyển giao bus giữa các quá trình truyền cũng ñã ñược thực hiện ñúng, ñảm bảo ñịa chỉ và dữ liệu của hai quá trình truyền ñược chuyển ñúng và ñầy ñủ.

c) Truyn khi vi phn hi truyn ERROR

Việc mô phỏng quá trình truyền khối với phản hồi truyền ERROR cũng ñược tiến hành hoàn toàn tương tự. Kết quả mô phỏng ñược biểu diễn ở Hình 40. Bus chủ M1 thực hiện một quá trình truyền khối tăng với nhịp 4 tương tự như với quá trình truyền có phản hồi SPLIT. Tuy nhiên, tại thời ñiểm 600ns bus tớ không gửi phản hồi SPLIT mà thay bằng phản hồi ERROR bởi vì lõi IP phát ra tín hiệu IP_OKAY = ‘0’ và IP_ERROR = ‘1’. Khối truyền tại thời ñiểm này (có ñịa chỉ h00000040 và dữ liệu h000002CD) bị huỷ bỏ, không ñược truyền trong chu kỳ tiếp theo. Các khối truyền tiếp theo cũng sẽ bị huỷ và bus chủ M1 bị ngắt khỏi bus.

Ở thời ñiểm 700ns, bus chủ M1 chuyển giá trị của HTRANSx1 = “00” (IDLE) ñể thông báo ñã huỷ quá trình truyền. Quyền sở hữu bus ñược chuyển cho bus chủ M2 ñể M2 thực hiện quá trình truyền khối ñã yêu cầu từ trước.

Tại thời ñiểm 800ns, bus ñịa chỉ ñược chuyển giao cho M2 sau khi kết thúc phản hồi truyền ERROR từ bus tớ. ðiều này là hoàn toàn hợp lý bởi vì tín hiệu HGRANTx chỉ thay ñổi vào giữa hai chu kỳ của quá trình phản hồi ERROR. Hơn nữa, việc chuyển giao bus chỉ có thể thực hiện sau ñó một chu kỳ, tức là khi ñã kết thúc phản hồi ERROR. Kết quả mô phỏng chứng tỏ rằng quá trình truyền khối khi gặp phản hồi truyền ERROR ñã kết thúc quá trình truyền trong hai chu kỳ xung nhịp ñúng theo yêu cầu của ñặc tả kỹ thuật và việc chuyển giao bus trong quá trình này cũng ñã hoạt ñộng một cách ñúng ñắn.

Dựa vào các kết quả mô phỏng ñược trình bày và phân tích như trên, ñồng thời kết hợp với các ñặc tả kỹ thuật cũng như các yêu cầu ñã ñược ñặt ra trong phần mô hình hoá hệ thống ở Chương 3, chúng ta có thể kết luận hệ thống bus ñược xây dựng nên ñã hoạt ñộng hoàn toàn ñúng ñắn. Các chức năng của hệ thống ñều ñã ñược kiểm tra và chứng tỏ hệ thống hoạt ñộng tốt, ñảm bảo ñược quá trình truyền dữ liệu không bị mất mát. Việc kiểm tra các hoạt ñộng logic của hệ thống bus cũng chứng tỏ hệ thống ñược xây dựng ñã sẵn sàng cho quá trình tổng hợp phần cứng tiếp theo.

70

71

Một phần của tài liệu Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 64)