makefile cm_para = -debug_pp -cm line+cond+fsm+tgl+branch +define+FUNC_COV -cm_line contassign -cm_hier Makefile.coverage.cfg
时间: 2023-12-09 15:05:57 浏览: 40
这个Makefile语句的作用是创建一个名为“cm_para”的变量,并将一些参数赋值给它。这些参数将被传递给vcs编译器的Coverage Monitor(CM)选项。
具体来说,这个变量包含以下参数:
- “-debug_pp”:启用调试信息和预处理器输出;
- “-cm line+cond+fsm+tgl+branch”:指定启用的覆盖类型,包括行、条件、状态机、跳变和分支覆盖;
- “+define+FUNC_COV”:定义一个名为“FUNC_COV”的宏;
- “-cm_line contassign”:指定在覆盖报告中不包括连续赋值语句;
- “-cm_hier Makefile.coverage.cfg”:指定覆盖配置文件的路径和名称。
这些参数将被传递给vcs编译器,用于启用Coverage Monitor(CM)功能,并生成覆盖报告。在Makefile中,可以使用类似以下的语句来编译和运行测试,并生成覆盖报告:
```
vcs $(cm_para) -o test.out testbench.v design.v
./test.out
urg -dir simv.vdb -report test_coverage
```
这将使用vcs编译器和cm_para变量中的参数编译testbench.v和design.v文件,并生成一个名为test.out的可执行文件。然后,将运行这个可执行文件,并使用urg工具生成覆盖报告。
相关问题
makefile define_para += +define+MTM_SPEC='"MINIMUM"'
这个Makefile语句的作用是向define_para变量中添加了一个参数“+define+MTM_SPEC='"MINIMUM"'”,这个参数将被传递给iverilog编译器。这个参数的作用是定义一个名为MTM_SPEC的宏,并将其值设置为“MINIMUM”。
在iverilog中,“+define”选项用于定义一个宏,并且可以通过在宏名称后面添加值来设置其值。在这个特定的例子中,MTM_SPEC是一个宏,它的值被设置为“MINIMUM”。
通过在Makefile中使用这个语句,可以将这个宏传递给iverilog编译器,并且可以在Verilog源文件中使用这个宏。例如,在源文件中,你可以使用以下代码来引用这个宏:
```
`ifdef MTM_SPEC
// do something
`endif
```
这个代码将检查MTM_SPEC是否被定义,并在它被定义时执行一些操作。
makefile define_para += +define+SIM_RAMDOM +define+RTL_SIM
这个Makefile语句的作用是将两个宏定义添加到名为“define_para”的变量中,这些宏将被传递给vcs编译器。
具体来说,这个变量包含以下参数:
- “+define+SIM_RAMDOM”:定义一个名为“SIM_RAMDOM”的宏;
- “+define+RTL_SIM”:定义一个名为“RTL_SIM”的宏。
这些宏将被传递给vcs编译器,并可以在Verilog源文件中使用。例如,在源文件中,你可以使用以下代码来引用这些宏:
```
`ifdef SIM_RAMDOM
// do something
`endif
`ifdef RTL_SIM
// do something
`endif
```
这个代码将检查这些宏是否被定义,并在它们被定义时执行一些操作。
在Makefile中,可以使用类似以下的语句来编译和运行仿真,并传递宏定义:
```
vcs $(define_para) -o test.out testbench.v design.v
./test.out
```
这将使用vcs编译器和define_para变量中的参数编译testbench.v和design.v文件,并生成一个名为test.out的可执行文件。然后,将运行这个可执行文件,并传递宏定义。