版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子设计自动化技术
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026汽车制造业新能源技术趋势投资战略规划分析局
- 2026中国数字隔离芯片组新能源汽车应用与功能安全认证要求研究
- 2026中国新能源汽车电池技术竞争格局与市场前景评估分析报告
- 2026汽车后市场服务和配件供应链管理优化分析内容
- 2026中国艺术品真伪鉴别行业市场分析及投资策略规划研究报告
- 2026中国涡流泵行业政策环境与投资风险评估报告
- 2026中国运动恢复类补剂专业运动员背书效果评估报告
- 鞍钢集团总医院招聘护士笔试题目答案解析
- 襄阳襄州区粮油集团有限公司招聘笔试题目
- 中国邮政集团柜员笔试题型和答案大全解析
- 《HJ 212-2025 污染物自动监测监控系统数据传输技术要求》
- 江苏都桐科技有限公司新建锂离子电池用再生黑粉生产及再生磷酸铁锂测试电芯研发项目环评资料环境影响
- 男装店长培训课件
- T/CSPCI 00001-2022汽油中苯胺类化合物的分离和测定固相萃取/气相色谱-质谱法
- 云南省昆明市2023-2024学年高一下学期7月期末质量检测英语试卷(含答案)
- 建筑劳务公司管理制度-
- 乡村教育复兴与文化传承
- 绿色食品 油菜生产技术规程
- 液压泵与液压马达的拆装与选用-齿轮泵的拆装
- 浙江吹打 新华出版社出版
- 四路彩灯设计
评论
0/150
提交评论