USB3のVIPのCallback

CadenceのUSB3のVIP(元Denali)のCallbackを引っ掛ける仕掛け...


■ デバイス側
// OUT
if ((devcb.reason == DENALI_USB_CB_RxTransDone) &&
(pkt.Pid == DENALI_USB_PID_Data0 || pkt.Pid == DENALI_USB_PID_Data1)) begin
... = pkt.Length;
... = pkt.Data;
// IN
end else if ((devcb.reason == DENALI_USB_CB_PL2ILQueueEnter) &&
((pkt.Pid == DENALI_USB_PID_Data0) || (pkt.Pid == DENALI_USB_PID_Data1))) begin
pkt.Data = 393215'b0;
pkt.Data[?*8-1:0] = ...;
pkt.DataNumBits = ?*8;
pkt.Length = ...;
pkt.Endp = ...;
pkt.transSet;
end

■ ホスト側
// OUT
if ((hstcb.reason == DENALI_USB_CB_PL2ILQueueEnter) &&
((pkt.Pid == DENALI_USB_PID_Data0) || (pkt.Pid == DENALI_USB_PID_Data1))) begin
... = pkt.Length;
... = pkt.Data;
end else if ((hstcb.reason == DENALI_USB_CB_TX_ProtocolQueueExit) &&
((pkt.HeaderType == DENALI_USB_TYPE_DP && pkt.DpSubType == DENALI_USB_DP_SUBTYPE_DPP))) begin
... = pkt.DpDataLength;
... = pkt.Data;
// IN
end else if ((hstcb.reason == DENALI_USB_CB_RxTransDone) &&
((pkt.Pid == DENALI_USB_PID_Data0) || (pkt.Pid == DENALI_USB_PID_Data1))) begin
... = pkt.Length;
... = pkt.Data;
end else if ((hstcb.reason == DENALI_USB_CB_RX_ProtocolQueueExit) &&
((pkt.HeaderType == DENALI_USB_TYPE_DP && pkt.DpSubType == DENALI_USB_DP_SUBTYPE_DPP))) begin
... = pkt.DpDataLength;
... = pkt.Data;
end

テーマ : プログラミング
ジャンル : コンピュータ

2011-10-07 : Work-Product-Verification : コメント : 0 : トラックバック : 0
Pagetop
ホーム

プロフィール

zive

Author:zive
大阪在住、男

ブログ検索

月別アーカイブ

FC2カウンター