OpenCores
URL https://opencores.org/ocsvn/usbhostslave/usbhostslave/trunk

Subversion Repositories usbhostslave

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /usbhostslave/tags/rel_01_00/doc
    from Rev 19 to Rev 40
    Reverse comparison

Rev 19 → Rev 40

/html/src/hostController/USBHostControlBI.v/index.htm
0,0 → 1,276
<html>
<head>
<title>USBHostControlBI.v</title>
<link rel="stylesheet" href="./../../../css/hde.css">
<meta name="Author" content="Steve, Base2Designs">
 
</head>
<body>
<pre>
<span id=t_com>//////////////////////////////////////////////////////////////////////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// USBHostControlBI.v ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// This file is part of the usbhostslave opencores effort.</span>
<span id=t_com>//// &lt;http://www.opencores.org/cores//&gt; ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// Module Description: ////</span>
<span id=t_com>//// </span>
<span id=t_com>//// ////</span>
<span id=t_com>//// To Do: ////</span>
<span id=t_com>//// </span>
<span id=t_com>//// ////</span>
<span id=t_com>//// Author(s): ////</span>
<span id=t_com>//// - Steve Fielding, sfielding@base2designs.com ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//////////////////////////////////////////////////////////////////////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// This source file may be used and distributed without ////</span>
<span id=t_com>//// restriction provided that this copyright statement is not ////</span>
<span id=t_com>//// removed from the file and that any derivative work contains ////</span>
<span id=t_com>//// the original copyright notice and the associated disclaimer. ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// This source file is free software; you can redistribute it ////</span>
<span id=t_com>//// and/or modify it under the terms of the GNU Lesser General ////</span>
<span id=t_com>//// Public License as published by the Free Software Foundation; ////</span>
<span id=t_com>//// either version 2.1 of the License, or (at your option) any ////</span>
<span id=t_com>//// later version. ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// This source is distributed in the hope that it will be ////</span>
<span id=t_com>//// useful, but WITHOUT ANY WARRANTY; without even the implied ////</span>
<span id=t_com>//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ////</span>
<span id=t_com>//// PURPOSE. See the GNU Lesser General Public License for more ////</span>
<span id=t_com>//// details. ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//// You should have received a copy of the GNU Lesser General ////</span>
<span id=t_com>//// Public License along with this source; if not, download it ////</span>
<span id=t_com>//// from &lt;http://www.opencores.org/lgpl.shtml&gt; ////</span>
<span id=t_com>//// ////</span>
<span id=t_com>//////////////////////////////////////////////////////////////////////</span>
<span id=t_com>//</span>
<span id=t_com>// $Id: index.htm,v 1.1.1.1 2004-10-11 03:59:11 sfielding Exp $</span>
<span id=t_com>//</span>
<span id=t_com>// CVS Revision History</span>
<span id=t_com>//</span>
<span id=t_com>// $Log: not supported by cvs2svn $</span>
<span id=t_com>//</span>
 
<span id=t_dir>`include</span> <span id=t_cns>"usbHostControl_h.v"</span>
<span id=t_kwd>module</span> <span id=t_idt>USBHostControlBI</span> (<span id=t_idt>address</span>, <span id=t_idt>dataIn</span>, <span id=t_idt>dataOut</span>, <span id=t_idt>writeEn</span>,
<span id=t_idt>strobe_i</span>,
<span id=t_idt>clk</span>, <span id=t_idt>rst</span>,
<span id=t_idt>SOFSentIntOut</span>, <span id=t_idt>connEventIntOut</span>, <span id=t_idt>resumeIntOut</span>, <span id=t_idt>transDoneIntOut</span>,
<span id=t_idt>TxTransTypeReg</span>, <span id=t_idt>TxSOFEnableReg</span>,
<span id=t_idt>TxAddrReg</span>, <span id=t_idt>TxEndPReg</span>, <span id=t_idt>frameNumIn</span>,
<span id=t_idt>RxPktStatusIn</span>, <span id=t_idt>RxPIDIn</span>,
<span id=t_idt>connectStateIn</span>,
<span id=t_idt>SOFSentIn</span>, <span id=t_idt>connEventIn</span>, <span id=t_idt>resumeIntIn</span>, <span id=t_idt>transDoneIn</span>,
<span id=t_idt>hostControlSelect</span>,
<span id=t_idt>clrTransReq</span>,
<span id=t_idt>preambleEn</span>,
<span id=t_idt>SOFSync</span>,
<span id=t_idt>TxLineState</span>,
<span id=t_idt>LineDirectControlEn</span>,
<span id=t_idt>fullSpeedPol</span>,
<span id=t_idt>fullSpeedRate</span>,
<span id=t_idt>transReq</span>
);
<span id=t_kwd>input</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>address</span>;
<span id=t_kwd>input</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>dataIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>writeEn</span>;
<span id=t_kwd>input</span> <span id=t_idt>strobe_i</span>;
<span id=t_kwd>input</span> <span id=t_idt>clk</span>;
<span id=t_kwd>input</span> <span id=t_idt>rst</span>;
<span id=t_kwd>output</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>dataOut</span>;
<span id=t_kwd>output</span> <span id=t_idt>SOFSentIntOut</span>;
<span id=t_kwd>output</span> <span id=t_idt>connEventIntOut</span>;
<span id=t_kwd>output</span> <span id=t_idt>resumeIntOut</span>;
<span id=t_kwd>output</span> <span id=t_idt>transDoneIntOut</span>;
 
<span id=t_kwd>output</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>TxTransTypeReg</span>;
<span id=t_kwd>output</span> <span id=t_idt>TxSOFEnableReg</span>;
<span id=t_kwd>output</span> [<span id=t_cns>6</span>:<span id=t_cns>0</span>] <span id=t_idt>TxAddrReg</span>;
<span id=t_kwd>output</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>TxEndPReg</span>;
<span id=t_kwd>input</span> [<span id=t_cns>10</span>:<span id=t_cns>0</span>] <span id=t_idt>frameNumIn</span>;
<span id=t_kwd>input</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>RxPktStatusIn</span>;
<span id=t_kwd>input</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>RxPIDIn</span>;
<span id=t_kwd>input</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>connectStateIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>SOFSentIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>connEventIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>resumeIntIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>transDoneIn</span>;
<span id=t_kwd>input</span> <span id=t_idt>hostControlSelect</span>;
<span id=t_kwd>input</span> <span id=t_idt>clrTransReq</span>;
<span id=t_kwd>output</span> <span id=t_idt>preambleEn</span>;
<span id=t_kwd>output</span> <span id=t_idt>SOFSync</span>;
<span id=t_kwd>output</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>TxLineState</span>;
<span id=t_kwd>output</span> <span id=t_idt>LineDirectControlEn</span>;
<span id=t_kwd>output</span> <span id=t_idt>fullSpeedPol</span>;
<span id=t_kwd>output</span> <span id=t_idt>fullSpeedRate</span>;
<span id=t_kwd>output</span> <span id=t_idt>transReq</span>;
 
<span id=t_kwd>wire</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>address</span>;
<span id=t_kwd>wire</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>dataIn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>writeEn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>strobe_i</span>;
<span id=t_kwd>wire</span> <span id=t_idt>clk</span>;
<span id=t_kwd>wire</span> <span id=t_idt>rst</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>dataOut</span>;
 
<span id=t_kwd>reg</span> <span id=t_idt>SOFSentIntOut</span>;
<span id=t_kwd>reg</span> <span id=t_idt>connEventIntOut</span>;
<span id=t_kwd>reg</span> <span id=t_idt>resumeIntOut</span>;
<span id=t_kwd>reg</span> <span id=t_idt>transDoneIntOut</span>;
 
<span id=t_kwd>reg</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>TxTransTypeReg</span>;
<span id=t_kwd>reg</span> <span id=t_idt>TxSOFEnableReg</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>6</span>:<span id=t_cns>0</span>] <span id=t_idt>TxAddrReg</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>TxEndPReg</span>;
<span id=t_kwd>wire</span> [<span id=t_cns>10</span>:<span id=t_cns>0</span>] <span id=t_idt>frameNumIn</span>;
<span id=t_kwd>wire</span> [<span id=t_cns>7</span>:<span id=t_cns>0</span>] <span id=t_idt>RxPktStatusIn</span>;
<span id=t_kwd>wire</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>RxPIDIn</span>;
<span id=t_kwd>wire</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>connectStateIn</span>;
 
<span id=t_kwd>wire</span> <span id=t_idt>SOFSentIn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>connEventIn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>resumeIntIn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>transDoneIn</span>;
<span id=t_kwd>wire</span> <span id=t_idt>hostControlSelect</span>;
<span id=t_kwd>wire</span> <span id=t_idt>clrTransReq</span>;
<span id=t_kwd>reg</span> <span id=t_idt>preambleEn</span>;
<span id=t_kwd>reg</span> <span id=t_idt>SOFSync</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>TxLineState</span>;
<span id=t_kwd>reg</span> <span id=t_idt>LineDirectControlEn</span>;
<span id=t_kwd>reg</span> <span id=t_idt>fullSpeedPol</span>;
<span id=t_kwd>reg</span> <span id=t_idt>fullSpeedRate</span>;
<span id=t_kwd>reg</span> <span id=t_idt>transReq</span>;
 
<span id=t_com>//internal wire and regs</span>
<span id=t_kwd>reg</span> [<span id=t_cns>1</span>:<span id=t_cns>0</span>] <span id=t_idt>TxControlReg</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>4</span>:<span id=t_cns>0</span>] <span id=t_idt>TxLineControlReg</span>;
<span id=t_kwd>reg</span> <span id=t_idt>clrSOFReq</span>;
<span id=t_kwd>reg</span> <span id=t_idt>clrConnEvtReq</span>;
<span id=t_kwd>reg</span> <span id=t_idt>clrResInReq</span>;
<span id=t_kwd>reg</span> <span id=t_idt>clrTransDoneReq</span>;
<span id=t_kwd>reg</span> <span id=t_idt>SOFSentInt</span>;
<span id=t_kwd>reg</span> <span id=t_idt>connEventInt</span>;
<span id=t_kwd>reg</span> <span id=t_idt>resumeInt</span>;
<span id=t_kwd>reg</span> <span id=t_idt>transDoneInt</span>;
<span id=t_kwd>reg</span> [<span id=t_cns>3</span>:<span id=t_cns>0</span>] <span id=t_idt>interruptMaskReg</span>;
<span id=t_kwd>reg</span> <span id=t_idt>setTransReq</span>;
 
<span id=t_com>//sync write demux</span>
<span id=t_kwd>always</span> @(<span id=t_kwd>posedge</span> <span id=t_idt>clk</span>)
<span id=t_kwd>begin</span>
<span id=t_idt>clrSOFReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_idt>clrConnEvtReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_idt>clrResInReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_idt>clrTransDoneReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_idt>setTransReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_kwd>if</span> (<span id=t_idt>writeEn</span> == <span id=t_cns>1'b1</span> &amp;&amp; <span id=t_idt>strobe_i</span> == <span id=t_cns>1'b1</span> &amp;&amp; <span id=t_idt>hostControlSelect</span> == <span id=t_cns>1'b1</span>)
<span id=t_kwd>begin</span>
<span id=t_kwd>case</span> (<span id=t_idt>address</span>)
`<span id=t_idt>TX_CONTROL_REG</span> : <span id=t_kwd>begin</span>
<span id=t_idt>preambleEn</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>2</span>];
<span id=t_idt>SOFSync</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>1</span>];
<span id=t_idt>setTransReq</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>0</span>];
<span id=t_kwd>end</span>
`<span id=t_idt>TX_TRANS_TYPE_REG</span> : <span id=t_idt>TxTransTypeReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>1</span>:<span id=t_cns>0</span>];
`<span id=t_idt>TX_LINE_CONTROL_REG</span> : <span id=t_idt>TxLineControlReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>4</span>:<span id=t_cns>0</span>];
`<span id=t_idt>TX_SOF_ENABLE_REG</span> : <span id=t_idt>TxSOFEnableReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>0</span>];
`<span id=t_idt>TX_ADDR_REG</span> : <span id=t_idt>TxAddrReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>6</span>:<span id=t_cns>0</span>];
`<span id=t_idt>TX_ENDP_REG</span> : <span id=t_idt>TxEndPReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>3</span>:<span id=t_cns>0</span>];
`<span id=t_idt>INTERRUPT_STATUS_REG</span> : <span id=t_kwd>begin</span>
<span id=t_idt>clrSOFReq</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>3</span>];
<span id=t_idt>clrConnEvtReq</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>2</span>];
<span id=t_idt>clrResInReq</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>1</span>];
<span id=t_idt>clrTransDoneReq</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>0</span>];
<span id=t_kwd>end</span>
`<span id=t_idt>INTERRUPT_MASK_REG</span> : <span id=t_idt>interruptMaskReg</span> &lt;= <span id=t_idt>dataIn</span>[<span id=t_cns>3</span>:<span id=t_cns>0</span>];
<span id=t_kwd>endcase</span>
<span id=t_kwd>end</span>
<span id=t_kwd>end</span>
 
<span id=t_com>//interrupt control</span>
<span id=t_kwd>always</span> @(<span id=t_kwd>posedge</span> <span id=t_idt>clk</span>)
<span id=t_kwd>begin</span>
<span id=t_kwd>if</span> (<span id=t_idt>SOFSentIn</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>SOFSentInt</span> &lt;= <span id=t_cns>1'b1</span>;
<span id=t_kwd>else</span> <span id=t_kwd>if</span> (<span id=t_idt>clrSOFReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>SOFSentInt</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_kwd>if</span> (<span id=t_idt>connEventIn</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>connEventInt</span> &lt;= <span id=t_cns>1'b1</span>;
<span id=t_kwd>else</span> <span id=t_kwd>if</span> (<span id=t_idt>clrConnEvtReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>connEventInt</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_kwd>if</span> (<span id=t_idt>resumeIntIn</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>resumeInt</span> &lt;= <span id=t_cns>1'b1</span>;
<span id=t_kwd>else</span> <span id=t_kwd>if</span> (<span id=t_idt>clrResInReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>resumeInt</span> &lt;= <span id=t_cns>1'b0</span>;
 
<span id=t_kwd>if</span> (<span id=t_idt>transDoneIn</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>transDoneInt</span> &lt;= <span id=t_cns>1'b1</span>;
<span id=t_kwd>else</span> <span id=t_kwd>if</span> (<span id=t_idt>clrTransDoneReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>transDoneInt</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_kwd>end</span>
 
<span id=t_com>//mask interrupts</span>
<span id=t_kwd>always</span> @(<span id=t_idt>interruptMaskReg</span> <span id=t_kwd>or</span> <span id=t_idt>transDoneInt</span> <span id=t_kwd>or</span> <span id=t_idt>resumeInt</span> <span id=t_kwd>or</span> <span id=t_idt>connEventInt</span> <span id=t_kwd>or</span> <span id=t_idt>SOFSentInt</span>) <span id=t_kwd>begin</span>
<span id=t_idt>transDoneIntOut</span> &lt;= <span id=t_idt>transDoneInt</span> &amp; <span id=t_idt>interruptMaskReg</span>[`<span id=t_idt>TRANS_DONE_BIT</span>];
<span id=t_idt>resumeIntOut</span> &lt;= <span id=t_idt>resumeInt</span> &amp; <span id=t_idt>interruptMaskReg</span>[`<span id=t_idt>RESUME_INT_BIT</span>];
<span id=t_idt>connEventIntOut</span> &lt;= <span id=t_idt>connEventInt</span> &amp; <span id=t_idt>interruptMaskReg</span>[`<span id=t_idt>CONNECTION_EVENT_BIT</span>];
<span id=t_idt>SOFSentIntOut</span> &lt;= <span id=t_idt>SOFSentInt</span> &amp; <span id=t_idt>interruptMaskReg</span>[`<span id=t_idt>SOF_SENT_BIT</span>];
<span id=t_kwd>end</span>
<span id=t_com>//transaction request set/clear</span>
<span id=t_kwd>always</span> @(<span id=t_kwd>posedge</span> <span id=t_idt>clk</span>)
<span id=t_kwd>begin</span>
<span id=t_kwd>if</span> (<span id=t_idt>setTransReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>transReq</span> &lt;= <span id=t_cns>1'b1</span>;
<span id=t_kwd>else</span> <span id=t_kwd>if</span> (<span id=t_idt>clrTransReq</span> == <span id=t_cns>1'b1</span>)
<span id=t_idt>transReq</span> &lt;= <span id=t_cns>1'b0</span>;
<span id=t_kwd>end</span>
<span id=t_com>//break out control signals</span>
<span id=t_kwd>always</span> @(<span id=t_idt>TxControlReg</span> <span id=t_kwd>or</span> <span id=t_idt>TxLineControlReg</span>) <span id=t_kwd>begin</span>
<span id=t_idt>TxLineState</span> &lt;= <span id=t_idt>TxLineControlReg</span>[`<span id=t_idt>TX_LINE_STATE_MSBIT</span>:`<span id=t_idt>TX_LINE_STATE_LSBIT</span>];
<span id=t_idt>LineDirectControlEn</span> &lt;= <span id=t_idt>TxLineControlReg</span>[`<span id=t_idt>DIRECT_CONTROL_BIT</span>];
<span id=t_idt>fullSpeedPol</span> &lt;= <span id=t_idt>TxLineControlReg</span>[`<span id=t_idt>FULL_SPEED_LINE_POLARITY_BIT</span>];
<span id=t_idt>fullSpeedRate</span> &lt;= <span id=t_idt>TxLineControlReg</span>[`<span id=t_idt>FULL_SPEED_LINE_RATE_BIT</span>];
<span id=t_kwd>end</span>
<span id=t_com>// async read mux</span>
<span id=t_kwd>always</span> @(<span id=t_idt>address</span> <span id=t_kwd>or</span>
<span id=t_idt>TxControlReg</span> <span id=t_kwd>or</span> <span id=t_idt>TxTransTypeReg</span> <span id=t_kwd>or</span> <span id=t_idt>TxLineControlReg</span> <span id=t_kwd>or</span> <span id=t_idt>TxSOFEnableReg</span> <span id=t_kwd>or</span>
<span id=t_idt>TxAddrReg</span> <span id=t_kwd>or</span> <span id=t_idt>TxEndPReg</span> <span id=t_kwd>or</span> <span id=t_idt>frameNumIn</span> <span id=t_kwd>or</span>
<span id=t_idt>SOFSentInt</span> <span id=t_kwd>or</span> <span id=t_idt>connEventInt</span> <span id=t_kwd>or</span> <span id=t_idt>resumeInt</span> <span id=t_kwd>or</span> <span id=t_idt>transDoneInt</span> <span id=t_kwd>or</span>
<span id=t_idt>interruptMaskReg</span> <span id=t_kwd>or</span> <span id=t_idt>RxPktStatusIn</span> <span id=t_kwd>or</span> <span id=t_idt>RxPIDIn</span> <span id=t_kwd>or</span> <span id=t_idt>connectStateIn</span> <span id=t_kwd>or</span>
<span id=t_idt>preambleEn</span> <span id=t_kwd>or</span> <span id=t_idt>SOFSync</span> <span id=t_kwd>or</span> <span id=t_idt>transReq</span>)
<span id=t_kwd>begin</span>
<span id=t_kwd>case</span> (<span id=t_idt>address</span>)
`<span id=t_idt>TX_CONTROL_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>5'b00000</span>, <span id=t_idt>preambleEn</span>, <span id=t_idt>SOFSync</span>, <span id=t_idt>transReq</span>} ;
`<span id=t_idt>TX_TRANS_TYPE_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>6'b000000</span>, <span id=t_idt>TxTransTypeReg</span>};
`<span id=t_idt>TX_LINE_CONTROL_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>3'b000</span>, <span id=t_idt>TxLineControlReg</span>};
`<span id=t_idt>TX_SOF_ENABLE_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>7'b0000000</span>, <span id=t_idt>TxSOFEnableReg</span>};
`<span id=t_idt>TX_ADDR_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>1'b0</span>, <span id=t_idt>TxAddrReg</span>};
`<span id=t_idt>TX_ENDP_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>4'h0</span>, <span id=t_idt>TxEndPReg</span>};
`<span id=t_idt>FRAME_NUM_MSB_REG</span> : <span id=t_idt>dataOut</span> &lt;= <span id=t_idt>frameNumIn</span>[<span id=t_cns>10</span>:<span id=t_cns>3</span>];
`<span id=t_idt>FRAME_NUM_LSB_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>5'b00000</span>, <span id=t_idt>frameNumIn</span>[<span id=t_cns>2</span>:<span id=t_cns>0</span>]};
`<span id=t_idt>INTERRUPT_STATUS_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>4'h0</span>, <span id=t_idt>SOFSentInt</span>, <span id=t_idt>connEventInt</span>, <span id=t_idt>resumeInt</span>, <span id=t_idt>transDoneInt</span>};
`<span id=t_idt>INTERRUPT_MASK_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>4'h0</span>, <span id=t_idt>interruptMaskReg</span>};
`<span id=t_idt>RX_STATUS_REG</span> : <span id=t_idt>dataOut</span> &lt;= <span id=t_idt>RxPktStatusIn</span>;
`<span id=t_idt>RX_PID_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>4'b0000</span>, <span id=t_idt>RxPIDIn</span>};
`<span id=t_idt>RX_CONNECT_STATE_REG</span> : <span id=t_idt>dataOut</span> &lt;= {<span id=t_cns>6'b000000</span>, <span id=t_idt>connectStateIn</span>};
<span id=t_kwd>default</span>: <span id=t_idt>dataOut</span> &lt;= <span id=t_cns>8'h00</span>;
<span id=t_kwd>endcase</span>
<span id=t_kwd>end</span>
 
 
<span id=t_kwd>endmodule</span>
</pre>
</body>
</html>
html/src/hostController/USBHostControlBI.v/index.htm Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: src/USBHostSlave_IPCore_Specification.sxw =================================================================== --- src/USBHostSlave_IPCore_Specification.sxw (nonexistent) +++ src/USBHostSlave_IPCore_Specification.sxw (revision 40) @@ -0,0 +1,391 @@ +PKyvl319mimetypeapplication/vnd.sun.xml.writerPKyvl3-Pictures/2000000F00001FD5000011164093EADD.svm]$IA X X$>aUYw5/k~L0ƛ/()8YU]}ofwԭG>9_4Ky4?j?֏篚g?=\/| ˧&ow_R?n_};jҲul=nl[6QԲul=Faֱl#Zgr[62ձl#'Zg(8ֲul=FٖcF6 +Zg(j:mdճll[6QcF6 +Բul=FaZg(Lfֱl# ngO5QcF6 +Dl[6Q eza-[ֳlHl:md@l;8{syQ ezZg(ezPZg(ezhQK7͞\ֲul=FAt-[ֳlزul=FA-[ֳltǫcF)u|7__oyr|۷n޽w!.Ǐ|x9~ӧs|7?8 +/tye=hx=G)0e^/ٹL2p_i58 "}|!k|=4XS/yP!+ &V,|x3@.oy !#b6sέb# )2\\cؗp)-EȚϜl7]|!gTkݻw>18\ +yOv,8S + :5ݍ^rFZ̩`]s|72I:˂]3\D/^pr™ Ca>J4 +<rpFJ&ê &cE])*dsEv+ZI) LBv|r cD,ULlf01%>C5MvB|] ++n+L_6 aȧ| Wg#j&rtVt5L4 8(dgilsbMm2|ia׃=*>S=lDmB +JL?I.ddZUB68 "nCVI".m$vSW9pM2+[p[ +Ij'TvpdLe! ]{5O}LtOASH䗚v널P$|N +6]Sw +tٮ^͔A6g +*CrOR"z3S<%x˯K5;5nU0XRʀuΕZ9c+x*NT|;iq,ceQ+TMvKI!2Ӆ|&CIJE:2HA9Y pB)-bl ?YmElfB([ç׷݁UDvR,]\&D{ +PU!V›]'&/[typ"'/d&>> R-Tm%yBVt!i]-0´V +R. + ݟ{%]=4Rʦ#gMe+F~dFW%%18*;!"ri3%Ww%[Hq@*' q=لP[ڔP|fqZ\Sҳ2z+UȆ~1{qI UzE,-3F;䧲>+kSō|vH,̷0hq`A\*>aE)#圱j<_jW @]|Ygǧ\veJTI8[cwc\&0A +kfħNK0s0LZ|8[ +x Lb&_6>}BS%"[-Hӵ@f3V,y* GÉS&%j%au(-yϕ Q3)Ax– x4|;@ܢR-L""=ƙTfp./a?: +qH+ͧbINeVkZlg>+%92H, $#\˖VN J&!FaŊKۊKU4ne)H4Oj(#zm%G +#ZJ6 +Rtّυ!'xMIe 4OUJV4gV`$n QR-#[5%j|pZE/~6mjbG{:>A.}qi_JIQnq޺,*M=a>`Zd~%]iUIVGv;T:"_yuMuyNm!yk>S(X`#9$ä-w68s nS aoa;p&n6f\A}Y 怐uz0۔? \ʭljEogs\؛ +C.^z8Ϝ[' +;?R}zt&U0o-LӠ3q y2tiPFܺr|/|b +sMa+yNKZ/s)7vrapV`B5O($Bw¹IGs9V4-R|ʝ\.nxsAd4s)BZΣ\\J`~`KYZ<<ιlΥSAZ~\oES9_ڼ*]PK(p4 uPKyvl3-Pictures/200000070000AFCE0000FBDFB308A81C.wmf?n^EQ(P%`_diB +`|֧ϙ9y~"r^۷-ϟW_7.__/{~y'~w~[>叻w˧˟z?wl?/9B"'!z&$rv/DNbcH +!t8$rµ!V ifiNB"4 +!$r +9A GN"'h B-r9A DN"' B!r9X–%ȩW#rO&|̫!lU$|>!ztOªH4*Z"' WH'.yC"CmvWtb=O|-͙}sCo&'DN9 + +c|EݜFz1hNO='Ir}aZՏ/xQ9"EϮS;+nknNCKś4Ժ6Ǵ`_h!Uu;{^ݺ}NYBn2vr:v[%B~: 5m-~z ڍ{_-+ZaStb=3{-x`oi׫{[j=-{+^N^Ѯgrxr(~vŢ}-N~EuH^ QUO-_99uܾja0H w: =ﴏ&͵g&=O/-dըM_QqcCuI>3dw{.j+ _e(-엗X ډǗX,4FH+8엇Ӎ}"Z#}(Z#}ËΜūbΜŮh$D/6HZ=j@ֳ{ h• #?=iov ^!<=B+vU{t@*ma1 GBHlKڞ +!6=B:#ms{6tFr館;wBHr9-ir'!͓Ӌ?K 3jIuI.-'I["$_l݀bsz?DŽZ B!r9A DN"' B's(\#'ωHEaʉpm4mNt5F9՜ZDiS!$ B!B!A DH"$ B!B!A DH"$ E˽PKV$PKyvl3ϣ[[-Pictures/10000000000000200000002000309F1C.pngPNG + + +IHDR DPLTE3f333f3333f3ffffff3f̙3f3f333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f3333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffffff3ffff̙fff3fffffff3ffffff3f333f3333f3ffffff3f̙̙3̙f̙̙̙̙3f3f̙333f3̙333f3fff̙fff3f̙̙3f̙3f̙3f333f3333f3ffffff3f̙3f3fOIDATxc'F*U0RU<4IENDB`PKyvl3R layout-cachepF@P P P P P F!(}P F6:%&F:%#(P F"-vk,XP P T +"T +T +ST +P &P P T +iT +i=T +5P T +T +P P sP P  P  P \ +P  +PKyvl3 content.xmlvƒ { +|sE +O%l5rS$"@Rɿ +G'\ @LHh+ 2"2̈6'`;e?̹':Ó{yw1~,X˥>|ۙ[ WB8霝myu-rz)ߗSD8!.ɇeh:'+ݼ;;g3(g р`6n<hĹ?~i +)F>YZ `n?ܮg·Ds^Ǵ> W?<"Ĉ؃e]eLpxvonCܗ涾ɇ 9nhw-V&; 07H䷩!_=YƉȠ֍;v㐻g{ɭ#0ߟZ3c#6;$zl}Ȧ +~@JFn{:[|?B.Nwm-mv/4A3ᳩC! +>24]Z&ҪY_J§jgX=a),];N/ mz&3Ǖ ~*g)˻m]H?Ww+aM6)(ѐSJ^! I~WnWxk~͎PtĮ(M(F +G6 +ް'`ԕz=Ir_d +{j>|H<}qu0k 9׌&\kL{@YXafPvY ԝBIK4A-=e]h ]x+~ +o%.@w|@9/EGz5-D/x>QXX[H`OBzD]- g- c"n[9lA^?1:[1c*w/pkV),+\IF֎<4ɸj-_?z.^jCeXc+s˷bj~o; +BjMV꒸#יenGkE_}~QH}tLiR).QdA4(.ŀ>HU2{Fc݁^Uz:䆤>:4VeEKdp|U*kxl5lUց$𭪬ab\%2xQY%&'3$'9"'0S~8UQ %]Oxךon Wz۾T>7?eȎRREaEuTj;WިQm +Wa +*8hݾ<|*d7*d4RJE)[|XUjyFyK\>rS $)IG@$ H7{ݡίm*}؇a))ۓ0`o L{&\͝ȋYUة\TUIQ#GoTUZU.qDu$2SVJVRp\uHpt1&"1}+\"UT#_&&1*,wG~kj,i/[ܪ#MUYQ.ܨ +qPY2{Y㤮*JL!ɾ"ҙm~ޡ$VUV.EeK+eݕ 2L+ @#jT*6 +mC%TY2ʫ,FhUVv(VѤ6-\"~Ÿ;[ez:UkUV D7*BC,FWʫ,FWʫUVPVUV%\"򝐥*Tf)YX=,+&eX[R۴8p ^Tw*]^RU%,Ъ8oZԖsFe]IbWbWbX,:~eNS D7*tĮVSIubMR<~A + ƹKdd 6.$`|Mr[@[~`S D7*M2M%UMeUMeUV[PlۂMq.ܨ,_Ǯ~!|r[PVq.ܨ,_Ǯ~!|r[PVq.ܨ,_Ǯ~!|r[PVq.ܨ +yY^cZU,[JZ3JRQ.ru( I}tLi⭺rF]%m('JJˌr\z͉:~9Qr.R>`;`^Ne)_0?Vs=`.ʒN㕏+;W>vܦxir.RΉR;'J9vNDx9QJ.⻉¬}/Ie6&JWRRQ{2iJP6W&q.ܨ,xvi%Ja +4^3GJ#J{(Vx67\"w.b[Ġ0ԉAM=~iJ.;Wa[ReK-SYm$[MU48p nTMc7W^9v{mb(V+m8p nTߩʱ+*nҦJrTbM%sFe񝗥;/K9v^r,:~yYJ.ʪP*Q}*Q*kpl<UsEe|TC=v؍?$VO 8p nT/cWP]B=v ~q(V_m8p nT/Tf/ʪ,F/ʫ,f/ʪš$[~/\%2QY|WP^=v{Mնš$[~/\%2xQY%3֚Ȕ1-G92fJ QD p(7IzH({ח*=x'{*%})IM2y$ODـ')deP}o%/mB:տ֔JK\4HQ%p3 {5wQ~UzwERB}J@@M:_ +l42YK@my?B+ٽ4Sn߶^/緄²f,}"tӁ +QFHFx@Oq@m1*#Fhi~jێQ;{b_CuH҅]Wֿooﲥ+su꨺4YAغ:-W1}ݻ\goł!6(G,\EU>(3rLd;2#(^\ tE?!C,c?הWF9/G6$ŧѡ(퉾H}eH}C-{jxB:&)[x0cS2>P>{:|qA,,56Jp=VKmoֱtu0火8}Bn4[{M`1g PG꿶/_:|R3@qbMS G#Tk8 .?Be,;kfT>yZo =87};;Nwu':p.;3^P:jaX[MO9zkn[ +㯧=n0֚2 +o=!gA87&\`98,X>]oB4>ګq0c 5  +"(`@42:XFYyD3X X{?y I6;- $DHr+IZId*w'"5>#2]JԩԮ +QiKX @P;1&؎+ }2&"#V:/A4I?ZQpMZpc ޗuqv/3-}QmeY͑7>u/ +O\ Q8$K .E +&-k,bxgӜ{j b }eT#Qzx+ڷ ,- =Oٜx2BJO1Hm^[ǐ5lH9*e=HAw#2ݵҹ"nչGŏԶՉݦ.21ď(SʍكC3pݽ?Y̭cJymlꕲ݅Uj(*etD+S QʶǚR3ȍfMTV"JmaF\( 9 +CKJ@/}]5EB'=FFTJ@ s U5l(>bu'>Ð:镄RGDuD^CMln_2M!W 2f19;ʹ(gmrƿ `pc9hֺK܅l9ޝeC$ǞDJ=[O7g0DHh#b ZbgƨÛ1 6Z8:W'p.lݓD'vɻ^ˀ^W +Y4+F(T 0w$C + %U~Yțֺm[v: + Gv9E5DJ[s%,"m>ʩ_M쎎2xfxt=Cn8~܆W"͢i0a9"d-)-WRw~(tI񫍠)8I?]{U9ʌf0g]+|^xd$5J  ޢm +W4]5ɰ5tQeng\QyK%?Q\# +k3I1Ye]>M7ʇ*}sE +&`B) +gPp4 `b0˜aL3L + +Fgg8 +d3L@ŠE Ohv & +oYM25áRTK0ZyjqA.,ΰWy3 gد<~AeCpPy3<*V߰Fǐ3˕cHҰV)Wcqqv"i=<ٳǜc)P׶Bs _AN,uÈB:ar>ށZ p~ +蠕W~%8 +o +k km +"69ۭL ß|/3vc-t C)r",>%{Gt +S #c|BƢ8. h4q4yB +נ޶r'"e1:Uo0GX:w-wQqW|)$!sѿR*R0DCCxs:ɥڹ"&7߿(v{aX%w#_*Djq5<ƉB3%h<:0-h(Sƒx`"Z"S9Q 9U-S9E CYjLGfVCPEtO:tGj?dfz&s$3 jU~X2)2<84-"%:%/J2IIm,b`c`R$3(#om=[^"X~uklJݑ* Dbې%YC6GIf!?!? +QEOC3ol "(aNJ+ qhXDY;4a壸CtY9ldug,aqp:E,WY J +SrH0ѣH܈EPGJ-Y +J˥,=IIfX`0`,%dWǣtY]mK2)!OJۄ^hF<.x +!)_  PQH׮5H4kHŕ?? e>"͎=ޙA3"n5#k#3P3D&o8ݘYs(Tp.Ƌtx}:^alp׆/#}+Y%PRߕI ,E@ vfw_p7|{jWQѠL~G +ԘWH!!I|G[ز:ΡK/>aP]~Hۻ2o]qd{TmZجĮؗlf%Jg;yF߅x/C-ksd]Nd:9P(P找~"ݑ"@$vAPGn?&PF-T)D>B㕿&P}n=՝u%K( &D$405(uw  bTFiT `*ȃdɃ)=D G#?=/Ďj HuwqÃ8"ܓ C{ed,< +WJ'Kl0,9!Bhu2 ++OJGAwOs]BUvLRrZ^ +UN>8hbd }_( c=aŠv#|vey 3@45,n߫@*{Q&`$/hK#솄;u͸BᏥ6|DA-ӄ,;-{ +Ad~]QU{Ү!x!0k8+ +R⣱nxeyȥP10mmnF*u{R?ak% +y@e6sUsU*εY)uè"sU⼍祊*'SqUEw4L/1w9>zss2'k-]%Iε?+XX!9W~*mok\ᵁ4k6])*kQHvGHs(k}ʠ,V6b^");$Aq2 +@GrGj?IʗT<[_pjsNζ~"XQ:{N%RԼZMMѨP}ɹB"RBUΜkB$+cȄol&"RC54? +N-. kMX("bG-Av,#E,}fDwcdc0R~R@ =N|ۻADX{&G_o$X¿ݭ‘ymi0RNuƨtu/\X6+3>ǻ-UI /j +|B\cE ;Ko7 /?Nwn@гiPv:h[d'iȢHRGb]OzO񼵞9S +@ dHjdg \Oz, +M=[K(଒c~Z|/0tG@Js-54x1?j4[+jĄ +^"-w_*F܉$*{خs>pA+H0`wlى߀Wv^ + #gڰ4W+{H^<( ++`*7q Į009m*K +|8+wnЮCX:,2;WHbG-ҙ2"̽ 9?a0Īqf9Z.XPrxO{yO'Ry,%:@ɂ +yEiqy T3r,Aؑ +E(%({-cftX@D3<'_T_D{%yO~6vC> +y+|] LmD:|rj${rG=(%|,˖X7#[B}man +7kFQ n\ޙ +*bQUηC{Y9Ok-:DQǮpn@ք#"f#XK $b\>YzGd~G̷eK_ղ.,> +Bx*CwYM <=LN~9Ko +5X[ +fTP#6-T(r$v Z'RYu,* +QKAA=[Ό +7 <eAPtV]a ޛ~OM K}i%>Y(?w2 + ++}9БӀ@? +y\sk 5 +54Ygcx +? 習1gem + +h/j;s͆3ߨW~C tlZΜOw6Ÿ`W#KALftE?t)ʸ DnCTɺIe9x7 +OޟOxNL +ɝ|@F^ +\4^Yt!6Ӷ6?ͻT +IK"9=9=GͣGCCOͣG =7azo=<&ih].w*̶ƷpC@;33H15Sjm߀ +M2DQ]'0 DYu8k>[w6RV +Eܸ##70V @-c*!dN!*䜐FG( +\/Oxl$IK~$9 zE2Ym~~,W;@ƸbE%m Xs ܑ],pl4wu*d~ '1|΋9GgPV<.&p02m, BZ_Hm]%.+(iRW(5`B`.\&Hf o唀$>i([0)o>B,Hx +H${S:0D h9po7RHϟRdIYS*Y{85xZ0 "Un7y:zrbsjϓg>Dυ#jÞxpB!ھ1mI_@{%sk +N%b${:! uZy/k3)$KAO嚋]L6ôd8J/#dXK:g2 #}*eyZ ^|Vn~$?>(x:,9/7~P`] C< +4`]t'">-(6-&h^L,łU+xG"*t~/bpJ~{|J镫< +_Vfi@h +N?VƪBOhou}ux0g$F%ŊeJ %iXSzb5qғBI*?ҏ#t$0yjWR80+T 5SJ>jRh7TvD9U-WO[>ʦ&\U[9BTw4媀2d1 +TY@-G>%I6uZc&P͗l8j8v +HfW#|f{+2 +ppU?ᴬ B,b3n`i s2ST+xwݰ m +cFTbC[\L+b梸m@yB8:JΟ?db):nPLےJ]߄J"'; +!M50[Z6;LV";${SbF + {,Tb샿o?|9 3W/~b;HHSk}u Q1ˊf#qGcp[xR4d*[@5B2I&46n(6!ɪ8d2tr~uIhd!n"H6={"F#3 x~y9iTf}Ȧ+~ߌ(4B+4^NǓׇC0976 Wx@V&of$=f$hb@1ߎ/^n÷ +i^݌'4w;(W5ˬ PMu`?|ec2ToH5|YSy dmٴ~~ +TJ~b8qk9봲be/u1Q3.i%O)'a +0Rq{x8|R^Xc)e\Y\ ,d_?^MV4CMFJWFQf)aQ63]Uj{Aa?n/=9PK {ej(A.TZ>ilW +%m +Yt`k.-Qcl2m|C"}S94d~aine ~FxWQsjpEt ѕG]pK0cPDAz]01(]5,5mGoY!XtlL F`c`t7jkkb +X " +%mQ +>G6e82|ā +^=vrwftT]6~҅>\Zՠ'Xs`h;{(U[7ؘ5> Yv|]|ZOqx zhD@p6w., 6l˰cTgv|,cf-tk.e65_6 2Z51Hܦ3ں51EBpM̀ ^xiw!dtQ3ËMOi #|#l*bEx+UXᴬL-0gol!fwQ{/PB~*H,g +37<(*tMQ#RKkk 3$hU`MD2MGyú+ ?<w9f[ +Ri")?Op՘O[&@ۡk3|!<͵R$cn$:&Q+0ZI)0M2@Se+&Cحv0g 2ϋDfv^^MP&/^:+,t( ee8 +ՋN pLO/._%eQSoȑlv]Xpcܰd 1zE8+\xcZ޴6MWcz"M[,|r5[NE*:7ٺlV +װÖKu$ҩ%K#V:@$  ^),ֳ^oMBH?$Œ&84PX+N46T=oh y-(kq +BlB~Ŧ& \|35UC,W6~9U#:5\:Kԭĥ^{#/~r5x+ +)W(=buT +)w|.M ѼPH:7 `/pNJW+U]tP"HR +~B|/Vr1ܢߦ-%\OZ @WM.5\fK/-/ϵc56naKą8N~ HZ瀱G! M[G +!]WCgћ1PY&[#|#H}BNJwew ϷKKt%uuyRuFj(]k}궸aY4 {Nc0~x`UAEKi;5mH͗b% +uXFT[X*,b'?_[XbXR,X0 *ŎM;ir~3zeKQK&A{PDq~5Q<`&K&Y~uQ| +Zd,FF}=AwDqk52JWHMR'RkNXPĵ +>ي +fDgn>^cX8=Q}Zuxh#tj$G_:4ITչ)ښm<8(@i̷̡H)*QM-_ +(l&tJP3M~zuIdwH}j$F5Rmj$[հwښH[J0uփb|IfP{^U_K +i/ u_ +^rp`sB"DW_./Qj+/_Qj𰓤sxTB'҅1d#=3-Nr|H{";!х8$Dj qH<8XNRT1欫$'3H` W|f9էJA +gןOdSrmj,b&aҕ8r*Pl[t8ETd:jfb H~<!GmSx外مdJ2ua%\[a%t +zba'KS/6 W[3b*+U.]x'٨쪃SD)8ݩw*`I^8 +4a߉"ีXIZ_/>N{=;NKd;;;@-NxNW$wW$x_vvX tq5S$ub#!/GpXG7;mOKۓd==Ǵ=@-mONV$wW$xί^9=I`HgQћ'~2u\[c ؉ז'WcS"x\o0tJѶDith00/)7Xlzc(;Bp2]݄'RkoOxRyBo 9=T)y0' @o9Ub:KF6(_fȖNd'ٌ$w +S]9F?ϬP}W"'6n/nbw |DLy燆!MĻ%#\#Qʦ?[ֹihmVώt:6YrP¦1[L6Ri +-lEi[^nrurCuˈCL6Rj"e!J[u˜;S[bF,SD6\,9Di[^npLg04gJd~L\ï +$?{^!?{1@bke>?v^̨7;1'wp;~]+62/+lcFqV +e_jp pتG +7w(/;mUUCTLOwتG_=!?J7MtZ wVS +[UCa*o|契ʬOy zr࿎o?^~ +!t{Id +?K7ݮp ~#[p=F~#Z}?HHL(/bd[;Ӯ ߀{*X%@x Ma(F#z:e\Sʰ" +xMBs +a.F$#zqSZq82f ` +˥mԼMa 6d,L +vimp+L@/(B< j~bp咸2=6ܺ'XV| ѭ]!tr @+|lpo`[^"hKG홷? +!àmSNsDAAZw2}ȴ +p8!ؤL +1V3~#1}+*7?LEs!Q!!!!QmF +8DW +vF +9 #݁kO3dn +ap~1$Q=Y(D@!d  +?埢 >:E^'V̴@Ve1Wumi5ZE2 +E+QKRm_Z"\MilT[nacxKû&r 6ݹ$v ʤQ{`0PaYaά#1 +p6Im,g=}@=EOlXsjXvcGPc嵹J57]04 E$tY(7 K%4~oŁ<, +׈s5&6=M@bL4'>LimJ. :X7|AD+oϭ8'BV*PJ,ڔʣ`;e6eK-AJ_/nY*rNl򣮳:wh.[5F`YJ|3Fʀ]D%=ɵvlV.`aɂ ӯߘ0fV.`w '\~cV+@'.ŜW|πdKzvcï4U/ۿW=jG_jzG|R\M"PDxB:El0)+*`@M_pDpRޯ9_ENEZjjTZ5 +*EN<|,*K1tUR*u)FRj҇5F(XN0.iB-_m< grEAEW8?||!%EW +ŽXB;:` c 1]SUq<..ktUڇ*uCڇ*YNڇjvqi@"$@EW 1t'mEepvJ]`G.V`G V`GV`MNOy v炙~3rWgH?9(E4W_c,2Xt )v96t M4N ޟxC/@쬽߫1J<4yY/oTКs(6A(0}?ףKgK,䐨x dzw: OB:.\eJhFEiL/X8s Y-Cz}g*C1LC2d`d1c XkvTV /K֙]X霪\-q'aWb\Aw8@}/shJijPȆ4$Ł0G>t y&rQ +dJ/Y&f['"36IN>`}/,/M'RXЇw5 +XK"h#:btu'[IHd<(;Y.W:U:S>%Q~x{t;6uȐ~%_狾pWq;ږ4-^WZ~yǪViBci #֣>LxAϳ v޿ʤgiL3ڗ_>ݎ p漘m#]K BgOL^o +Mq[7qFy]an:x[K̃;W&Zn?$4^Kn&/fC6ZNk#6d3eLY[G>+_Up8I8 +̫2 NC8lY45N{joGP3'i=`CW>}z{ew0۲^B-b +c 4O-5"]Sp(Z4禨֥el,ZUMd@О&忦߃GhyԆުkm江竹~DkŇ5x=5d6\{>cW6P3$ЗK`C5#ʾׄdSKx/\Գ"~6?ݓ[?ms#gs~Ƣ )_M>gW%m=6 +}t_7~ ++eXϑ;ԥ9+eЖA9e 6Z܉LkC5v CrTre +h/?GȫOv\dW4 +[N՗gJ՝ILπ-M< ګ!3x</%rJz?h9}Uܒ'+*Hx<Ϻ;+tL=WPpEjWC\|"Y0M)Kdrq|j]T8MHXyrXnĕPp}X/ϾLa)3ƒ7 +G[3fK[=w@ Ŝr/S %jeސ{{{3\Mơ8U-=2b +-(ؖmGȟHTB^+*#Vnf +\U)^E2\N@1"J/l+'痓WC';^O^@(k"JYʳq; c ӏM&zzׯwC%Pyqk] +Bvs\D-F)^x{ z}a"*t+_i|6#܀e3 [jn'}& +C +ȦB"r*i}Pw=aЫoDPAՌ+|`l>&(;-eKchc{ ZٲiYR1h + 6_ }-CLF+RSG\Ae8 +;qJXITx $jZ􀮗3b_^$9_BИ +j{ta0jg &mСs˚p275.Xx1:Nvt~zeaA;`!3Gܕ +#̵ +fk),l AנstK>Yo 8e+4htW k|,uI +:?pߟ4ݞtcd@\eGxV(Aվ6rz(K ~7?:dQm\x+mΏ}"8kIe {};?ptI`Ҷ^$ ?$ijKwc[]tw!VPj %IAj_khxI[:,ExƱAP. D9bxĹhۈgr)޿7"m jܶ+Á=YsÂτLC|P%{JV +P*$_Gq ;w3kZX-AgNp>_PKZXPKyvl3 +styles.xml]8ODoF K$u׺j.wu;Wӻ?!8Hs_jk_aqo&eѶpf&2osc n4nGi5׷_Gh54x#x+9 ?޼0K'ZXwۯoG[҈t3q<ntW߿hPh9 +CnLЂOp仱%w 6D ͸Im/b6јfBz%";Ӊ&Ȓ0<bkn& +Gg t"`%>Z6x"w=\RKa>;IDI<]aLGC4^I1"3L(tS7uсMC|8xIK͜ +B3a_^3ƎϣS a=l1-_O?nuAF\*\\52x}.6:WMun޳a{`CI yԛHl>\=>!C>%#\ %፲X$"\]Bfi +Hm\><7mݽdq:X!k~$']'Z?Wz8\Vv &63ǐW eZ~6&RQ`i-e +"did! +2lA{E9M&xHq g\lJK:Tx2!xn_QgA|Z$5$cbryvP &bY:,[y*OץlL7lE)j9(mJ9`17vfgsySFιe`pF܍ +hVV8KlO3yyֹ>a1+RU)+aߍ-2}qq+7rh- r Ci΄4SJNHWJ+fjCwaKm,K +\ +@iiin7&F; +R|4<b֚kWA(,tiCy 0M;k^n#Bn7Ux:(r?|}@uRY0QG=Ѱ)8f8%LE6˕ɒՃ"P´Q{6>CX6ж#$Jk3, fWKz};s1><7(3wYR~KNqX0]ܔ=(%L,UgML$Ҷe.nj;G.nBA(m/uz_BF_ +01rG6iUо0:&_i`/^):CB~f{js)ivm>EiǛ$3:~GRJ6{-*s~GiPGNď:}!+%dhK~wQXO N/K=6,wQBVW+[=IW06WibBP/}bߠLm +BU}T]9-smMNJh\Jb+1Z:Cbf7-eZ +K1M/<)ZQd>῔M*[٤"6PK ht]/T~C0ʸSTzfjS7`O÷ThFK^**&n2g]65p̞3,*#\ / "#R \)~k&ϕvve+QN-*Ar7&Ҿ=*黥:C]=)^7*eEW5(U SPGc[gBPu&rhq1@6O?Wec#D?qG*?xl uFLޫiVVp-:(友pƖG(0(aDNP&:v;.?hFuvHZs!P0"i9RDrV#BI`wIQNͅt'# +d/tU{g0 D+%NB[A>o y0)@VncEY4s*CkF#26a4ڄ)C2c;`M kA k앑j7E&^0ڄ| Mw!|4.Aջ)T닛 +2N)3®ݯmƏ +j賙o^'krah2(e(P+CZKިW kxQ:7XTW.2.?aEOZ?~Dn +lj%p 7q`]|ǦvsRy4vG<T:>Ʈ4"OqM^ș{|#yˁ O\jŕ +mpMQH^AI៖pWELu3xnhOiF$-8O(a^w'j@_^v~uӀwdW ځyq?^ke]j`1@Ph],"Ӱ56&~afMp=4nIz8@YA}p;WU9N0՜ZU=*r]*5,pՉQm2S/o2_/:qDGXu(u*k^. هXsd~|  Γ_/1p"yK!A3mKA+4n@.BGODIԀ)و~ى #FNor3)M >SRm$!58Yq%x0ehi LeZds2oj9랓E WE,wZ7JI[d'S^snrރN +\͙|(0nPAY: : Ca:| @9 @9 9̆TtA@ta0a^:let|r*oQy !n! +EWpc +(Xu8V-q!@q!Gc=O)Ё@t Ё@U7'kHM+B ++(h,Xq-Ί +=C@=hz?qHmpb<>@:kӦetf +]?j| tM\VZ2"Owz we`E:wS[>stV 5Mʀt#"Hv^!.bSBlJM )!6%~2$#Q^ ;wd,UQ@u!P@u uyg9,@<@ yoܦB)z!?>f9{y@]t!Ѕ@]t1`tQK8@@@@@/˽n[ X!`VX!` ++:f^_qx x0PxEȵ @;bJ2ؕy%c6HXH=i\J;+-%F:%`,x*+3%ZιotցnD99sl­呺Rl@G4mho8"ҦI~. >j B;$qgɸ@q[D@/2ݦl˼0Y$ +tJrHDS3\dSqt pAX#zé^dYf=d1%~w:$!Q]m\?0&K:0Kt k Sϐc.N4lyg;"N[!p[-NѬHi^b|r?Ik9V.❬:ahkw$CDCG/e]'|sP_$]w5DnNd`6?M7"N==G#ω<# +c%㑎<|ŀbม$ Я +p(d05GY2,"J%zLґ^"$:vipߥS:z 8}HLĤW ~ޛ % fJD?~&,nXQ<‰,Sʍ:[eo(sB3ɤLÆ.Ei%<J~|T^^)7֯qMKsԇB2Hd,z@*b.?z nIVrppي%5oEHa DpsIQ$E*/n\+DQXM/;懢([>+AXGi g^]׾LN +qFE{nrAݧDȐVf>N̓M2nr 59vm|oߧpmjnPKyvl3 Obj00DFE385`ܸFi2uefffffffffff̸:KfflI->g{nDɣKo{&ч%Ûc6F}FbFKof1Gc_k1Xy<^6!~vu?r},9X-Ǒ r"9DN*r +9JN-r9I,gr9K-r\H.,=FcI\Z.# +rE\Y"WCjru\S%ז:r]\_n 7ɍ&rS\n![ɭ6r[^ w;ɝ.rW]!{ɽ>r__ Ƀ!Py<\!G{jKg_su_a$?;& 7g +wϻFIzcg?I,O y.Oʧz? E|Y"_M|[#ߕCX~"?zWzEzA =[گ3sܥuݟ)3g^j=KW~= +7vgu7 |ooy5{}W۹ +g̮3z=0:,g/>Os@) /L /L /„}#t! /RD">aAd@m!/hD aAd@ +!/ڒD +ð 2V} + "y1*aAd@M /FD򢗌aAd@!/‚jC^x "*L{XPU9ykXP=yQXXP%Vy$,   5 2 #u 2 ;   #U / ;  *@NT)/ L^R ,yAX@'3(O'S4yy|@>(G1|B>)Og9|A(_/W5|C)ߒow=@~(?O3B~)_o//oo__??_?;A(wl%rM.ǐcAr,9X-Ǒr9HN,'!r29BN)Sir:9A(g3Yr69C)syr>9\@.( Er1\B.)Ker9\A(W+Ur\M.אkʵr\G+ד +r#Dn*7-r+Fn+r'E*w=r/G+ y*')|F>+%|E*_7-|G+ߓ#D~*?/+FBRJZFVN^AQIYEUM]CS~+%-#+'rlFο9P&Gc1 9,ǖqxr|9PN$'I9\N!Sɩ4rZ9^ g3ə,rV9]!sɹaZg "SŘZ@s^3, +[El5x@8"< Ny[S + +D@lyaG +D@Tya; +DDBs$I:}K䄗36:=XVd%;|<[Q0mqtai3f>ޡ̗i5[̞՟k4u\M2x{j7|Yd6{mytؽԭjN|yl뷽i50})] cېq8b&^rbp~om;n:g~{:f1xcpO}0'Xa%{1V;m2ma{hRF}Pǹ-y`}OeN̋7_Vx%OPo[VIE*sיѹ7/;m+,#?ju;Ś4_`Y}VnmuG/-VM^jN3[bhw#B_@ 0dLi2R';ǑqԽ2\!ydؾV= mG:iXH c~w۪l;fZ +VɋRDFsuNRGzU=wM~\6\!~( e9e¹$SuVfKIOR{6\ [yQ~NS[\RHΜ:jrg2'L^ay`Uj +WJLYNYp.)ylcHټlW3X`% _QMi}%%Z-{,5}Cqr.6_T'7\`KWʼL^6yqpG4/sNj[/-[\=0x.C?e2Ķ^60BqMFi{eIVeS[[1=0x.b;eÜOCn%mBl; {(=4aZۥ$x[+_Bv,NY0/X:̰$g|iLrlf?LݐL&QZ/*ʸi{ZZj12ټreí˾:kۣ^mJhu:.x+ ,5ڴqLb{Lep_%9l`29ira5,,.\j +/auXWd7㾵񔙼[d9/^[Im'4cܩk o<38o~y ޾bh}EV|<[LI0?q&7ġNFK6"0Y͋ZZo{{uּ3hxɴYv *-p,!uۭ00\H͋7_Z0ޓnng9Ym;58̐}Nn&Z:ˍ~jԶ* *C1k QEFNtCm+٤m*ΘCk ?gVu9QWrjyTIJ~,F۩6M^V5U0o1e݋ʿRG"[Fya"گNuVUyCd-{PWrR+ӂMyU| |QE/5"קVv/,ɋ^v'O +VtJ:NO +@Hm'Z'O +$?i <5z'/x<5:c'<5c7h; <5hbb/Gb<{a/ +c, Ev  yk +^6a /j~y@=!/*~y@!/*~ y OI^T1/>^ȋg0">\" !/*D"#UVȋ +h yQ3/1EFKɐ9h p#ڼhqL /ʘ7:2,y^4% + Eז8^4", ;ȋfF%d,y,?$/(/z6)r*KU)]^4#>ΪPƼ%žLX@)o^OC&,ڔ=/FPy*a!,!,!,&Y ,>P+ 7  yaa0:C^1) ()E*@HoRPjȋxO +yч< +@^SLPjaUyQ@LP1M~g`ImɟYPhy^4GyfM E/@2H ȋQ!,:A^h y +a +yE' Q!/ ,FB^$CXB^BX4 3 L /L /L /L /EF{ZnF#ӯ߾unvL8" Jy&`y&P{~l]Idy&O'Si|V>'/[,_ +|K- {}P~$?OgsR~%____????˿ȿʿɿow{QMW0._hrt9Scrl9W'Ǘ Drb9TrJ9ZN# rF9Y"grN9[#rA\X."rI\Z.# +rE\Y"WCjru\S%ז:r]\_n 7ɍ&rS\n![ɭ6r[^ w;ɝ.rW]!{ɽ>r__ Ƀ!Py<\!Gɣ1Xy<^ O'ɓ)Ty<]!ϔgɳ9\y<_^ /ɋ%Ry\^!Wɫ5Zy^ o7ɛ-Vy]!wɻ=^y_> ɇ#Q|\>!Oɧ3Y|^ _/ɗ+U|]!ߔoɷ;]|_~ ?ɏ'S\~!_ɯ7W7wO/o[/o_?^ eS6._hrt9Scrl9W'Ǘ Drb9TrJ9ZN# rF9Y"grN9[#rA\X."rI\Z.# +rE\Y"WCjru\S%ז:r]\_n 7ɍ&rS\n![ɭ6r[^ w;ɝ.rW]!{ɽ>r__ Ƀ!Py<\!Gɣ1Xy<^ O'ɓ)Ty<]!ϔgɳ9\y<_^ /ɋ%Ry\^!Wɫ5Zy^ o7ɛ-Vy]!wɻ=^y_> ɇ#Q|\>!Oɧ3Y|^ _/ɗ+U|]!ߔam|W'ߗGcT~&?_+z!z „#t! /RD">aAd@m!/hD aAd@ +!/ڒD +ð 2V} + "y1*aAd@M /FD򢗌aAd@!/‚jC^x "*L{XPU9ykXP=yQXXP%Vy$,   5 2 #u 2 ;   #U / ;  *@NT)/ L^R ,yAX@(RaP HJ@1/2EyAH@(]^D1ʋ8"zDy=,g/%TE@pʒ0ߌ@ "/ +4zL*/?/u+"ϋ\?uXId91E=âXm^]a3/bkD5@d@ Ėv@d@ DY@d@$ē)@d@Tjo"ϋRt}>M)UoC@>G2GT0INx=iYحsړhkUmEV^>dzp9Nf6cmK|V3^[N38p_7$v ϗՑi{IiזHK:ۙf{ gHǶ~ۛNPI=3[יu= +#frje,+fֶ3xᦩs淇3o7$?ל +3yŒ\[cUC&&e7 %zےV/ZW1^&4̼x5:omZι%yl[VwRblk؄;M:%fl+vgl~4M2g$u_2$Sf!IlKJe,|pkddۛW^&OjYv;uպ_2!S<9V/Ĺζ2ȼN]H"`%nǒ%2UI KrWƴ.viV +I!Tar։p/Ú+w]j0ܺ쫳`F=&ϙ\ꂷPݯRMkK..T U&S&q_² Υ&Vm}E|<[+Ou@йvB;fjɝjpcK/o;C旘o+Wd7dgrSIJ4mndIy-~yU.ټxo\:[[籇ANYk 0UdtK>dNЖM ަ⌉>Sh{hzn[5y%Aş䷊"ldjc!l]ᕜ\aZS5P + CSFؽH+9*u!mpWU +{cmCdJR4M>}+V8w*I^@ *W /߹5Szok&, ?<~g<QIgOXw~'uROXGROXGEUzt4xل%h-G@X@vrʋO2˵* B~yiF , 3ia^ozl yQ>ve &y@ +!/~y@m!/~ +y@!/~ +yQɼDE腼X^}#!/å(2yAJyь/2_h@^|e ;Љ8Sdļ ySO07͋fmyq 9/##β=n/9E_/Ϊ@^(/|m)El_)’ShkkDX@vʒ͒sKBh"TE3 + e̋^"ɄTE/4dMb$a[1a2y*yyjyy apA^8@X@ +!/l!,VP[ s 3 B^BX4ɋD&ah ,}#) E/9aykLP%ayw6/ +u΋& +E`y @^BX$C^HE m!,@^t"`$E2@/E*@0 /L /L /L /Lhb^oƴ{C1pdӯ5yڍ;4kX*إq~m.hM\k׿5gwe}fo5V[ulwo#~}J\?{5`X~9մGQm5ww?F9CFߦto}=p31nPKb^' PKyvl3 +ljmeta.xml +OpenOffice.org 1.1.3 (Win32)Steve Fielding2004-10-01T05:40:41Seve Fielding2005-11-12T06:51:49en-US65PT16H56M4SPKyvl3 settings.xmlZn6Slى&Y>(umDjdR(0@MZݺn6`[OkeȣXW%iXN&GX/* )~xyEv5TtT ,E%\ˉϥ7RLj")1iH\ͦ"”(noxtӄE1]JGztX3̺z +SĢ/:%6zc(·3F^_T}Do9ET&`0R;`ʉyxJe'adGE*Qcޤ"X"0xtFLH],QNjltt2؊(ܙ 'þzccKQl"(Հ!UB4`󸂠hj(IipEcT1'>,QЙO5>b"6o w ttZUj0'gL>?i. jU +{a*gOO$H£LPEHġAhp)aZQDR$0_L}cMBkӢ _b,Pu('sr4}6e]l'>X"* +x$ojO'Xa{u +W+r>O.ÿo]A⍿?uݶmmݶl{~_{}{>xntNӾo;;NisڏvEy-, :Ry.Ɠ*ܑ'y1*R:oU+ +;r},i `mЗUjXac̀H l({g2^Z>U>|J5[$ȧ\vͨy/WͼMrdUׂq z-_7+i.P^䁴 +$ɛM"[I/􄔛y]Z Jir2`6t]+!g$iJwf[Ni#Ws,k +7#"+\ ˬz1ϫ9bL`(ruMH{<S.-( ,N,N;M48k*:pJ8g!%9J a_Por4^ - 2A߼ϩMaW;e64eլ"1kI(o)ia޳ޗf,z"h)L2ߟ"V#ƴǺMH,us1RTQULڬ^RVKep+ۀ0NrSV2] +mqyqx9zYR/xvx}aE5i zH%_FMD +ln\MؾbPT7`py<#x}DJ@qD1;@&PKH~#PKyvl319mimetypePKyvl3(p4 u-DPictures/2000000F00001FD5000011164093EADD.svmPKyvl3V$- Pictures/200000070000AFCE0000FBDFB308A81C.wmfPKyvl3ϣ[[-9Pictures/10000000000000200000002000309F1C.pngPKyvl3R layout-cachePKyvl3ZX content.xmlPKyvl3>jn +ostyles.xmlPKyvl3b^' Obj00DFE385PKyvl3 +ljmeta.xmlPKyvl3$ settings.xmlPKyvl3H~#ϼMETA-INF/manifest.xmlPK  \ No newline at end of file
src/USBHostSlave_IPCore_Specification.sxw Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: README.txt =================================================================== --- README.txt (nonexistent) +++ README.txt (revision 40) @@ -0,0 +1,37 @@ +USBHostSlave has been successfully compiled using Quartus 4.2 +For some reason I have not been able to use SOPC Builder 4.2 to build the usb SOPC component +However, SOPC Builder 4.1 generates a usable SOPC component. This may be an error on my part, I need to +investigate further. +USBHostSlave has been tested in a SystemC simulation, and on a Altera Nios development kit Cyclone edition. + + +Release notes: +// Version 0.6 - Feb 4th 2005. Fixed bit stuffing and de-stuffing. This version succesfully supports +// control reads and writes to USB flash dongle +// Version 0.7 - Feb 24th 2005. Added support for isochronous transfers, fixed resume, connect and disconnect +// time outs, added low speed EOP keep alive. The TX bit rate is now controlled by +// SIETransmitter, and takes account of the requirement that SOF, and PREAMBLE are always full +// speed, and TX resume is always low speed. +// Fixed read clock recovery (readUSBWireData.v) issue which was resulting +// in missing receive packets. +// Fixed broken SOF Sync mode (where transacations are synchronized with the SOF transmission) +// by adding kludged delay to softranmit. This needs to be fixed properly. +// This version has undergone limited testing +// with full speed flash dongle, low speed keyboard, and a PC in full and low speed modes. +// Version 0.8 - June 24th 2005. Added bus access to the host SOFTimer. This version has been tested +// with uClinux, and is known to work with a full speed USB flash stick. +// Moving Opencores project status from Beta to done. +// Version 1.0 - October 14th 2005. Seperated the bus clock from the usb logic clock +// Modified RX and TX fifo status registers, and removed TX fifo data count +// register. Added RESET_CORE bit to HOST_SLAVE_CONTROL_REG. +// Fixed slave mode bug which caused receive fifo to +// be filled with incoming data when the slave was +// responding with a NAK, and the data should have been discarded. +// TODO: Test isochronous mode, and low speed mode using uClinux driver +// Add frame period adjustment capability +// Add compilation flags for slave only and host only versions +// Create data bus width options beyond 8-bit + + + +
README.txt Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: USBHostSlave_IPCore_Specification.pdf =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: USBHostSlave_IPCore_Specification.pdf =================================================================== --- USBHostSlave_IPCore_Specification.pdf (nonexistent) +++ USBHostSlave_IPCore_Specification.pdf (revision 40)
USBHostSlave_IPCore_Specification.pdf Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.