Sơ ñồ máy trạng thái của bộ phân xử

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 59)

Hoạt ñộng cụ thể của từng trạng thái như sau.

- GRANT_DEF: ñây là trạng thái khởi ñầu cho máy trạng thái khi có tín hiệu HRESETn tác ñộng ñến bộ phân xử. ðây cũng là trạng thái khi không có bus chủ nào yêu cầu truy cập và bộ phân xử phải cấp quyền cho bus chủ mặc ñịnh. Trong trạng thái này, các tín hiệu sẽñược ñưa về giá trị

mặc ñịnh và HGRANTx2 sẽ có mức cao ñể cấp quyền truy cập cho bus chủ mặc ñịnh. Trạng thái này chỉ chuyển qua các trạng thái GRANT_M1 hoặc GRANT_M2 khi có tín hiệu HBUSREQx tương ứng. Nếu HBUSREQx1 và HBUSREQx2 cùng có mức cao thì bus chủ M1 ñược ưu tiên và sẽ chuyển qua trạng thái GRANT_M1.

- GRANT_M1, GRANT_M2: trạng thái này sẽ cấp quyền truy cập cho bus chủ tương ứng (GRANT_M1 cho bus M1 và GRANT_M2 cho bus M2),

ñồng thời xác nhận bus chủñó ñã tham gia vào quá trình truyền ( bus chủ ñã thực hiện pha ñịa chỉ ñầu tiên của quá trình truyền). Tín hiệu HMASTER cũng sẽ phát ñi số ñịnh danh của bus chủ tương ứng trong

trạng thái này. Các trạng thái này cũng xác ñịnh số khối truyền cần thực hiện trong quá trình truyền này ñể có thể thay ñổi tín hiệu cấp quyền truy cập bus cho quá trình truyền sau. Hai trạng thái này sẽ chuyển qua các trạng thái MUX_1 và MUX_2 tương ứng ngay khi tín hiệu HREADY có giá trị logic cao.

- MUX_1: trạng thái này xảy ra sau trạng thái GRANT_M1 và thực hiện việc giám sát quá trình truyền của bus M1. Trạng thái này sẽ dựa vào tín hiệu HTRANS và HREADY ñể tính số khối truyền còn lại nhằm có thể

thay ñổi tín hiệu HGRANTx ñúng thời ñiểm cần chuyển giao bus. Trong trạng thái này, các tín hiệu phản hồi truyền cũng sẽ ñược lấy mẫu ñể có thể thay ñổi lại mức ưu tiên truy cập bus. Nếu có phản hồi RETRY thì MUX_1 không thay ñổi quyền ưu tiên truy cập và HGRANTx1 vẫn giữ

nguyên giá trị. Nếu có phản hồi SPLIT thì HGRANTx1 sẽ trở về mức logic thấp, HGRANTx2 sẽ chuyển giá trị lên mức cao và trạng thái tiếp theo sẽ là GRANT_M2 hoặc GRANT_DEF tuỳ thuộc vào tín hiệu HBUSREQx2.

- MUX_2: trạng thái này xảy ra sau trạng thái GRANT_M2 và thực hiện việc giám sát quá trình truyền của bus M2. Trạng thái này cũng dựa vào tín hiệu HTRANS và HREADY ñể tính số khối truyền còn lại, nhằm ñiều khiển tín hiệu HGRANTx thay ñổi vào ñúng thời ñiểm cần chuyển giao bus. Trong trạng thái này, các tín hiệu phản hồi truyền cũng sẽ ñược lấy mẫu ñể có thể thay ñổi lại mức ưu tiên truy cập bus. Nếu có phản hồi RETRY và HBUSREQx1 có giá trị logic thấp thì MUX_2 không thay ñổi quyền ưu tiên truy cập và HGRANTx2 vẫn giữ giá trị cũ. Nhưng nếu có một phản hồi RETRY, ñồng thời tín hiệu HBUSREQx1 có mức cao thì quyền ưu tiên sẽ ñược chuyển lại cho bus M1 và HGRANTx1 sẽ chuyển lên mức cao tương ứng. Nếu có phản hồi SPLIT và HBUSREQx1 có giá trị logic cao thì HGRANTx1 sẽ ñược ñưa lên mức cao và máy trạng thái chuyển sang trạng thái GRANT_M1. Trong trường hợp có phản hồi SPLIT, nhưng không bus chủ nào có yêu cầu truy cập bus thì máy trạng thái chuyển tiếp sang trạng thái GRANT_DEF và tín hiệu HGRANTx2 vẫn giữ giá trịở mức cao.

3.5. B gii mã ñịa ch và các b phân kênh

3.5.1. B gi i mã ña ch

Bộ giải mã ñịa chỉ có trách nhiệm nhận ñịa chỉ từ bus chủñược cấp quyền truy cập bus và giải mã ñể ñịnh ra bus tớ nào sẽ cùng tham gia vào quá trình

truyền với bus chủ. Các bus tớ tương ứng sẽ ñược lựa chọn thông qua tín hiệu HSELx. Mỗi bus tớ chỉ bắt ñầu hoạt ñộng và thực hiện quá trình truyền dữ liệu khi tín hiệu HSELx tương ứng có giá trị logic cao. Các tín hiệu trên bộ giải mã

ñịa chỉñược mô tả như trong Hình 33.

Hình 33. Các tín hiệu trên bộ giải mã ñịa chỉ.

3.5.2. B phân kênh t bus ch ñn bus t

Vì các bus chủ sẽ phát quảng bá tín hiệu ñịa chỉ, tín hiệu ñiều khiển và dữ

liệu lên bus, nên cần thiết phải có một bộ phân kênh tín hiệu ñể chuyển tín hiệu của bus chủñang có quyền thực hiện quá trình truyền ñến các bus tớ. ðây chính là nhiệm vụ của bộ phân kênh tín hiệu từ bus chủ tới bus tớ (MUX_M2S). ðồng thời, bởi vì các tín hiệu dữ liệu là phải ñược truyền ñộc lập với tín hiệu ñịa chỉ và

ñiều khiển, do ñó bộ phân kênh này cần ñược ñiều khiển bởi hai loại tín hiệu, tương ứng với quá trình truyền tín hiệu ñịa chỉ, ñiều khiển và quá trình truyền tín hiệu dữ liệu.

Vì tín hiệu HMASTER mang số ñịnh danh của bus chủ ñang thực hiện quá trình truyền ñược phát ra cùng với pha ñịa chỉ ñầu tiên của quá trình truyền, do ñó trong mô hình ñề xuất tín hiệu này cũng ñược tận dụng ñể ñiều kiển phân kênh cho các tín hiệu ñịa chỉ và ñiều khiển. Trong các tín hiệu truyền dữ liệu thì chỉ có dữ liệu ghi là ñược truyền từ bus chủ tới bus tớ, vì vậy bộ phân kênh MUX_M2S chỉ thực hiện phân kênh cho tín hiệu dữ liệu ghi (HWDATA). Việc phân kênh ñối với tín hiệu này sẽ ñược ñiều khiển bởi tín hiệu MUX_DATA_CTR phát ra từ bộ phân xử bus.

3.5.3. B phân kênh t bus t ñn bus ch

Với các tín hiệu truyền từ bus tớ ñến bus chủ thì chỉ có bus tớ nào ñang hoạt ñộng mới ñược phân kênh. ðồng thời các tín hiệu từ bus tớ chỉ cần phân kênh tương ứng với pha dữ liệu nên không cần phải chia ra hai loại tín hiệu ñiều khiển như ñối với bộ phân kênh MUX_M2S. Việc ñiều khiển phân kênh ñối với bộ phân kênh này sẽ ñược ñảm nhận bởi hai tín hiệu: tín hiệu HSELx (ñể xác

ñịnh bus tớ nào ñang hoạt ñộng) và tín hiệu MUX_S2M từ bộ phân xử bux (ñể

Chương 4 Kim chng, ñánh giá và thc thi mô hình h

thng

4.1. Phương pháp kim tra ñánh giá mô hình

ðể kiểm chứng tính ñúng ñắn của mô hình hệ thống bus ñã xây dựng,

ñồng thời ñể có thểñánh giá ñược kết quả thực thi phần cứng của mô hình, luận văn này sử dụng hai công cụ phần mềm hỗ trợ thiết kế khác nhau ñể tiến hành mô phỏng, kiểm tra, thực thi và ñánh giá. Phần mềm ModelSim (phiên bản 6.4) của hãng Mentor Graphic ñược sử dụng ñể mô phỏng hoạt ñộng logic của hệ

thống. ðây là một công cụ mô phỏng dùng cho các thiết kế số ñược sử dụng khá phổ biến. Phần mềm này có thể hỗ trợ mô phỏng ở nhiều mức khác nhau như: mô phỏng hoạt ñộng logic của hệ thống, mô phỏng logic và thời gian, mô phỏng logic và thời gian sau khi tiến hành thực thi phần cứng… Việc mô phỏng ñến mức nào tuỳ thuộc vào yêu cầu của thiết kế. ðể thực hiện mô phỏng ta phải cung cấp thư viện các ñặc tả kỹ thuật cho phần mềm. Tùy thuộc vào mức ñộ mô phỏng mà thư viện ñặc tả có thể khác nhau.

Dựa trên các ñặc tả kỹ thuật của thiết kếñã ñược nêu ra ở trong Chương 3, một tập hợp dữ liệu các ñiều kiện ñầu vào sẽ ñược xây dựng ñể tạo ra một môi trường kiểm tra cho hệ thống bus. Các dữ liệu ñưa vào lối vào này còn ñược gọi là các dữ liệu kiểm tra (test data hay test stimuli). Các dữ liệu này sẽ tác ñộng

ñến các chân lối vào của hệ thống theo các kịch bản ñịnh sẵn và tại các chân lối ra ta sẽ thu ñược các dữ liệu ra dưới dạng các giản ñồ thời gian. Từ những giản

ñồ thời gian thu ñược, ta sẽ xác ñịnh tính ñúng ñắn trong quá trình hoạt ñộng của hệ thống bằng cách ñối chiếu với các giản ñồ thời gian của ñặc tả kỹ thuật ñã xây dựng từ trước. Quá trình mô phỏng và kiểm tra này ñược biểu diễn bằng sơ ñồ

Mô hình cần kiểm tra Kịch bản lệnh TCL Dạng sóng của tín hiệu CHƯƠNG TRÌNH MÔ PHỎNG Dữ liệu ñầu vào

Hình 34. Sơ ñồ khối của quá trình mô phỏng kiểm tra hệ thống.

Sau khi kiểm tra hoạt ñộng của hệ thống về mặt logic, hệ thống sẽ ñược tổng hợp phần cứng theo công nghệñược nhắm tới (ở ñây ta sử dụng công nghệ

FPGA của hãng Xillinx). Từ ñó, ta có thể ñánh giá ñược tài nguyên phần cứng cần sử dụng ñể xây dựng nên hệ thống bus này. Công cụ phần mềm ñược sử

dụng trong quá trình này là phần mềm ISE Foundation Suite (phiên bản 10.1) của hãng Xilinx. Sau khi tiến hành tổng hợp phần cứng, bên cạnh việc ñánh giá về

không gian thực thi phần cứng của mô hình, ta có thể thu ñược một số thông số

vật lý ban ñầu về hiệu năng hoạt ñộng của hệ thống bus này như: tần số hoạt

ñộng tối ña, thời gian trễ tối ña, công suất tiêu thụ…

Việc khai thác, sử dụng hai công cụ phần mềm này trong từng bước thiết kế khác nhau ñược thể hiện như trong sơñồ khối ở Hình 35.

Hình 35. Sử dụng ModelSim và ISE Foundation Suite trong từng bước thiết kế.

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ô phng và kim chng mô hình bng 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ô 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ả.

Hình 36. Kết quả mô phỏng hệ thống bus với quá trình truyền khối tăng nhịp 4.

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.

Hình 37. Kết quả mô phỏng với quá trình truyền khối cuộn nhịp 8.

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

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 59)

Tải bản đầy đủ (PDF)

(87 trang)