With the discussion of the region a task runs in being ruled by where the thread was started, let me propose an alternative to the possibility for the program block. It should just define a reactive process. So the following would be equivalent: // P1800 program tb; initial begin // reactive process end endprogram // suggested change module tb; program begin //reactive process end endmodule This is essentially what is being proposed anyway, correct? This always seemed the most natural representation of a program to me anyway. It is a thread (or set of threads), not a physical piece of hierarchy. Please correct me if I'm wrong here. But under the current proposal, I could put my entire testbench in modules (using classes if desired) and have it run in the reactive region. I'd just need an artificial level of hierarchy containing the program to start the testbench thread. In other words: class sys_env extends rvm_env; // blah blah endclass //------------------------------------------------------------------------ //What I want to happen based on what I expect SV3.1 and P1800 today automatic program sys_tb; sys_env env; initial begin env = new; env.run(); end endprogram module top; sys_tb tb; endmodule //------------------------------------------------------------------------ // Proposed change allows program start_tb; initial begin top.env = new; top.env.run(); end endprogram module top; sys_env env; start_tb start; endmodule //------------------------------------------------------------------------ // I propose module top; sys_env env; program begin env = new; env.run(); end endmodule Regards, Ryan Warner ryan.s.warner@seagate.comReceived on Thu Dec 7 10:24:25 2006
This archive was generated by hypermail 2.1.8 : Thu Dec 07 2006 - 10:24:49 PST