EasyHDL简介.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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调用相应的脚本。 通常,我们

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档