• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      AXI4總線的USB2.0設(shè)備控制器IP核設(shè)計(jì)*

      2017-02-09 03:12:21韓進(jìn)秦宏超劉鍇
      關(guān)鍵詞:令牌事務(wù)總線

      韓進(jìn),秦宏超,劉鍇

      (1.山東科技大學(xué) 信息科學(xué)與工程學(xué)院,青島 266590; 2.山東高云半導(dǎo)體科技有限公司)

      ?

      AXI4總線的USB2.0設(shè)備控制器IP核設(shè)計(jì)*

      韓進(jìn)1,秦宏超1,劉鍇2

      (1.山東科技大學(xué) 信息科學(xué)與工程學(xué)院,青島 266590; 2.山東高云半導(dǎo)體科技有限公司)

      本設(shè)計(jì)依托星核計(jì)劃——山東國產(chǎn)IP軟核平臺(tái),基于最新片上總線AMBA4.0協(xié)議,使用VerilogHDL語言完成了主要由AXI4總線接口、ULPI模式控制、封包、解包和協(xié)議處理等模塊組成的USB2.0設(shè)備控制器的IP核設(shè)計(jì),通過綜合驗(yàn)證證明了設(shè)計(jì)的正確性,并有效降低了FPGA邏輯資源占用率??梢愿鶕?jù)實(shí)際應(yīng)用要求將設(shè)計(jì)的USB2.0控制器 IP核直接移植到FPGA內(nèi)部,實(shí)現(xiàn)USB數(shù)據(jù)傳輸協(xié)議,省去了USB協(xié)議芯片,節(jié)省了產(chǎn)品開發(fā)成本,并且有效縮短了產(chǎn)品設(shè)計(jì)周期。

      USB2.0;IP核;AXI4總線;VerilogHDL

      引 言

      Philips、Cypress等公司推出的各類USB芯片得到了廣泛應(yīng)用,但國內(nèi)并沒有廠商推出相關(guān)產(chǎn)品,特別是兼容USB2.0協(xié)議的接口芯片,幾乎完全依賴國外產(chǎn)品[1-2]。目前國內(nèi)對USB的相關(guān)研究更多的是利用國外的控制芯片進(jìn)行產(chǎn)品開發(fā),因此設(shè)計(jì)擁有自主知識(shí)產(chǎn)權(quán)的USB2.0 IP核顯得尤為重要。本設(shè)計(jì)依托星核計(jì)劃——山東國產(chǎn)IP軟核平臺(tái),基于最新片上總線AMBA4.0協(xié)議,使用VerilogHDL硬件描述語言完成了USB2.0設(shè)備控制器的IP核設(shè)計(jì)及驗(yàn)證。

      1 整體系統(tǒng)設(shè)計(jì)

      圖1是AXI4USB2.0設(shè)備控制器的整體架構(gòu)圖。該IP主要有寄存器管理模塊、AXI總線接口模塊、工作模式控制模塊、數(shù)據(jù)包處理模塊、協(xié)議處理模塊和端點(diǎn)緩沖區(qū)模塊組成。設(shè)計(jì)采用外接符合ULPI協(xié)議的PHY芯片。寄存器管理模塊定義了USB設(shè)備控制器IP所需要的所有寄存器,用于管理整個(gè)IP的各種功能;AXI4總線接口模塊實(shí)現(xiàn)IP與AXI4-Lite、AXI4-Stream總線的接口;基于ULPI的工作模式控制模塊主要是檢測USB總線狀態(tài),根據(jù)USB總線狀態(tài)來控制整個(gè)IP核的工作狀態(tài);數(shù)據(jù)包處理模塊和外接的PHY相連,用于實(shí)現(xiàn)USB物理層;協(xié)議處理模塊主要功能是處理各種不同的傳輸事務(wù),用于實(shí)現(xiàn)USB協(xié)議層;端點(diǎn)緩沖區(qū)模塊主要用于緩存協(xié)議處理模塊和AXI4總線之間需要交互的所有數(shù)據(jù)。

      圖1 整體架構(gòu)

      2 模塊設(shè)計(jì)

      2.1 AXI4總線接口模塊

      AXI4總線接口模塊實(shí)現(xiàn)IP與AXI4-Lite、AXI4-Stream總線的接口,AXI4-Lite接口主要用于實(shí)現(xiàn)AXI4總線主設(shè)備對USB設(shè)備控制器寄存器的讀寫,AXI4-Stream接口用于AXI4主機(jī)完成對USB數(shù)據(jù)緩沖區(qū)的讀寫[3]。表1是AXI4-Stream I2C主機(jī)總線的端口信號(hào)及描述。

      表1 AXI4-Stream I2C主機(jī)總線端口信號(hào)描述

      AXI4-Lite總線的信號(hào)可以參考ARM公司的相關(guān)標(biāo)準(zhǔn)。

      AXI4 Streamslave 接口具體實(shí)現(xiàn)如下:

      assignaxis_wr_en=S_AXIS_TVALID;

      always@(posedge S_AXI_ACLK)

      if(!S_AXI_ARESETN)

      axis_wr_addr<=13'b0; //復(fù)位清空寫地址信號(hào)

      else if(!S_AXIS_TVALID)

      axis_wr_addr[12:0] <=axis_s_addr[12:0];

      else

      axis_wr_addr<=axis_wr_addr + 1'b1;

      //數(shù)據(jù)有效寫入下一個(gè)數(shù)據(jù)地址

      assign axis_wr_data=S_AXIS_TDATA;

      //總線寫入主機(jī)讀數(shù)據(jù)

      AXI4 Stream Master接口具體實(shí)現(xiàn):

      regaxis_m_en_reg;

      wireaxis_m_en_ris_edge;

      always@(posedge S_AXI_ACLK)

      if(!S_AXI_ARESETN)

      axis_m_en_reg<=0;

      else

      axis_m_en_reg<=axis_m_en;

      assignaxis_m_en_ris_edge = axis_m_en& (!axis_m_en_reg);

      always@(posedge S_AXI_ACLK)

      if(!S_AXI_ARESETN)

      axis_rd_addr<=13'b0;

      else if(!axis_rd_en)

      axis_rd_addr[12:0] <=axis_m_addr[12:0];

      else

      axis_rd_addr<=axis_m_addr + 1'b1;

      always@(posedge S_AXI_ACLK)

      if(!S_AXI_ARESETN)

      axis_rd_en<=1'b0;

      else if(axis_m_en_ris_edge)

      axis_rd_en<=1'b1; //上升沿總線讀數(shù)據(jù)使能

      else if(axis_m_sendov)

      axis_rd_en<=1'b0;

      always@(posedge S_AXI_ACLK)

      if(!S_AXI_ARESETN)

      data_send_count<=11'b0;

      else if(axis_rd_en)

      data_send_count<=data_send_count+1'b1;

      //數(shù)據(jù)有效主機(jī)發(fā)送數(shù)據(jù)量加1

      else

      data_send_count<=11'b0;

      assignaxis_m_sendov=(data_count==data_send_count) ? 1:0;

      assign M_AXIS_TDATA=axis_rd_data;

      assign M_AXIS_TVALID=axis_rd_en;

      2.2 ULPI模式控制模塊

      基于ULPI的模式控制模塊主要是檢測USB總線狀態(tài),根據(jù)USB總線狀態(tài)來控制整個(gè)IP核的工作狀態(tài),完成復(fù)位檢測、設(shè)備掛起與恢復(fù)、高速握手等工作。模式控制模塊有PHY_CLK和S_AXI_ACLK這兩個(gè)時(shí)鐘,其中非掛起狀態(tài)檢測RX_CMD的電路工作在PHY_CLK,其他電路基本都工作在來自AXI4總線的系統(tǒng)時(shí)鐘域。模式控制模塊采用狀態(tài)機(jī)設(shè)計(jì),如圖2所示。

      圖2 模式控制模塊狀態(tài)圖

      圖2中部分狀態(tài)和跳轉(zhuǎn)沒有畫出。除了與掛起相關(guān)的狀態(tài),其他狀態(tài)只要是vbus無效(設(shè)備與HOST斷開連接),狀態(tài)機(jī)都會(huì)回到IDLE狀態(tài)。

      2.3 協(xié)議處理模塊

      協(xié)議處理模塊作用是完成USB2.0協(xié)議規(guī)定的各項(xiàng)功能,處理SETUP、IN、OUT等各項(xiàng)事務(wù)。USB2.0協(xié)議中定義了4種數(shù)據(jù)傳輸類型:控制傳輸(Control Transfer)、批量傳輸(Bulk Transfer)、中斷傳輸(Interrupt Transfer)以及同步傳輸(Isochronous Transfer)。USB各種傳輸過程如表2所列。

      表2 USB傳輸過程

      2.3.1 USB控制傳輸

      控制傳輸由2~3個(gè)階段組成,分別是建立階段、數(shù)據(jù)階段(可能沒有)和狀態(tài)階段,每個(gè)階段都由一次或多次事務(wù)傳輸組成[4]。

      (1) 建立階段

      主機(jī)從USB設(shè)備獲取配置信息,并設(shè)置設(shè)備的配置值。建立階段的數(shù)據(jù)交換包括了SETUP令牌包、緊隨其后的DATA0數(shù)據(jù)包以及ACK握手包。它的作用是執(zhí)行一個(gè)設(shè)置的數(shù)據(jù)交互,并定義控制傳輸?shù)膬?nèi)容(即在數(shù)據(jù)階段中IN或OUT的data包個(gè)數(shù)及發(fā)送方向,在建立階段已經(jīng)被設(shè)定)。如果建立階段發(fā)送CRC錯(cuò)誤,USB設(shè)備控制器不會(huì)有任何回應(yīng),如果正確接收到SETUP令牌包和8字節(jié)的DATA0數(shù)據(jù)包,USB設(shè)備控制器回應(yīng)ACK,并且使能接收完成狀態(tài)標(biāo)志。

      (2) 數(shù)據(jù)階段

      控制傳輸數(shù)據(jù)階段包括控制讀取(IN事務(wù))和控制寫入(OUT事務(wù)),控制讀取是用于讀取USB設(shè)備描述符,控制寫入是用于傳輸U(kuò)SB設(shè)備的配置信息。控制讀取和控制寫入過程如圖3所示。

      圖3 控制讀取和控制寫入過程

      (3) 狀態(tài)階段

      用來表示整個(gè)傳輸過程已經(jīng)結(jié)束。狀態(tài)階段傳輸方向與數(shù)據(jù)階段方向相反,即數(shù)據(jù)階段是IN令牌包,狀態(tài)階段應(yīng)為OUT令牌包;反之,數(shù)據(jù)階段是OUT令牌包,狀態(tài)階段為IN令牌包。

      控制傳輸事務(wù)處理流程比較復(fù)雜,采用了三段式狀態(tài)機(jī)的方式進(jìn)行設(shè)計(jì),如圖4所示。

      圖4 控制傳輸狀態(tài)圖

      2.3.2 USB IN事務(wù)處理

      USB的IN事務(wù)處理模塊主要完成USB中批量、中斷和同步傳輸?shù)腎N事務(wù)的處理,在主機(jī)給出IN令牌后,該模塊發(fā)出向主機(jī)發(fā)送數(shù)據(jù)的指令信號(hào)。該模塊會(huì)首先檢測當(dāng)前的端點(diǎn)、緩存是否可用,若端點(diǎn)掛起,發(fā)STALL;若緩存不可用,發(fā)NACK。該模塊由狀態(tài)機(jī)實(shí)現(xiàn),流程如圖5所示。

      圖5 IN事務(wù)處理流程圖圖

      2.3.3 USB OUT事務(wù)處理

      OUT事務(wù)處理狀態(tài)機(jī)比較簡單,圖6是批量傳輸和中斷傳輸OUT事務(wù)處理流程。圖中NYET流程只有在批量傳輸中出現(xiàn),中斷傳輸中設(shè)備不會(huì)回應(yīng)NYET。

      圖6 批量傳輸和中斷傳輸OUT事務(wù)處理流程圖

      3 驗(yàn)證綜合結(jié)果

      3.1 VCS驗(yàn)證

      由于USB2.0事務(wù)較多,協(xié)議比較復(fù)雜,采用純信號(hào)的方式加入激勵(lì)信號(hào)驗(yàn)證功能操作起來會(huì)非常復(fù)雜,實(shí)現(xiàn)比較困難。因此,為了提高驗(yàn)證效率,采用基于事務(wù)的角度加入激勵(lì)。具體操作為在測試激勵(lì)和待驗(yàn)證的USB2.0控制器之間加入附加層,使信號(hào)激勵(lì)的加入轉(zhuǎn)變?yōu)槭聞?wù)激勵(lì)的加入,從而在測試時(shí)只需按不同事務(wù)的加入來驗(yàn)證控制器的功能。

      以IN事務(wù)傳輸仿真驗(yàn)證為例,本設(shè)計(jì)使用Synopsys

      公司的VCS仿真軟件進(jìn)行仿真驗(yàn)證。仿真如圖7所示。圖中給出的是端點(diǎn)1執(zhí)行IN事務(wù)傳輸,當(dāng)時(shí)鐘上升沿dir置1開始由USB設(shè)備向主機(jī)發(fā)送數(shù)據(jù),通過8位數(shù)據(jù)輸出信號(hào)data_out[7:0]可以看出,首先完成握手發(fā)送握手包1f,之后傳輸令牌包,8’h69為IN 事務(wù)PID高4位,是第4位的取反,8’hd5和8’hd8包含的16位數(shù)據(jù)為7位ADDR、4位ENDP以及5位CRC5,由此可以知道ADDR為1010101B,ENDP為0001B即端點(diǎn)1執(zhí)行IN事務(wù)傳輸。令牌包之后會(huì)接著發(fā)送一個(gè)1f握手包,之后發(fā)送數(shù)據(jù)(1a、2b、3c…為自定義的傳輸數(shù)據(jù))。

      圖7 IN事務(wù)傳輸仿真

      圖8所示為編寫testbench對各模塊代碼進(jìn)行測試的結(jié)果,代碼覆蓋率超過90%,IP核邏輯正確。

      圖8 各模塊代碼覆蓋率

      3.2 Synplify Pro綜合

      通過綜合工具Synplify Pro對IP核進(jìn)行綜合驗(yàn)證,綜合驗(yàn)證結(jié)果如圖9所示。

      使用不同的器件、密度、速度和等級(jí)時(shí),AXI4-LiteI2C主機(jī)總線IP的性能和資源利用情況可能不同。IP設(shè)計(jì)時(shí),適配采用默認(rèn)設(shè)置。AXI4USB2.0設(shè)備控制器IP核可以應(yīng)用于高云的GW2A55系列FPGA。性能和資源利用情況如表3所列。整個(gè)IP核占用資源只有2100 LUTs,具有170個(gè)I/O接口,最高速率可達(dá)120 MHz。

      表3 性能和資源利用表

      結(jié) 語

      [1] Philips Semiconductors. ISP1501 Hi-Speed Universal Serial Bus peripheral transceiver Rev.2[S].2002.

      [2] Cypress Semiconductor Corporation. CY7C68000 USB2.0 UTMI Transceiver Datasheet[S].2003.

      [3] ARM Corporation. AMBA4.0規(guī)范優(yōu)化性能與功耗[J].微電腦世界, 2010(4): 6.

      [4] 劉清明.USB2.0設(shè)備控制器IP核設(shè)計(jì)與驗(yàn)證[D].合肥: 中國科學(xué)技術(shù)大學(xué), 2014.

      USB2.0 Device Controller IP Core Based on AXI4 Bus

      Han Jin1,Qin Hongchao1,Liu Kai2

      (1.College of Information Science and Engineering,Shandong University of Science and Technology,Qingdao 266590,China;2.Shandong Gowin Semiconductor Technology Co.,Ltd.)

      The design relies on the star nuclear program-Shandong domestic IP soft core platform.Based on the lastest on-chip bus AMBA4.0 protocol,the design of USB2.0 device controller IP core is completed using Verilog hardware description language,which includes the AXI4 bus interface module,the ULPI mode control module,the packet and unpacked module,the protocol processing module.The experiment results prove the correctness of the design,and it effectively reduces the logic resource utilization of FPGA. According to the actual application requirements, the designed USB2.0 controller IP core will be directly plant into the FPGA internal.It implementates the protocol of USB data transmission without the USB protocol chip.The design saves the product development cost and shorts the product design cycle effectively.

      USB2.0;IP core;AXI4 bus;Verilog HDL

      國家自然科學(xué)基金資助(項(xiàng)目編號(hào):41572244);山東省自然科學(xué)基金(項(xiàng)目編號(hào):ZR2015DM013)資助。

      TP336

      A

      ?迪娜

      2016-08-08)

      猜你喜歡
      令牌事務(wù)總線
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      稱金塊
      河湖事務(wù)
      基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
      基于PCI Express總線的xHC與FPGA的直接通信
      機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
      動(dòng)態(tài)令牌分配的TCSN多級(jí)令牌桶流量監(jiān)管算法
      多通道ARINC429總線檢查儀
      基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
      河南科技(2014年16期)2014-02-27 14:13:22
      太保市| 大宁县| 上犹县| 十堰市| 海伦市| 桦川县| 鄂伦春自治旗| 德惠市| 施秉县| 罗江县| 远安县| 安岳县| 阳谷县| 当涂县| 望都县| 海口市| 沾化县| 温州市| 定安县| 马关县| 登封市| 团风县| 石林| 信宜市| 辽宁省| 庆阳市| 扶余县| 丰顺县| 宣武区| 原阳县| 古丈县| 肥西县| 分宜县| 花莲县| 莱西市| 石嘴山市| 高青县| 汝南县| 商丘市| 濮阳市| 金乡县|