随着数字系统设计规模的增大,verilog文件几乎都会分成几个文件模块来管理,就如一个大工程一样,并且相互之间都会有调用关系,典型的就是,有一个文件要调用其他的文件实例,但是本身却不被任何模块所调用,我们称之为(root module)根模块,iverilog会选择那些没有被任何其他模块所调用的模块,为根模块(也许一个设计中有好几个根模块),如果没有符合这样的模块,iverilog编译器将不会选其为根模块,也只有我们认为在命令行里添加‘-s’来标识其为根模块,就下下面所示的那样:
iverilog -s main -o hello hello.v
如果有多个候选根模块,那么他们均通力合作,生成最后的可执行文件,即使你不想把其中的一些模块进行仿真,亦或是那些仿真了也没有啥意义的模块。举个例子:在你包含一个多模块的源文件,而你仅仅对其中的某一些模块感兴趣时。“-s”表示选项可以标识一个特定的根模块,也可以关掉自动搜索其他根目录。你可以用这个特性来阻止那些不需要的根目录的实例调用。