西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发其它知识 → Proteus仿真速度很慢的分析

Proteus仿真速度很慢的分析

相关软件相关文章发表评论 来源:本站整理时间:2010/9/23 15:33:29字体大小:A-A+

作者:佚名点击:1322次评论:0次标签: Proteus

  • 类型:行业软件大小:1.1M语言:中文 评分:6.5
  • 标签:
立即下载

这篇文章是我的个人实践经验:

很多朋友在做Proteus硬件仿真的时候可能都碰上了仿真速度慢的问题,在点击了开始仿真之后,CPU过载,速度极慢,无法正常进行仿真;Proteus在信息栏提示CPU被使用情况,可能高达90%到100%,并没有按照真实速度仿真,点击信息栏中的提示信息就弹出一个对话框,说是 Simulation is not running in real time due to excessive CPUload,鼠标点击提示,会展开一个消息框,下面就是消息框内的内容:

This message has been generated because the simulation has been unable to keep up with real time for more than 20 consecutive simulation frames. This does not affect the accuracy of the simulation in any way, but it will mean that the simulated system may respond much more slowly to interactive events(e.g. push buttons).
See Also:

How to make simulations run faster?

这里的说明中可以看到至少两个信息:第一,速度慢并不影响仿真精度;第二,我们可以点击最下方那句话打开另一个链接来加速仿真;那么,我们就继续按照提示来寻找答案。(也许我们的Proteus版本不同,这些链接打开顺序和方法可能不一样,我是用的是7.1的版本)点击 How to make simulations run faster?打开Proteus的帮助,进入一个英文界面,我把原文全部贴在这里,之后和你一起解读。

ADVANCED TOPICS


HOW TO MAKE INTERACTIVE SIMULATIONS RUN FASTER


Introduction


Although Proteus VSM is able to run many interactive simulations in real

time, it should be fairly obvious that this cannot be the case for all

circuits. For example, it is perfectly possible to draw a circuit that will

oscillate at 1GHz, but there is no way that this can be simulated in real

time on a computer that may not even execute one machine instruction in 1ns.

In this section, we will explain in a little more detail what determines the

complexity of a simulation and how you can optimize a circuit to maximize the

simulation speed.

Using Digital Resistor and Diode Models

First and foremost in this context, it is vital to understand the difference

between analogue and digital simulation within ProSPICE. This is because the

simulation of digital circuitry is two or three orders of magnitude (i.e. up

to 1000 times) faster than the simulation of analogue circuitry. It is for

this reason that ProSPICE contains a digital simulator at all - that by

representing the operation of digital components as an event driven process,

a great deal of unnecessary computation can be avoided.

For example, whilst a PC with 600MHz P3 processor can simulate around 2

million digital events per second, the same computer will only be able to

simulate a sine wave generator running up to about 2kHz before the CPU load

reaches 100%. Such a waveform will require about 60,000 analogue timepoints

to be computed per second, and each timepoint will require a convergent

solution of the circuit nodal equations to be established - a process vastly

more complex than processing a simple digital event.


For many components, it should be fairly intuitive as to whether analogue or

digital simulation will be required. For example, nearly all TTL and CMOS

parts are represented by digital models, whereas analogue ICs such as op-

amps, comparators and so forth are represented by analogue models. All

components which are represented by standard SPICE models require analogue

simulation.

However, a grey area arises for components which - though strictly analogue

in nature - can be represented by a digital model for some purposes. In

particular, diodes - and perhaps more surprisingly - resistors fall into this

category. This becomes highly relevant in the context of wire-or logic, pull

-up resistors, devices with open-collector outputs, and in diode-resistor

logic networks.


Example 1 - Wire-Or Logic

The following circuit section shows a typical wire-or logic network:



U1:A and U1:B have open-collector outputs and can only sink current. A logic

1 output level results in a high impedance condition. In terms of DSIM, this

means that the gate outputs drive either an SLO (strong low) or a FLT

(floating) logic state. Now if resistor R1 is modelled in the analogue

domain, PROSPICE must insert a digital to analogue interface object between

the logic gates and the resistor, and then an analogue to digital interface

object between the resistor and the input to U2:A. This will result in

wonderfully detailed simulation of the rise-fall waveforms at this node, and

the current flow through R1, but will also result in a great deal of

computation every time the output of U1:A or U1:B changes state.


All this can be avoided if R1 is modelled digitally. In this case, its

behaviour is to convert the SHI logic state of VCC to a WHI (weak high) logic

level. When either NAND gate pulls low, the SLO state overrides the WHI state

from the resistor and the net state is resolved to be logic low. But when

neither gate sinks current, the WHI state beats the FLT state and the net

rises to logic high. All this can be managed within the digital simulation

paradigm and no analogue simulation is required.


Therefore, pull up resistors of any kind should almost always be modelled

digitally.


Example 2 - Diode-Resistor Logic


Another case where seemingly analogue circuitry can be modelled in the

digital domain is diode-resistor networks of the sort shown below. These are

often found around keypad scanning circuitry where the diodes serve to

prevent short circuits between the row driving lines if more than more than

one key is depressed simultaneously.


As with the wire-or logic example, ProSPICE will quite happily model this in

the analogue domain but it will be computationally expensive. If a digital

resistor model is used as above, and a diode is seen as a device which will

pass only low logic level from cathode to anode and only a high logic level

from anode to cathode, then the whole network can once again be modelled

digitally.

Since keypad scanning routines tend to operate at some speed, and there are

often numerous diodes and resistors, this is a very important optimization to

be aware of.


How to Select the Digital Resistor Model


1.    Point at the resistor you wish to change and press CTRL-E.

2.    Click the Edit All Properties as Text checkbox.

3.    Change the PRIMITIVE property to read


       PRIMITIVE=DIGITAL,RESISTOR


If you are building a circuit from scratch, and know that you will want a

particular resistor to be modelled digitally, you can also achieve this by

picking the PULLUP or PULLDOWN models from the component library. This

devices already contains the PRIMITIVE property as above.


How to Select the Digital Diode Model


1.    Point at the diode you wish to change and press CTRL-E.


2.    Click the Edit All Properties as Text checkbox.


3.    Change the PRIMITIVE property to read


       PRIMITIVE=DIGITAL,DIODE


4.    Delete any MODEL property, as SPICE parameters have no meaning for the

digital diode model.


If you are building a circuit from scratch, and know that you will want a

particular diode to be modelled digitally, you can also achieve this by

picking the DIODE-DIGITAL device the component library. This device already

contains the PRIMITIVE property as above.

Optimizing Memory Accesses to External RAM and ROM

Many larger microprocessor designs make use of ROM, RAM or EEPROM memory

devices external to the microcontroller itself. These may store the program

code, or be used to supplement internal SRAM present within the CPU chip

itself. Given a correct address decoding circuit, and assuming that the

memory device is modelled, Proteus VSM will correctly simulate such designs

as drawn. When the CPU accesses external memory, the model will drive the

address, data and control lines appropriately, and external decode logic and

memory model will respond by reading or writing the appropriate locations.

This is quite useful if you wish to verify that your memory decoding

circuitry works as designed, but is also extremely expensive in terms of

computation. Setting up a 16 bit address will create a minimum of 16 digital

events and reading or writing a byte of data to/from data bus will generate

another 8. Removing the data from the bus afterwards will create another 8

events. Where address and data lines are multiplexed, as in the above HC11

design, even more events will be generated. All this compares very

unfavourably with the ability of a VSM CPU model to execute an instruction

using just one event per machine cycle.


Therefore, we have provided the CPU models with the ability to simulate

accesses to external memory internally to the model. At the time of writing

this applies to the 8051,

HC11 and the larger AVR CPU models. External memory may be declared using

EXTRAM, or EXTROM properties which specify the memory range for each block of

external memory. Full details are provided in the model specific help for

these processors, which you can access from the Edit Component dialogue form,

or from the Start Menu.


Once the external memory map has been defined in this way, instructions which

access external memory within the specified ranges can be simulated without

generating large numbers of digital events. Accesses to memory mapped

peripherals can still be fully simulated, since these will lie at locations

outside the memory ranges specified in the EXTRAM and EXTROM properties.

这里就列出了所有问题的根源了;各位朋友不妨多看看这里的英文帮助,磨刀不误砍柴

工,这里的帮助内容比任何人的经验之谈要高明得多;


好了,让我来读读这里的帮助,下面是我读出的基本内容之一:

第一:使用数字式的电阻和二极管(Using Digital Resistor and Diode Models)

这句话是我的翻译,原文的意思是如果把所有的二极管和电阻都看成是模拟量那样仿真的话,Proteus的速度会大大下降;所以所有的上拉电阻都可以看成是数字量的模拟(原文是:Therefore, pull up resistors of any kind should almost always bemodelled digitally.);而一些作为逻辑门电路用的二极管也可以看成数字式的;因此,需要对仿真的元件进行设置。

1)对电阻的设置(How to Select the Digital Resistor Model) How to Select the Digital Resistor Model


1.    Point at the resistor you wish to change and press CTRL-E.

2.    Click the Edit All Properties as Text checkbox.

3.    Change the PRIMITIVE property to read


       PRIMITIVE=DIGITAL,RESISTOR

2)对二极管的设置(How to Select the Digital Diode Model)

1.    Point at the diode you wish to change and press CTRL-E.

2.    Click the Edit All Properties as Text checkbox.

3.    Change the PRIMITIVE property to read

       PRIMITIVE=DIGITAL,DIODE

4.    Delete any MODEL property, as SPICE parameters have no meaning for thedigital diode model

       另外说明,在编辑Properties时,在文本框里键入的内容若用中括号{}括起来,那么在仿真界面就不会显示出来,比如

{MODFILE=74AND2.MDF}
{PACKAGE=DIL14}
{ITFMOD=TTL}

第二:Optimizing Memory Accesses to External RAM and ROM


这个问题我还没有遇到过,也不太明白其中的内容,希望比较熟悉单片机方面有的朋友做补充了!!!

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    第 1 楼 广东教育网 网友 客人 发表于: 2011/3/10 17:17:16
    前101个评论都是我的,我很奇怪为什么让一个人可以评论那么多次

    支持( 0 ) 盖楼(回复)

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)