中国开发网: 论坛: 程序员情感CBD: 贴子 216746
GoodHope
C,进来看看
#ifndef __shifter_test_h
#define __shifter_test_h

#include <systemc.h>
#include <assert.h>
SC_MODULE(shifter_test)
{
public:
// Module ports
sc_out<bool> clk,nrst;
sc_out<bool> data;
sc_in<bool> data_fd_bk;
bool data_reg;
bool err;
sc_clock internal_clk;

void st_behaviour()
{
nrst=0;
data=0;
wait(5);
data=1;
wait(2);
nrst=1;
wait(2);
while(1)
{
data=0;
wait(2);
data=1;
wait(3);
data=0;
wait(4);
if(err) printf("Test failed\n");
else printf("Test passed\n");
}


}

void gen_clk(){clk=internal_clk.read();}
void disp_data(){
printf("nrst=%d,data input=%d,data output=%d\n",nrst.read(),data_reg,data_fd_bk.read());
if((nrst.read()==1) && (data_reg!=data.read()))
{
err=1;
assert(false);
}
data_reg=data.read();
}


SC_CTOR(shifter_test)
:clk("clk"),nrst("nrst"),data("data"),data_fd_bk("data_fd_bk"),internal_clk("internal_clk",1000,0.5,SC_NS)
{

SC_METHOD(gen_clk);
sensitive<<internal_clk;
dont_initialize();

SC_CTHREAD(st_behaviour, clk.pos());

SC_METHOD(disp_data);
sensitive<<clk.neg();

err=0;
}

};

#endif

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录