差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
|
config [2018/09/17 09:10] group001 创建 |
— (当前版本) | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | 1. 定义一个系统级的config类, 如 syscfg. 在类中集中了所有的控制变量(总开关),这些变量决定了是否允许randomize,error injection, delay injection, 产生包的个数,等等,这样可以有效的消除一些不必要的callback。一般callback只是用于将某段代码开放给后面的维护人员以便进行一些复杂的修改之用。 | ||
| - | 2. main函数要尽量的简单清晰,尽量调用task,以便知道每一步做什么。 格式规定如下\\ | ||
| - | <code verilog> | ||
| - | virtual protected task main(); | ||
| - | super.main // 不需要fork join_noe 包裹 | ||
| - | fork // 并发多线程 | ||
| - | while(1) begin | ||
| - | taskA; //一定要有延迟或等待 | ||
| - | end | ||
| - | while(1) begin | ||
| - | taskB; | ||
| - | end | ||
| - | while(1) begin | ||
| - | taskC; | ||
| - | end | ||
| - | join | ||
| - | endtask | ||
| - | virtual protected task main(); | ||
| - | super.main // 不需要fork join_noe 包裹 | ||
| - | fork // 并发多线程 | ||
| - | while(1) begin | ||
| - | taskA; //一定要有延迟或等待 | ||
| - | end | ||
| - | while(1) begin | ||
| - | taskB; | ||
| - | end | ||
| - | while(1) begin | ||
| - | taskC; | ||
| - | end | ||
| - | join | ||
| - | endtask | ||
| - | </code> | ||