Line 42... |
Line 42... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
`timescale 1ns / 1ps
|
`timescale 1ns / 1ps
|
|
|
module usbHostControl(
|
module usbHostControl(
|
clk, rst,
|
busClk, rstSyncToBusClk,
|
|
usbClk, rstSyncToUsbClk,
|
//sendPacket
|
//sendPacket
|
TxFifoRE, TxFifoData, TxFifoEmpty,
|
TxFifoRE, TxFifoData, TxFifoEmpty,
|
//getPacket
|
//getPacket
|
RxFifoWE, RxFifoData, RxFifoFull,
|
RxFifoWE, RxFifoData, RxFifoFull,
|
RxByteStatus, RxData, RxDataValid,
|
RxByteStatus, RxData, RxDataValid,
|
Line 70... |
Line 71... |
resumeIntOut,
|
resumeIntOut,
|
transDoneIntOut,
|
transDoneIntOut,
|
hostControlSelect
|
hostControlSelect
|
);
|
);
|
|
|
input clk, rst;
|
input busClk;
|
|
input rstSyncToBusClk;
|
|
input usbClk;
|
|
input rstSyncToUsbClk;
|
//sendPacket
|
//sendPacket
|
output TxFifoRE;
|
output TxFifoRE;
|
input [7:0] TxFifoData;
|
input [7:0] TxFifoData;
|
input TxFifoEmpty;
|
input TxFifoEmpty;
|
//getPacket
|
//getPacket
|
Line 106... |
Line 110... |
output connEventIntOut;
|
output connEventIntOut;
|
output resumeIntOut;
|
output resumeIntOut;
|
output transDoneIntOut;
|
output transDoneIntOut;
|
input hostControlSelect;
|
input hostControlSelect;
|
|
|
wire clk;
|
wire busClk;
|
wire rst;
|
wire rstSyncToBusClk;
|
|
wire usbClk;
|
|
wire rstSyncToUsbClk;
|
wire [10:0] frameNum;
|
wire [10:0] frameNum;
|
wire SOFSent;
|
wire SOFSent;
|
wire TxFifoRE;
|
wire TxFifoRE;
|
wire [7:0] TxFifoData;
|
wire [7:0] TxFifoData;
|
wire TxFifoEmpty;
|
wire TxFifoEmpty;
|
Line 196... |
Line 202... |
(.address(busAddress),
|
(.address(busAddress),
|
.dataIn(busDataIn),
|
.dataIn(busDataIn),
|
.dataOut(busDataOut),
|
.dataOut(busDataOut),
|
.writeEn(busWriteEn),
|
.writeEn(busWriteEn),
|
.strobe_i(busStrobe_i),
|
.strobe_i(busStrobe_i),
|
.clk(clk),
|
.busClk(busClk),
|
.rst(rst),
|
.rstSyncToBusClk(rstSyncToBusClk),
|
|
.usbClk(usbClk),
|
|
.rstSyncToUsbClk(rstSyncToUsbClk),
|
.SOFSentIntOut(SOFSentIntOut),
|
.SOFSentIntOut(SOFSentIntOut),
|
.connEventIntOut(connEventIntOut),
|
.connEventIntOut(connEventIntOut),
|
.resumeIntOut(resumeIntOut),
|
.resumeIntOut(resumeIntOut),
|
.transDoneIntOut(transDoneIntOut),
|
.transDoneIntOut(transDoneIntOut),
|
.TxTransTypeReg(transType),
|
.TxTransTypeReg(transType),
|
Line 231... |
Line 239... |
|
|
|
|
hostcontroller u_hostController
|
hostcontroller u_hostController
|
(.RXStatus(RxPktStatus),
|
(.RXStatus(RxPktStatus),
|
.clearTXReq(clrTxReq),
|
.clearTXReq(clrTxReq),
|
.clk(clk),
|
.clk(usbClk),
|
.getPacketREn(getPacketREn),
|
.getPacketREn(getPacketREn),
|
.getPacketRdy(getPacketRdy),
|
.getPacketRdy(getPacketRdy),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketArbiterGnt(HCTxGnt),
|
.sendPacketArbiterGnt(HCTxGnt),
|
.sendPacketArbiterReq(HCTxReq),
|
.sendPacketArbiterReq(HCTxReq),
|
.sendPacketPID(HC_PID),
|
.sendPacketPID(HC_PID),
|
.sendPacketRdy(sendPacketCPReadyOut),
|
.sendPacketRdy(sendPacketCPReadyOut),
|
.sendPacketWEn(HC_SP_WEn),
|
.sendPacketWEn(HC_SP_WEn),
|
Line 255... |
Line 263... |
.HCTxPortReq(SOFCntlReq),
|
.HCTxPortReq(SOFCntlReq),
|
.HCTxPortWEn(SOFCntlWEn),
|
.HCTxPortWEn(SOFCntlWEn),
|
.SOFEnable(SOFEnable),
|
.SOFEnable(SOFEnable),
|
.SOFTimerClr(SOFTimerClr),
|
.SOFTimerClr(SOFTimerClr),
|
.SOFTimer(SOFTimer),
|
.SOFTimer(SOFTimer),
|
.clk(clk),
|
.clk(usbClk),
|
.rst(rst) );
|
.rst(rstSyncToUsbClk) );
|
|
|
SOFTransmit u_SOFTransmit
|
SOFTransmit u_SOFTransmit
|
(.SOFEnable(SOFEnable),
|
(.SOFEnable(SOFEnable),
|
.SOFSent(SOFSent),
|
.SOFSent(SOFSent),
|
.SOFSyncEn(SOFSyncEn),
|
.SOFSyncEn(SOFSyncEn),
|
.SOFTimerClr(SOFTimerClr),
|
.SOFTimerClr(SOFTimerClr),
|
.SOFTimer(SOFTimer),
|
.SOFTimer(SOFTimer),
|
.clk(clk),
|
.clk(usbClk),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketArbiterGnt(SOFTxGnt),
|
.sendPacketArbiterGnt(SOFTxGnt),
|
.sendPacketArbiterReq(SOFTxReq),
|
.sendPacketArbiterReq(SOFTxReq),
|
.sendPacketRdy(sendPacketCPReadyOut),
|
.sendPacketRdy(sendPacketCPReadyOut),
|
.sendPacketWEn(SOF_SP_WEn) );
|
.sendPacketWEn(SOF_SP_WEn) );
|
|
|
Line 280... |
Line 288... |
.HC_PID(HC_PID),
|
.HC_PID(HC_PID),
|
.HC_SP_WEn(HC_SP_WEn),
|
.HC_SP_WEn(HC_SP_WEn),
|
.SOFTxGnt(SOFTxGnt),
|
.SOFTxGnt(SOFTxGnt),
|
.SOFTxReq(SOFTxReq),
|
.SOFTxReq(SOFTxReq),
|
.SOF_SP_WEn(SOF_SP_WEn),
|
.SOF_SP_WEn(SOF_SP_WEn),
|
.clk(clk),
|
.clk(usbClk),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketPID(sendPacketCPPIDIn),
|
.sendPacketPID(sendPacketCPPIDIn),
|
.sendPacketWEnable(sendPacketCPWEnIn) );
|
.sendPacketWEnable(sendPacketCPWEnIn) );
|
|
|
sendPacketCheckPreamble u_sendPacketCheckPreamble
|
sendPacketCheckPreamble u_sendPacketCheckPreamble
|
(.sendPacketCPPID(sendPacketCPPIDIn),
|
(.sendPacketCPPID(sendPacketCPPIDIn),
|
.clk(clk),
|
.clk(usbClk),
|
.preAmbleEnable(preAmbleEnable),
|
.preAmbleEnable(preAmbleEnable),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketCPReady(sendPacketCPReadyOut),
|
.sendPacketCPReady(sendPacketCPReadyOut),
|
.sendPacketCPWEn(sendPacketCPWEnIn),
|
.sendPacketCPWEn(sendPacketCPWEnIn),
|
.sendPacketPID(sendPacketCPPIDOut),
|
.sendPacketPID(sendPacketCPPIDOut),
|
.sendPacketRdy(sendPacketCPReadyIn),
|
.sendPacketRdy(sendPacketCPReadyIn),
|
.sendPacketWEn(sendPacketCPWEnOut) );
|
.sendPacketWEn(sendPacketCPWEnOut) );
|
Line 306... |
Line 314... |
.HCTxPortReq(sendPacketReq),
|
.HCTxPortReq(sendPacketReq),
|
.HCTxPortWEn(sendPacketWEn),
|
.HCTxPortWEn(sendPacketWEn),
|
.PID(sendPacketCPPIDOut),
|
.PID(sendPacketCPPIDOut),
|
.TxAddr(TxAddr),
|
.TxAddr(TxAddr),
|
.TxEndP(TxEndP),
|
.TxEndP(TxEndP),
|
.clk(clk),
|
.clk(usbClk),
|
.fifoData(TxFifoData),
|
.fifoData(TxFifoData),
|
.fifoEmpty(TxFifoEmpty),
|
.fifoEmpty(TxFifoEmpty),
|
.fifoReadEn(TxFifoRE),
|
.fifoReadEn(TxFifoRE),
|
.frameNum(frameNum),
|
.frameNum(frameNum),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketRdy(sendPacketCPReadyIn),
|
.sendPacketRdy(sendPacketCPReadyIn),
|
.sendPacketWEn(sendPacketCPWEnOut),
|
.sendPacketWEn(sendPacketCPWEnOut),
|
.fullSpeedPolarity(fullSpeedPol) );
|
.fullSpeedPolarity(fullSpeedPol) );
|
|
|
directControl u_directControl
|
directControl u_directControl
|
Line 323... |
Line 331... |
.HCTxPortData(directCntlData),
|
.HCTxPortData(directCntlData),
|
.HCTxPortGnt(directCntlGnt),
|
.HCTxPortGnt(directCntlGnt),
|
.HCTxPortRdy(HCTxPortRdy),
|
.HCTxPortRdy(HCTxPortRdy),
|
.HCTxPortReq(directCntlReq),
|
.HCTxPortReq(directCntlReq),
|
.HCTxPortWEn(directCntlWEn),
|
.HCTxPortWEn(directCntlWEn),
|
.clk(clk),
|
.clk(usbClk),
|
.directControlEn(directLineCtrlEn),
|
.directControlEn(directLineCtrlEn),
|
.directControlLineState(directLineState),
|
.directControlLineState(directLineState),
|
.rst(rst) );
|
.rst(rstSyncToUsbClk) );
|
|
|
HCTxPortArbiter u_HCTxPortArbiter
|
HCTxPortArbiter u_HCTxPortArbiter
|
(.HCTxPortCntl(HCTxPortCtrl),
|
(.HCTxPortCntl(HCTxPortCtrl),
|
.HCTxPortData(HCTxPortData),
|
.HCTxPortData(HCTxPortData),
|
.HCTxPortWEnable(HCTxPortEn),
|
.HCTxPortWEnable(HCTxPortEn),
|
.SOFCntlCntl(SOFCntlCntl),
|
.SOFCntlCntl(SOFCntlCntl),
|
.SOFCntlData(SOFCntlData),
|
.SOFCntlData(SOFCntlData),
|
.SOFCntlGnt(SOFCntlGnt),
|
.SOFCntlGnt(SOFCntlGnt),
|
.SOFCntlReq(SOFCntlReq),
|
.SOFCntlReq(SOFCntlReq),
|
.SOFCntlWEn(SOFCntlWEn),
|
.SOFCntlWEn(SOFCntlWEn),
|
.clk(clk),
|
.clk(usbClk),
|
.directCntlCntl(directCntlCntl),
|
.directCntlCntl(directCntlCntl),
|
.directCntlData(directCntlData),
|
.directCntlData(directCntlData),
|
.directCntlGnt(directCntlGnt),
|
.directCntlGnt(directCntlGnt),
|
.directCntlReq(directCntlReq),
|
.directCntlReq(directCntlReq),
|
.directCntlWEn(directCntlWEn),
|
.directCntlWEn(directCntlWEn),
|
.rst(rst),
|
.rst(rstSyncToUsbClk),
|
.sendPacketCntl(sendPacketCntl),
|
.sendPacketCntl(sendPacketCntl),
|
.sendPacketData(sendPacketData),
|
.sendPacketData(sendPacketData),
|
.sendPacketGnt(sendPacketGnt),
|
.sendPacketGnt(sendPacketGnt),
|
.sendPacketReq(sendPacketReq),
|
.sendPacketReq(sendPacketReq),
|
.sendPacketWEn(sendPacketWEn) );
|
.sendPacketWEn(sendPacketWEn) );
|
Line 361... |
Line 369... |
.RXPacketRdy(getPacketRdy),
|
.RXPacketRdy(getPacketRdy),
|
.RXPktStatus(RxPktStatus),
|
.RXPktStatus(RxPktStatus),
|
.RXStreamStatusIn(RxByteStatus),
|
.RXStreamStatusIn(RxByteStatus),
|
.RxPID(RxPID),
|
.RxPID(RxPID),
|
.SIERxTimeOut(SIERxTimeOut),
|
.SIERxTimeOut(SIERxTimeOut),
|
.clk(clk),
|
.clk(usbClk),
|
.getPacketEn(getPacketREn),
|
.getPacketEn(getPacketREn),
|
.rst(rst) );
|
.rst(rstSyncToUsbClk) );
|
|
|
rxStatusMonitor u_rxStatusMonitor
|
rxStatusMonitor u_rxStatusMonitor
|
(.connectStateIn(connectStateIn),
|
(.connectStateIn(connectStateIn),
|
.connectStateOut(connectStateOut),
|
.connectStateOut(connectStateOut),
|
.resumeDetectedIn(resumeDetectedIn),
|
.resumeDetectedIn(resumeDetectedIn),
|
.connectionEventOut(connectionEventFromRxStatusMon),
|
.connectionEventOut(connectionEventFromRxStatusMon),
|
.resumeIntOut(resumeIntFromRxStatusMon),
|
.resumeIntOut(resumeIntFromRxStatusMon),
|
.clk(clk),
|
.clk(usbClk),
|
.rst(rst) );
|
.rst(rstSyncToUsbClk) );
|
|
|
endmodule
|
endmodule
|
|
|
|
|
|
|