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

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

?? bistpimseqonlinefull_1.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.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 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 BISTPIMSeqOnlineFull extends StandardInteractionModel
{
    // Constants
    final int E_HIGH = 1;
    final int E_LOW_OK = 0;
    final int E_LOW_ERROR = -1;
    
    final int nrEs = 1;
    
    // Config Vars
    
    // Variables for finding E
    protected int startAt = 0; // For each input cycle, start at ...
    protected int inputResetLength = 0;
    protected int eSize;
    protected int DQTol;
    
    // Variable for extracting value of output (kind of inverse of t_setup)
    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 BISTPIMSeqOnlineFull(Evolver evo, Deployment dep, SimulatorFaultyCircuit cir, ConfigurableSequentialCircuitExperiment exp, int iss, SingleFaultModel fm, int es, int DQTol, SnapshotPainter painter, int startAt, int inputResetLength) {
        this( evo, dep, cir, exp, iss, fm, es, DQTol );
        this.painter = painter;
        this.startAt = startAt;
        this.inputResetLength = inputResetLength;
    }
    
    public BISTPIMSeqOnlineFull(Evolver evo, Deployment dep, SimulatorFaultyCircuit cir, ConfigurableSequentialCircuitExperiment exp, int iss, SingleFaultModel fm, int es, int DQTol) {
        super( evo, dep, exp, iss );
        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 ];

        // 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_b = 0, f_b_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 && !getE( noFQWithE ) ) // 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[] used = getUsed( nrOuts ); // Skipping faults in unused elements.

            int nrInstances = 1; // how many faults tested for 
            int diagInstances = 1; // how many correctly diagnosed, including no faults.
            
            // 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() )
                {
                    java.awt.Point currFault = ( java.awt.Point ) faultModel.nextElement();                    
                    if( used[ currFault.x ] ) // Skipping faults in unused elements.
                    {
                        circuit.setFault( currFault );
                        SampleData[] currStateFaultQs = circuit.run( currTPS );
                        
                        int[] eBehaviour = new int[ nrInputCombinations ];
                        int newInstances = countDiagnoses( currStateQs, currStateFaultQs, eBehaviour );
                        Vector currStateFaultKey = new Vector();
                        currStateFaultKey.add( currNode );
                        currStateFaultKey.add( currFault );
                        EBehaviour.put( currStateFaultKey, eBehaviour );
                        
                        diagInstances += newInstances;
                        nrInstances += nrInputCombinations;
                        
                        // TI // longStory +=  currFault + ": " + newInstances + " out of " + nrInputCombinations;
                        
                        circuit.removeFault( currFault );
                        circuit.setState( currentState );
                    }                        
                }
            }
            f_b = 1d / ( ( nrInstances - diagInstances ) / 25d + 1d );

            // 3) Compute f_b_t transitions
            // For now only evalaute f_b_t if f_t = f_b = 1
            if( f_e > 0.9999 && f_b > 0.9999 )
            {
                int incorrectTransitions = 0;
                
                // 3.1) At every state
                for( int sl = 0; sl < nrStates; sl++ )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99这里只有精品| 国产一区二区三区最好精华液| 日韩午夜中文字幕| 91啪亚洲精品| 成人福利电影精品一区二区在线观看| 中文文精品字幕一区二区| 欧美高清一级片在线| 91最新地址在线播放| 国产精品99久久久久久久vr| 一区二区三区四区五区视频在线观看 | 污片在线观看一区二区| 国产精品激情偷乱一区二区∴| 久久久精品2019中文字幕之3| 亚洲精品在线观| 欧美一区二区在线看| 91精品免费在线观看| 欧美变态tickle挠乳网站| 久久亚洲私人国产精品va媚药| 久久久久久久久久久久久夜| 国产日韩视频一区二区三区| 国产精品九色蝌蚪自拍| 一区二区三区欧美日韩| 免费观看日韩电影| 国产成人精品综合在线观看| 日本精品视频一区二区| 91精品蜜臀在线一区尤物| 亚洲精品在线免费播放| 综合久久国产九一剧情麻豆| 偷偷要91色婷婷| 国产99精品国产| 欧美人狂配大交3d怪物一区| 久久免费美女视频| 一区二区三区不卡视频| 狠狠色丁香婷婷综合| 欧美做爰猛烈大尺度电影无法无天| 欧美一区二区网站| 中文字幕一区二区三区在线不卡| 亚洲尤物在线视频观看| 六月丁香综合在线视频| 色女孩综合影院| 日韩精品中午字幕| 亚洲欧美一区二区三区久本道91 | 精品少妇一区二区三区| 亚洲免费视频成人| 国产激情精品久久久第一区二区 | 亚洲国产综合91精品麻豆| 国产综合色视频| 欧美久久久久中文字幕| 亚洲人精品午夜| 国产成人精品亚洲日本在线桃色 | 亚洲已满18点击进入久久| 国产乱一区二区| 欧美一区二区啪啪| 午夜精品久久久久久久99樱桃 | 欧美高清dvd| 国产精品乱码一区二三区小蝌蚪| 麻豆国产欧美一区二区三区| 欧美影视一区在线| 综合久久久久久| aaa欧美色吧激情视频| 2021国产精品久久精品| 日本亚洲免费观看| 欧美精品在线视频| 亚洲最色的网站| 日本高清不卡视频| 亚洲日本青草视频在线怡红院| 国产成人午夜精品5599| 精品国产乱码久久久久久图片| 日本亚洲欧美天堂免费| 欧美日本在线视频| 视频在线观看一区二区三区| 精品视频999| 午夜成人免费电影| 欧美群妇大交群中文字幕| 五月天婷婷综合| 欧美日韩不卡视频| 免费成人你懂的| 精品国产一区二区精华| 激情小说亚洲一区| 国产午夜精品一区二区三区视频 | 尤物在线观看一区| 91精品福利视频| 亚洲国产一二三| 欧美另类z0zxhd电影| 免费久久精品视频| 日韩欧美黄色影院| 久久精品国产成人一区二区三区| 欧美一区二区网站| 国产一区二区剧情av在线| 国产日产欧美精品一区二区三区| 不卡的看片网站| 亚洲夂夂婷婷色拍ww47| 日韩一区二区免费高清| 国产麻豆9l精品三级站| 18涩涩午夜精品.www| 在线国产亚洲欧美| 麻豆精品在线播放| 国产精品对白交换视频| 欧美午夜一区二区| 黄色小说综合网站| 亚洲品质自拍视频| 精品日韩欧美一区二区| 成人国产电影网| 亚洲国产cao| 国产校园另类小说区| 91福利资源站| 国产精品综合av一区二区国产馆| 中文字幕在线视频一区| 欧美亚洲综合一区| 国产夫妻精品视频| 日韩精品一二三| 国产精品国产三级国产aⅴ中文 | 国产成人av电影| 亚洲一二三四久久| 久久久亚洲高清| 欧美精品九九99久久| 成人开心网精品视频| 美脚の诱脚舐め脚责91| 亚洲免费伊人电影| 久久久久国产免费免费| 91精品国产综合久久精品图片| 高清免费成人av| 日本不卡中文字幕| 亚洲黄色片在线观看| 亚洲国产精品二十页| 欧美一区二区在线播放| 色婷婷亚洲综合| 国产精品一区二区在线观看网站| 午夜在线成人av| 亚洲欧美日韩中文播放| 欧美激情一区在线| 精品国产3级a| 日韩欧美高清在线| 欧美一级视频精品观看| 91精品1区2区| 一本色道综合亚洲| 成人免费视频视频| 懂色一区二区三区免费观看| 美国十次综合导航| 欧美a一区二区| 午夜国产精品影院在线观看| 亚洲精品视频一区二区| 国产精品麻豆一区二区 | 亚洲免费观看在线视频| 亚洲国产高清aⅴ视频| 国产日韩欧美激情| 日本一区二区三区免费乱视频| 精品日本一线二线三线不卡| 91精品国产色综合久久| 91精品国产欧美一区二区| 欧美精品日韩精品| 91精品国产乱码| 91精品欧美久久久久久动漫| 在线不卡一区二区| 欧美一级一级性生活免费录像| 欧美另类久久久品| 欧美精品在线一区二区| 欧美一区二区三区免费视频| 欧美日韩国产一二三| 制服.丝袜.亚洲.中文.综合| 4438x亚洲最大成人网| 欧美丰满少妇xxxxx高潮对白| 欧美日韩成人在线一区| 91麻豆精品国产91久久久久久| 91精品久久久久久久99蜜桃 | 亚洲国产激情av| 国产精品美日韩| 亚洲精品福利视频网站| 五月综合激情网| 久久99久久久欧美国产| 国产不卡视频一区二区三区| av成人动漫在线观看| 欧美日韩在线免费视频| 欧美不卡一二三| 亚洲欧美一区二区三区国产精品| 亚洲成人精品在线观看| 九色|91porny| 91丨porny丨国产入口| 91精品国产综合久久久蜜臀图片| 精品久久久久99| 亚洲码国产岛国毛片在线| 免费在线观看视频一区| 成人av影院在线| 欧美日韩国产天堂| 日本一区二区视频在线| 亚洲午夜一区二区| 韩国av一区二区| 欧美日韩一区不卡| 欧美激情一区二区| 日本欧美一区二区三区| www.欧美色图| 精品久久人人做人人爽| 最新国产成人在线观看| 麻豆免费看一区二区三区| 91丨porny丨首页| 久久―日本道色综合久久| 亚洲尤物在线视频观看| 国产91丝袜在线播放九色| 欧美日韩日日夜夜| 亚洲欧洲日韩女同|