URL
https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk
Subversion Repositories pcie_ds_dma
[/] [pcie_ds_dma/] [trunk/] [core/] [wishbone/] [doc/] [en/] [block_test_check_en.htm] - Rev 12
Compare with Previous | Blame | View Log
<Html> <Head> <Title>Блок TEST_CHECK</Title> <Meta Http-equiv="Content-Type" Content="text/html; Charset=windows-1251"> <Link Rel="StyleSheet" Type="text/css" Href="style.css"> </Head> <Body LeftMargin="5" TopMargin="5" BgColor="#ffffff"> <h1>Block<span lang="ru"> </span>TEST_CHECK</h1> <hr> <h2>General</h2> <table border="0" width="90%" cellpadding="6" cellspacing="1" height="135"> <tr> <td width="17%" valign="top" height="14"> <b>Function</b></td> <td width="83%" height="14"> Generation of the test sequence</td> </tr> <tr> <td width="17%" height="14"> <b>Modification</b></td> <td width="83%" height="14"> 1</td> </tr> <tr> <td width="17%" height="14"><b>Version</b></td> <td width="83%" height="14"> 1.0</td> </tr> <tr> <td width="17%" height="14"><b>ID</b></td> <td width="83%" height="14"> 0x1B</td> </tr> </table> <h2>Register</h2> <table border="2" width="90%" bordercolorlight="#000000" cellspacing="0" bordercolordark="#000000" cellpadding="2" style="border-collapse: collapse"> <tr> <td width="13%" align="center"><b>Number</b></td> <td width="18%" align="center"><b>Name</b></td> <td width="69%" colspan="2"><b>Description</b></td> </tr> <tr> <td width="100%" align="center" colspan="4"> <p align="left"> <span lang="ru"> </span>Constant</td> </tr> <tr> <td width="13%" align="center">0</td> <td width="18%" align="center"><a href="#Регистр BLOCK_ID">BLOCK_ID</a></td> <td width="10%" align="center">0x<span lang="en-us">X</span>01A</td> <td width="58%"> The ID of the control block</td> </tr> <tr> <td width="13%" align="center">1</td> <td width="18%" align="center"><a href="#Регистр BLOCK_VER">BLOCK_VER</a></td> <td width="10%" align="center">0x0100</td> <td width="58%"> Version of the control block</td> </tr> <tr> <td width="13%" align="center">2</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="13%" align="center">3</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="13%" align="center">4</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="13%" align="center">5</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="13%" align="center">6</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="13%" align="center">7</td> <td width="18%" align="center"> </td> <td width="10%" align="center"> </td> <td width="58%"> </td> </tr> <tr> <td width="100%" align="left" colspan="4"> Operations register</td> </tr> <tr> <td width="13%" align="center"><span lang="ru">8</span></td> <td width="18%" align="center"><span lang="en-us"> <a href="#Регистр TEST_GEN_CTRL">TEST_CHECK_CTRL</a></span></td> <td width="69%" colspan="2"><span lang="ru"> </span>Control of the <span lang="en-us">TEST_</span>CHECK</td> </tr> <tr> <td width="13%" align="center"><span lang="ru">9</span></td> <td width="18%" align="center"> <span lang="en-us"> <a href="#Регистр TEST_GEN_SIZE">TEST_CHECK_SIZE</a></span></td> <td width="69%" colspan="2"> Size of the data block</td> </tr> <tr> <td width="13%" align="center">0x0A</td> <td width="18%" align="center"> <a href="#Регистр TEST_GEN_CNT1"> TEST_CHECK_ERR_ADR</a></td> <td width="69%" colspan="2"> Word address in a result memory </td> </tr> <tr> <td width="13%" align="center">0x0B</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x0C</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x0D</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x0E</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x0F</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="100%" align="center" colspan="4"> <p align="left"> Direct registers</td> </tr> <tr> <td width="13%" align="center"><span lang="ru">0</span>x10</td> <td width="18%" align="center"> <span lang="en-us"> <a href="#Регистры TEST_CHECK_BL_RD_L, TEST_CHECK_BL_RD_H">TEST_CHECK_BL_RD</a></span></td> <td width="69%" colspan="2"> The number of received data block</td> </tr> <tr> <td width="13%" align="center">0x11</td> <td width="18%" align="center"><span lang="en-us"> <a href="#Регистры TEST_CHECK_BL_OK_L, TEST_CHECK_BL_OK_H">TEST_CHECK_BL_OK</a></span></td> <td width="69%" colspan="2"> The number of correct data block</td> </tr> <tr> <td width="13%" align="center">0x12</td> <td width="18%" align="center"><span lang="en-us"> <a href="#Регистры_TEST_CHECK_BL_ERROR_L,_TEST_CHECK_BL_ERROR_H"> TEST_CHECK_BL_ERROR</a></span></td> <td width="69%" colspan="2"> The number of failure data block</td> </tr> <tr> <td width="13%" align="center">0x13</td> <td width="18%" align="center"><span lang="en-us"> <a href="#Регистры_TEST_CHECK_TOTAL_ERROR_L,_TEST_CHECK_TOTAL_ERROR_H_"> TEST_CHECK_TOTAL_ERROR</a></span></td> <td width="69%" colspan="2"> The total number of errors</td> </tr> <tr> <td width="13%" align="center"><span lang="ru">0</span>x14</td> <td width="18%" align="center"><span lang="en-us"> <a href="#Регистры TEST_CHECK_ERROR_DATA">TEST_CHECK_ERROR_DATA</a></span></td> <td width="69%" colspan="2"> Word from a result memory </td> </tr> <tr> <td width="13%" align="center">0x15</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x16</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x17</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x18</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center"><span lang="ru">0</span>x19</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x1A</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x1B</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center"><span lang="ru">0</span>x1C</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x1D</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x1E</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> <tr> <td width="13%" align="center">0x1F</td> <td width="18%" align="center"> </td> <td width="69%" colspan="2"> </td> </tr> </table> <br> <h2>Description</h2> <p>Block TEST_CHECK is designed to test the test sequence.</p> <p>The algorithm works:</p> <ul> <li>reset: <a name="Регистр TEST_CHECK_CTRL0">TEST_CHECK_CTRL</a>[RESET]=1, <a name="Регистр TEST_CHECK_CTRL1">TEST_CHECK_CTRL</a>[RESET]=0</li> <li>set mode: <a name="Регистр TEST_CHECK_CTRL2">TEST_CHECK_CTRL</a>[FIX_MODE, BLOCK_MODE]</li> <li>program and start DMA controller in the PE_EXT_FIFO block</li> <li>start: <a name="Регистр TEST_CHECK_CTRL3">TEST_CHECK_CTRL</a>[START]=1 - enable to DMAR</li> </ul> <p>The test sequence is a set of data blocks.<br> The block size is specified multiple of the size of 4 kilobytes<br> (512 words by 64 bits)<br> The first 64-bit word in the block contains the signature and serial number:</p> <ul> <li>31 .. 0 - signature 0xA5A50123</li> <li>63 .. 32 - serial number of the unit</li> </ul> <p>Contents of the block depends on its number in the sequence.<br> <br> The contents of the data block:</p> <ul> <li>0 - Running the unit on the 64th bits</li> <li>1 - Running zero on the 64th bits</li> <li>2 - Running the unit with an inversion of the 64-th digit<br> - Even numbers of words - running the unit on the 64th bits<br> - Odd numbers - inversion previous word</li> <li>3 - Running with zero inversion ranks 64th<br> - Even numbers - running zero to 64-th digit<br> - Odd numbers - inversion previous word</li> <li>4 - Running in the unit block<br> Word number is compared with the number of units (compare lower eight bits)<br> At coincidence - in the Word is running 1.<br> Other words - zero.</li> <li>5 - Running a zero in the block<br> Word number is compared with the number of units (compare lower eight bits)<br> At coincidence - in the Word is running 0.<br> Other words - value 0xFFFFFFFFFFFFFFFF.</li> <li>6.7 - Counter on the 64th bits<br> - Even numbers - count<br> - Odd numbers - inversion previous word</li> <li>8.9 - The pseudo-random sequence<br> Formed M-sequence of 64 bits.<br> The initial value of - 1<br> The word is formed shift by one bit to the left.<br> In LSB words recorded value of x[63] xor x[62] xor x[60] xor x[59]</li> </ul> <p> </p> <h2>Description of the register</h2> <h3><a name="Регистр BLOCK_ID">BLOCK_ID</a></h3> <table cellSpacing="0" borderColorDark="#000000" cellPadding="2" width="90%" borderColorLight="#000000" border="2" id="table16" style="border-collapse: collapse"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td align="middle" width="5%">11<span lang="ru">..0</span></td> <td align="middle" width="6%">ID</td> <td width="66%"><span lang="ru"> </span>The ID of the control block</td> </tr> <tr> <td align="middle" width="5%"><span lang="ru">15..12</span></td> <td align="middle" width="6%">MOD</td> <td width="66%"><span lang="ru"> </span>Number of modification</td> </tr> </table> <h3> </h3> <h3><a name="Регистр BLOCK_VER">BLOCK_VER</a></h3> <table cellSpacing="0" borderColorDark="#000000" cellPadding="2" width="90%" borderColorLight="#000000" border="2" id="table17" style="border-collapse: collapse"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td align="middle" width="5%">7<span lang="ru">..0</span></td> <td align="middle" width="6%">V0</td> <td width="66%"> Field<span lang="ru"> </span>V0</td> </tr> <tr> <td align="middle" width="5%"><span lang="ru">15..8</span></td> <td align="middle" width="6%">V1</td> <td width="66%"> Field<span lang="ru"> </span>V<span lang="ru">1</span></td> </tr> </table> <p>Version: V1.V0</p> <h3><a name="Регистр TEST_CHECK_CTRL">TEST_CHECK_CTRL</a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table18"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">0</span></td> <td width="19%" height="14" align="center">RESET</td> <td width="72%" height="14">1 - reset</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">3..1</span></td> <td width="19%" height="14" align="center"><span lang="ru">-</span></td> <td width="72%" height="14"></td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">4</span></td> <td width="19%" height="14" align="center">-</td> <td width="72%" height="14"></td> </tr> <tr> <td width="9%" height="14" align="center">5</td> <td width="19%" height="14" align="center">START</td> <td width="72%" height="14">1 - enable</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">6</span></td> <td width="19%" height="14" align="center">-</td> <td width="72%" height="14"></td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">7</span></td> <td width="19%" height="14" align="center">FIX_MODE</td> <td width="72%" height="14">1 -<span lang="ru"> </span>fixed data block type</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">11..8</span></td> <td width="19%" height="14" align="center">BLOCK_MODE</td> <td width="72%" height="14">Number of type data block at<span lang="ru"> </span>FIX_MODE=1</td> </tr> <tr> <td width="9%" height="14" align="center">15..12</td> <td width="19%" height="14" align="center">-</td> <td width="72%" height="14"></td> </tr> </table> <br> <p> </p> <h3><a name="Регистр TEST_CHECK_SIZE">TEST_CHECK_SIZE</a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table19"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">15..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">SIZE</td> <td width="72%" height="14">Size of data block</td> </tr> </table> <br> <span lang="ru">Size of a block is specified in units of 4 kilobytes. A value of 1 corresponds to a block size of 4 kilobytes.</span><p> </p> <h3><a name="Регистры TEST_CHECK_BL_RD_L, TEST_CHECK_BL_RD_H"><span lang="en-us">TEST_CHECK_BL_RD</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table20"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">31..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">CNT</td> <td width="72%" height="14"> The number of received data block</td> </tr> </table> <br> <p> </p> <h3><a name="Регистры TEST_CHECK_BL_OK_L, TEST_CHECK_BL_OK_H"><span lang="ru"> </span><span lang="en-us">TEST_CHECK_BL_OK</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table21"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">31..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">CNT</td> <td width="72%" height="14"> The number of correct data block</td> </tr> </table> <br> <h3> <a name="Регистры_TEST_CHECK_BL_ERROR_L,_TEST_CHECK_BL_ERROR_H"><span lang="ru"> Регистр </span><span lang="en-us">TEST_CHECK_BL_ERROR</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table22"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">3</span>1..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">CNT</td> <td width="72%" height="14"> The number of failure data block</td> </tr> </table> <br> <p> </p> <h3><a name="Регистры_TEST_CHECK_TOTAL_ERROR_L,_TEST_CHECK_TOTAL_ERROR_H_"> <span lang="en-us">TEST_CHECK_TOTAL_ERROR</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table23"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">3</span>1..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">CNT</td> <td width="72%" height="14"> The total number of errors</td> </tr> </table> <br> <p> </p> <h3><a name="Регистры TEST_CHECK_ERROR_ADR"> <span lang="en-us">TEST_CHECK_ERROR_ADR</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table24"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">3..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">ADR_WORD</td> <td width="72%" height="14">Word address</td> </tr> <tr> <td width="9%" height="14" align="center">7..4</td> <td width="19%" height="14" align="center">NUM_ERROR</td> <td width="72%" height="14">Number of error</td> </tr> <tr> <td width="9%" height="14" align="center">15..8</td> <td width="19%" height="14" align="center">-</td> <td width="72%" height="14"></td> </tr> </table> <br> Register contains the address to access the result memory.<h3>Format word in the result memory</h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table25"> <tr> <td width="9%" height="13" align="center"><b>ADR_WORD</b></td> <td width="19%" height="13" align="center"><b>Name</b></td> <td width="72%" height="13"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">0</td> <td width="19%" height="14" align="center">DATA_IN[15..0]</td> <td width="72%" height="56" rowspan="4"> Word received from the test sequence</td> </tr> <tr> <td width="9%" height="14" align="center">1</td> <td width="19%" height="14" align="center">DATA_IN[31..16]</td> </tr> <tr> <td width="9%" height="14" align="center">2</td> <td width="19%" height="14" align="center">DATA_IN[47..32]</td> </tr> <tr> <td width="9%" height="14" align="center">3</td> <td width="19%" height="14" align="center">DATA_IN[63..48]</td> </tr> <tr> <td width="9%" height="14" align="center">4</td> <td width="19%" height="14" align="center">DATA_EXPECT[15..0]</td> <td width="72%" height="56" rowspan="4"> Expected word in the test sequence</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">5</span></td> <td width="19%" height="14" align="center">DATA_EXPECT[31..16]</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">6</span></td> <td width="19%" height="14" align="center">DATA_EXPECT[47..32]</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">7</span></td> <td width="19%" height="14" align="center">DATA_EXPECT[63..48]</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">8</span></td> <td width="19%" height="14" align="center">ADR[15..0]</td> <td width="72%" height="28" rowspan="2"> Address within the data block</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">9</span></td> <td width="19%" height="14" align="center">ADR[31..16]</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">10</span></td> <td width="19%" height="14" align="center">BLOCK[15..0]</td> <td width="72%" height="28" rowspan="2"> Block number</td> </tr> <tr> <td width="9%" height="14" align="center"><span lang="ru">11</span></td> <td width="19%" height="14" align="center">BLOCK[31..16]</td> </tr> </table> <br> <p> </p> <h3><a name="Регистры TEST_CHECK_ERROR_DATA"> <span lang="en-us">TEST_CHECK_ERROR_DATA</span></a></h3> <table border="2" width="90%" bordercolorlight="#000000" bordercolordark="#000000" height="31" cellpadding="2" style="border-collapse: collapse" id="table26"> <tr> <td align="middle" width="5%" height="14"><b> Bit</b></td> <td align="middle" width="6%" height="14"><b>Name</b></td> <td width="66%" height="14"><b>Description</b></td> </tr> <tr> <td width="9%" height="14" align="center">15..<span lang="ru">0</span></td> <td width="19%" height="14" align="center">DATA</td> <td width="72%" height="14"> Word from a result memory </td> </tr> </table> <br> <p> </p> <h3>Version history</h3> <table cellSpacing="0" cellPadding="0" width="90%" border="0"> <tr> <td align="middle" width="12%" valign="top"><span lang="ru">1.0</span></td> <td align="middle" width="16%" valign="top"><span lang="ru">10.11.2011</span></td> <td width="72%" valign="top">Basic version</td> </tr> </table> <p> </p> <hr> <p> </p> </Body> </Html>