VHDL语言对复杂电路行为的描述方法(新版).ppt_第1页
VHDL语言对复杂电路行为的描述方法(新版).ppt_第2页
VHDL语言对复杂电路行为的描述方法(新版).ppt_第3页
VHDL语言对复杂电路行为的描述方法(新版).ppt_第4页
VHDL语言对复杂电路行为的描述方法(新版).ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第六讲 VHDL语言对复杂电路行为的描述方法,提纲,提高抽象层次 对事件模型的扩展 进程(Process)语句 并行进程 进程+并行信号赋值语句 循环语句 进程的执行机制 Wait语句 VHDL的对象属性 前述描述方法的综合运用:描述一个状态机 总结,提高抽象层次,并行信号赋值语句可以方便地描述数字系统门级行为 更高层的电路部件有着更复杂的行为 输入/输出行为已经难以用并行信号赋值语句来描述 描述中需要引入状态信息 需要引入复杂数据结构 我们需要引入功能更强的描述结构,对事件模型的扩展,组合逻辑电路的输入/输出特点 输入信号上的事件引起逻辑电路进行重新计算 重新计算的结果是在输出信号上有新的

2、事件产生 计算输出信号上的事件所对应的值和时间是一个复杂的过程,进程(Process)语句,进程(Process)语句,进程中的语句是顺序执行的 进程体的结构是和常规的C语言的函数非常相似 对变量作声明和引用 采用if-then, if-then-else, case, for 和 while语句 进程中可以包含信号赋值语句 进程和其他并行信号赋值语句的关系是并行执行 一个进程在仿真中的执行时间是0秒,进程的执行将产生未来的事件 我们可以将一个进程等价地看作为一个复杂的信号赋值语句,并行进程:一个全加器的例子,全加器中的每一个部件都可以用一个进程来描述 进程之间是并行执行的 在这个意义上这些进

3、程的行为和并行信号赋值语句是非常相似的 进程之间通过信号来通讯,并行进程:一个全加器的例子,并行进程:半加器,进程+并行信号赋值语句:存储器读写举例,进程+并行信号赋值语句:存储器读写举例(写操作),进程+并行信号赋值语句:存储器读写举例(写操作),进程+并行信号赋值语句:存储器读写举例,一个进程可以看作是一个单独的并行信号赋值语句 进程的外部行为和一个并行信号赋值语句是完全相同的 进程描述了更加复杂的事件产生和处理的操作 在仿真时进程和其他并行赋值语句是并行执行的。,循环语句,循环语句,对for循环语句,循环次数控制是直接在语句中定义的 for循环语句的循环次数控制仅局限在for 语句中有效

4、 在for 语句之外是无效的 对while循环语句,退出循环的条件是由布尔表达式来决定的,进程的执行机制,所有的进程在仿真的起始时刻都被执行一次 因此进程端口表中的信号值和信号上的事件决定来进程初始化的结果 我们可以将进程看作是具有外部接口和内部功能的逻辑部件 在进程中可以定义变量,要注意变量和信号之间的不同,进程的执行机制,进程的执行机制,进程的执行机制,变量和信号的区别 数值计算vs.时间-数值对的计算 信号所对应的事件排序和delta延迟机制! 变量和信号在进程中的运用 信号与硬件电路中的连线相对应 变量用于标识进程中运算的中间值 实体(Entity)中定义的信号在进程中是可见的 在进程

5、中可以包含变量赋值和信号赋值语句,进程的执行机制,Wait语句,Wait语句:波形的生成,Wait语句:波形的生成,注意到上面的语句利用了进程“永久”执行的原理,Wait语句:异步输入,Wait语句,在一个进程中可以包含多个wait语句 一个进程中不可以同时包含wait语句和敏感表 Wait语句以显式的方式来控制进程操作的暂停和恢复执行 该语句可以用来表示数字系统中的同步和异步事件,VHDL的对象属性(Attribute),可以通过下述表达式来获得VHDL对象的属性:object attribute 例如:一个信号所包含的属性 该信号的哪些信息是有用的? 某一事件的发生 最近发生的事件到当前时

6、刻的时间间隔 在最近事件之前的信号值,属性的分类,数值属性 返回一个常数 函数属性 调用一个函数,该函数返回一个数值 信号属性 产生一个新的信号 类型属性 返回一个VHDL类型的属性 范围属性 返回一个范围值,数值属性,返回一个常数,例如 type statetype is (state0, state1, state2 state3); statetypeleft = state0 statetyperight = state3,函数属性,对属性的使用引起了一个函数调用,该函数有一个返回值 if (Clkevent and Clk = 1) 信号属性所对应的函数调用,函数属性,队列(arra

7、y)属性函数,范围属性,返回一个队列的索引范围 该属性使loop循环的编写变得容易,信号属性,利用信号属性得引用可以产生一个新的信号,信号属性,前述描述方法的综合运用:描述一个状态机,状态机的基本组成 组合逻辑部分:输出计算和下一状态的计算 时序逻辑部分:状态存储 基于进程的描述方法,前述描述方法的综合运用:描述一个状态机,前述描述方法的综合运用:描述一个状态机,输出与下一状态的计算 comb_process: process (state, x) is when state1 = Begin if x = 1 then case state is next_state z = 0; if x

8、 = 0 then else next_state = state1; next_state = state1; z = 1; z = 1; end if; else next_state = state0; end case; z = 0; end process comb_process; end if;,前述描述方法的综合运用:描述一个状态机,Clock进程 采用一个异步复位来将状态机初始化到一个已知的状态 clk_process: process is begin wait until (clkevent and clk = 1); - wait until the rising edge if reset = 1 then - check for reset and initialize state state = statetypeleft; else state = next_state; end if; end process clk_process; end b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论