用分立器件搭建电路是比较费时间的,在衡量电路性能上也有限制。确实是如此,在实际测试与衡量电路不同特性之前,很难能够确定该电路的行为特性。由于现代计算机的出现,工程师意识到他们可以以计算机程序的形式来定义抽象的电路模型,然后用抽象的模型去仿真电路的行为特性而不用实际搭建出电路。仿真器能够让设计师在着手搭建实际电路之前,就能够同过用大量的不同输入以及各种操作假设情况来对电路设计进行实验。此外,复杂的电路设计,比如现代微处理器,在其原型电路中使用了大量的器件,如果没有经过严格大量的仿真,是不可能简简单单就被实际搭建出来的。
仿真器需要两种类型的输入-一种是抽象电路描述,包括所有的逻辑门(或其它器件)以及连接线,还有一种是输入激励文件,用于描述随着时间变化,输入信号怎样来驱动。抽象电路以“电路描述语言”的方式输入到计算机中去。目前有几种这样的语言在使用中,并被分为主要两组:“网络表”语言(最有名就是edif格式);还有就是“硬件描述语言”,或称为HDL’s(VHDL和Verilog是最有名的)。在过去的二十几年里,网络表是电路描述中占支配地位的,但是近年来,HDL’s被使用的越来越多。在这一章节中,我们主要介绍网络表以及其工具,并用它们来创建、仿真以及下载电路到可编程器件中。HDL’s将在后续章节介绍。
网络表是一种简单的,对给定电路器件以及连接线进行描述的文本类描述。一个简单电路的网络表如右图所示。网络表中每一行的第一部分就是确定给定逻辑门或电路的唯一标签。然后是门电路的名称以及所有输入和输出信号,并按预先设定的顺序排列-在这个网络表中,逻辑门的输出放在最后一列。比如,第二行中的2-输入与非门,标记为G2,其中输入为net1和a,输出为net2。

网络表使用很多不同的格式,其中“电子数据交互格式(edif)”是目前使用最流行的。尽管实际的edif格式的网络表与本例中的网络会有不同,但含有的本质信息是一样的。在网络表中,入口一定会为仿真描述电路来提供描述程序的所有信息。如所示的例子中,你可以将每一行都看作是一个子程序调用,而逻辑门的名称就作为一个子程序名,输入输出是其子程序的参数。在每次仿真开始后,任何子程序的输入改变,都要从新执行以产生出新的输出值。每个新计算出的输出值可能就是其它子程序的输入值,并且那个子程序也要在下一次仿真时间内被执行
为了仿真电路,需要一组仿真输入数据。通常,会在文本中写一系列的仿真命令,并且给到仿真器中(与网络表一起)进行“批”处理。当然,有时也需要一个命令一个命令的执行仿真命令,并实时的观察电路相应。如右图方框中所示,这就是一组仿真输入。

<<上一节 下一节>>