现在,HDL仿真器首要有三种完结算法(机制):根据时刻的算法(Time-Based)、根据事情的算法(Event-Based,EBS)和根据周期的算法(Cycle-Based,CBS)
根据时刻的算法合适处理接连的时刻及变量,其会在每一个时刻点对一切的电路元件进行核算。可是,在大部分情况下,每一个时刻点只要约2%~10%的电路处于活动(运转)状况,所以该算法功率十分低。
根据事情的算法合适处理离散的时刻、状况和变量。该算法只要在电路状况产生变化时才进行处理,只仿真那些或许引起电路状况改动的元件。仿真器呼应输入引脚上的事情,并将值在电路中向前传达。现在来说,该算法功率最高,且运用最为广泛,大部分的商业仿真器都是根据该种算法进行开发的。用某仿真器厂家的宣传语,便是“Evaluate When Necessary”。
根据周期的仿真算法以时钟周期为处理单位(与时刻无关)。其旨在时钟边缘进行核算,不论时钟周期内的时序,且仅仅用两值逻辑(0和1)。该算法首要针对的是大规模规划(尤其是数字IC规划),且只能运用于同步电路。
下面具体介绍一下根据事情的仿真算法:
仿真器在编译数据结构时树立一个事情队列;
只要当时时刻片中一切事情都处理完结之后,时刻才干向前;
仿真从时刻0开端,并且时轮只能向前推动。只要时刻0的时刻处理完后才干进入下一时刻片;
在同一个时刻片内产生的事情在硬件上是并行的;
理论上时刻片能够无限,但实际上受硬件(如电脑的CPU等)和软件(如该仿真软件是否支撑多线程技能等)的束缚。
而根据周期的算法只会在时钟的边缘来核算组合逻辑的输出成果,因而根据周期的算法速度更快,内存的运用功率更高。一起,由于根据周期的算法不允许进行严厉的时刻束缚,所以其仿真时刻精度没有根据事情的算法高(since cycle-based simulators do not allow detailed timing specificity, they are not as accurate. )。根据周期的算法的原理图,如下图所示:
根据事情的算法,根据周期的算法和传统的电路仿真软件SP%&&&&&%E的比较图:
现在根据事情的算法的仿真器(EBS Simulator)首要有:
Modelsim、ActiveHDL、NC-Verilog、Verilog-XL、VCS(Verilog)、Scirocco(VHDL)等。
根据周期的算法的仿真器(CBS Simulator)首要有:
Modelsim、Synopsys Cobra等。
其间Modelsim一起支撑EBS和CBS。