1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế thiết bị test giao diện SPI 3 ứng dụng FPGA

138 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 138
Dung lượng 2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các mục đích mà luận văn này hướng tới như sau: Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị lớp PHY sử dung giao diện SPI 3 Thiết kế một hệ thống phát

Trang 1

HUỲNH BÙI HOÀNG NAM

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3

ỨNG DỤNG FPGA

Chuyên ngành : KỸ THUẬT VÔ TUYẾN VÀ ĐIỆN TỬ

Mã số ngành : 2.07.01

LUẬN VĂN THẠC SỸ

THÀNH PHỐ HỒ CHÍ MINH 012-2004

W X

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

-*** -

Cán bộ hướng dẫn khoa học : PGS.TS LÊ TIẾN THƯỜNG

Cán bộ chấm nhận xét 1 : PGS.TS Khoa Học Nguyễn Kim Sách

Cán bộ chấm nhận xét 2 : TS Phạm Hồng Liên

Luận văn thạc sỹ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SỸ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày30tháng 12 năm 2004

Trang 3

- -

NHIỆM VỤ LUẬN VĂN SỸ

Họ và tên học viên: HUỲNH BÙI HOÀNG NAM Phái: Nam

Ngày, tháng, năm sinh: 29/08/1979 Nơi sinh: Bình Dương

Chuyên ngành: KỸ THUẬT VÔ TUYẾN-ĐIỆN TỬ Mã số: 2.07.01

TÊN ĐỀ TÀI: THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3

ỨNG DỤNG FPGA

II-NHIỆM VỤ VÀ NỘI DUNG:

Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị

lớp PHY sử dung giao diện SPI 3

Thiết kế một hệ thống phát và kiểm tra dữ liệu nhận giao tiếp với thiết bị lớp

PHY sử dụng giao diện SPI 3

III-NGÀY GIAO NHIỆM VỤ: 01/07/2004

IV-NGÀY HOÀN THÀNH NHIỆM VỤ: 30/11/2004

V-HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS LÊ TIẾN THƯỜNG

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH BỘ MÔN QUẢN LÝ NGÀNH (Ký tên và ghi rõ họ tên) (Ký tên và ghi rõ họ tên) (Ký tên và ghi rõ họ tên)

Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

Ngày tháng năm

Trang 4

Trước tiên, em xin chân thành bày tỏ lòng biết ơn sâu thầy hướng dẫn,

PGS.TS LÊ TIẾN THƯỜNG, người đã trực tiếp hướng dẫn, tận tình

chỉ bảo và tạo mọi điều kiện thuận lợi để em hoàn thành luận văn tốt nghiệp này

Em xin chân thành cảm ơn tất cả Phòng Sau Đại Học, cùng Quý thầy cô và cán bộ của Khoa Điện-Điện Tử – Trường Đại Học Bách Khoa TP.HCM đã hết lòng giảng dạy, truyền đạt kiến thức và giúp đỡ em trong suốt thời gian học tập tại Trường

Cuối cùng, xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên, giúp đỡ và hổ trợ trong suốt quá trình học tập và thực hiện luận văn

tốt nghiệp này

TP.Hồ Chí Minh, tháng 12/2004 Tác giả

Trang 5

Sự phát triển bùng nổ của Internet và các ứng dụng băng rộng như Video theo yêu cầu (Video on demand) và hội nghị đa truyền thông đòi hỏi các mạng truyền dẫn phải có băng thông lớn Khi được triển khai công nghệ ghép kênh phân chia bước sóng WDM (Wavelength Division Multiplexing), các mạng truyền dẫn quang được đánh giá là một mạng truyền dẫn đầy hứa hẹn, có thể đáp ứng đầy đủ băng thông cho các ứng dụng hiện tại cũng như các ứng dụng mới trong tương lai

Trong Luận Văn này, mạng toàn quang sử dụng công nghệ ghép kênh phân chia bước sóng WDM được xem xét Luận Văn tập trung vào việc tìm hiểu công nghệ WDM và việc quản lý tài nguyên cho các yêu cầu kết nối và bảo vệ trong mạng toàn quang WDM Giải quyết bài toán định tuyến và gán bước sóng góp phần quan trọng để nâng cao hiệu suất của các mạng quang định tuyến bước sóng Luận Văn xem xét bài toán định tuyến và gán bước sóng trong cả hai trường hợp tĩnh và động Một số thuật toán định tuyến và gán bước sóng trong cả hai trường hợp tĩnh và động được tìm hiểu và trình bày; từ đó giới thiệu một phương pháp mới cho vấn đề định tuyến và gán bước sóng động và tiến hành mô phỏng

Luận văn được trình bày như sau: Phần A sẽ giới thiệu chi tiết về mạng truyền dẫn quang, công nghệ WDM và mạng toàn quang WDM Phần B tìm hiểu vấn đề định tuyến và gán bước sóng trong các mạng quang WDM và xem xét một số thuật toán Phần C mô phỏng giải pháp mới cho bài toán định tuyến và gán bước sóng và nêu ý kiến kết luận

Trang 6

SPI-3 fulfills the need for system designers to target a standard POS Physical Layer interface Although targeted at implementing POS, the SPI-3 specification

is not restricted to this application It provides a versatile bus interface for exchanging packets within a communication system

SPI-3 defines the requirements for interoperable single-PHY (one PHY layer device connected to one Link Layer device) and multi-PHY (multiple PHY layer devices connected to one Link Layer device) applications It stresses simplicity of operation to allow forward migration to more elaborate PHY and Link Layer devices

In this thesis, all-SPI-n interface are studied The thesis concentrates on designing

an equipment which stands in Link Layer (Link Layer device) to check data flows

of PHY layer device using SPI 3 This equipment has some functions as following:

• Standard packet bus interface

− Fully compliant with Optical Internetworking Forum’s System Packet Interface level 3 for interconnection between test card and PHYSICAL LAYER chip

− Programmable SPI3 data bus width 8-bit 16-bit or 32-bit

− Operates at 104Mhz and 32-bit interface supporting up to 3.328Gbps cell/packet transfer

− Selectable byte level or packet level transfers with polled and direct status indication

Trang 7

system interface

− Configurable single or multiple physical ports operation with in-band addressing Test card provides up to 128 physical ports for high speed STS-48/VC-4-16 and low speed STS-12/VC-4-4 (contains 28xVT1.5/21xVT2/14xVT3/7xVT6 or 12xDS3/12xE3)

− Advanced management options with error handling, SPI3 protocol violation check and fully programmable oversized packet discard feature

− Packets transfer in multiple programmable data segments supported in receive and transmit directions to increase flexibility and decrease application buffer requirements when used in multiple physical ports

• Non-standard packet bus interface

− Operates at 200Mhz and 32-bit data bus width supporting up to 6.4Gbps cell/packet transfer

Supports 128 physical ports for high speed 96/VC-4-32 and low speed 12/VC-4-4

STS-The thesis is organized as follows:

Section I: is an introduction on SPI 3 interface (purposes, application…), Programming language and tools used for designing

Section II: presents SPI 3 standard: protocol for transmitting data, function of signals on interface

Section III: presents model, functions and operational methods of device The results, conclusion and some direction to continue this topic is presented in this part

Trang 8

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

MỤC LỤC PHẦN I: GIỚI THIỆU Chương 1: Giới thiệu 1

1.1 Giới thiệu về chuẩn SPI 3 1

1.2 Giới thiệu về Verilog HDL 3

1.2.1 Khái quát Verilog HDL 3

1.2.2 Lịch sử phát triển ngôn ngữ Verilog 4

1.3 Giới thiệu về hệ điều hành LINUX thời gian thực 4

PHẦN II: CƠ SỞ LÝ THUYẾT (CHUẪN SPI 3) Chương 2: Định nghĩa liên quan đến chuẩn giao tiếp SPI 3 7

Chương 3: Cách thức truyền dữ liệu sử dụng giao diện SPI 3 9

3.1 Cách đặt tên tín hiệu 9

3.2 Độ rộng Bus dữ liệu 9

3.3 Tần số của Clock truyền 9

3.4 Vấn đề đồng bộ trong giao tiếp truyền gói 10

3.5 Tốc độ đường truyền cho các ứng dụng 12

Chương 4: Chức năng của các tín hiệu trên giao diện SPI 3 13

4.1 Hướng Phát (Transmit side) 13

4.1.1 Các tín hiệu hướng phát 13

4.1.2 Phương thức chỉ định trạng thái trực tiếp 18

Trang 9

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

4.1.2.1 Hoạt động truyền dữ liệu đơn port 18

4.1.2.2 Hoạt động truyền dữ nhiều port 19

4.1.3 Chế độ hoạt động hỏi vòng (polling) kiểm tra trạng thái port 19

4.1.3.1 Chế độ hoạt động truyền Byte-level 20

4.1.3.1 Chế độ hoạt động Packet-level 20

4.2 Các tín hiệu trên giao diện hướng thu 21

4.2.1 Ý nghĩa chức năng của các tín hiệu 21

4.2.2 Giao diện truyền dữ liệu đơn port 25

4.2.3 Giao diện truyền dữ liệu đa port 26

PHẦN C: PHẦN THIẾT KẾ HỆ THỐNG Chương 5: Các tính năng của thiết bị 27

Chương 6: Sơ đồ khối tổng quát của hệ thống 29

Chương 7: Chức năng của các khối trong hệ thống 31

7.1 Khối Tx SPI 3 (khối phát) 32

7.1.1 RAM cấu hình trong chế độ hoạt động Buffer 34

7.1.2 RAM cấu hình trong chế độ hoạt động PRBS 35

7.2 Khối Rx SPI 3 (Khối thu) 36

7.3 Khối giả lập thiết bị lớp PHY 39

7.3.1 Hướng TX 40

7.3.2 Hướng Rx 41

7.4 Cấu trúc và chức năng của thanh ghi và RAM được sử dụng để điều khiển thiết bị hoạt động 42

7.4.1 Các thanh ghi cấu hình chung của toàn bộ thiết bị 42

7.4.2 RAM và Thanh ghi khối Tx SPI 3 44

7.4.3 RAM và Thanh ghi khối Tx SPI 3 61

Trang 10

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

7.4.4 RAM và Thanh ghi khối giả lập lớp PHY 83

Chương 8: Kết quả, kết luận và hướng phát triển 96

8.1 Kết quả thực hiện của đề tài 96

8.1 Hạn chế của đề tài 97

8.2 Hướng phát triển 97

Phụ luc A – FPGA 98

Phụ luc B – Ngôn ngữ Verilog 106

Tài liệu tham khảo 120

Trang 11

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

DANH MỤC HÌNH VẼ

Hình 1.1 Mô hình giao tiếp SPI kết nối giữa thiết bị lớp LINK và thiết bị lớp PHY

2

Hình 1.2 Mô hình giao tiếp SPI truyền gói dữ liệu trên SONET 3

Hình 4.1 Giao tiếp đơn port không định địa chỉ in-band 18

Hình 4.2 Giản đồ thời gian hướng Tx .19

Hình 4.3 Giản đồ thời gian quá trình kiểm tra trạng thái port 20

Hình 4.4 Giao diện truyền dữ liệu đơn port 25

Hình 4.4 Giao diện truyền dữ liệu nhiều port 26

Hình 5.1 Sơ đồ khối tổng quát của hệ thống 27

Hình 6.1 Sơ đồ khối chức năng tổng quát của hệ thống 29

Hình 6.2 Giao diện vật lý của SPI 3 30

Hình 7.1 Sơ đồ khối chức năng của thiết bị ở hướng phát (Tx SPI 3) 32

Hình 7.2 Sơ đồ khối chức năng của thiết bị ở hướng phát (Tx SPI 3) 34

Hình 7.3 Cấu trúc của bộ nhớ khối Tx SPI 3 ở PRBS mode 35

Hình 7.4 Sơ đồ khối chức năng của thiết bị ở hướng thu (Rx SPI 3) 36

Hình 7.5 Khối Rx memory 37

Hình 7.6 Sơ đồ khối quản lí bộ nhớ hướng Rx SPI 3 38

Hình 7.7 Sơ đồ khối khối giả lập thiết bị lớp PHY 37

Trang 12

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

Lời mở đầu

SDH/SONET ra đời cuối thập niên 1980 SDH/SONET trở thành một phương tiện hiệu quả và tiết kiệm cho các nhà cung cấp quản lý mạng Mạng có thể dễ dàng thích nghi với nhu cầu tăng băng thông của các ứng dụng và dịch vụ Khuynh hướng hiện này của thị trường viễn thông là tăng thị phần của kỹ thuật SDH/SONET Bởi vì chất lượng của SDH/SONET hơn hẳn các kỹ thuật khác như PDH, ngày càng nhiều nhà cung cấp dịch vụ chuyển sang kỹ thuật SDH/SONET

SPI 3 được phát triển cung cấp một giao diện truyền tả dữ liệu đơn giản,

đa năng và dễ dàng để truyền gói dữ liệu trên mạng SDH/SONET Giao diện SPI được sử dụng rất nhiều trong các ứng dụng và trở thành một thành phần không thể thiếu trong các ứng dụng viễn thông

Do đó tác giả chọn hướng nghiên cứu và thiết kế hệ thống test dữ liệu thực hiện việc bắt tay truyền dữ liệu trên hệ thống SDH/SONET sử dụng giao diện SPI 3 để thực hiện luận văn tốt nghiệp Các mục đích mà luận văn này hướng tới như sau:

Tìm hiểu về cách thức bắt tay truyền dữ liệu giữ thiết bị lớp LINK và thiết bị lớp PHY sử dung giao diện SPI 3

Thiết kế một hệ thống phát và nhận dữ liệu giao tiếp với thiết bị lớp PHY sử dụng giao diện SPI 3 có các tín năng sau

Trang 13

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

- Có thể lập trình giao diện có độ rộng bus truyền dữ liệu là bit, 16-bit hay 32-bit

8 Khi hoạt động tại tần số 104Mhz và bus dữ liệu 32-bit thì có thể cung cấp tốc độ truyền tải packet lên đến 3.328Gbps

- Truyền dữ liệu ở cấp độ packet level với cách thức bắt tay là hỏi vòng (polling)

- Tùy chọn phát odd/even parity ở hướng Tx và kiểm tra odd/even parity ở hướng nhận

- Thiết kế hổ trợ đến 128 port cho việc truyền tải gói dữ liệu

- Hệ thống hổ trợ định dạng các loại tải dữ liệu được phát : ATM,GFP,HDLC

- Đảm bảo tính ngẫu nhiên của luồng dữ liệu phát trên hệ thống SONET (sử dụng các đa thức sinh tạo chuỗi ngẫu nhiên PRBS)

Từ yêu cầu và mục đích như vậy, nội dung quyển luận văn này sẽ được trình bày theo bố cục như sau:

Luận Văn gồm 3 phần

Phần 1: Giới thiệu

Phần này giới thiệu một số nét khái quát cơ bản về đề tài bao gồm: giới thiệu về giao diện truyềndữ liệu SPI 3 và ứng dụng của nó trong việc truyền gói trên mạng SDH/SONET Phần này cũng giới thiệu về ngôn ngữ được sử dụng để thiết kế hệ thống và hệ điều hành được sử dụng để điều khiển hoạt động của hệ thống

Trang 14

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

Phần 2: Cơ sở lý thuyết (chuẩn SPI 3)

Trình bày tóm tắt một số lý thuyết cơ bản liên quan đến phương thức bắt tay truyền dữ liệu trên giao diện SPI 3

Chương 2: Định nghĩa liên quan đến chuẩn giao tiếp SPI 3

Đề cập đến các định nghĩa liên quan đến giao tiếp SPI nói chung, vai trò và vị trí của giao tiếp trong ứng dụng viễn thông

Chương 3: Cách thức truyền dữ liệu sử dụng giao tiếp SPI 3

Đề cập đến vấn đề đặt tên các tín hiệu của giao diện, độ rộng bus dữ liệu, tần số clock hoạt đông của giao tiếp, vấn đề đồng bộ trong việc truyền gói dữ liệu và tốc độ đường truyền ứng dụng cho giao tiếp này

Chương 4: Chức năng của các tín hiệu trên giao diện SPI 3

Chương này trình bày ý nghĩa và chức năng của từng tín hiệu được sử để thực hiện việc truyền gói dự liệu giữa thiết bị lớp LINK và thiết bi lớp PHY

Phần 3 : Phần thiết kế hệ thống

Phần này gồm 4 chương: giới thiệu về cấu trúc thiết kế, cách thức hoạt động của hệ thống và kết quả thu được sau thời gian thực hiện luận văn

Chương 5: Các tính năng của thiết bị

Các tín năng mà hệ thống sẽ hổ trợ

Chương 6: Sơ đồ khối tổng quát của hệ thống

Giới thiệu sơ đồ khối thiết kế của hệ thống, chức năng và nhiệm vụ của các khối chính trong hệ thống

Chương 7: Chức năng của các khối trong hệ thống

Trình bày chức năng chi tiết của từng khối trong hệ thống

Trang 15

THIẾT KẾ THIẾT BỊ TEST GIAO DIỆN SPI 3 THD:PGS-TS.LÊ TIẾN THƯỜNG

Chương 8: Kết quả thực hiện, kết luận và hướng phát triển

Trình bày kết quả thu được, những mặt hạn chế khi thực hiện đề tài và giới thiệu một số hướng phát triển tiếp theo

Do thời gian và trình độ có hạn nên kết quả thu được chỉ dừng lại ở giai đoạn cơ bản Tác giả mong rằng sẽ nhận được nhiều ý kiến đóng góp và xây dựng để có thể tiếp tục phát triển và hoàn thiện đề tài trong thời gian sắp tới Tôi xin chân thành cảm ơn!

Tp.Hồ Chí Minh tháng 12/2004

Tác giả

Trang 16

1

GIỚI THIỆU

1.1 Giới thiệu về chuẩn SPI 3

Chuẩn SPI 3 đưa ra một giao thức để kết nối các thiết bị lớp Vật lí (Physical Layer: PHY) đến các thiết bị lớp Liên kết (Link Layer) thực hiện việc truyền gói dữ liệu trên SONET SPI 3 (POS-PHY 3) đáp ứng nhu cầu đối với các nhà thiết kế hệ thống nhằm thiết kế một giao diện lớp vật lí truyền gói dữ liệu trên SONET chuẩn Mặc dù mục tiêu thiết kế là để thực hiện việc truyền gói dữ liệu trên SONET, chuẩn giao tiếp này cũng được sử dụng cho các ứng dụng khác Nó cung cấp một giao diện bus linh động dùng để trao đổi các gói dữ liệu bên trong một hệ thống truyền thông SPI 3 đã được phát triển với sự hợp tác với nhóm phát triển SATURN bao gồm tất cả các ứng dụng có tốc độ truyền lên đến 2.4Gbit/s SPI 3 định nghĩa các yêu cầu để các ứng dụng PHY đơn (một thiết bị lớp PHY kết nối đến một thiết bị lớp LINK) và các ứng dụng multi-PHY (nhiều thiết bị lớp PHY kết nối đến một thiết bị lớp LINK) có thể cùng hoạt động SPI 3 nhấn mạnh tính đơn giản của hoạt động truyền dữ liệu cho phép hướng đến các thiết bị lớp LINK và lớp PHY phức tạp hơn

Tài liệu chuẩn này định nghĩa:

- Cấu trúc vật lí của POS-PHY bus

- Giao thức báo hiệu để truyền dữ liệu

- Cấu trúc dữ liệu thường dùng để lưu trữ dữ liệu vào trong các FIFO

Các thông tin trong chuẩn này được đưa ra như là một chuẩn tham khảo đối với các nhà phát triển khác nhau của các mạch tích hợp hay các thiết bị cấp hệ thống

Trang 17

Transmit Link Layer Device

Receive Link Layer Device

Data

Transmit Interface

Status Data Status

Receive Interface

System Packet Interface (SPI)

System Packet Interface (SPI-3)

PHY Device

S y s t e m t o O p t i c s

Hình 1-1 Mô hình giao tiếp SPI kết nối giữa thiết bị lớp LINK và thiết bị lớp PHY

Trang 18

RERR REOP RSOP RVAL

A B

RXDCK RXDSC

RXS A

S y s t e m t o O p t i c s

O p t i c s t o S y s t e m

RFCLK RENB RDAT[31:0]

TX

RX

Hình 1-2 Mô hình giao tiếp SPI truyền gói dữ liệu trên SONET

1.2 Giới thiệu về Verilog HDL

1.2.1 Khái quát Verilog HDL

Verilog HDL là một trong hai ngôn ngữ mô tả phần cứng thông dụng nhất hiện

nay được sử dụng thiết kế phần cứng Ngôn ngữ còn lại là VHDL

Verilog HDL mô phỏng các mạch điện tử và hệ thống Được ứng dụng để thiết

kế mạch điện tử, Verilog tham gia kiểm tra trong quá trình chạy mô phỏng, phân tích

việc định thời, phân tích kiểm tra và tổng hợp

Verilog HDL là chuẩn của IEEE – số 1364 Các văn bản chuẩn được biết là

“Tham khảo ngôn ngữ”, hoặc LRM Nó là văn bản chính xác và đầy đủ của ngôn ngữ

Verilog HDL

Chuẩn IEEE 1364 đồng thời định nghĩa về giao diện ngôn ngữ lập trình, hoặc PLI

Đây là một tập hợp các thủ tục phần mềm cho phép liên hệ hai chiều giữa Verilog và

các ngôn ngữ khác (thường là C)

Trang 19

Ngôn ngữ Verilog HDL có khả năng mô tả bản chất xử lý, luồng dữ liệu hoặc các

thành phần cấu trúc của một thiết kế, thời gian trễ và cơ chế tổng hợp dạng sóng cho

phép giám sát các đáp ứng và kiểm tra lỗi, tất cả những thao tác trên được thực hiện

với cùng một ngôn ngữ Hơn nữa, Verilog HDL cung cấp một giao diện ngôn ngữ lập

trình mà qua đó, nội dung của một thiết kế có thể được truy xuất trong khi chạy mô

phỏng bao gồm cả việc giám sát tiến trình mô phỏng

Verilog HDL không chỉ định nghĩa cú pháp mà còn định nghĩa rõ ràng ý nghĩa

mô phỏng cho mỗi cấu trúc ngôn ngữ Do đó, những mô hình được viết bằng ngôn ngữ

này có thể được kiểm tra trong phần mô phỏng của Verilog HDL Verilog HDL thừa

kế rất nhiều các cấu trúc, các câu lệnh của ngôn ngữ lập trình C Verilog HDL cung

cấp rất nhiều khả năng mô phỏng, một số rất phức tạp, tuy nhiên phần cốt lõi cơ bản

của ngôn ngữ khá đơn giản và nó cũng đủ để mô phỏng hầu hết các ứng dụng

1.2.2 Lịch sử phát triển ngôn ngữ Verilog

Ngôn ngữ Verilog HDL được Gateway Design Automation phát triển lần đầu tiên

vào năm 1983 như là một ngôn ngữ dùng để mô tả phần cứng cho các sản phẩm mô

phỏng của họ Lúc bấy giờ, Verilog HDL là một ngôn ngữ thuộc chủ quyền riêng,

nhưng nhờ vào sự phổ biến của các sản phẩm mô phỏng mà Verilog HDL đã được

chấp nhận như một ngôn ngữ thực tiễn và khả dụng đối với nhiều nhà thiết kế Sau

những cố gắng để tăng cường sự phổ biến của ngôn ngữ, Verilog HDL đã được sử

dụng rộng rãi từ năm 1990 Tổ chức Open Verilog HDL International (OVI) được

thành lập để phát triển Verilog HDL Vào năm 1992, OVI quyết định chuẩn hóa

Verilog HDL như một chuẩn của IEEE Những nỗ lực này cuối cùng cũng thành công

và Verilog Hardware Description Language trở thành một tiêu chuẩn của IEEE vào

năm 1995

1.3 Giới thiệu về hệ điều hành LINUX thời gian thực

• Nhiệm vụ của hệ điều hành

Phần này trình bày những nhiệm vụ cơ bản của hệ điều hành, bao gồm: quản lý

task (nhiệm vụ) và phân chia thời gian (scheduling), dịch vụ ngắt, liên lạc giữa các

tiến trình và đồng bộ, quản lý bộ nhớ

− Quản lý task

Quản lý task là một nhiệm vụ hàng đầu của hệ điều hành: task phải được tạo ra

và xóa đi khi hệ điều hành đang hoạt động; task có thể thay đổi mức ưu tiên của nó,

thay đổi ràng buộc thời gian, bộ nhớ cần thiết; … Quản lý task đối với một hệ điều

hành thời gian thực còn khó khăn hơn hệ điều hành thông thường: nếu một task được

tạo ra, nó phải được cấp bộ nhớ nó cần mà không bị trễ, bộ nhớ này phải được khóa

Trang 20

cứng trên bộ nhớ chính để tránh bị trễ do dịch vụ swapping; thay đổi mức độ ưu tiên

trong thời gian chạy ảnh hưởng đến đáp ứng thời gian chạy của toàn hệ thống và từ đó

có thể đoán trước được điều đó ảnh hưởng quan trọng đến hệ điều hành thời gian thực

như thế nào Vì vậy, quản lý tiến trình động là một vấn đề nhức đầu đối với hệ điều

hành thời gian thực

Trong thực tế, nhiều task hoạt động ở cùng một thời điểm, và hệ điều hành phải

có nhiệm vụ chia sẽ tài nguyên hiện có cho các task CPU là một trong những tài

nguyên quan trọng và việc quyết định chia sẽ CPU như thế nào cho các task được gọi

là sắp xếp thời gian (scheduling)

Hệ điều hành thời gian thực và hệ điều hành thông thường sử dụng các giải thuật

sắp xếp thời gian khác nhau Chúng đều sử dụng theo cùng một nguyên lý, như cách

ứng dụng khác nhau để thỏa mãn các tiêu chuẩn thực thi khác nhau Một hệ điều hành

thông thường hướng tới mức đạt được trung bình cao nhất, còn hệ điều hành thời gian

thực hướng tới tính đáp ứng tiền định

− Dịch vụ ngắt

Hệ điều hành phải có khả năng phục vụ các phần cứng ngoại vi, như: bộ định

thời, motor, cảm biến, thiết bị liên lạc, ổ đĩa,… Tất cả chúng có thể yêu cầu sự chú ý

của hệ điều hành theo các không đồng bộ vào thời điểm chúng cần hệ điều hành sử

dụng, hệ điều hành phải đảm bảo nó luôn sẵn sàng phục vụ các yêu cầu đó Các loại

yêu cầu đòi hỏi sự chú ý được gọi là ngắt Ngắt được chia làm hai loại: ngắt cứng và

ngắt mềm

Với ngắt cứng, thiết bị ngoại vi có thể đặt một bit trên kênh phần cứng cụ thể để

kích thích bộ xử lý để báo hiệu thiết bị cần dịch vụ Kết quả là bộ xử lý lưu lại trạng

thái hiện tại của nó, và nhảy vào địa chỉ của nó trong bộ nhớ đã được kết nối với phần

cứng này lúc khởi động

Với ngắt mềm, nhiều bộ xử lý có sẵn các chỉ thị phần mềm khi sản xuất, các chỉ

thị giúp sinh ra các ngắt cứng từ phần mềm Kết quả là bộ xử lý nhảy vào một địa chỉ

đã được định trước

− Liên lạc và đồng bộ

Liên lạc giữa các tiến trình (Inter-Process Communication) là một tập các chức

năng có từ thời ban sơ Nhờ vào chúng, hệ điều hành có thể đáp ứng được yêu cầu

trao đổi thông tin giữa các task và đồng bộ các hoạt động của task Còn hệ điều hành

thời gian thực thì phải liên lạc và đồng bộ theo các tiền định

− Quản lý bộ nhớ

Các task khác nhau trong hệ thống đều yêu cầu một phần của bộ nhớ hiện có,

thường được đặt ở một địa chỉ phần cứng cụ thể Nhiệm vụ của hệ điều hành là cấp

cho mỗi task dung lượng bộ nhớ nó cần, ánh xạ bộ nhớ thực vào bộ nhớ đã dùng trong

Trang 21

các task khác, thực hiện các hoạt động thích hợp khi task sử dụng bộ nhớ mà nó không

được cấp

• Hệ điều hành Linux thời gian thực

Bộ sắp xếp thời gian của hệ điều hành Linux thời gian thực xử lý nhân (kernel) hệ

thống như các tiến trình rỗi Linux chỉ thực thi khi không có task thời gian thực nào để

chạy và nhân thời gian thực đang nằm chờ Task không thể ngăn các ngắt hoặc cản

chúng đạt mức ưu tiên cao hơn Dù đang ở bất kỳ trạng thái nào, thời gian đáp ứng

cho các ngắt không thể bị chậm trễ Khi một ngắt xảy ra, nhân thời gian thực can

thiệp ngắt và xác định sẽ gởi đi các gì

Linux thời gian thực tách cơ chế nhân thời gian thực ra khỏi cơ chế nhân Linux

thông thường để có thể tối ưu một cách độc lập và giữ cho nhân thời gian thực thật

nhỏ gọn và đơn giản

Linux thời gian thực được thiết kế để các nhân thời gian được không bao giờ bị chờ

để giải phóng bất kỳ tài nguyên nào Nhân thời gian thực không trực tiếp yêu cầu bộ

nhớ, chia sẽ clock hoặc đồng bộ cấu trúc dữ liệu, ngoại trừ một số tình huống cần điều

khiển chặc chẽ

Có hai biến thể của Linux thời gian thực cứng: RTLinux và RTAI RTLinux được

phát triển ở Viện kỹ thuật New Mexico bởi Micheal Barabanov dưới sự chỉ đạo của

giáo sư Victor Yodaiken Real-Time Application Interface (RTAI) được phát triển ở

Dipartimento di Ingeneria Aerospaziale, Politecnico di Milano bởi giáo sư Paolo

Mantegazza

Trong hệ điều hành RTLinux và RTAI, tất cả các ngắt được khởi tạo bởi nhân thời

gian thực và được chuyển cho Linux chỉ khi không có task nào đang thực thi

Trong RTLinux và RTAI, nhân thời gian thực, tất cả các thành phần của nó và ứng

dụng thời gian thực đều chạy trong không gian địa chỉ nhân Linux như là các module

nhân Khi một module nhân được nạp vào hệ điều hành, nó tự khởi tạo để sẵn sàng

phục vụ Module nhân có thể được nạp và giải phóng một cách linh động

Thuận lợi có được khi chạy hệ thống thời gian thực trong không gian địa chỉ nhân

là thời gian chuyển đổi giữa các task được tối thiểu đi Một bất lợi lớn nhất là khi có

lỗi trong task thời gian thực sẽ làm toàn bộ hệ thống bị hỏng, bởi vì không có sự tách

biệt trong không gian bộ nhớ được bảo vệ cho các task riêng lẽ

Trang 22

2

ĐỊNH NGHĨA LIÊN QUAN ĐẾN CHUẨN

GIAO TIẾP SPI 3

Giao tiếp SPI 3 định nghĩa giao tiếp các thiết bị lớp vật lí SONET/PDH và các thiết bị lớp LINK, giao tiếp này có thể được sử dụng để thực hiện các giao thức dựa trên gói như HDLC và PPP

PHY

PMD Device Layer Link Facility Interface PHY-Link Interface

Facility : Cáp quang, cáp xoắn, cáp đồng trục

Link Layer : Lớp chức năng chuyển mạch

PHY : Lớp vật lí

PMD : Lớp phụ thuộc môi trường vật lí

SPI 3 định rõ giao diện PHY-LINK Facility Interface (SONET OC-3) được định nghĩa bởi một số tổ chức định chuẩn quốc gia và quốc tế trong đó có BELLCORE và ITU

Trang 23

Chức năng chính của thiết bi này là : Thiết bị được sử dụng để kiểm tra các tính năng của các thiết bị mạng truyền dữ liệu giữa lớp vật lí (Physical Layer Device) và thiết bị lớp Link (Link Layer Device) sử dụng giao thức SPI 3 thông qua giao diện vật

lí SPI 3 Thiết bị giao tiếp với thiết bị ứng dụng lớp vật lí thông qua giao tiếp SPI 3 của thiết bị đó

Thiết bị hổ trợ giao diện: SPI level 3 (SPI3) với độ rộng bus dữ liệu 8-bit, 16-bit và 32-bit, 128 physical port Độ dài segment dữ liệu có thể lập trình được: 64/128 bytes

Đối với các gói dữ liệu chiều dài thay đổi, Thiết bị test cung cấp giao tiếp SPI3 được định nghĩa bởi The Optical Internetworking Forum OIF Giao tiếp SPI3 được phát triển cho các ứng dụng truyền tải gói dữ liệu giữa thiết bị lớp vật lí và thiết bị lớp Link SPI3 dùng cho tất cả các ứng dụng có bit rates lên đến 6.4Gbps với 200Mhz system clock

Thiết bị kiểm tra này cung cấp các mode hoạt động truyền dữ liệu nhiều port, như được định nghĩa trong tài liệu tham khảo (SPI3 modes) Trong SPI3 mode, các port được truy xuất bằng địa chỉ in-band (7 bit đại chỉ)

Trang 24

3

CÁCH THỨC TRUYỀN DỮ LIỆU SỬ DỤNG

GIAO DIỆN SPI 3

3.1 Cách đặt tên tín hiệu

Giao diện truyền luồng dữ liệu từ thiết các thiết bị lớp LINK đến thiết bị lớp vật lí PHY được đặt tên là giao diện phát (Transmit Interface) Giao diện luồng dữ liệu được truyền từ thiết bị lớp vật lí đến thiết bị lớp LINK được xem là giao diện nhận (Receive Interface)

3.2 Độ rộng Bus dữ liệu

Các thiết bị có thể tương thích với chuẩn SPI 3 (POS-PHY) hổ trợ cấu trúc bus dữ liệu 32-bit hoặc 8 bit hoắc có hổ trợ cả hai Giao diện bus là Point-to-Point (một ngõ

ra chỉ điều khiển một tải ngõ vào) chính vì vậy bus dữ liệu 32-bit sẽ chỉ hỗ trợ cho một thiết bị Để hỗ trợ cho nhiều thiết bị có tốc độ bit thấp hơn với các kết nối Point-to-Point, cấu trúc bus dữ liệu 8-bit được sử dụng Vì vậy mỗi thiết bị lớp vật lí sẽ sử dụng giao diện 8-bit để giảm tổng số lượng pin được yêu cầu

Để hỗ trợ cho việc truyền các gói dữ liệu có chiều dài thay đổi, các tín hiệu RMOD[1:0] được được định nghĩa để định rõ số lượng byte hợp lệ trong cấu trúc bus dữ liệu 32-bit Mỗi double-word phải chứa 4 byte hợp lệ của dữ liệu gói cho đến khi double-word cuối cùng của việc truyền gói dữ liệu được đánh dấu bởi các tín hiệu REOP hoặc TEOP Double-word cuốic cùng của việc truyền dữ liệu này chứa từ 1 đến 4 byte hợp lệ được xác định bởi giá trị của RMOD[1:0] hoặc TMOD[1:0]

3.3 Tần số của Clock truyền

Các thiết bị có thể tương thích với POS-PHY có thể cung cấp tần số clock truyền dữ liệu lên đến 104Mhz Một số thiết bị có thể hổ trợ hoạt động ở nhiều tần số khác nhau Nói chung, các thiết bị được thiết kế cho các ứng dụng một hay nhiều thiết bị lớp PHY, ở đó tốc độ ở lớp PHY tổng cộng đạt gần 622 Mbit/s sẽ sử dụng giao diện với cấu trúc bus dữ liệu 8-bit dữ liệu với giá trị clock của FIFO 104Mhz Các thiết bị

Trang 25

được thiết kế cho các ứng có tốc độ ở lớp PHY tổng cộng đạt gần 2.4 Gbit/s sẽ sử dụng giao diện với cấu trúc bus dữ liệu 32-bit dữ liệu với giá trị clock của FIFO 104Mhz

3.4 Vấn đề đồng bộ trong giao tiếp truyền gói

Giao diện truyền gói dữ liệu hổ trợ việc truyền gói dữ liệu ở hướng phát và hướng nhận tại giá trị tốc độ clock độc lập với tốc độ bit của đường truyền (line bit rate) Với yêu cầu như vậy, các thiết bị lớp vật lí phải cung cấp việc tách riêng tốc độ gói bằng cách sử dụng các FIFO

Để đơn giản hóa việc giao tiếp giữa các thiết bị lớp LINK và các thiết bị lớp vật lí và để hổ trợ các giao diện nhiều thiết bị lớp PHY người ta sử dụng các FIFO Các tín hiệu điều khiển đều được cung cấp đến thiết bị lớp LINK và PHY cho phép cả hai thực hiện việc điều khiển luồng dữ liệu Bởi vì giao tiếp bus truyền là Point to Point, giao tiếp hướng nhận của thiết bị lớp vật lí truyền dữ liệu đến thiết bị lớp LINK Đối với giao diện hướng phát, giá trị ngưỡng báo trạng thái sẵn sàng nhận dữ liệu của FIFO được thực hiện ở mức byte dữ liệu

Ở hướng nhận, khi thiết bị lớp vật lí đã nhận được những byte cuối của gói dữ liệu truyền (một gói nhỏ đã truyền xong hay những byte cuối của một gói dữ liệu lớn) hay là đã nhận được số lượng byte được định nghĩa trước trong FIFO hướng nhận của nó, nó gởi địa chỉ in-band theo sau là dữ liệu của FIFO đến thiết bị lớp LINK Dữ liệu trên bus của giao diện được đánh dấu với tính hiệu RVAL được tích cực Với thiết bị lớp PHY nhiều port với nhiều FIFO, Việc phát dữ liệu trên mỗi port được thực hiện theo cơ chế round-robin khi đã có dữ liệu đầy đủ trong FIFO của nó Thiết bị lớp LINK có thể dừng quá trình truyền luồng dữ liệu bằng cách không tích cực tín hiệu RENB

Ở hướng phát khi thiết bị lớp vật lí có đủ bộ nhớ để chứa số lượng byte đã được định nghĩa trước trong FIFO hướng phát của nó, nó sẽ thông báo cho thiết bị lớp LINK biết bằng cách tích cực tín hiệu sẵn sàng nhận gói dữ liệu (TPA) Thiết bị lớp LINK sau đó có thể ghi địa chỉ in-band theo sau là dữ liệu gói đến thiết bị lớp PHY sử dụng tín hiệu báo dữ liệu hợp lệ (TENB) Thiết bị lớp LINK sẽ giám sát việc chuyển đổi trạng thái tín hiệu TPA từ cao xuống thấp để biết được FIFO trong thiết bị lớp PHY là gần đầy (số lượng byte được ghi vào trong FIFO có thể do người sử dụng lựa chọn nhưng phải được định nghĩa trước) và thiết bị lớp LINK sẽ trì hoãn việc truyền dữ liệu để tránh việc tràn FIFO

SPI 3 định nghĩa việc điều khiển truyền dữ liệu ở cả hai mức: byte và packet level trong hướng phát Khi truyền dữ liệu ở cấp độ byte, thông tin về trạng thái của FIFO được cập nhật trên mỗi chu kì clock truyền Khi truyền dữ liệu ỡ cấp độ gói, thông tin

Trang 26

về trạng thái của FIFO áp dụng cho các segment dữ liệu Khi sử dụng truyền dữ liệu ở mức byte, phải sử dụng cách chỉ định thông tin trạng thái trực tiếp Trong trường hợp này, thiết bị lớp PHY cung cấp thông tin trạng thái sẵn sàng nhận gói dữ liệu hướng phát của port được chọn (STPA) Tương tự như vậy, thiết bị lớp vật lí có thể cung cấp truy xuất trực tiếp đối với tín hiệu cho biệt trạng thái sẵn sàng nhận gói dữ liệu ở hướng phát của tất cả các port trong thiết bị lớp vật lí nếu số lượng port ít Khi truyền dữ liệu ở cấp độ gói, thiết bị lớp LINK có thể thực hiện việc kiểm tra trạng thái các FIFO của thiết bi lớp PHY Thiết bị lớp LINK có thể sử dụng tín hiệu địa chỉ port truyền TADR[] để kiểm tra trạng thái của từng port của thiết bị lớp PHY Thông tin về trạng thái FIFO của tất cả các port được đáp ứng sử dụng một tín hiệu PTPA duy nhất

Do bản chất kích thước thay đổi của các gói dữ liệu không cho phép bất kì sự đảm bảo nào liên quan đến số lượng byte sẳn sàng nhận, ở cả hai hướng phát và thu, thông tin trạng thái sẵn sàng nhận gói dữ liệu hướng phát của port được chọn được gởi tới thiết bị lớp LINK sử dụng tín hiệu STPA và thông tin báo dữ liệu truyền hợp lệ được gởi từ thiết bị lớp PHY đến lớp LINK sử dụng tín hiệu RVAL STPA và RVAL luôn luôn phản ánh trạng thái của port được chọn RVAL cho biết dữ liệu hợp lệ đang được truyền trên bus dữ liệu RDAT và khi được định nghĩa như vậy việc truyền dữ liệu có thể được sắp sếp đồng bộ tương ứng với các giới hạn của gói dữ liệu

Việc lựa chọn port thiết bị lớp PHY được thực hiện bằng cách định địa chỉ band Ở hướng phát, thiết bị lớp LINK chọn port của thiết bị lớp PHY bằng cách gởi địa chỉ trên TDAT được nhận biết bởi tín hiệu TSX tích cực và TENB không tích cực Tất cả dữ liệu truyền tiếp theo trên TDAT với tín hiệu TSX không tích cực và TENB tích cực sẽ là dữ liệu gói của port được chỉ định trước đó Ở hướng nhận, thiết bị lớp PHY sẽ chỉ định địa chỉ port sẽ truyền bằng cách gởi địa chỉ trên bus RDAT kèm theo tín hiệu RSX tích cực và RVAL không tích cực Tất cả dữ liệu truyền tiếp theo trên RDAT với tín hiệu RSX không tích cực và RVAL tích cực sẽ là dữ liệu gói của port được chỉ định trước đó

in-Cả hai chế dộ truyền dữ liệu ở cấp độ byte và gói được chỉ định trong chuẩn này dùng để hổ trợ cho các thiết bị lớp PHY nhiều port mật độ thấp và các thiết bị lớp PHY mật độ cao hơn trong tương lai Khi số port trong thiết bị lớp PHY giới hạn, chế độ truyền dữ liệu mức byte sử dụng các tín hiệu DTPA sẽ cho phép cách thức bắt tay truyền dữ liệu đơn giản hơn và khi đó có thể bỏ các chân tín hiệu định địa chỉ Trong trường hợp này, việc truy xuất trực tiếp trạng thái của các FIFO thiết bị lớp PHY sẽ trở nên không hợp lí khi số lượng port tăng lên Chế độ truyền dữ liệu ở mức gói (packet-level) đưa ra giải pháp với số lượng pin tín hiệu ít hơn sử dụng TADR[] khi số lượng port lớn Việc định địa chỉ in-band đảm bảo giao thức truyền vẫn không thay đổi

Trang 27

giữa hai phía Tuy nhiên, lựa chọn cuối cùng phụ thuộc vào những nhà thiết kế hệ thống và những nhà chế tạo thiết bị lớp vật lí để chọn giải pháp nào thích hợp nhất cho các ứng dụng mong muốn của họ

3.5 Tốc độ đường truyền cho các ứng dụng

Kết hợp nhiều giá trị tần số clock và độ rộng bus dữ liệu cho phép giao thức truyền SPI 3 cung cấp rất nhiều giá trị tốc độ truyền khác nhau Bảng dưới đây đưa ra một số

ví dụ về tốc độ đường truyền được hổ trợ bởi các giao diện SPI 3 và số lượng kênh tối

đa được các giao diện truyền hổ trợ

Standard

Reference

Bit Rate (Mbit/s)

Số port của thiết bị lớp PHY (800Mbit/s bus)

Số port của thiết bị lớp PHY (3.2Gbit/s bus) SONET STS-1 51.84 12 48

Trang 28

4

CHỨC NĂNG CỦA CÁC TÍN HIỆU TRÊN

GIAO DIỆN SPI 3

4.1 Hướng Phát (Transmit side)

4.1.1 Các tín hiệu hướng phát

Tên tín hiệu Hướng

truyền

Chức năng

truyền đến lớp LINK và PHY hướng phát

Clock ghi FIFO hướng phát (Transmit FIFO Write Clock)

TFCLK được sử dụng để đồng bộ việc truyền dữ liệu hướng phát giữa thiết bị lớp LINK và thiết bị lớp PHY TFCLK có thể hoạt động ở tần số lên đến 104 MHz

đến lớp PHY Tín hiệu chỉ định lỗi ở hướng phát TX (Transmit Error Indicator)

TERR được sử dụng để chỉ định rằng có một lỗi trong gói hiện đang truyền TERR chỉ nên được tích cực khi TEOP tích cực Tính hiệu này được xem là hợp lệ chỉ khi TENB đồng thời tích cực

đến lớp PHY Tín hiệu cho phép ghi hướng phát (Transmit Write Enable)

TENB được sử dụng để điều khiển luồng dữ liệu đến FIFO phát Khi TENB ở mức cao, các tín hiệuTDAT, TMOD, TSOP, TEOP và TERR là không hợp lệ và bị

Trang 29

bỏ qua bởi thiết bị lớp PHY Tín hiệu TSX hợp lệ và được xử lí bởi thiết bị lớp PHY khi TENB ở mức cao Khi TENB ở mức thấp, tín hiệu TDAT, TMOD, TSOP, TEOP và TERR là hợp lệ và được thiết bị lớp PHY xử lí Trong khi do tín hiệu TSX không được thiết bị lớp PHY xử lí khi TENB ở mức thấp

TDAT[31:0] LINK to PHY Transmit Packet Data Bus (TDAT[]) bus

Bus này truyền các octets của gói dữ liệu được ghi vào FIFO hướng phát và truyền địa chỉ in-band port để chỉ định FIFO hướng phát sẽ truyền dữ liệu đến TDAT bus chỉ được coi là hợp lệ khi TENB đồng thời tích cực

Khi sử dụng giao diện 32-bit, Dữ liệu phải được

truyền theo thứ tự big endian order trên

TDAT[31:0] bus Bit 31 được truyền đầu tiên và bit 0 được truyền cuối cùng

Khi sử dụng giao diện 16-bit, Lớp PHY chỉ hổ trợ TDAT[15:0]

Khi sử dụng giao diện 8-bit, Lớp PHY chỉ hổ trợ TDAT[7:0]

TPRTY Từ lớp LINK

đến lớp PHY Transmit bus parity (TPRTY) Tín hiệu TPRTY chỉ định parity được tính toán trên

TDAT bus Khi giao diện 16-bit được sử dụng, lớp PHY chỉ tính TPRTY trên TDAT[15:0] và TDAT[7:0] cho giao diện 8-bit TPRTY chỉ được xem là hợp lệ khi TENB hay TSX tích cực

Khi TPRTY được sử dụng, Thiết bị lớp PHY phải hổ trợ parity lẻ Thiết bị lớp PHY phải giở tín hiệu báo lỗi parity đến những lớp cao hơn nhưng sẽ không gián đoạn dữ liệu được truyền

TMOD[1:0] Từ lớp LINK

đến lớp PHY Transmit Word Modulo (TMOD[1:0]) TMOD[1:0] chỉ định số byte dữ liệu hợp lệ trong bus

dữ liệu TDAT[31:0] TMOD bus luôn luôn bằng 0 và

Trang 30

chỉ khác 0 ở double-word cuối cùng của một gói dữ liệu được truyền trên bus TDAT[31:0] Khi TEOP tích cực, số byte dữ liệu hợp lệ trên bus TDAT[31:0] được xác định bởi giá trị của TMOD[1:0] như sau TMOD[1:0] = “00” TDAT[31:0] hợp lệ TMOD[1:0] = “01” TDAT[31:8] hợp lệ TMOD[1:0] = “10” TDAT[31:16] hợp lệ TMOD[1:0] = “11” TDAT[31:24] hợp lệ Khi sử dụng giao diện 16-bit, chỉ sử dụng TMOD[0] TMOD[0] = “0” TDAT[15:0] hợp lệ TMOD[0] = “1” TDAT[15:8] hợp lệ TMOD[1:0] không được sử dụng cho giao diện với 8-bit bus dữ liệu

TMOD chỉ được xem là hợp lệ khi TENB cũng được tích cực

TSX Từ lớp LINK

đến lớp PHY Transmit Start of Transfer (TSX) TSX chỉ định địa chỉ in-band port được truyền trên

TDAT bus Khi TSX ở mức cao và TENB ở mức cao, giá trị của bus TDAT[7:0] là địa chỉ của FIFO hướng truyền Dữ liệu tiếp theo trên bus TDAT sẽ được ghi vào FIFO có địa chỉ được xác định bởi địa chỉ in-band này

Với thiết bị lớp PHY đơn port, TSX là tùy chọn vì thiết bị lớp PHY sẽ không sử dụng địa chỉ in-band khi TENB ở mức cao

TSX được xem là hợp lệ chỉ khi TENB không được tích cực (TENB = 1)

đến lớp PHY Transmit Start of Packet (TSOP) TSOP được dùng để xác định vị trí bắt đầu của gói

dữ liệu truyền trên bus TDAT Khi TSOP ở mức cao, Những byte dữ liệu truyền trên TDAT là những byte đầu tiên của một gói dữ liệu

Trang 31

TSOP tích cực tại ví trí bắt đầu của mỗi gói dữ liệu và chỉ được xem là hợp lệ khi TENB tích cực

đến lớp PHY Transmit End of Packet (TEOP) TEOP được dùng để chỉ định vị trí kết thúc của một

gói dữ liệu truyền trên bus TDAT TEOP tích cực ở mức cao

Khi sử dụng giao diện 32-bit hay 16-bit, TMOD[1:0] xác định số byte dữ liệu hợp lệ trên bus TDAT khi TEOP tích cực Khi sử dụng giao diện 8-bit, Byte cuối cùng của gói dữ liệu truyền trên TDAT[7:0] khi TEOP tích cực

TEOP tích cực tại vị trí của mỗi gói dữ liệu và chỉ được xem là hợp lệ khi TENB tích cực

TADR[6:0] Từ lớp LINK

đến lớp PHY ( Packet-Level Mode)

Transmit PHY Address (TADR[]) bus

TADR bus được sử dụng cùng với tín hiệu PTPA kiểm tra trạng thái sẵn sàng nhận dữ liệu của các FIFO hướng phát

Khi TADR được lớp PHY lấy mẫu tại cạnh lên của TFCLK, tín hiệu PTPA chỉ định trạng thái nhận dữ liệu của port được chỉ định bởi bus địa chỉ TADR được cập nhật trên cạnh lên kế tiếp của TFCLK

DTPA[3:0] Từ lớp PHY

đến lớp LINK (Byte-Level Mode)

Direct Transmit Packet Available (DTPA[])

DTPA bus xác định trạng thái trực tiếp với các port tương ứng trong thiết bị lớp PHY

DTPA tích cực cao khi trong FIFO hướng phát của nó đạt được số byte tối thiểu được định nghĩa trước ( thường có thể lập trình bởi người dùng) Khi ở mức cao, tín hiệu DTPA chỉ định rằng FIFO hướng phát tương ứng của nó không đầy Khi DTPA chuyển sang mức thất, nó chỉ định rằng FIFO hướng phát của nó gần đầy hoặc đã đầy (thông thường có thể lập trình bởi người sử dụng)

DTPA được sử dụng chế độ truyền mức byte

Trang 32

(byte-level) DTPA được cập nhật trên cạnh lên của TFCLK

đến lớp LINK (Byte-Level Mode)

Selected-PHY Transmit Packet Available (STPA) STPA chuyển sang mức cao khi trong FIFO hướng phát được xác định bởi địa chỉ in-band trên TDAT đã nhận được số byte dữ liệu tối thiểu được định nghĩa trước (thông thường người sử dụng có thể lập trình) Khi ở mức cao, STPA chỉ định FIFO hướng phát không đầy Khi STPA chuyển sang mức thấp, nó chỉ định rằng FIFO hướng phát đã đầy hoặc gần đầy (thường người sử dụng có thể lập trình được)

STPA luôn luôn xác định trạng thái của port được chọn của thiết bị lớp PHY để tránh tình trạng tràn FIFO trong khi trong khi thực hiện việc kiểm tra trạng thái port ( qua trình polling) Trạng thái port mà tín hiệu PTPA chỉ định được cập nhật tại cạnh lên kế tiếp của TFCLK sau khi địa chỉ port lớp PHY trên TDAT được lấy mẫu bởi thiết bị lớp PHY

STPA được sử dụng khi giao diện hoạt động ở chế độ truyền cấp độ byte (byte-level) STPA được cập nhật trên cạnh lên của TFCLK

đến lớp LINK (Packet-Level Mode)

Polled-PHY Transmit Packet Available (PTPA)

PTPA tích cực cao khi trong FIFO Tx được kiểm tra trạng thái đã nhận được số byte dữ liệu tối thiểu được định nghĩa trước (thông thường người sử dụng có thể lập trình) Khi tích cực cao, PTPA chỉ định rằng FIFO hướng Tx không đầy

Khi PTPA chuyển sang mức thất, nó chỉ định cả hai trường hợp là FIFO hướng Tx đầy hoặc gần đầy (thông thường người sử dụng có thể lập trình được) PTPA cho phép kiểm tra trạng thái của các port có địa chỉ được xác định bởi TADR của thiết bị lớp PHY Trạng thái của port mà PTPA chỉ định được cập nhật ở cạnh lên kết tiếp của TFCLK sau khi địa chỉ

Trang 33

port của thiết bị lớp PHY được lấy mẫu

PTPA được sử dụng trong chế độ truyền cấp độ gói (packet-level) PTPA được cập nhật trên cạnh lên của TFCLK

4.1.2 Phương thức chỉ định trạng thái trực tiếp

Mode hoạt động này chỉ hổ trợ việc truyền dữ liệu ở mức byte Trong chế độ hoạt động này, thiết bị lớp PHY sử dụng tín hiệu DTPA[] để thông báo trạng thái của các FIFO hướng Tx đến các thiết bị lớp LINK Các tín hiệu khác sử dụng trong mode hoạt động này tương tự như các mode khác được trình bày ở dưới đây

4.1.2.1 Hoạt động truyền dữ liệu đơn port

Trong trường hợp này, địa chỉ in_band không được sử dụng bởi vì trạng thái của port vật lí được xác định trực tiếp bởi tín hiệu DTPA Thiết bị lớp LINK luôn luôn giám sát trạng thái của tín hiệu DTPA để biết được trạng thái của FIFO hướng phát trong thiết bị lớp vật lí Giản đồ thời gian của trường hợp này như sau:

Hình 4.1 Giao tiếp đơn port không định địa chỉ in-band

Trang 34

4.1.2.2 Nhiều port

Mode hoạt động này chỉ sử dụng cho trường hợp số lượng port sử dụng ít Trong mode hoạt động này thiết bị lớp vậy lí sử dụng tín hiệu DTPA[] để thông báo đến thiết bị lớp LINK trạng thái FIFO của mỗi port tương ứng Mỗi bit trong bus tín hiệu DTPA[] tương ứng với trạng thái mỗi port trong thiết bị lớp PHY nhiều port Giản đồ dưới đây minh họa truyền dữ liệu của thiết bị lớp PHY có hai port

Hình 4.12 Giản đồ thời gian hướng Tx

4.1.3 Chế độ hoạt động hỏi vòng (polling) kiểm tra trạng thái port

Có hai cấp độ truyền dữ liệu đươc sử dụng trong mode hoạt động này byte-level và packet level Trong mode hoạt động byte-level, Thiết bị lớp PHY sẽ sử dụng tín

hiệu STPA (Selected-PHY Transmit Packet Available) để thông báo thông tin về

trạng thái của port được chọn đến thiết bị lớp LINK Khi đó, thiết bị lớp LINK sẽ

giám sát trạng thái của tín hiệu này để biết thông tin trạng thái FIFO hướng Tx của

port được chọn

Trong mode hoạt động packet-level, thiết bị lớp PHY sẽ sử dụng tín hiệu PTPA

(Polled-PHY Transmit Packet Available) để thông báo trạng thái của port được chọn đến thiết bị lớp LINK Khi đó thiết bị lớp LINK sẽ giám sát trạng thái của tín hiệu

này để biết được thông tin trạng thái của FIFO hướng Tx của port được chọn

Trang 35

4.1.3.1 Chế độ hoạt động truyền Byte-level

Trong chế độ hoạt động này, Tín hiệu STPA luôn luôn phản ánh trạng thái của

port được chọn để tránh trạng thái tràn FIFO Địa chỉ port mà tín hiệu STPA chỉ định

trước tiên được truyền trên bus TDAT bằng cách tích cực tín hiệu TSX và không tích

cực tín hiệu TENB Hình dưới đây minh họa hoạt động truyền dữ liệu trong mode

hoạt động này

4.1.3.2 Chế độ hoạt động Packet-level

Chế độ hoạt động này sử dụng bus tín hiệu TADR[] và tín hiệu PTPA để kiểm tra

trạng thái của từng port riêng lẻ tại bất kì thời điểm nào, ngay cả khi đang truyền dữ

liệu Hình dưới đây minh họa cách thức bắt tay truyền dữ liệu so sánh với chế độ hoạt

động chỉ định trực tiếp trạng thái của FIFO ( trong đó tín hiệu DTPA [] được sử dụng

thay cho tín hiệu PTPA)

Hình 4.13 Giản đồ thời gian quá trình kiểm tra trạng thái port

Khi sử dụng tín hiệu PTPA và TADR[] để kiểm tra trạng thái của các port, Thiết

bị lớp LINK phải gởi địa chỉ của port mà nó muốn gởi dữ liệu đến để biết trạng thái

của port đó, trong trường hợp port đó sẵn sàng nhận dữ liệu từ thiết bị lớp LINK, dữ

liệu sẽ được truyền trong lần gởi kế tiếp hay lần sau đó theo cơ chế round-robin

Trang 36

4.2 Các tín hiệu trên giao diện hướng thu

4.2.1 Ý nghĩa chức năng của các tín hiệu

Tên tín hiệu Eân2 Chức Năng

RFCLK Nguồn Clock

truyền đến lớp LINK và PHY hướng thu (Rx)

Receive FIFO Write Clock (RFCLK)

RFCLK được sử dụng để đồng bộ việc truyền dữ liệu hướng thu giữa thiết bị lớp LINK và thiết bị lớp PHY RFCLK có thể hoạt động ở tần số lên đến 104 MHz

RVAL Từ lớp PHY

đến LINK Receive Data Valid (RVAL) RVAL xác định tính hợp lệ của của các tín hiệu dữ

liệu hướng thu RVAL ở mức thấp giữa những lần truyền dữ liệu và khi RSX được tích cực.Nó cũng ở mức thấp khi thiết bị lớp PHY ngừng việc truyền dữ liệu vì một FIFO hướng thu của nó không có dữ liệu Khi việc truyền dữ liệu được dừng ở việc giữ tín hiệu RENB ở mức cao, RVAL vẫn giữ trạng thái của nó không thay đổi, mặc dù không có dữ liệu mới được truyền trên RDAT[31:0] cho đến khi việc truyền được khôi phục lại

Khi tín hiệu RVAL ở mức cao, các tín hiệu RDAT[31:0], RMOD[1:0], RSOP, REOP and RERR hợp lệ Khi RVAL ở mức thấp, các tín hiệu RDAT[31:0], RMOD[1:0], RSOP, REOP và RERR không hợp lệ và phải được bỏ qua

Tín hiệu RSX hợp lệ khi RVAL ở mức thấp

RENB Từ lớp LINK

truyền đến lớp PHY

Receive Read Enable (RENB)

Tín hiệu RENB được sử dụng để điều khiển luồng dữ liệu từ các FIFO nhận của thiết bị lớp PHY Trong quá trình truyền dữ liệu, RVAL phải được giám sát vì tín hiệu này xác định tính hợp lệ của các

Trang 37

tín hiệu RDAT[31:0], RPRTY, RMOD[1:0], RSOP, REOP, RERR và RSX Hệ thống có thể không tích cực tín hiệu RENB tại bất kì thời điểm nào nếu thiết

bị lớp LINK không thể nhận dữ liệu từ thiết bị lớp PHY

Khi RENB được lấy mẫu ở mức thấp bởi thiết bị lớp PHY, việc đọc được thực hiện từ FIFO thu và các tín hiệu RDAT[31:0], RPRTY, RMOD[1:0], RSOP, REOP, RERR, RSX và RVAL được cập nhật trên cạnh lên kế tiếp của RFCLK

Khi RENB được lấy mẫu ở mức cao bởi thiết bị lớp PHY, việc đọc từ FIFO thu không được thực hiện và các tín hiệu RDAT[31:0], RPRTY, MOD[1:0], RSOP, REOP, RERR, RSX và RVAL sẽ giữ nguyên không

thay đổi trên cạnh lên tiếp theo của RFCLK

RDAT[31:0] Từ lớp PHY

đến LINK Receive Packet Data Bus (RDAT[31:0]) Bus RDAT[31:0] chở các octet của gói dữ liệu được

đọc từ FIFO thu của thiết bị lớp PHY và nó cũng truyền địa chỉ port in-band của FIFO thu được chọn RDAT[31:0] chỉ được xem là hợp lệ khi RVAL tích cực

Khi sử dụng giao diện truyền với bus dữ liệu 32-bit,

dữ liệu phải đươc nhận theo thứ tự big endian trên

bus RDAT[31:0] Trong cấu trúc dữ liệu được định nghĩa, bit 31 được nhận đầu tiên và bit 0 được nhận cuối cùng

Khi sử dụng giao diện truyền với bus dữ liệu 16-bit, Thiết bị lớp PHY chỉ hỗ trợ RDAT[15:0]

Khi sử dụng giao diện truyền với bus dữ liệu 8-bit, Thiết bị lớp PHY chỉ hỗ trợ RDAT[7:0]

RPRTY Từ lớp PHY

đến LINK Receive Parity (RPRTY) Tín hiệu parity hướng nhận chỉ định parity được tính

trên bus RDAT Khi sử dụng giao diện 16-bit, parity được tính trên RDAT[15:0] Khi sử dụng giao diện

Trang 38

16-bit, thiết bị lớp PHY chỉ hổ trợ RPRTY trên RDAT[7:0]

Khi hổ trợ RPRTY, thiết bị lớp PHY phải hổ trợ parity lẻ RPRTY chỉ được xem là hợp lệ khi tín hiệu

RVAL hay RSX tích cực

RMOD[1:0] Từ lớp PHY

đến LINK Receive Word Modulo (RMOD) RMOD[1:0] xác định số lượng byte hợp lệ trong bus

dữ liệu nhận RDAT[31:0] Bus RMOD luôn luôn có giá trị bằng 0, ngoại trừ khi truyền những byte cuối cùng của gói dữ liệu trên RDAT Khi REOP tích cực, số lượng byte dữ liệu hợp lệ trên bus RDAT được xác định bởi giá trị của RMOD như sau :

Với giao diện truyền dữ liệu 32-bit : RMOD[1:0] = “00” RDAT[31:0] hợp lệ RMOD[1:0] = “01” RDAT[31:8] hợp lệ RMOD[1:0] = “10” RDAT[31:16] hợp lệ RMOD[1:0] = “11” RDAT[31:24] hợp lệ Với giao diện truyền dữ liệu 16-bit (chỉ sử dụng RMOD[0]):

RMOD[0] = “0” RDAT[15:0] hợp lệ RMOD[0] = “1” RDAT[15:8] hợp lệ Khi sử dụng giao diện truyền 8-bit, RMOD không được sử dụng RMOD[1:0] chỉ được xem là hợp lệ khi RVAL tích cực

RSOP Từ lớp PHY

đến LINK Receive Start of Packet (RSOP) RSOP dùng để chỉ ra giới hạn của gói dữ liệu trên

bus dữ liệu RDAT Khi RSOP ở mức cao, những byte đầu tiên của gói dữ liệu được truyền trên bus dữ liệu RDAT

RSOP tích cực khi bắt đầu truyền những byte đầu tiên của mỗi gói dữ liệu và chỉ hợp lệ khi RVAL tích

cực

Trang 39

REOP Từ lớp PHY

đến LINK Receive End Of Packet (REOP) REOP dùng để chỉ ra phạm vi của gói dữ liệu truyền

trên bus dữ liệu RDAT Khi REOP tích cực cao, những byte cuối cùng của gói dữ liệu được truyền trên bus dữ liệu RDAT

Khi sử dụng giao diện truyền dữ liệu 32-bit, RMOD[1:0] xác định số byte hợp lệ trong 4 byte dữ liệu truyền cuối cùng trên bus TDAT[31:0] khi tín hiệu REOP tích cực

Khi sử dụng giao diện truyền dữ liệu 16-bit, RMOD[0] xác định số byte hợp lệ trong 2 byte dữ liệu truyền cuối cùng trên bus TDAT[15:0] khi tín hiệu REOP tích cực

Khi sử dụng giao diện truyền 8-bit, byte cuối cùng của gói dữ liệu được truyền trên RDAT[7:0] khi REOP tích cực

REOP luôn phải tích cực cao tại vị trí cuối cùng của gói dữ liệu được truyền và chỉ hợp lệ khi RVAL tích cực

RERR Từ lớp PHY

đến LINK Receive error indicator (RERR) RERR được dùng để chỉ định rằng gói dữ liệu đang

truyền hiện tại bị lỗi RERR chỉ được tích cực khi REOP tích cực

Những điều kiện có thể dẫn đến tích cực RERR có thể là (tuy nhiên không bị giới hạn), tràn FIFO, phát hiện chuỗi dữ liệu truyền không đúng thứ tự và lỗi FCS

RERR hợp lệ chỉ khi RVAL tích cực

RSX Từ lớp PHY

đến LINK Receive Start of Transfer (RSX) RSX chỉ định khi địa chỉ port in-band được truyền

trên bus dữ liệu RDAT Khi RSX ở mức cao, giá trị của RDAT[7:0] là địa chỉ của FIFO nhận được chọn bởi thiết bị lớp PHY Việc truyền dữ liệu kế tiếp sẽ

Trang 40

được đọc từ FIFO được xác định bởi địa chỉ in-band này

Đối với các thiết bị lớp PHY đơn port, tín hiệu RSX có thể không được sử dụng Khi đó thiết bị lớp PHY không cần phát các địa chỉ in-band

Đối với các thiết bị lớp PHY đa port, tín hiệu RSX phải được tích cực tại vị trí bắt đầu của mỗi một lần truyền

Khi RSX ở mức cao, RVAL phải ở mức thấp

4.2.2 Giao diện truyền dữ liệu đơn port

Ứng dụng này không sử dụng tín hiệu RSX bởi vì việc định địa chỉ in-band không cần thiết Hình dưới đây mô tả quá trình hoạt động của mode truyền dữ liệu này:

Hình 4-4: Giao diện truyền dữ liệu đơn port

Ngày đăng: 16/04/2021, 04:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w