我是一名刚刚接触Verilog的新手,碰到一个有关task的问题想请高手指点一二: 接到老师给的一个任务,要求对几个模块进行枚举测试,例如若干个与非门构成的模块。但输入信号较多,为此我想用类似C语言中调用函数的方法对这些输入信号赋初值,翻书查到可以用task语句,于是试编写了如下程序: module test_ABC; reg a,b; wire C; initial begin set_1_in(a);//任务调用,初使化一个输入信号a end initial begin b <= 0; forever #100 b = ~b; end task set_1_in; output a;//也试过用inout型,仿真亦失败 begin a <= 0; forever #50 a = ~a; end endtask and ad(C,a,b); endmodule 用modelsim6进行仿真后,发现结果b初使化成功,而利用task调用的a初使化失败,只显示为不定值x。不知是何缘故 希望各位高手不吝赐教
|