PCIE 資料有效位判定

2021-08-20 20:50:00 字數 1564 閱讀 5461

pcie和cpu之間通訊,當fpga傳送乙個儲存器讀請求(mrd)後,將收到cpu返回的帶資料讀完成報文(cpld)。根據頻寬的不同,介面資料位寬可以選擇為64bit、128bit、256bit。在pcie協議中,資料傳輸最小單位是雙字(dw),所以fpga收到cpld報文後需要判斷資料的哪個雙字有效。cpld報文的tlp頭部長度為3dw。

根據s_axi_rx_tkeep訊號來判斷哪個雙字有效。

(1)判斷最後64bit資料有效雙字:

當s_axi_rx_tlast訊號和s_axi_rx_tvalid訊號同時拉高時,表示為最後一拍資料,根據s_axi_rx_tkeep[7:0](0xff或0x0f)訊號來判斷哪個雙字有效;其它情況下,s_axi_rx_tkeep[7:0]=0xff,根據s_axi_rx_tvalid訊號來判斷64bit資料是否有效。

s_axi_rx_tdata[63:0]

d1d0                

--d0                

s_axi_rx_tlast11

s_axi_rx_tkeep[7:0]

0xff

0x0f

(2)判斷起始64bit資料有效雙字:

cpld報文的tlp頭部長度為3dw(64bit+32bit,h1h0+d0h2),起始有效雙字為d0--。

根據m_axi_rx_tuser訊號來判斷哪個雙字有效。

(1)判斷最後128bit資料有效雙字:m_axi_rx_tuser[21:17](rx_is_eof[4:0])

5'b1_0011 —— eof located at byte3(dword 0),-- -- -- d0

5'b1_0111 —— eof located at byte3(dword 1),-- -- d1 d0

5'b1_1011 —— eof located at byte3(dword 2),-- d2 d1 d0

5'b1_1111 —— eof located at byte3(dword 3),d3 d2 d1 d0

5'b0_***x  —— eof not present

(2)判斷起始128bit資料有效雙字:m_axi_rx_tuser[14:0](rx_is_sof[4:0])

5'b1_0000 —— sof located at byte0(dword 0)

5'b1_1000 —— sof located at byte8(dword 2)

5'b0_***x  —— sof not present

cpld報文的tlp頭部長度為3dw(128bit-32bit):

rx_is_sof[4:0]=5'b1_0000:d0h2h1h0

rx_is_sof[4:0]=5'b1_1000:h1h0--,d2d1d0h3,如果資料長度小於3dw,則還需要結合rx_is_eof[4:0]一起來判斷有效雙字。

EXCEL 資料有效性設定

1.使單元格區域內記錄不能重複輸入控制 countif a a,a2 1 直接複製此公式進去即可 2.禁止單元格輸入數字控制 isnumber a1 true 3.允許單元格只能輸入數字控制 isnumber a1 true 4.禁止單元格輸入字母和數字 lenb a1 2 5.禁止輸入週末日期 a...

資料有效性 動態選擇

excel有兩列資料欄,a列和b列,都是通過下來框來選擇,要求a列選擇完成後,b列動態調整可選擇的內容。例如 第一例選擇 aa 第二列可供選擇的範圍是 a d 第一例選擇 bb 第二列可供選擇的範圍是 e h 第一例選擇 cc 第二列可供選擇的範圍是 i w 第一例選擇 dd 第二列可供選擇的範圍是...

Java資料有效位數工具類

package com.yqq.test public class adjustmentdouble 小數部分精度大於或等於指定的精度 if numofdecimalpart array 1 length 小數部分精度小於指定的精度 if numofdecimalpart array 1 lengt...