浙江大学VHDL中文教程PPT学习教案_第1页
浙江大学VHDL中文教程PPT学习教案_第2页
浙江大学VHDL中文教程PPT学习教案_第3页
浙江大学VHDL中文教程PPT学习教案_第4页
浙江大学VHDL中文教程PPT学习教案_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1浙江大学浙江大学VHDL中文教程中文教程第1页/共127页第2页/共127页第3页/共127页优点:功能强大、通用性强。缺点:难学第4页/共127页第5页/共127页电子系统的设计模块第6页/共127页第7页/共127页系统设计的描述等级-制版级第8页/共127页系统设计的描述等级-逻辑门级第9页/共127页系统设计的描述等级-RTL级第10页/共127页系统设计的描述等级-行为级第11页/共127页 Entity(实体)Architecture 1(构造体)Architecture N process(进程结构) block(块结构) subprograms(子程序) procedu

2、re(过程) function(函数)第12页/共127页library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity count is port ( clock,reset: in STD_LOGIC; dataout: out STD_LOGIC_VECTOR (3 downto 0) );end count;architecture behaviorl of count is signal databuffer: STD_LOGIC_VECTOR (3 downto 0); begin da

3、taout=databuffer; process(clock,reset) begin if (reset=1) then databuffer=0000; elsif (clockevent and clock=1) then if databuffer=1000 then databuffer=0000; else databuffer=databuffer+1; end if; end if; end process; end behavioral;第13页/共127页第14页/共127页buffer可以出现在= 或 : = 的两边In 信号只能被引用,不能被赋值out 信号只能被赋值

4、,不能被引用buffer 信号可以被引用,也可以被赋值第15页/共127页 其内部结构将由Architecture来描述第16页/共127页第17页/共127页第18页/共127页第19页/共127页第20页/共127页第21页/共127页第22页/共127页第23页/共127页第24页/共127页库: 数据的集合。内含各类包定义、实体、构造体等第25页/共127页第26页/共127页第27页/共127页结构关系第28页/共127页第29页/共127页第30页/共127页第31页/共127页第32页/共127页第33页/共127页第34页/共127页例子:A=Bdelayed(10 ns);

5、-B延时10ns后赋给A; if(BStable(10 ns)); -判断B在10ns中是否发生变化第35页/共127页信号的event和last_value属性经常用来确定信号的边沿 属性应用例如:判断clk的上升沿if ( (clkevent)and (clk=1) and(clklast_value=0)) then判断clk的下降沿if ( (clkevent)and (clk=0) and(clklast_value=1)) then第36页/共127页7、integer 32位例如:1、234、-21342348、real 范围-1.0E38+1.0E38 例如:1.0、2.834

6、、3.14、0.0第37页/共127页第38页/共127页第39页/共127页第40页/共127页例子中信号Z有两个驱动A和B;Z必须定义为一种新的数据类型,否则Z将无法决定取值,语句视为非法。第41页/共127页第42页/共127页要点:赋值语句中的方向应和声明中的方向一样第43页/共127页第44页/共127页第45页/共127页第46页/共127页第47页/共127页第48页/共127页第49页/共127页第50页/共127页第51页/共127页第52页/共127页注意:引用时间时,有的编译器要求量 与单位 之间应有一个空格如:1 ns;不能写为1ns;第53页/共127页第54页/共1

7、27页第55页/共127页第56页/共127页第57页/共127页第58页/共127页 use ieee.std_logic_1164.all; 注: standard_logic_1164位于IEEE库中第59页/共127页第60页/共127页第61页/共127页3第62页/共127页第63页/共127页第64页/共127页第65页/共127页第66页/共127页第67页/共127页ARRAY(数组)没有数字概念,数组“111”不等于7第68页/共127页注意:上述运算符应用于 integer,real,time 类型,不能用于vector(如果希望用于vector,可以使用库IEEE的st

8、d_logic_unsigned包,它对算术运算符进行了扩展)第69页/共127页第70页/共127页第71页/共127页第72页/共127页 Entity(实体)Architecture 1(构造体)Architecture N process(进程结构) block(块结构) subprograms(子程序) procedure(过程) function(函数)第73页/共127页第74页/共127页第75页/共127页第76页/共127页第77页/共127页第78页/共127页myblock2: block begin qout=qin; end block myblock2第79页/共

9、127页第80页/共127页exp2: process begin wait on clk,qin; qout=qin; end process第81页/共127页分析:当A、B、C、D中任一信号发生变化时,进程将开始执行,当执行 Z = A and B 后, Z 的值不会立即变化 ;同理执行 Z = C and D 后Z 的值也不会立即变化。当执行end process后, Z 的值才开始更新,同时系统挂起开始等待敏感信号。第82页/共127页例子;二选一的选择器:A、B为输入信号;SEL为选路信号;Z为输出信号;第83页/共127页第84页/共127页第85页/共127页end maxFu

10、nction 中的参数不用说明方向(因为只有一种方向in)第86页/共127页Architecture中的subprogram第87页/共127页end max;第88页/共127页第89页/共127页第90页/共127页process begin wait on a,b; y=a and b;end process等同于process(a,b) begin 错误 如果process中已有敏感信号 wait on a,b; 进程中不能使用wait 语句 y=a and b; end process第91页/共127页process begin clk 顺序处理语句 when 条件表达式= 顺序

11、处理语句 . when others= 顺序处理语句end case 原则 : 1、完全性:表达式所有可能的值都必须说明,可以用 others 2、唯一性:相同表达式的值只能说明一次第96页/共127页第97页/共127页第98页/共127页 For 循环变量 in 范围 loop顺序处理语句end loop注意 : 循环变量不需要定义(声明);例子中 i 不需要定义For loop 语句例子For i in 1 to 10 loop sum=sum+1;end loop第99页/共127页For i in 1 to 10 loop sum=sum+1; next when sum=100;e

12、nd loopFor i in 1 to 10 loop sum=sum+1; exit when sum=100;end loop第100页/共127页while 条件 loop顺序处理语句end loopWhile i10 loop sum=sum+1; i=i+1;end loopWhile 语句例子第101页/共127页第102页/共127页第103页/共127页Myblock: Block begin clr=1 after 10 ns; clr=0 after 20 ns; end block myblockprocess begin clr=1 after 10 ns; clr=

13、0 after 20 ns;end block myblock程序执行10 ns后clr 为1,又过 10 ns后 0赋给了clr,此时clr 以前的值1并没有清掉,clr将出现不稳定状态程序执行10 ns后clr 为1,又过 20 ns后 clr的值变为0,第104页/共127页注意:最后的Else 项是必须的; 满足完全性和唯一性第105页/共127页Block begin sel=b & a; q=ain when sel=“00” else bin when sel=“01” else cin when sel=“10” else din when sel=11” else xx; e

14、nd block第106页/共127页第107页/共127页Block begin with sel select q=ain when sel=“00”, bin when sel=“01”, cin when sel=“10”, din when sel=11” xx; when others; end block 第108页/共127页第109页/共127页第110页/共127页第111页/共127页问题: Z和 Y的最终取值是什么? 信号值的更新在进程挂起时,(M+N)第112页/共127页第113页/共127页(C+B);M的变化将重新激发进程运行;第114页/共127页第115页/共127页第116页/共127页状态机的结构: A、组合逻辑部分(状态译码器和输出译码器) B、寄存器部分各部分的功能 1、状态译码器 确定状态机的下一个状态 2、输出译码器 确定状态机输出 3、状态寄存器 存储状态机的内部状态第117页/共127页状态译码器状态寄存器(当前状态)输出译码器输入信号输出状态输

温馨提示

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

评论

0/150

提交评论