ate.cpp

来自「国外开源的一个片上网络系统的源代码」· C++ 代码 · 共 65 行

CPP
65
字号
#include "ATE.h"


void ATE::rst_state()
{
	state = FIRST_SLICE;
	r_en = 0;
	en = 1;
	valid.write(1);
}

//just send several test data as example
void ATE::send_data()
{	
	if(en){
		switch(state)
			{
			case FIRST_SLICE:
				state = SECOND_SLICE;
				test_stimuli.write(8);//the value is determined by atpg
				break;
			case SECOND_SLICE:
				state = THIRD_SLICE;
				test_stimuli.write(8);
				break;
			case THIRD_SLICE:
				state = CAPTURE;
				test_stimuli.write(8);
				break;
			case CAPTURE:
				state = FIRST_RESPONSE;
				r_en = 1;
				en = 0;
				break;
			case default:
				break;
			}
		}
}

void ATE::receive_data()
{
	sc_uint<RES_BANDWIDTH> response, golden_res;
	response = test_response.read();
	if(r_en)
		{
		switch(state)
			{
			case FIRST_RESPONSE:
				golden_res = 8;
				break;
			case SCOND_RESPONSE:
				golden_res = 8;
				r_en = 0;
				en = 1;
				break;
			default:
				break;
			}
		if(response == golden_res) valid.write(1);
		else valid.write(0);
		}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?