- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EasyHDL是Proteus专有的脚本编程语言,它比通用的硬件描述语言.doc
EasyHDL简介
EasyHDL是Proteus专有的脚本编程语言,它比通用的硬件描述语言(VHDL,Verilog等)更简单易用,功能也更加强大,可用于生成复杂的测试信号,包括数字信号和模拟信号,还可以用一个脚本为多个信号源对象生成复杂的测试向量。
EasyHDL基于BASIC编程语言,在此基础上添加了一些应用特性。接下来,本文将引导你创建EasyHDL脚本,并且链接到一个或多个信号发生器对象上。但本文除了对那些EasyHDL新加的,用于仿真建模和控制的功能进行细致描述外,不对BASIC语言的基本语法进行详细介绍。
创建和编辑EasyHDL脚本
EasyHDL脚本分为两种,一种是本地脚本,对应于某一个具体的信号发生器;另一种是全局脚本,放在原理图上,可链接到多个信号发生器,可用于定义复杂的测试向量。
本地EasyHDL脚本的创建
选择信号发生器图标,把它放置到原理图中,双击信号发生器,打开属性对话框,如下图所示:
根据需要选择信号发生器的类型,可选模拟EasyHDL和数字EasyHDL。
在右边的文本框中输入脚本,也可以点击编辑按钮,调用外部编辑器输入。
输出管脚的变量名自动定义为“OUT”,对于模拟信号,它是“NODE”类型的变量,而对于数字信号,它是“PIN”类型的变量。
全局EasyHDL脚本的创建
选择脚本图标,并放置到原理图中,将自动弹出编辑脚本对话框,如下图所示:
对于全局EasyHDL脚本,第一行必须如下定义:
*SCRIPT GENERATOR 脚本名称
关键字SCRIPT表示在脚本块中的文字将会放进网络表中,而关键字GENERATOR将告诉PROSPICE脚本的类型(链接时用到)。关键字GENERATOR后面的是脚本名称,可以使用数字、字母和下划线,其它的字符不能使用。
最后一行必须如下定义:
*ENDSCRIPT
关键字ENDSCRIPT表示脚本结束。如果没有找到这个关键字,ISIS在编译网络表的过程中将会提示。在这一行后面的所有脚本都将被忽略掉。
在*SCRIPT... 和 *ENDSCRIPT之间输入EasyHDL脚本。你需要把信号发生器名称定义为NODE或PIN类型。
完成脚本输入后关闭对话框即可。
链接信号发生器到全局EasyHDL脚本
选择信号发生器图标,把它放置到原理图中,双击信号发生器,打开属性对话框。
根据需要选择信号发生器的类型,可选模拟EasyHDL和数字EasyHDL。
使用“分配脚本”列表框选择激烈信号发生器的脚本,信号发生器的名字必须与脚本中的NODE/PIN类型变量一致。
可以参照SAMPLES目录下的“SPI Memory Stimulus.DSN”例子,学习全局脚本控制多个信号发生器的方法。
EasyHDL编程结构
EasyHDL由声明语句,赋值语句和命令语句组成。声明语句用于声明变量的名称,也可以进行初始化;赋值语句用于给变量赋值;命令语句用于控制脚本的流程。
每一个声明语句和命令语句都与一个或多个关键字关联,但有些命令有多个关键字,有一些关键字是可选的,在某些情况下可以省略。例如FOR...TO...STEP...NEXT命令具有四个关键字,只有FOR、TO和NEXT是必要的,STEP关键字和跟随它的表达是可以省略的。
一些命令有两种语法,分块(block)和单行(inline)。分块语法允许在命令的开始和结束之间嵌套多条命令。单行语法则必须把其它命令放在同一行上,但可以省略结束语句。下面是IF...ELSE...ENDIF命令的两种语法示例:
IF i=0 THEN
j=1 // IF... BLOCK
k=2
ELSE
j=3 // ELSE... BLOCK
k=4
ENDIF
IF i=0 THEN j=1:k=2 ELSE j=3:k=4 // 不需要ENDIF
使用EasyHDL描述模拟信号
定义输出
模拟信号发生器的输出管脚应该定义为NODE类型的变量,例如:
NODE V(OUT) // 单电压输出
NODE V(POS,NEG) // 差分电压输出
NODE I(OUT) // 单端电流输出
NODE I(POS,NEG) // 电流输出
本地脚本对电流电压输出进行了隐式定义,电压信号发生器定义为NODE V(OUT),而电流信号发生器定义为NODE I(OUT)。
程序流程
使用EasyHDL脚本定义模拟信号,在每个模拟仿真的时间点上或者回调事件出现时,整个脚本都是从上到下执行的。SLEEP命令将被禁止,并且假定程序将对每个声明的NODE变量进行赋值。
回调事件可以通过CALLBACK和TIMER命令进行安排。这些命令将会在指定时间上产生模拟仿真时间点,并且在这个时间点上通过相应的事件ID调用相应的脚本。
通常,我们
您可能关注的文档
- 2010—2020年全球橡胶市场展望.PDF
- 2011-059关于公司会计估计变更的公告.doc
- 2011世界的地形教案.doc
- 2012年度住房改革支出决算报表.ppt
- 2012年度省级公共电子阅览室技术平台配置标准-四川省图书馆.doc
- 20130717判断与决策之分析阶段与操作步骤第二版-中华公共事务管理.doc
- 2013两岸三地学术交流中国科技技术大学.ppt
- 2013小小孔明气象预报探究竞赛气象小学堂PK赛参考资料.PDF
- 2013年度主题-爱的消失与重生提案企划基本资料FilmDetails-CNEXHK.doc
- 2013年论述类文本阅读复习常见设误类型和答题思路-临沂第二十四中学.ppt
文档评论(0)