版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子设计自动化技术
VHDL语言结构体的描述方法结构体的一般语言格式ARCHITECTURE结构体名OF实体名IS[说明语句]BEGIN[功能描述语句]END结构体名;结构体三种描述方法行为描述(behavioral)数据流描述(dataflow)结构化描述(structural)功能描述语句进程语句信号赋值语句子程序调用语句元件例化语句结构体--行为描述行为描述是高层次描述方式,它只描述输入与输出之间的逻辑转换关系,而不涉及具体逻辑电路结构等信息。主要用于系统数学模型的仿真或系统工作原理的仿真。故其大量采用的算术运算、关系运算、惯性延时、传输延时等描述方式是难于或不能进行逻辑综合的。行为描述:一般采用进程语句(PROCESS)描述高层次的功能描述,不必考虑在具体电路是怎样实现的。Architecturebehavioralofeqcomp4isbegincomp:process(a,b)
begin ifa=bthen equal<=‘1’; else equal<=‘0’; endif;
endprocesscomp;endbehavioral;结构体--数据流描述数据流描述:也称寄存器(RTL)描述方式,明确描述了数据信号的流动路径、流动方向和流动结果。它采用类似于布尔方程的并行信号赋值语句进行描述。可以描述时序电路,也可描述组合电路。是完全能够进行逻辑综合的描述方式。当a和b的宽度发生变化时,需要修改设计,当宽度过大时,设计非常繁琐布尔方程描述Architecturedataflow2ofeqcomp4is
beginequal<= not(a(0)xorb(0))and not(a(1)xorb(1))and not(a(2)xorb(2))and not(a(3)xorb(3));enddataflow2;结构体--结构化描述结构化描述:复杂数字逻辑系统的层次化设计法。设计中,高层次的设计模块调用低层次的设计模块,或直接用门电设计单元来设计一复杂的逻辑电路。它采用元件例化语句或生成语句进行设计。使用格式: 先声明元件: Component元件名[IS] [Port(端口说明)] EndComponent; 后元件例化: 例化名:元件名PortMap(端口映射)元件例化语句元件例化时端口映射方式1:位置对应方式
元件标号:元件名
PortMap(信号1,信号2,…);architecture
struct
ofeqcomp4isCOMPONENTXNOR2
PORT(A,B:INSTD_LOGIC; C:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTand4
PORT(a,b,c,d:INSTD_LOGIC;
q:OUTSTD_LOGIC);ENDCOMPONENT;
SIGNALX:STD_LOGIC_VECTOR(0TO3);beginU0:xnor2portmap(a(0),b(0),x(0));U1:xnor2portmap(a(1),b(1),x(1));U2:xnor2portmap(a(2),b(2),x(2));U3:xnor2portmap(a(3),b(3),x(3));U4:and4portmap(x(0),x(1),x(2),x(3),equal);end
struct;元件例化时端口映射方式1:名字直接对应元件标号:元件名PortMap(信号A=>信号A1,信号B=>信号B1,…);architecturestructofeqcomp4isCOMPONENTXNOR2 PORT(A,B:INSTD_LOGIC; C:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTand4
PORT(a,b,c,d:INSTD_LOGIC;
q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALX:STD_LOGIC_VECTOR(0TO3);beginU0:xnor2portmap(A=>a(0),B=>b(0),C=>x(0));U1:xnor2portmap(B=>b(1),A=>a(1),C=>x(1));U2:xnor2portmap(A=>a(2),B=>b(2),C=>x(2));U3:xnor2portmap(A=>a(3),B=>b(3),C=>x(3));U4:and4portap(a=>x(0),b=>x(1),c=>x(2),d=>x(3),q=>equal);endstruct;三种描述方式的比较描述方式优点缺点适用场合结构化描述连接关系清晰,电路模块化清晰繁琐、复杂层次化设计数据流描述布尔函数定义明白逻辑方程难以获得小门数设计行为描述逻辑关系描述清晰不一定能综合系统建模、复杂的电路进程语句(process)Process语句的格式为:
[进程标号:]
Process
[(敏感信号列表)]
[变量声明]Begin顺序语句;EndProcess
[进程标号];敏感表(Sensitivitylist)包括进程的一些信号,当敏感表中的某个信号变化时进程才被激活,进程内的顺序语句被执行。当进程结束时,进程内的输出信号值被更新,进程进入等待(睡眠)状态,直到敏感表中的某一信号再次发生变化,进程被再次激活执行。
方案一architecturem2ofexamleisbeginA:Process(a,b)
begin c<=aandb; d<=aorb;
endprocessA;endm2;方案二architecturem2ofexamleisbeginA:Process(a,b)
begin c<=aandb;
endprocessA;B:Process(a,b)
begin d<=aorb;
endprocessB;endm2;子程序子程序是在主程序调用它以后能将结果返回主程序的程序模块,它可以反复调用,方便程序设计。VHDL子程序模块,由顺序语句构成。每调用一次子程序都意味着增加了一个硬件电路模块,因此,在实际使用时,要密切关注和严格控制子程序的调用次数。子程序通常放在程序包中。
子程序有两种类型:过程(Procedure)和函数(Function)。程序包程序包的格式:
PACKAGE包集合名IS [说明语句] END包集合名;
PACKAGEBODY包集合名IS [说明语句] END包集合名;定义子程序实现子程序包集合标题包集合体
函数(Function)Function函数名(参数表)Return数据类型Function函数名(参数表)Return数据类型IS
说明部分Begin
顺序语句ENDFunction函数名;函数首在程序包标题中定义函数体在程序包体中定义LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEhanshuIS--定义程序包
FUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数首
RETURNSTD_LOGIC_VECTOR;FUNCTIONfunc1(a,b,c:REAL)--定义函数首
RETURNREAL;FUNCTION"*"(a,b:INTEGER)--定义函数首
RETURNINTEGER;END;PACKAGEBODYhanshuISFUNCTIONmax(a,b:INSTD_LOGIC_VECTOR)--定义函数体
RETURNSTD_LOGIC_VECTORISBEGINIFa>bTHENRETURNa;ELSERETURNb;ENDIF;ENDFUNCTIONmax;--结束FUNCTION语句END;--结束PACKAGEBODY语句
函数定义实例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEWORK.hanshu.ALL;ENTITYaxampISPORT(dat1,dat2:INSTD_LOGIC_VECTOR(3DOWNTO0);dat3,dat4:INSTD_LOGIC_VECTOR(3DOWNTO0);out1,out2:OUTSTD_LOGIC_VECTOR(3DOWNTO0));END;ARCHITECTUREbhvOFaxampISBEGINout1<=max(dat1,dat2);--用在赋值语句中的并行函数调用语句
PROCESS(dat3,dat4)BEGINout2<=max(dat3,dat4);--顺序函数调用语句
ENDPROCESS;
END;函数应用实例过程(Procedure)Procedure过程名(参数表)Procedure过程名(参数表)IS
说明部分
Begin
顺序语句ENDProcedure过程名;过程首在程序包标题中定义过程体在程序包体中定义LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;PACKAGEhanshuIS--定义程序包
proceduremax(signala,b:INSTD_LOGIC_VECTOR; signalc:outstd_logic_vector);--定义过程首END;PACKAGEBODYhanshuISproceduremax(signala,b:INSTD_LOGIC_VECTOR)--定义过程体
signalc:outstd_logic_vector)is BEGIN c<=a;
if(a<=b)then c<=b; endif; ENDmax;END;--结束PACKAGEBODY语句
过程定义实例LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;USEWORK.hanshu.ALL;ENTITYaxampISPORT(dat1,dat2:INSTD_LOGIC_VECTOR(3DOWNTO0);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TY/T 901-2025跳台滑雪风洞训练指南
- 重庆市荣昌区2026年普通中考模拟测试(一)物理试题含解析
- 2026年大学大一(建筑力学)结构受力分析阶段测试题及答案
- 护理职业发展:打造专业护理人才队伍
- 护理专业培训课件下载实体内容
- 急诊科护理应急预案与演练
- 习作评改课的五步教学法
- 2026年医疗废物规范化处置护理计划
- 消防安全管理制度
- 志愿服务组织责任制度
- 2025年成都辅警招聘考试真题含答案详解(能力提升)
- 中考语文必背篇目古诗词曲(85首)
- 华为干部管理手册
- 2025年江苏省南通市崇川区中考物理一模试卷
- 汽车理论(第6版)全套课件
- 法律常识100题及答案解析
- 企业行政工作标准作业程序
- 无创呼吸机使用安全操作流程
- 电子专用设备装调工操作能力水平考核试卷含答案
- 2025版头晕眩晕基层诊疗指南
- 白头翁皂苷B4对雄激素致小鼠脱发的治疗效果研究
评论
0/150
提交评论