亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tscsequentialim.java

?? Java遺傳算法庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * BISTIM.java
 *
 * Created on 19 May 2002, 18:56
 */

package jaga.pj.circuits.control;

import jaga.evolve.Evolver;
import jaga.deploy.Deployment;
import jaga.experiment.*;
import jaga.control.StandardInteractionModel;
import jaga.*;
import jaga.pj.circuits.CircuitState;
import jaga.pj.circuits.CircuitsLib;
import jaga.pj.circuits.fpgaft.*;
import jaga.pj.circuits.SimulatorLogicElement;
import jaga.pj.circuits.experiment.ConfigurableSequentialCircuitExperiment;
import jaga.pj.circuits.experiment.MealyFSMEdge;
import jaga.pj.circuits.experiment.MealyFSMNode;

import java.util.Random;
import java.util.Vector;
import java.util.Hashtable;
import java.awt.Point;

import islandev.SnapshotPainter;
import islandev.EmptySnapshotPainter;


/** Like BISTPIM but:
 * <ul><li>Only On-Line BIST evaluated (must report first fault affecting outputs)</li>
 * <li>Optimization in SimulatorFaultyCircuitOpt used for sequenial circuits</li>
 * <li>For combinational circuits use BISTPIM</li>
 * <li>Overdetecting always good.
 * </ul>
 *
 * Could cache generated TPS per generation for use with NoisyIM
 */
public class TSCSequentialIM extends StandardInteractionModel
{
    // Constants
    protected final int nrZs = 2;
    protected final int ST_MODE_ANY_STATE = 0;
    protected final int ST_MODE_ALL_STATES = 1;
    
    // Config Vars
    protected int STMode = ST_MODE_ANY_STATE;
    
    // Variables for finding E
    protected int EStartAt = 0; // For each input cycle, start at ...
    protected int inputResetLength = 0;
    protected int eSize;
    protected int DQTol;
    
    protected double threshold = 0.1;
    
    //Working Vars
    protected double currMaxF_e = -1;
    protected SingleFaultModel faultModel;
    protected SingleRandomFaultModel srfm = null; // If its randomness, its randomness will need to be controlled
    protected ConfigurableSequentialCircuitExperiment scexp;
    protected SimulatorFaultyCircuit circuit;
    protected Hashtable TPS = new Hashtable();
    
    /** Evaluate a sequential circuit's BIST behaviour under all State, Fault, Input combinations
     * @param evo Evolver
     * @param dep Deployment
     * @param cir A SimulatorFaultyCircuit which must allow running a section of a test pattern
     * @param exp A Configurable Sequential Circuit Experiment to know at what point in the test pattern new states are entered
     * @param iss Input Sample Separation
     * @param fm Fault Model
     * @param es Number of consecutve highs at the error line E to trigger a "fault detected" event
     * @param painter Circuit painter
     * @param startAt Position within test cycle of length input sample separation until which we can ignore behaviour
     * @param inputResetLength How many input cycles it takes to bring this sequential circuit to its reset state
     */
    public TSCSequentialIM(Evolver evo, Deployment dep, SimulatorFaultyCircuit cir, ConfigurableSequentialCircuitExperiment exp, int iss, SingleFaultModel fm, int es, int DQTol, SnapshotPainter painter, int EStartAt, int inputResetLength) {
        this( evo, dep, cir, exp, iss, fm, es, DQTol );
        this.painter = painter;
        this.EStartAt = EStartAt;
        this.inputResetLength = inputResetLength;
    }
    
    public TSCSequentialIM(Evolver evo, Deployment dep, SimulatorFaultyCircuit cir, ConfigurableSequentialCircuitExperiment exp, int iss, SingleFaultModel fm, int es, int DQTol) {
        super( evo, dep, exp, iss );
        BISTLib.setGetEMode( BISTLib.E_MODE_DUAL );
        scexp = exp;
        circuit = cir;
        faultModel = fm;
        if( faultModel instanceof SingleRandomFaultModel )
        {
            srfm = ( SingleRandomFaultModel ) fm;
        }        
        eSize = es;
        this.DQTol = DQTol;
        
        // Build TPS: Test Patterns to apply at each state s such that all leaving arrows are tested.
        MealyFSMNode[] allStates = exp.getStateGraphNodes();
        int nrStates = allStates.length;
        int nrIns = exp.getNumOfInputs();
        int nrNoCkIns = nrIns - 1;
        int nrNoCkVectors = 1 << nrNoCkIns;
        
        for( int sl = 0; sl < nrStates; sl++ )
        {
            // 1. Create TP BitSets
            MealyFSMNode currState = allStates[ sl ];
            BitSet[] testBits = new BitSet[ nrIns ];
            int nrEdges = currState.getNumOfEdges();
            for( int bl = 0; bl < nrIns; bl++ )
            {
                testBits[ bl ] = new BitSet( nrEdges );
            }
            
            // 2. Fill up TP BitSets
            int TPPos = 0;
            for( int el = 0; el < nrNoCkVectors; el++ )
            {
                if( currState.nextStates[ el ] != null )
                {
                    ESLib.setLine( testBits, TPPos++, el * 2 ); // * 2 because last line (clock) = 0
                }
            }
            
            // 3. Generate SampleData TP from BitSets
            //SampleData[] currTPS = ExperimentLib.generateInputFromTest( testBits, 1, nrEdges, inputSampleSeparation );
            
            // 4. Store TP in TPS Hashset
            TPS.put( currState, testBits );
        }
    }
        
    public void evolve()
    {
        super.evolve();
        if( srfm != null )
        {
            srfm.nextRandomSeries(); // Same for all per generation, but != 'tween generations.
        }
        currMaxF_e = -1;
    }
    
    /** Evaluates these individuals using the deployment and experiments and
     * procedure of this model.
     */
    synchronized public double[] evaluate(Genotype[] inds)
    {
        Genotype ind = inds[ 0 ];

        //TI//String longStory = "";
        //TI//String shortStory = "";
        //TI//String shortFullStory = "";
        
        // 1) Evaluate Ind with no faults.
        deployment.program( ind );
        SampleData[] input = experiment.generateInput( inputSampleSeparation );
        int[] stateEnterPos = scexp.getStateEnterPos();
        MealyFSMNode[] stateEnterNodes = scexp.getStateGraphNodes();
        int nrStates = stateEnterPos.length;
        int prevStateTPPos = 0;
        CircuitState currentState;
                
        //TI//if( !stateNoise ) {
        //TI//circuit.reset();
        //TI//}else{
        //circuit.randomReset();
        //TI//}
        
        SampleData[] noFQWithE = deployment.run( input );
        int nrOuts = noFQWithE.length - 1;
        SampleData[] noFQNoE = ESLib.getLines( noFQWithE, 0, nrOuts );
        double f_e = experiment.getFitness( input, noFQNoE );
        double f_st = 0, f_fs = 0, f_t = 0;
        boolean mainTaskOK = f_e > currMaxF_e - threshold;

        
        // 2) Compute f_b now for all combinations of inputs under every fault at each state
        if( mainTaskOK && !BISTLib.getE( inputResetLength, noFQWithE, eSize, nrZs, inputSampleSeparation, EStartAt ) ) // Check that E low for no faults! If it isn't, then discard.
        {
            Hashtable shuffledTPS = new Hashtable();
            Hashtable TPQS = new Hashtable();
            Hashtable circuitStates = new Hashtable();
            Hashtable EBehaviour = new Hashtable();
            
            currMaxF_e = Math.max( f_e, currMaxF_e );
            
            // 2.1) Init variables.
            //boolean[] usedForY = CircuitsLib.getUsed( circuit, nrYs ); // Skipping faults in unused elements.
            boolean[] usedForYZ = CircuitsLib.getUsed( circuit );

            int nrInstances = 0; // how many faults tested for  // 07-05-04 was 1 changed to 0
            int diagInstances = 0; // how many correctly diagnosed, including no faults. // 07-05-04 was 1 changed to 0
                        
            // 2.2) Move to every state in turn
            for( int sl = 0; sl < nrStates; sl++ )
            {
                circuit.run( input, prevStateTPPos, stateEnterPos[ sl ] + 1 ); // **
                prevStateTPPos = stateEnterPos[ sl ];
                MealyFSMNode currNode = stateEnterNodes[ sl ];
                //TI//longStory += "\nMoving to state " + sl + "(" + currNode + ") at " + stateEnterPos[ sl ] ;
                
                // 2.2.1) Save state
                currentState = circuit.getState();
                circuitStates.put( currNode, currentState );
                
                // 2.2.2) Save no faults behaviour in current state for all inputs
                BitSet[] TPSBits = ( BitSet[] ) TPS.get( currNode );
                BitSet[] shuffledTPSBits = ExperimentLib.shuffleTest( TPSBits );
                shuffledTPS.put( currNode, shuffledTPSBits );
                SampleData[] currTPS = ExperimentLib.generateInputFromTest( shuffledTPSBits, 1, shuffledTPSBits[ 0 ].length(), inputSampleSeparation );
                int nrInputCombinations = currTPS[ 0 ].length();
                SampleData[] currStateQs = circuit.run( currTPS );
                TPQS.put( currNode, currStateQs );
                //TI//longStory += "\nBehaviour " + ESLib.sampleDatasToString( currTPS, currStateQs );
                
                // 2.3) Iterate through faults
                faultModel.reset();
                while( faultModel.hasMoreElements() )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品aa午夜观看| 欧美日韩国产高清一区| 日本福利一区二区| 欧美一级xxx| 国产欧美日韩综合| 国产精品毛片久久久久久久| 亚洲黄色小视频| 激情欧美一区二区三区在线观看| 久久精品免费观看| 色婷婷av一区二区三区gif | 成人免费观看av| 99视频在线精品| 亚洲精品在线一区二区| 一区二区高清免费观看影视大全 | 亚洲午夜久久久久久久久电影院| 日韩成人免费在线| 91毛片在线观看| 国产欧美一区二区在线| 五月综合激情网| 97久久精品人人澡人人爽| 日韩精品一区二区三区视频 | 成人高清免费观看| 精品美女一区二区三区| 亚洲国产cao| 成人亚洲精品久久久久软件| 日韩一区二区在线观看| 亚洲一区二三区| 97久久久精品综合88久久| 欧美一级一级性生活免费录像| 国产精品国产三级国产有无不卡| 狠狠色狠狠色综合系列| 欧美日韩精品是欧美日韩精品| 国产精品免费aⅴ片在线观看| 精品在线免费视频| 欧美人xxxx| 尤物视频一区二区| 国产盗摄视频一区二区三区| 久久美女艺术照精彩视频福利播放| 亚洲第一会所有码转帖| 在线综合亚洲欧美在线视频| 奇米777欧美一区二区| 日韩精品一区二区三区中文不卡| 精品一二三四在线| 国产精品区一区二区三区| 色妞www精品视频| 亚洲bt欧美bt精品| 精品日韩av一区二区| 国产成人一区在线| 亚洲欧美一区二区三区久本道91 | 国产精品18久久久久久久久久久久| 欧美精品一区二| 丁香桃色午夜亚洲一区二区三区| 中文字幕中文乱码欧美一区二区| 欧美综合视频在线观看| 日韩电影在线观看网站| 久久一留热品黄| 91在线免费播放| 日韩精品国产欧美| 国产午夜三级一区二区三| 91麻豆免费在线观看| 天天色天天操综合| 国产欧美日韩三区| 欧美日韩黄色一区二区| 激情综合五月婷婷| 亚洲美女淫视频| 精品国产人成亚洲区| 94-欧美-setu| 精品一区二区三区在线观看国产 | 欧美日韩一区二区三区四区| 精品在线你懂的| 亚洲视频狠狠干| 日韩亚洲欧美在线| a亚洲天堂av| 麻豆91免费观看| 一区二区三区四区蜜桃| 久久影院电视剧免费观看| 欧美三级欧美一级| av中文一区二区三区| 亚洲男同性视频| 欧美v日韩v国产v| 欧美怡红院视频| 成人精品国产免费网站| 美女性感视频久久| 亚洲一区二区三区四区在线观看| 国产亚洲女人久久久久毛片| 91精选在线观看| 色吊一区二区三区| 成人在线综合网| 久久99精品国产.久久久久| 亚洲一区二区三区视频在线| 中文字幕欧美日韩一区| 欧美精品一区二区高清在线观看| 欧美视频一区二区三区四区| 国产a区久久久| 精品一区二区三区免费观看 | 国产精品久久久久久久裸模| 精品国产一二三区| 欧美变态口味重另类| 欧美日韩国产大片| 在线看一区二区| 972aa.com艺术欧美| 成人动漫在线一区| 国产成人av资源| 国产精品一区三区| 精品一区二区三区免费播放| 日本成人中文字幕| 天天操天天色综合| 亚洲sss视频在线视频| 亚洲狠狠丁香婷婷综合久久久| 国产精品家庭影院| 一区视频在线播放| 亚洲男人的天堂在线aⅴ视频| 中文字幕巨乱亚洲| 国产精品第四页| 亚洲欧美成人一区二区三区| 亚洲欧洲美洲综合色网| 国产精品毛片高清在线完整版| 日韩精品综合一本久道在线视频| 一本大道av一区二区在线播放| 成人教育av在线| 国产69精品久久久久777| 国产不卡一区视频| 丁香婷婷综合色啪| 色婷婷亚洲精品| 在线日韩国产精品| 欧美一区二区三区影视| 日韩精品中文字幕在线不卡尤物| 精品对白一区国产伦| 国产女人18水真多18精品一级做| 日本一区二区三区电影| 中文字幕在线不卡视频| 亚洲欧美另类小说| 亚洲午夜av在线| 日产欧产美韩系列久久99| 亚洲色图欧美激情| 亚洲激情图片一区| 三级不卡在线观看| 激情伊人五月天久久综合| 麻豆精品一区二区av白丝在线| 亚洲自拍偷拍九九九| 亚洲v日本v欧美v久久精品| 亚洲va欧美va国产va天堂影院| 亚洲午夜久久久久久久久电影网| 亚洲韩国精品一区| 久久激情综合网| 国产乱码精品1区2区3区| 丁香婷婷综合五月| 欧美日韩视频在线第一区| 在线精品亚洲一区二区不卡| 欧美日韩精品一区二区三区| 日韩一区二区三区在线视频| 久久婷婷综合激情| 一区二区三区91| 久久精品国产久精国产爱| 国产宾馆实践打屁股91| 在线一区二区观看| 精品欧美一区二区久久| 一区二区三区久久久| 青青草国产成人av片免费| 懂色av噜噜一区二区三区av| 欧美日韩精品专区| 日韩av在线发布| 欧美在线free| 午夜精品久久久久影视| 欧美中文字幕一二三区视频| 日韩一级大片在线| 欧美大胆人体bbbb| 亚洲一区二区三区四区五区黄 | 欧美喷潮久久久xxxxx| 精品一区二区三区在线播放 | 亚洲蜜臀av乱码久久精品蜜桃| 麻豆国产精品视频| 欧美亚洲国产一区二区三区va| 国产三级精品三级在线专区| 亚洲va中文字幕| 97精品国产露脸对白| 五月婷婷久久综合| 欧美麻豆精品久久久久久| 亚洲欧美日韩综合aⅴ视频| a亚洲天堂av| 亚洲一区视频在线观看视频| 欧美性生活一区| 午夜视黄欧洲亚洲| 欧美精品一区视频| 国产一区二三区好的| 欧美变态tickling挠脚心| 精品一区二区三区在线观看| 精品国产一区a| 床上的激情91.| 一区二区三区日韩在线观看| 欧美网站一区二区| 国产一区免费电影| 亚洲免费资源在线播放| 色综合 综合色| 美女免费视频一区| 亚洲蜜臀av乱码久久精品| 欧美日韩精品福利| 91蝌蚪porny九色| 日韩 欧美一区二区三区| 欧美国产欧美综合|