Copyof基本语言介绍_第1页
Copyof基本语言介绍_第2页
Copyof基本语言介绍_第3页
Copyof基本语言介绍_第4页
Copyof基本语言介绍_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

LIBRARYieee;USEieee.std_logic_1164.all;ENTITYsimpISPORT(a,b,c,d:INStd_Logic;g:OUTStd_Logic);ENDsimp;ARCHITECTURElogicOFsimpISSIGNALe,f:Std_Logic;BEGINe=aorb;f=not(cord);g=eandf;ENDlogic;,例:端口信号和内部连接信号的说明,一、基本结构介绍,程序结构,Use定义区libraryieee;useieee.Std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;,库、程序包的使用说明,说明设计是在什么规范范围内设计的。,Ieee为程序库,Std_logic_1164为程序包,.all表示允许使用程序包中的所有内容,如类型定义、函数、过程、常量等。,实体描述的是电路器件的外部情况(输入输出端口)以及各信号端口的性质。如信号流动的方向和数据类型等。例:4选1数据选择器。,Entitych4isPort(a1,a0:instd_logic;d3,d2,d1,d0:instd_logic;y:outstd_logic);Endch4;,Entitych4isPort(a1,a0:instd_logic;d3,d2,d1,d0:instd_logic;y:outstd_logic);Endch4;,实体名称,端口名称,输入输出状态,数据类型,实体名称,由设计者自定,最好根据电路的功能来取,可用英文字母、数字和下划线,但不能用中文定义实体名,也不能与EDA库中的元件名冲突,且不能用数字起头的实体名。,端口信号名:描述的是电路的端口,用;结尾,但是要注意最后一句定义无;,要括号外面加分号。,端口模式:有in,out,inout,和buffer。其中in为输入端口,单向只读,数据只能通过此端口被读入实体中。Out为输出端口,单向输出,数据只能通过此端口从实体向外流出,或者说只能向此端口赋值。,Inout为输入输出双向端口,从端口的内部来看,可以向此端口赋值,也可以通过此端口读入实体外的信息,从端口外部来看,信号即可以从此端口流出,也可以向此端口输入信号。Buffer缓冲端口,其功能与inout类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈,如计数器设计。,数据类型:VHDL中任何一个数据对象必须严格限定其取值范围和数据类型。如bit类型,取值为逻辑0和1,使用时必须0,和1,否则会当整型处理。常用的还有std_logic,标准逻辑类型,取值有(x,0,1,Z,w,L,H,-)。标准逻辑序列std_logic_vector(7downto0)。,Architecture定义区Architecture结构名称OF芯片电路名称Is(说明语句;)Begin(内部电路描述)End结构名称;,结构体负责描述电路器件的内部逻辑功能或电路结构。,Architectureaofch4isBeginY=d0;Enda;,说明语句放在begin之前,用于说明和定义数据对象、数据类型、元件调用声明。并非必须。,内部电路功能描述语句要描述电路的功能,必须存在。如:,=为赋值语句,如y=a;表示将a的数据赋值给y。,Architectureaofch4isSignalb:std_logic;Beginb=d3andd2;Y=b;Enda;,Signal表示非输入输出的内部信号,为实际存在的物理节点,即可被赋值也可赋值给别的信号。,Process定义区属于内部电路描述Process(信号1,信号n)Begin(内部描述)Endprocess;注意:信号1n称敏感信号,只要其发生变化,进程重新执行一次;一个architecture可以有多个process,VHDL执行语句分为并行语句和顺序语句。顺序语句是按照前后顺序逐条执行的,process中必须使用顺序语句。并行语句无论有多少条,都同时执行,与前后顺序无关。结构体中必须使用并行语句。=赋值语句即是并行语句又是顺序语句。Process本身是个bing语句,所以一个architecture里可有多个process。,Architectureaofch4isSignalb:std_logic;BeginProcess(d3,d2)beginb=d3andd2;Endprocess;Y=b;Enda;,程序还可以有多个process。多个process之间是并行执行的。,Architectureaofch4isSignalb,c:std_logic;BeginProcess(d3,d2)beginb=d3andd2;Endprocess;Process(d1,d0)beginc=d1andd0;Endprocess;Y=,逻辑序列信号Bit_vectorStd_logic_vectorForexample:a:instd_logic_vecyor(7downto0);b:outstd_logic_vector(0to3);c:outstd_logic_vector(6downto0);d:outstd_logic_vector(7downto0);e:instd_logic_vecyor(3downto0)d=a;b=a(5downto2);c=e,d:instd_logic_vector(3downto0);y:outstd_logic);Endch4;,二、主要描述语句:并行语句、顺序语句,直接设置语句:使用=运算符例:条件式信号设置语句:whenelse信号A=信号Bwhen(条件1)else信号Cwhen(条件2)else信号D;例:数据选择器,并行语句:,Architectureaofch4isBeginy=d(3)whena=“11”elsed(2)whena=“10”elsed(1)whena=“01”elsed(0);Enda;,在电脑中编辑整个程序、编译、仿真、下载到实验箱中。,举例:七段译码器的程序编写。编码器的程序编写,并行语句:,Architectureaofch4isBeginWithaselecty=d(3)when“11”,d(2)when“10”,d(1)when“01”,d(0)whenothers;Enda;,举例:七段译码器的程序编写。编码器的程序编写.,architecture里面各命令是并行的;process()各进程间是并行的,进程内部是顺序的,ifelse语句if条件1thenif条件then顺序语句;endif;elsif条件2顺序语句;if条件thenelseelse顺序语句;endif;endif;,顺序语句:,举例:数据选择器,七段译码器,编码器的程序编写。,举例:数据选择器,architectureaofshu4isbeginprocess(a,d)beginIfa=“00”theny=d(0);Elsifa=“01”theny=d(1);Elsifa=“10”theny;whenothers=;endcase;,Null语句空语句,顺序语句:,举例:数据选择器,七段译码器,编码器的程序编写。,architectureaofshu4isbeginprocess(a,d)begincaseaiswhen00=yyyy=d(3);endcase;endprocess;enda;,课后练习:,练习2:带片选端的4选1数据选择器。,练习3:10位输入的编码器,用数码管显示。,练习4:3线8线的译码器。,第二部分内容,介绍寄存器、计数器D触发器;d电平结构,JK触发器4位计数器,10进制计数器,带清零端的计数器,带计数允许端多位计数器,带置数端的计数器100进制计数器,第三部分内容,数组、状态、循环、元件例化等,信号,逻辑信号,数值信号,布尔类型(boolean),位(bit),标准逻辑(std_logic),整数(integerunsigned),正整数(positive)自然数(natural),实数(real),三、基本语言要素介绍,布尔类型(boolean)typebooleanis(false,true);Variablef:boolean;f:boolean:=false;,位(bit)Typebitis(0,1),标准逻辑(std_logic)Typestd_logicis(x,0,1,Z,w,L,H,-),逻辑序列信号Bit_vectorStd_logic_vectorForexample:a:instd_logic_vecyor(7downto0);b:outstd_logic_vector(0to3);c:outstd_logic_vector(6downto0);d:outstd_logic_vector(7downto0);e:instd_logic_vecyor(3downto0)d=a;b=a(5downto2);c=,数值信号,整数integer正整数positive自然数naturalTypeintegerisrange-214783648to214783648Subtypepositiveisrange0tointegerhighSubtypenaturalisrange1tointegerhigh,Signalb:integerrange0to7;,无符号整数unsignedSignala:unsigned(3downto0);即可近似逻辑运算又可数值运算,实数real(大多数EDA工具不支持)Typerealisrange1.7E38to1.7E38Signala:real;,类型标记转换(适用于关系密切的类型转换),Real()把整数转为实数Integer()把实数转为整数Real和integerSigned、unsigned和bit_vectorSigned、unsigned和std_logic_vector,函数转换conv_std_logic_vector(a,n);(integer,unsigned,signed)Conv_integer(a);(unsigned,signed,orstd_logic)Conv_unsigned(a,n);integer,signed,std_logic),数据对象:常量、变量、信号常量全局量程序包,实体,结构体,进程,过程,函数中

温馨提示

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

评论

0/150

提交评论