(1)用硬件描述语言描述被模拟电路,经过编译形成中间格式的内部数据。对逻辑电路来说,常用逻辑图编辑器对要模拟的电路进行编辑生成内部数据。所生成的内部数据存入数据库中。
  (2)用波形描述语言写出输入波形文件或者用波形编辑器编辑波形,并放在当前目录。
  内部数据的内部结构随模拟程序而不同。但在同一个EDA系统中,内部数据结构是统一的。用硬件描述语言输入的内部数据格式与图形编辑器输入的内部数据是一致的。这些内部数据除了用于模拟之外,还可以用于综合或形式验证。
  不同级别的内部数据在结构上往往有较大的差别。例如,逻辑电路的内部数据是有元件模型组成的网表结构,而行为描述的内部数据是复杂的数据结构,用以表示各种语言的组成要素。数据库将各级内部描述有机地组织在一起。
  启动模拟器运行之后首先从数据库中读入中间格式的内部模型数据及波形数据。
  在数据读如果承重通常要进行正确性检查。同时还要生成模拟所用的其他结构的数据。譬如:逻辑电路网表只是逻辑元件的集合,每个逻辑元件的输入、输出端信号名隐含其连接关系,模拟程序需要由此基本数据生成每个信号的扇入、扇出元件,即找到该信号是哪些元件的输出信号(扇入元件),是哪些元件的输入信号(扇出元件)。

  在允许包含行为模块的模拟系统中,由于根据用户用硬件描述语言描述的行为描述部分生成的功能计算子程序(例如C语言函数)一般是以函数库的形式保存的,所以要将模拟程序与功能计算子程序链接在一起,形成可执行的模拟程序。然后运行该模拟程序。
  行为模块也看成一个元件。对于常见的基本元件,元件的功能描述由元件模块的模型实现,通常在模拟程序中实现;对于特殊的元件或行为模块,需要用户自己描述其行为过程,由专门的编译程序对其进行编译并生成模型数据。一般提供某种工艺的设计公司有他们自己预先设计好的功能元件模型。这些功能元件模型通常保存在数据库中。

  所生成的模拟程序启动运行之后,首先读入激励波形和模拟控制命令,接着就在这些激励波形和模拟控制命令的控制下进行模拟。
  激励波形和模拟控制命令可以预先编写好,一次读入,顺序执行;也可以用交互方式随时读入,随时执行。
  模拟结果包括输出波形文件和电路错误报告。波形文件随着模拟时钟的前进不断添加新的模拟结果,可由波形编辑器随时同步地动态显示。波形编辑器还可以独立地对显示的波形进行编辑,如上下左右滚动,信号调换位置,信号分组等。同时还可通过原理图编辑窗口中选择线网,在波形显示窗口中显示对应的信号。电路错误报告保存模拟过程中得到的检查结果,例如竞争冒险情况,时序检查结果,以及由控制命令描述规定的信号状态显示等,供设计者参考。
  各EDA工具都提供功能丰富的操作简便的波形编辑显示器,便于用户分析模拟结果,查找设计错误。
  模拟过程一般可以由用户中断。中断的手段有命令方式和随机方式两种。命令方式在WDL描述中指定断点,包括时间断点和条件断点。用户可以在模拟过程中随时用键盘上的Ctrl-C打断,模拟程序在一个模拟周期结束之后停止运行。在中断之后用户可以观看波形,查看错误报告,修改WDL描述,还可以从断点处继续模拟。
  模拟过程正常结束或用户中断后,模拟器并不退出,而是处在等待命令状态,以便输入交互命令以观察状态、修改参数和控制运行。
  除正常结束和用户中断外,模拟过程还可能由于磁盘空间已满及其它意外原因非正常结束。大多数模拟器在非正常结束之后仍可以观察前一阶段的运行结果。
  各软件的功能和运行过程都有所不同。当你开始使用一个系统的模拟工具时,要首先阅读使用手册。MAX-plusII可以接受原理图的图形输入,也接受用VHDL写的电路行为描述和结构描述。注意MAX-plusII是在将输入的数据进行综合之后模拟,即模拟的对象是经过综合的数据。读者请参考第8章,有关于MAX-plusII综合模拟过程的详细介绍。一般的软件,例如Synopsys等公司的EDA系统,我国自行研制的PANDA系统都可以首先对输入的VHDL描述进行模拟,在综合完成之后对综合结果再进行模拟。