freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

xilinxpcie20接口ep端設(shè)計(jì)總結(jié)-資料下載頁

2025-06-26 00:37本頁面
  

【正文】 is_rx_tuser[0]I表明當(dāng)前包存在EREC無措。只有在包的幀結(jié)尾才會斷言req_pl1O請求完成信號,拉高后PIO_TX_ENGINE模塊將會發(fā)送數(shù)據(jù)req_pl_wd1O長期保持高pl_done1I相當(dāng)于一個(gè)中斷信號,告訴PIO_RX_ENGINE模塊數(shù)據(jù)發(fā)送完成req_td1O請求TLP的摘要(digest)位req_ep1O請求錯(cuò)誤位req_tc3O請求通信等級req_attr2O請求特征req_len10O請求寫或者讀的數(shù)據(jù)長度req_rid16O請求響應(yīng)者標(biāo)識符req_tag8O請求標(biāo)簽req_be8O請求字節(jié)有效req_addr13O請求地址wr_addr11O寫地址wr_be8O寫字節(jié)使能wr_data32O寫數(shù)據(jù)wr_en1O寫有效wr_busy1I寫忙碌 接收機(jī)解析3個(gè)可尋址的DWORD大小的讀請求。讀狀態(tài)機(jī)需要將TLP中提取的信號發(fā)送到存儲器控制器來控制寫入的數(shù)據(jù)。 當(dāng)應(yīng)用正在加工當(dāng)前的TLP事務(wù)時(shí),讀數(shù)據(jù)通道停止接收來自核的新事務(wù),通過拉低m_axis_rx_ready信號。如果要繼續(xù)進(jìn)行存儲器或I/O的讀事務(wù),模塊需要等到pl_done_i被拉高后,busy也被拉低,這樣才會繼續(xù)接收下一個(gè)TLP。 模塊的示意圖如下:圖43 接收機(jī)模塊示意圖模塊內(nèi)部接收功能主要通過一個(gè)狀態(tài)機(jī)來實(shí)現(xiàn),在復(fù)位信號有效后,將ready信號置1,然后判斷有無數(shù)據(jù)(依據(jù)valid是否為高)。如果valid信號拉高,則判斷接收到的fmt和type類型,否則等待數(shù)據(jù)有效。在判斷TLP類型后,如果是存儲器讀請求,取出事務(wù)請求的fmt,type,len字段信息。判斷l(xiāng)en是否是自己規(guī)定的定值。如果是則繼續(xù)取出其他相應(yīng)字段的信息。如果len不是預(yù)定值則放棄此事務(wù),返回第一步。當(dāng)len為1時(shí),取出信息。判斷valid是都為高,否則等待,如果valid為高,則將ready信號拉低,并通知PIO_TX_ENGINE模塊發(fā)送數(shù)據(jù),在數(shù)據(jù)發(fā)送完成之前都保持等待狀態(tài),當(dāng)接收到數(shù)據(jù)發(fā)送完成標(biāo)志后,再次準(zhǔn)備接收下一個(gè)事務(wù)請求。如果是存儲器寫請求,判斷valid為高后,拉高寫存儲器使能并取出高32位數(shù)據(jù),拉低ready信號,取出響應(yīng)的地址,轉(zhuǎn)入等待狀態(tài)(state=PIO_RX_WAIT_STATE),此時(shí)會將數(shù)據(jù)寫入存儲器,當(dāng)數(shù)據(jù)全部寫入存儲器后,存儲器控制模塊會拉低wr_busy,此時(shí)接收機(jī)跳轉(zhuǎn)到復(fù)位初始狀態(tài),等待下一次TLP事務(wù)。模塊內(nèi)部具體邏輯流程圖如圖44: 圖44 PIO_RX_ENGINE模塊內(nèi)部具體邏輯流程圖接收機(jī):(當(dāng)TLP單個(gè)事務(wù)所攜帶或者需要讀取的數(shù)據(jù)大于1時(shí),接收機(jī)給雙端口RAM的寫或者讀地址進(jìn)行計(jì)數(shù))1. 狀態(tài)0:等待數(shù)據(jù),有數(shù)據(jù)則跳轉(zhuǎn)狀態(tài)1。2. 狀態(tài)1:接收包頭,判斷Fmt,Type的TLP讀寫事務(wù)類型,獲取相關(guān)信息。讀事務(wù)則跳轉(zhuǎn)狀態(tài)2。寫事務(wù)則跳轉(zhuǎn)狀態(tài)3。3. 狀態(tài)2:取出讀地址,并發(fā)送讀命令給發(fā)送機(jī)由發(fā)送機(jī)操作(根據(jù)len的長度來使雙端口RAM的使能保持響應(yīng)的周期)。初始化t=2。跳轉(zhuǎn)至狀態(tài)4。4. 狀態(tài)3:取地址與數(shù)據(jù)狀態(tài)。取出寫地址,寫數(shù)據(jù),拉高寫使能,len1,若len1不等于0則t=2;若len1=0則t=0。跳轉(zhuǎn)至狀態(tài)4。5. 狀態(tài)4:等待狀態(tài)。(①當(dāng)存儲器控制器告知不busy且t=2,len不等于0時(shí),跳轉(zhuǎn)至狀態(tài)5,繼續(xù)取出要寫的數(shù)據(jù)。②當(dāng)存儲器控制器告知不busy且t=1,len不等于0時(shí),跳轉(zhuǎn)至狀態(tài)6,繼續(xù)取出要寫的數(shù)據(jù)。③當(dāng)存儲器控制器告知不busy且len等于0時(shí),跳轉(zhuǎn)至狀態(tài)0,等待新的TLP事務(wù)。)。6. 狀態(tài)5:取數(shù)據(jù)1狀態(tài)(低32位數(shù)據(jù))。len1,t1,(t初始值為2,分兩次取出2個(gè)32位的數(shù)據(jù))取出數(shù)據(jù),跳轉(zhuǎn)至狀態(tài)4。7. 狀態(tài)6:取數(shù)據(jù)2狀態(tài)(高32位數(shù)據(jù)):len1,t1,取出m_axis_rx_tdata[63:32]。狀態(tài)跳轉(zhuǎn)至狀態(tài)4。圖 45 接收狀態(tài)機(jī)接收機(jī)接收TLP寫事務(wù)時(shí)序圖: 在復(fù)位后,用戶將m_axis_tready置1,表示可以接收TLP事務(wù)。此時(shí)等待m_axis_tvalid信號拉高,m_axis_tvalid信號置1,表示核有TLP需要發(fā)送到用戶層處理。此時(shí)sop信號會拉高,表示有TLP事務(wù)到來。sop只拉高一個(gè)時(shí)鐘周期后,接收機(jī)中的狀態(tài)機(jī)就會工作。接收寫TLP事務(wù)時(shí),首先取出包頭字段信息,在每個(gè)64位數(shù)據(jù)的最后一個(gè)時(shí)鐘拉高m_axis_tready。每取一個(gè)數(shù)據(jù)都會將length字段信息的寄存值減1,在取出連續(xù)2DW組成的64位數(shù)據(jù)時(shí),做一個(gè)t計(jì)數(shù),沒取一個(gè)DW,t+1,當(dāng)t為2時(shí),說明高32位和低32位都取出,待存儲器控制器反饋wr_busy為0時(shí),拉高m_axis_tready信號,并判斷剩余數(shù)據(jù)個(gè)數(shù)。如果剩余數(shù)據(jù)量大于2則繼續(xù)取兩個(gè)DW數(shù)據(jù)。如果剩余2個(gè)DW數(shù),則取出兩個(gè)數(shù)據(jù)并在存儲器控制器反饋非busy時(shí),跳轉(zhuǎn)到初始狀態(tài),拉高m_axis_tready信號。接收TLP讀事務(wù)時(shí)序圖: 在接收機(jī),接收讀TLP事務(wù)時(shí),首先判斷是否有TLP事務(wù)傳輸過來,當(dāng)sop信號置1時(shí),開始接收事務(wù)包頭,在確定需要讀取的數(shù)據(jù)長度 ,將字段信息都傳輸給發(fā)射機(jī),通知其取出(或者產(chǎn)生)相應(yīng)的數(shù)據(jù),并發(fā)送出去,發(fā)送完畢后,發(fā)射機(jī)將pl_done信號拉高,通知接收機(jī)響應(yīng)事務(wù)發(fā)送完畢,以接收下一個(gè)TLP事務(wù)。 發(fā)射機(jī)模塊PIO_TX_ENGINE模塊功能l 根據(jù)接收機(jī)模塊發(fā)送的指令來發(fā)送數(shù)據(jù),數(shù)據(jù)由存儲器控制器從存儲器中依據(jù)地址取出響應(yīng)的數(shù)據(jù)。l 發(fā)送數(shù)據(jù)時(shí),拉低pl_done,使接收機(jī)處于等待狀態(tài),發(fā)送完成后拉高,通知接收機(jī)事務(wù)完成信號位寬方向描述S_axis_tx_tlast1O幀發(fā)送結(jié)尾:標(biāo)記包的結(jié)尾,只有在S_axis_tx_tvalid申明時(shí)才有效。S_axis_tx_tdata64O發(fā)送的數(shù)據(jù)S_axis_tkeep8O傳輸數(shù)據(jù)選通,決定所給定拍子數(shù)據(jù)有效字節(jié)。數(shù)據(jù)在s_axis_tx_tvalid 和 s_axis_tx_tready都有效時(shí)才有效。此信號的最低位決定數(shù)據(jù)低字節(jié)的有效性。當(dāng)last信號沒有斷言時(shí),只有0xFF有效。當(dāng)last信號已斷言時(shí),只有0x0F和0xFF是有效的。S_axis_tx_tvalid1O數(shù)據(jù)有效信號,拉高表明發(fā)哦少年宮數(shù)據(jù)已準(zhǔn)備好。S_axis_tx_tready1I置1表明核準(zhǔn)備好接收數(shù)據(jù)。tx_src_dsc1O傳輸停止??梢栽陂_始傳輸后的任意時(shí)間斷言。req_pl1I請求完成信號,拉高后PIO_TX_ENGINE模塊將會發(fā)送數(shù)據(jù)req_pl_wd1I長期保持高pl_done1O相當(dāng)于一個(gè)中斷信號,告訴PIO_RX_ENGINE模塊數(shù)據(jù)發(fā)送完成req_td1I請求TLP的摘要(digest)位req_ep1I請求錯(cuò)誤位req_tc3I請求通信等級req_attr2I請求特征req_len10I請求寫或者讀的數(shù)據(jù)長度req_rid16I請求響應(yīng)者標(biāo)識符req_tag8I請求標(biāo)簽req_be8I請求字節(jié)有效req_addr13I請求地址wr_addr11O寫地址wr_be4O寫字節(jié)使能wr_data32I寫數(shù)據(jù)Completer_id16I請求者ID模塊示意圖如下:圖45 發(fā)送機(jī)模塊示意圖下圖為PIO_TX_ENGINE模塊內(nèi)部邏輯流程圖:圖46 發(fā)射機(jī)模塊內(nèi)部邏輯PIO_TX_ENGINE模塊首先等待PIO_RX_ENGINE模塊發(fā)送請求報(bào)文,接收到請求以后就置高busy信號,從而使PIO_RX_ENGINE模塊處于等待狀態(tài)。判斷busy確實(shí)拉高后,將所有輸出的axi信號初始化,判斷核是否可以接收數(shù)據(jù)(ready=1?),在確認(rèn)核可以接收數(shù)據(jù)時(shí),將PIO_RX_ENGINE搜集的請求包的字段信息組成新的包頭發(fā)送,將valid拉高使數(shù)據(jù)有效。再次判斷ready信號是否為高,如果ready為高,則將傳輸接下來的地址數(shù)據(jù),待數(shù)據(jù)傳輸?shù)阶詈笠粋€(gè)包時(shí),將last和pl_done信號拉高。通知PIO_RX_ENGINE模塊,發(fā)送數(shù)據(jù)已經(jīng)完成,可以繼續(xù)接收下一組數(shù)據(jù)。發(fā)射機(jī):發(fā)射機(jī)部分改動部分也是根據(jù)len的大小來接收響應(yīng)的數(shù)據(jù)(每次寫入RAM的數(shù)據(jù)大小為1DW)。具體過程不再贅述,狀態(tài)機(jī)如下圖:圖 49 發(fā)送狀態(tài)機(jī)發(fā)射機(jī)發(fā)送多數(shù)據(jù)負(fù)載時(shí)序圖: 發(fā)射機(jī)時(shí)序也主要是由一個(gè)狀態(tài)機(jī)控制。默認(rèn)狀態(tài)在等待接收機(jī)發(fā)送過來的響應(yīng)請求,req_pl信號。當(dāng)收到req_pl置1后,將pl_busy拉高,通知接收機(jī)自己處于發(fā)送數(shù)據(jù)狀態(tài)。狀態(tài)機(jī)開始工作,從RAM中讀取數(shù)據(jù),發(fā)送需要讀的地址,每讀一個(gè)地址,同樣的將需要發(fā)送的數(shù)據(jù)長度減1。兩個(gè)32位數(shù)據(jù)組合成一個(gè)64位數(shù)據(jù),并發(fā)送出去。每當(dāng)成功組成一個(gè)數(shù)據(jù)并發(fā)送出去時(shí),將s_axis_tvalid信號拉高一個(gè)時(shí)鐘周期。并判斷數(shù)據(jù)是否按要求發(fā)送完。在拉高s_axis_valid信號的同時(shí),其實(shí)下一個(gè)64數(shù)據(jù)已經(jīng)準(zhǔn)備好了。如果僅剩最后兩個(gè)DW或者一個(gè)DW的數(shù)據(jù)需要發(fā)送,則在拉高s_axis_valid的下個(gè)時(shí)鐘周期將數(shù)據(jù)發(fā)送并繼續(xù)拉高s_axis_tvalid信號,然后狀態(tài)跳轉(zhuǎn)到等待指令。 存儲器控制器模塊PIO_EP_MEM_ACCESS模塊功能:l 將收到的存儲器和I/O寫TLP事務(wù)的數(shù)據(jù)處理后寫入存儲器;l 需要對存儲器或者I/O的TLP事務(wù)進(jìn)行相應(yīng)時(shí),提供從存儲器中讀出的數(shù)據(jù)l 在此模塊(存儲器控制器)在處理寫存儲器功能時(shí),會將busy信號拉高,提示接收機(jī)暫停工作。模塊圖如下:圖47 存儲器控制模塊模塊接口信號名位寬方向描述wr_en_i1I寫接收(使能)wr_addr_i11I寫地址wr_be_i8I寫數(shù)據(jù)字節(jié)使能wr_data_i32I寫數(shù)據(jù)wr_busy1O忙碌busyrd_be_i8I讀字節(jié)使能rd_addr_i32I讀地址rd_data32O讀數(shù)據(jù)控制器內(nèi)實(shí)例化了4個(gè)分立的目標(biāo)空間,每個(gè)空間由一個(gè)2KB的存儲器模塊組成,用獨(dú)立的基地址寄存器(BAR)來代表??梢愿腜IO設(shè)計(jì)所使用的默認(rèn)參數(shù),BAR所代表的4個(gè)2KB地址空間一一對應(yīng)于PIO設(shè)計(jì)中的4個(gè)2KB地址區(qū)域。每個(gè)2KB區(qū)域均通過一個(gè)2KB雙端口Block RAM實(shí)現(xiàn)。核接收到事務(wù)后對地址進(jìn)行解碼,并從4個(gè)區(qū)域中確定目標(biāo)。核將TLP提交給PIO設(shè)計(jì)并將bar_hit[6:0]的響應(yīng)位置置為有效。如下表。Block RAMTLP事務(wù)類型默認(rèn)BARtrn_rbar_hit_n[6:0]ep_mem0I/O TLP事務(wù)禁用禁用ep_mem132位地址存儲器TLP事務(wù)2111_1011bep_mem264位地址存儲器TLP事務(wù)01111_1100bep_mem3送往EPROM的32位地址存儲器TLP事務(wù)Expansion ROM011_1111b存儲器存數(shù)據(jù)時(shí)序圖: 每接收到wr_en和數(shù)據(jù)和地址時(shí),狀態(tài)機(jī)開始工作。狀態(tài)機(jī)跑完將數(shù)據(jù)重新組合,賦給post_wr_data信號,并拉高write_en寫使能一個(gè)周期。此時(shí)將數(shù)據(jù)寫入RAM中。等待下一個(gè)寫使能。存儲器讀數(shù)據(jù)時(shí)序圖:在有地址發(fā)送過來時(shí),決定讀哪個(gè)RAM中的對應(yīng)地址。判斷讀哪個(gè)RAM后,將讀使能拉高不變,每給定一個(gè)地址就會相應(yīng)的讀出數(shù)據(jù)。存儲器控制器內(nèi)部寫入數(shù)據(jù)流程圖:6. 仿真測試 仿真測試方案在此次設(shè)計(jì)中,存儲器控制器邏輯可以保持改變(或者改成FIFO),但是由于example_design中TLP事務(wù)的數(shù)據(jù)流長度定為len=1,要想達(dá)到高速傳輸,必須改變len的大小。所以需要修改接收和發(fā)射機(jī)的狀態(tài)機(jī)中數(shù)據(jù)接收和發(fā)送部分的狀態(tài)機(jī)數(shù)據(jù)(接收和發(fā)送數(shù)據(jù)量****默認(rèn)為只一個(gè)事務(wù)只接收一個(gè)DWORD的寫數(shù)據(jù)或發(fā)送一個(gè)DWORD的讀數(shù)據(jù))部分。仿真頂層模擬root plex 發(fā)送事務(wù),跳過PCIE核事務(wù)層的包裝與解包裝,直接發(fā)送事務(wù)層TLP事務(wù)格式。仿真頂層事務(wù)生成狀態(tài)機(jī)圖如下:現(xiàn)在仿真僅實(shí)現(xiàn)簡單的事務(wù)接收并處理,并發(fā)送響應(yīng)事務(wù)。配置空間、全雙工:發(fā)送與接收同時(shí)進(jìn)行。可以在主機(jī)向FPGA請求事務(wù)的同時(shí),F(xiàn)PGA的發(fā)送模塊也生成讀寫TLP,并向主機(jī)傳送。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1