关于状态机结构

2019-07-18 07:49发布

老板交代一个任务,需要做一个测试机,完成IC的基本测试。本人白板一个,看了一些书籍和一些电子资料,做出了如下构想。考虑到一个IC有很多测试项,所以决定使用状态机结构。如图,我把IC的各个测试项做成了一个枚举变量。通过移位寄存器来实现测试项目之间的跳转。但是,这样有一个弊端,当一个测试项目测试完毕之后,无论它是PASS还是FAIL,都需要调到下一个测试项目。那么当最后一项测试完成之后,怎么判断这个IC的整体测试结果呢,比如说第一项fail,但是最后一项PASS.附上截图,程序不完整,只是一个大概的想法和结构,帮忙分析一下,不胜感激。
clip_image002.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
huzhao1027
2019-07-18 11:02
sushu 发表于 2013-8-7 14:31
再添加一个移位寄存器,链接一个簇(簇里面是多个布尔量:个数由你侧测试项决定),每完成一项测试,把结果 ...

版主,谢谢您的回复。我想过这个问题,但是现在有一些地方比较纠结。思路是,我在每一个条件框下,都做了一个简单的比较,就是用作测试数值的比较。之后又用了一个选择VI,虽然只是写了个大体的框架,想必您应该知道。不管结果是否超出SPEC,都会跳到下一个测试项(D_EN)。目的就是无论是否PASS,最后我都可以看到每一项的测试值。但是这样问题又来了,到了最后一项测试完成之后,就不知道如何去判断整个IC的测试结果是否PASS了。想过您说的方法,在对采集完的数据做出比较的同时,一方面通过一个选择VI让其跳到下一个测试项。另外一方面,再引入一个选择VI,本测试项若是PASS,则输出布尔值1,若是FAIL,输出布尔值0。期望的是将每一个条件下的这个布尔值放到一个数组里面,在整个IC测试完毕之后,再从这个数组中索引出每个元素,再作一个与运算,若结果是1,代表PASS,若结果是0,代表FAIL。但是现在就是没有想到有什么办法可以把这每个条件下的布尔值放入一个数组。我尝试过再加入一个移位寄存器,但是在后面创建显示控件的话,会是一个单一的布尔。也就是说,这里的数据类型并不是一个数组,连线并没有变粗。想了很久,也没有找到比较合适的方法,能不能稍微指导一下,谢谢了。

未命名.jpg

一周热门 更多>