<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于fpga二維小波變換核的實時可重構(gòu)電路

          基于fpga二維小波變換核的實時可重構(gòu)電路

          作者: 時間:2014-12-07 來源:網(wǎng)絡 收藏

            2. 軟件部分

          本文引用地址:http://www.ex-cimer.com/article/266432.htm

            (1)bit n 的生成過程

            

          圖 7 輸出地址bit n 的生成

           

            圖 7 輸出地址bit n 的生成

            

          圖 8 輸入地址bit n 的生成

           

            圖 8 輸入地址bit n 的生成

            (2)部分代碼

            1 #Configuring F and G look-up tables with JBits

            /* define row and column values */

            int row = 5; int col = 4;

            /* define logic function for F LUT */

            int[] F_LUT_Vals = Expr.F_LUT(“~(F1&F2&F3&F4)”);

            /* define logic function for G LUT */

            int[] G_LUT_Vals = Expr.G_LUT(“~(F1|F2|F3|F4)”);

            /* set the F LUT value for slice 0 */

            jbits.set(row, col, LUT.SLICE0_F, F_LUT_Vals);

            /* set the G LUT value for slice 1 */

            jbits.set(row, col, LUT.SLICE1_G, G_LUT_Vals);

            2 #: Adding and configuring an OutputCore

            /* create a signal to run to the cross bar pins on the Slaac1V X2 */

            Bus XBar = new Bus("XP_XBAR", null, 20);

            /* create a new board */

            Slaac1VBoard slaac1V = new Slaac1VBoard("SLAAC1V");

            /* add a cross bar output core to slaac1V board instance */

            int XBarOutput = slaac1V.addOutput(Xbar.getName(), XBar);

            /* configure the IOB resources output operation */

            slaac1V.setOutputInvertT(XBarOutput, true);

            /* implement the slaac1V board */

            slaac1V.implement(0, "slaac1V.ucf");

            3 #Code showing how Slaac1V SRAMs are distinguished through signal names.

            /* define memory signals for Slaac1V X2 memories 0 and 1 */

            Bus addr[] = new Bus[2];

            Bus data[] = new Bus[2];

            /* memory address */

            addr[0] = new Bus("XP_MEM0_ADDR", null, 18); /* SRAM 0 */

            addr[1] = new Bus("XP_MEM1_ADDR", null, 18); /* SRAM 1 */

            /* memory data */

            data[0] = new Bus("XP_MEM0_DATA", null, 12); /* SRAM 0 */

            data[1] = new Bus("XP_MEM1_DATA", null, 12); /* SRAM 1 */

            4 #AdderTree input index computations and partitioning process

            /* calculate the “parent” adder index */

            int log = (int) Math.ceil(Math.log((double)range)/Math.log(2.0));

            int parentAdder = low + (int) Math.pow(2.0,log - 1);

            /* calculate the right sided adder input index */

            range = high - parentAdder;

            log = (int) Math.ceil(Math.log((double)range)/Math.log(2.0));

            int RHSIndex = ((int) Math.pow(2.0, log - 1)) + parentAdder;

            /* calculate the left sided adder input index */

            range = parentAdder - low;

            log = (int) Math.ceil(Math.log((double)range)/Math.log(2.0));

            int LHSIndex = ((int) Math.pow(2.0, log - 1)) + low;

            /* partition left hand side of parent adder recursively */

            AIndex[parentAdder - 1] = LHSIndex - 1;

            deriveAdderTree(low, parentAdder);

            /* partition right hand side of parent adder recursively */

            if (RHSIndex != parentAdder)

            {

            BIndex[parentAdder - 1] = RHSIndex - 1;

            deriveAdderTree(parentAdder, high);

            }

            else /* required if there is an odd number of tree inputs */

            {

            BIndex[parentAdder - 1] = treeInPort.length - 1;

            }

            5 # Slaac1VBoard.java code

            public class Slaac1VBoard extends Board

            {

            public Slaac1VBoard(String name) throws CoreParameterException

            {

            super(name);

            setXCVPackage(xcvPackage);

            setGCLK(GCLK);

            };

            private XCVPackage xcvPackage[] =

            {

            new xcv1000_fg680(), new xcv1000_fg680(), new xcv1000_fg680()

            };

            private static int GCLK = 2;

            }; /* end of Slaac1V board class. */

            3.2 需要的開發(fā)平臺


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: fpga 小波變換 IP核

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();