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

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [TUT/] [ip.hwp.accelerator/] [hibi_dct/] [1.0/] [hibi_dct.1.0.xml] - Rev 181

Compare with Previous | Blame | View Log

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created by Kactus2 - Open source IP-Xact toolset -->
<!-- http://sourceforge.net/projects/kactus2/ -->
<!-- Date: 09.01.2013 -->
<!-- Time: 13:51:34 -->
<spirit:component xmlns:kactus2="http://funbase.cs.tut.fi/" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.5/index.xsd">
        <spirit:vendor>TUT</spirit:vendor>
        <spirit:library>ip.hwp.accelerator</spirit:library>
        <spirit:name>hibi_dct</spirit:name>
        <spirit:version>1.0</spirit:version>
        <spirit:description>This block combines dct to hibi dctQidct block together

DCT_TO_HIBI Connects dctQidct block to HIBI Wrapper

Input:
1.  Address to send the results to quant
2.  Address to send the results to idct (set unused address if you don't use this)
2. Control word for the current macroblock
    Control word structure: bit    6: chroma(1)/luma(0) NOT USED, 
                                5: intra(1)/inter(0),
                                                   4..0: quantizer parameter (QP)
3. Then the DCT data ( 8x8x6 x 16-bit values = 384 x 16 bit )

Only 9b DCT data values are supported currently. 
Send two DCT-values packed to upper and lower 16bits in the sigle hibi transmission. 

&lt;31------------------16--------------------0&gt;  BIT index
            DCT_DATA_1         DCT_DATA_0     DATA                    


NOTE: If self release is used (use_self_rel_g=1) user gets the signal that dct_to_hibi is ready to receive data.
            By default self release is disabled and you user can send data to dct_to_hibi after quant results are received. 
        

Outputs:
 Outputs are 16-bit words which are packed up to hibi. If hibi width is
 32b, then 2 16-bit words are combined into one hibi word.
 01. quant results: 1. 8*8 x 16bit values to quant result address
 02. idct  results: 1. 8*8 x 16bit values to idct  result address  
 03. quant results: 2. 8*8 x 16bit values to quant result address
 04. idct  results: 2. 8*8 x 16bit values to idct  result address
 05. quant results: 3. 8*8 x 16bit values to quant result address
 06. idct  results: 3. 8*8 x 16bit values to idct  result address
 07. quant results: 4. 8*8 x 16bit values to quant result address
 08. idct  results: 4. 8*8 x 16bit values to idct  result address
 09. quant results: 5. 8*8 x 16bit values to quant result address
 10. idct  results: 5. 8*8 x 16bit values to idct  result address
 11. quant results: 6. 8*8 x 16bit values to quant result address
 12. quant results: 1 word with bits 5..0 determing if 8x8 quant blocks(1-6)
                    has all values zeros (except dc-component in intra)
 13. idct  results: 6. 8*8 x 16bit values to idct  result address
-
 Total amount of 16-bit values is: 384 per result address + 1 hibi word to
 quantization result address.

 With default parameter:
 Total of 193 words of data to quant address (if data_width_g = 32)
 Total of 192 words of data to idct address (if data_width_g = 32)
</spirit:description>
        <spirit:busInterfaces>
                <spirit:busInterface>
                        <spirit:name>rst_n</spirit:name>
                        <spirit:busType spirit:vendor="TUT" spirit:library="ip.hwp.interface" spirit:name="reset.busdef" spirit:version="1.0"/>
                        <spirit:abstractionType spirit:vendor="TUT" spirit:library="ip.hwp.interface" spirit:name="reset.absDef" spirit:version="1.0"/>
                        <spirit:slave/>
                        <spirit:connectionRequired>false</spirit:connectionRequired>
                        <spirit:portMaps>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>RESETn</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>rst_n</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                        </spirit:portMaps>
                        <spirit:bitsInLau>8</spirit:bitsInLau>
                        <spirit:endianness>little</spirit:endianness>
                </spirit:busInterface>
                <spirit:busInterface>
                        <spirit:name>clk</spirit:name>
                        <spirit:busType spirit:vendor="TUT" spirit:library="ip.hwp.interface" spirit:name="clock.busdef" spirit:version="1.0"/>
                        <spirit:abstractionType spirit:vendor="TUT" spirit:library="ip.hwp.interface" spirit:name="clock.absDef" spirit:version="1.0"/>
                        <spirit:slave/>
                        <spirit:connectionRequired>false</spirit:connectionRequired>
                        <spirit:portMaps>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>CLK</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>clk</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                        </spirit:portMaps>
                        <spirit:bitsInLau>8</spirit:bitsInLau>
                        <spirit:endianness>little</spirit:endianness>
                </spirit:busInterface>
                <spirit:busInterface>
                        <spirit:name>hibi_slave</spirit:name>
                        <spirit:busType spirit:vendor="TUT" spirit:library="ip.hwp.communication" spirit:name="hibi_ip_r4.busdef" spirit:version="3.0"/>
                        <spirit:abstractionType spirit:vendor="TUT" spirit:library="ip.hwp.communication" spirit:name="hibi_ip_r4.absdef" spirit:version="3.0"/>
                        <spirit:slave>
                                <spirit:memoryMapRef spirit:memoryMapRef="hibi_mem_map"/>
                        </spirit:slave>
                        <spirit:connectionRequired>false</spirit:connectionRequired>
                        <spirit:portMaps>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>AV</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_av_in</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>COMM</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>4</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_comm_in</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>4</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>DATA</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>31</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_data_in</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>31</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>EMPTY</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_empty_in</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>FULL</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_full_in</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                        </spirit:portMaps>
                        <spirit:bitsInLau>8</spirit:bitsInLau>
                        <spirit:endianness>little</spirit:endianness>
                </spirit:busInterface>
                <spirit:busInterface>
                        <spirit:name>hibi_master</spirit:name>
                        <spirit:busType spirit:vendor="TUT" spirit:library="ip.hwp.communication" spirit:name="hibi_ip_r4.busdef" spirit:version="3.0"/>
                        <spirit:abstractionType spirit:vendor="TUT" spirit:library="ip.hwp.communication" spirit:name="hibi_ip_r4.absdef" spirit:version="3.0"/>
                        <spirit:master/>
                        <spirit:connectionRequired>false</spirit:connectionRequired>
                        <spirit:portMaps>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>AV</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_av_out</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>COMM</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>4</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_comm_out</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>4</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>DATA</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>31</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_data_out</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>31</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>RE</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_re_out</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                                <spirit:portMap>
                                        <spirit:logicalPort>
                                                <spirit:name>WE</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:logicalPort>
                                        <spirit:physicalPort>
                                                <spirit:name>hibi_we_out</spirit:name>
                                                <spirit:vector>
                                                        <spirit:left>0</spirit:left>
                                                        <spirit:right>0</spirit:right>
                                                </spirit:vector>
                                        </spirit:physicalPort>
                                </spirit:portMap>
                        </spirit:portMaps>
                        <spirit:bitsInLau>8</spirit:bitsInLau>
                        <spirit:endianness>little</spirit:endianness>
                </spirit:busInterface>
        </spirit:busInterfaces>
        <spirit:memoryMaps>
                <spirit:memoryMap>
                        <spirit:name>hibi_mem_map</spirit:name>
                        <spirit:addressBlock>
                                <spirit:name>hibi_addr_block</spirit:name>
                                <spirit:baseAddress>0x0</spirit:baseAddress>
                                <spirit:range>4</spirit:range>
                                <spirit:width>32</spirit:width>
                                <spirit:usage>register</spirit:usage>
                        </spirit:addressBlock>
                        <spirit:addressUnitBits>32</spirit:addressUnitBits>
                </spirit:memoryMap>
        </spirit:memoryMaps>
        <spirit:model>
                <spirit:views>
                        <spirit:view>
                                <spirit:name>structural</spirit:name>
                                <spirit:envIdentifier>::</spirit:envIdentifier>
                                <spirit:hierarchyRef spirit:vendor="TUT" spirit:library="ip.hwp.accelerator" spirit:name="hibi_dct.designcfg" spirit:version="1.0"/>
                                <spirit:vendorExtensions>
                                        <kactus2:topLevelViewRef>structural_vhd</kactus2:topLevelViewRef>
                                </spirit:vendorExtensions>
                        </spirit:view>
                        <spirit:view>
                                <spirit:name>structural_vhd</spirit:name>
                                <spirit:envIdentifier>VHDL:Kactus2:</spirit:envIdentifier>
                                <spirit:language spirit:strict="false">vhdl</spirit:language>
                                <spirit:modelName>hibi_dct</spirit:modelName>
                                <spirit:fileSetRef>
                                        <spirit:localName>structural_vhdlSource</spirit:localName>
                                </spirit:fileSetRef>
                        </spirit:view>
                </spirit:views>
                <spirit:ports>
                        <spirit:port>
                                <spirit:name>clk</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>0</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>rst_n</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>0</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_av_in</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_comm_in</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>4</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                        <spirit:driver>
                                                <spirit:defaultValue>&quot;000&quot;</spirit:defaultValue>
                                        </spirit:driver>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_data_in</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>31</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                        <spirit:driver>
                                                <spirit:defaultValue>(others =&gt; '0')</spirit:defaultValue>
                                        </spirit:driver>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_empty_in</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:driver>
                                                <spirit:defaultValue>'0'</spirit:defaultValue>
                                        </spirit:driver>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_full_in</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>in</spirit:direction>
                                        <spirit:driver>
                                                <spirit:defaultValue>0</spirit:defaultValue>
                                        </spirit:driver>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_av_out</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>out</spirit:direction>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_comm_out</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>out</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>4</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_data_out</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>out</spirit:direction>
                                        <spirit:vector>
                                                <spirit:left>31</spirit:left>
                                                <spirit:right>0</spirit:right>
                                        </spirit:vector>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_re_out</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>out</spirit:direction>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                        <spirit:port>
                                <spirit:name>hibi_we_out</spirit:name>
                                <spirit:wire spirit:allLogicalDirectionsAllowed="false">
                                        <spirit:direction>out</spirit:direction>
                                </spirit:wire>
                                <spirit:vendorExtensions/>
                        </spirit:port>
                </spirit:ports>
        </spirit:model>
        <spirit:fileSets>
                <spirit:fileSet>
                        <spirit:name>structural_vhdlSource</spirit:name>
                        <spirit:group>sourceFiles</spirit:group>
                        <spirit:file>
                                <spirit:name>vhd/hibi_dct.vhd</spirit:name>
                                <spirit:fileType>vhdlSource</spirit:fileType>
                                <spirit:isIncludeFile spirit:externalDeclarations="false">true</spirit:isIncludeFile>
                                <spirit:logicalName spirit:default="false">work</spirit:logicalName>
                                <spirit:buildCommand>
                                        <spirit:command>vcom</spirit:command>
                                        <spirit:flags>-quiet -check_synthesis -work work</spirit:flags>
                                        <spirit:replaceDefaultFlags>true</spirit:replaceDefaultFlags>
                                </spirit:buildCommand>
                        </spirit:file>
                        <spirit:defaultFileBuilder>
                                <spirit:fileType>vhdlSource</spirit:fileType>
                                <spirit:command>vcom</spirit:command>
                                <spirit:flags>-quiet -check_synthesis -work work</spirit:flags>
                                <spirit:replaceDefaultFlags>true</spirit:replaceDefaultFlags>
                        </spirit:defaultFileBuilder>
                        <spirit:defaultFileBuilder>
                                <spirit:fileType>vhdlSource-87</spirit:fileType>
                                <spirit:command>vcom</spirit:command>
                                <spirit:flags>-quiet -check_synthesis -work work</spirit:flags>
                                <spirit:replaceDefaultFlags>true</spirit:replaceDefaultFlags>
                        </spirit:defaultFileBuilder>
                        <spirit:defaultFileBuilder>
                                <spirit:fileType>vhdlSource-93</spirit:fileType>
                                <spirit:command>vcom</spirit:command>
                                <spirit:flags>-quiet -check_synthesis -work work</spirit:flags>
                                <spirit:replaceDefaultFlags>true</spirit:replaceDefaultFlags>
                        </spirit:defaultFileBuilder>
                </spirit:fileSet>
        </spirit:fileSets>
        <spirit:vendorExtensions>
                <kactus2:extensions>
                        <kactus2:kts_attributes>
                                <kactus2:kts_productHier>IP</kactus2:kts_productHier>
                                <kactus2:kts_implementation>HW</kactus2:kts_implementation>
                                <kactus2:kts_firmness>Parameterizable</kactus2:kts_firmness>
                        </kactus2:kts_attributes>
                </kactus2:extensions>
        </spirit:vendorExtensions>
</spirit:component>

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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