亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产毛片精品一区| 美日韩一区二区| 亚洲激情自拍视频| 香蕉av福利精品导航| 青青草伊人久久| 99视频精品在线| 欧美日韩一区二区在线观看视频 | 日韩精品免费专区| 国产精品99久久久久久宅男| 色吊一区二区三区| 2欧美一区二区三区在线观看视频| 欧美高清在线精品一区| 亚洲成av人片一区二区| 国产精品一区二区三区乱码| 欧美日韩精品一区二区三区四区 | 国产成人免费高清| 欧美中文字幕一区二区三区| 精品美女一区二区| 亚洲日本免费电影| 国产精品一区久久久久| 欧美色综合久久| 中文字幕一区二区三区色视频| 日韩精品三区四区| 欧美亚洲国产一区在线观看网站| 精品电影一区二区| 日本网站在线观看一区二区三区| 色综合天天综合在线视频| 精品日韩一区二区三区 | 欧美成人三级电影在线| 亚洲国产一区二区三区| 不卡区在线中文字幕| 国产亚洲欧美激情| 国产一区二区三区免费看| 欧美高清视频不卡网| 亚洲一二三专区| 色天使久久综合网天天| 亚洲色图丝袜美腿| 色久综合一二码| 亚洲欧美在线观看| 99视频在线精品| 中文字幕欧美一| 色综合天天综合在线视频| 亚洲四区在线观看| 99久久精品国产毛片| 亚洲色图.com| 亚洲综合一二三区| 精品久久久影院| 国产一区 二区 三区一级| 色一情一乱一乱一91av| 亚洲精品一线二线三线| 国内精品久久久久影院薰衣草 | 日韩一区二区三区观看| 麻豆精品久久久| 国产欧美日韩不卡免费| kk眼镜猥琐国模调教系列一区二区 | 欧美男同性恋视频网站| 麻豆精品国产传媒mv男同 | 亚洲欧美日韩人成在线播放| 欧洲亚洲国产日韩| 六月丁香综合在线视频| 久久久亚洲精华液精华液精华液| 国产成人综合网站| 亚洲精品日日夜夜| 欧美一区二区网站| 丁香婷婷深情五月亚洲| 亚洲成人久久影院| 久久嫩草精品久久久久| 欧美性一区二区| 国产suv精品一区二区883| 午夜欧美在线一二页| 久久这里只有精品首页| 欧美亚一区二区| 福利电影一区二区三区| 青青草视频一区| 亚洲丝袜美腿综合| 精品国产乱码久久久久久图片 | 日韩精品电影一区亚洲| 国产精品萝li| 久久精品夜色噜噜亚洲aⅴ| 777a∨成人精品桃花网| 97成人超碰视| 夫妻av一区二区| 国产福利一区在线观看| 青青草国产成人99久久| 亚洲成人综合视频| 亚洲男帅同性gay1069| 国产欧美日韩视频一区二区| 欧美成人性福生活免费看| 91精品国产高清一区二区三区蜜臀| 日本高清不卡aⅴ免费网站| 国产精品白丝jk白祙喷水网站| 亚洲国产一区二区三区| 日韩美女视频一区| 中文字幕不卡一区| 欧美三级欧美一级| 一本久道中文字幕精品亚洲嫩| 国产一本一道久久香蕉| 久久精品国产99| 美女国产一区二区三区| 亚洲国产精品久久不卡毛片 | 欧美日韩一区中文字幕| 日日摸夜夜添夜夜添亚洲女人| 在线91免费看| 美女视频黄久久| 精品国产凹凸成av人导航| 国产美女一区二区三区| 亚洲人成网站精品片在线观看| 欧美一区二区福利在线| 国产日韩高清在线| 国精产品一区一区三区mba视频 | 欧美日韩一卡二卡三卡| 最新热久久免费视频| 亚洲一区二区在线观看视频| 亚洲欧美国产毛片在线| 日韩天堂在线观看| 国产激情一区二区三区| 美女精品一区二区| 亚洲韩国精品一区| 1区2区3区欧美| 亚洲风情在线资源站| 欧美在线影院一区二区| 亚洲激情自拍视频| 中文字幕乱码亚洲精品一区 | 亚洲色图丝袜美腿| 视频一区二区三区在线| 偷拍与自拍一区| 麻豆精品久久精品色综合| 久久99久久久欧美国产| 国产一区二区三区黄视频| 97se亚洲国产综合自在线不卡| 成人性生交大片免费看中文 | 亚洲色图欧洲色图婷婷| 亚洲一二三区在线观看| 韩国毛片一区二区三区| 日韩欧美国产三级| 欧美国产一区二区| 天天综合天天做天天综合| 国产91丝袜在线播放| www.日韩av| 精品免费国产二区三区| 欧美国产视频在线| 日本欧美韩国一区三区| 成人免费高清在线| 久久先锋影音av| 日韩va欧美va亚洲va久久| 国产激情精品久久久第一区二区| 欧美日韩中文精品| 国产清纯白嫩初高生在线观看91 | 日韩精品自拍偷拍| 亚洲成人激情综合网| 91精品1区2区| 亚洲国产色一区| 欧美日韩一区二区不卡| 国产一区二区三区免费观看| 精品少妇一区二区三区免费观看| 亚洲mv大片欧洲mv大片精品| 成人h动漫精品一区二区| 久久午夜羞羞影院免费观看| 麻豆91在线播放| 91精品国产色综合久久不卡电影 | 在线免费观看视频一区| |精品福利一区二区三区| 成人一区二区三区视频在线观看| 欧美精品一区二区精品网| 久久99蜜桃精品| 精品奇米国产一区二区三区| 樱桃视频在线观看一区| 欧美日韩国产一级二级| 亚洲成人三级小说| 日韩欧美电影一二三| 国产不卡在线视频| 亚洲欧洲精品成人久久奇米网| 91在线精品秘密一区二区| 亚洲午夜久久久久久久久电影院| 欧美午夜视频网站| 美女诱惑一区二区| 中文字幕av一区二区三区高| 91色九色蝌蚪| 国产一区二区网址| 一色屋精品亚洲香蕉网站| 欧美视频一区二区在线观看| 美女一区二区视频| 国产日产欧产精品推荐色| 在线观看网站黄不卡| 精品制服美女久久| 亚洲黄色性网站| 91麻豆精品久久久久蜜臀| 国产东北露脸精品视频| 一区二区三区日韩欧美精品 | 亚洲最新在线观看| 日韩免费视频一区二区| 99精品国产99久久久久久白柏| 午夜亚洲福利老司机| 国产精品久久久久久久久免费相片| 国产精品中文字幕欧美| 日韩av不卡一区二区| 亚洲精品中文在线影院| 国产婷婷精品av在线| 国产精品一区二区三区网站| 国产精品对白交换视频|