




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲程序设计语言第一页,共三十三页,编辑于2023年,星期一参考教材本数电实验理论课及实验操作所用教材:《数字电路设计·
仿真·
测试》主编:佘新平学习该课程的参考教材:VHDL或FPGA(介绍VHDL语言)方面的的书籍。第二页,共三十三页,编辑于2023年,星期一
VHDL语言全称:Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage是一种非常高速硬件(数字电路)描述语言。主要用于描述数字系统的结构,功能和接口。语言形式和描述风格与句法十分类似于一般的计算机高级语言。
支持VHDL语言的软件平台Max+PlusII、QuartusII
由软件设计到硬件实现之间的媒介CPLD/FPGA(可编程器件)第三页,共三十三页,编辑于2023年,星期一VHDL的历史有数十种硬件描述语言(如VHDL,VerilogHDL,HardwireC,CSP,SDL,Esterel),用得较广泛的是VHDL和VerilogHDL两种:1980美国制定VHSIC(VeryHighSpeedIntegratedCircuits)计划。1983IBM、TI和Intermetrics联合开发语言和仿真工具(VHDL)主要考虑自顶向下的设计和工艺进步引起的系统升级。1987美国国防部(DOD)要求所有数字电路用VHDL描述,并决定F-22战斗机项目采用VHDL,发布IEEE1076-1987标准。1993发布IEEE1076-1993标准。1996基于IEEE1076-1993的仿真和综合工具问世。IEEE1076.3使用综合工具的程序包标准。IEEE1076.4(VITAL):ASIC和FPGA建库1997发布IEEE1076.1即同时能够描述数字和模拟集成电路的VHDL语言标准(VHDL-AMS)。第四页,共三十三页,编辑于2023年,星期一VHDL与VerilogHDL语言的主要区别VerilogHDL是由GDA(GatewayDesignAutomation)公司于1983年末首创的,1995年成为IEEE标准。VerilogHDL在工业界通用些,而VHDL在大学应用较多。VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由;VHDL格式较严谨,其书写规则比VerilogHDL要繁琐些。VerilogHDL和VHDL在行为抽象建模的覆盖面范围不同,VerilogHDL在系统级抽象方面要比VHDL略差一些,而在门级开关电路方面要强些。VerilogHDL强调于集成电路的综合,VHDL强调于组合逻辑电路的综合。第五页,共三十三页,编辑于2023年,星期一在QuartusII软件中新建工程新建VHDL文件,编写VHDL程序存盘(文件名为实体名与工程名相同,后缀为.VHD)编译
软件仿真管脚锁定下载
由软件设计到硬件实现的流程第六页,共三十三页,编辑于2023年,星期一
VHDL程序的基本结构实体说明(Entity)(*)
VHDL程序的基本结构五部分结构体(Architecture)(*)配置(Configuration)包集合(Package)库(Library)用于描述设计的系统的外部接口用于描述系统内部的结构和行为安装具体元件到实体-结构体对存放设计模块共享的数据类型、常数和子程序等专门存放预编译程序包的地方第七页,共三十三页,编辑于2023年,星期一VHDL程序的实体
实体:VHDL程序的描述对象称为实体。简单的实体是由实体说明和结构体两部分组成的。实体定义本设计的输入/输出端口,声明到其他实体及其他设计的接口。结构体定义实体的实现,即电路的具体描述。第八页,共三十三页,编辑于2023年,星期一(1)实体ENTITYVHDL的描述对象称为实体。由实体说明部分和构造体部分组成…
端口名
:端口模式
数据类型);
ENTITY
实体名
IsEnd实体名;
格式:Port(端口名
:端口模式数据类型;说明:①定义本设计的输入/输出端口
②端口名是每个系统引脚的名称,一般用几个英文字母组成
方向:INOUTINOUTBUFFERLINKAGE
数据类型:std_logic(一位),std_logic_vector(多位)
integer,boolean,bit,bit_vector第九页,共三十三页,编辑于2023年,星期一
LIBRARYIEEE;
USEIEEE.STD_LOGIC.1164.ALL;
ENTITYadd8IS
PORT(b:INSTD_LOGIC_VECTOR(7DOWNTO0);
a:INSTD_LOGIC_VECTOR(7DOWNTO0);Ci:INSTD_LOGIC;
Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0)
Co:OUTSTD_LOGIC);
ENDadd8;例:add8实体说明部分实体add8/8位加法器外部接口等效逻辑电路图A[7..0]B[7..0]SUM[7..0]CoCi第十页,共三十三页,编辑于2023年,星期一ENTITY设计时注意点实体名与文件名要一样文件存放位置取名要规范(实体名、端口信号名)合理确定设计所需的端口信号第十一页,共三十三页,编辑于2023年,星期一(2)结构体(ARCHITECTURE)
结构体具体地描述了设计实体的逻辑功能或内部电路结构关系,从而建立设计实体输入与输出之间的关系。结构体功能可以用三种方式进行描述,即行为描述、数据流描述、结构描述,另外,还可以采用混合描述。三种描述方式:
行为描述方式(behavioral)数据流描述方式(dataflow)结构描述方式(structure)第十二页,共三十三页,编辑于2023年,星期一ARCHITECTURE结构体名
Of实体名
IsBegin功能描述语句;--并行语句
End结构体名;结构体格式:[定义语句]内部信号、常数、数据类型、函数等的定义第十三页,共三十三页,编辑于2023年,星期一结构体中信号定义位于关键字ARCHITCTURE和BEGIN之间,用于对结构内部使用的信号,常数,数据类型,函数进行定义。注意:(1)这是在结构体内部定义,而不是实体内部。(2)实体说明中定义I/O信号为外部信号,而结构体定义的信号为内部信号。例:结构体的信号定义方法ARCHITECTUREstructuralOFmuxISSIGNALab:bit;SIGNALx:std_logic_vector(0to7);……BEGINENDstructural;--信号不必标注模式IN,OUT第十四页,共三十三页,编辑于2023年,星期一ENTITYmuxISPORT(d0,d1:INBIT;Sel:INBIT;G:OUTBIT);ENDMUX;ARCHITECTUREdataflowOFmuxISBEGINg<=(D0ANDsel)OR(NOTselANDD1);ENDdataflow;例:二选一电路LIBRARYIEEE;
USEIEEE.STD_LOGIC.1164.ALL;
等效逻辑电路图muxGSELD0D1mux--并行语句描述结构体mux实体的真值表
SELDOD1
G
1xx
D0
0xx
D1第十五页,共三十三页,编辑于2023年,星期一LIBRARYIEEE;USEIEEEstd_logic_1164.ALL;ENTITYcomparatorISPORT(a,b:INstd_logic_vector(7downto0);g:OUTstd_logic);ENDcomparator;ARCHITECTUREbehavioralOFcomparatorISBEGINComp:PROCESS(a,b)BEGINIFa=bTHENG<=‘1’;ELSEG<=‘0’;ENDIF;ENDprocesscomp;ENDbehavioral;举例:设计八位比较器实体库,包说明结构体进程第十六页,共三十三页,编辑于2023年,星期一
3种方法描述结构体
(1)行为描述法:采用进程语句,顺序描述被设计实体的行为。
(2)数据流描述法:采用进程语句,顺序描述数据流在控制流作用下被加工,处理,存储的全过程。
(3)结构描述法:采用并行处理语句描述设计实体内的结构组织和元件互连关系。
第十七页,共三十三页,编辑于2023年,星期一
1.行为描述法ARCHITECTURE
behavioral
OF
rsffBEGINq<=NOT(qbANDset);
qb<=NOT(qANDreset);END
behavioral;结构体的行为描述表示输入与输出间转换的关系,是对设计实体按算法的路径来描述。行为描述在EDA工程中称为高层次描述或高级描述。第十八页,共三十三页,编辑于2023年,星期一
2.结构化描述
结构体的结构化描述给出了实体内部结构、它所包含的模块或元件及其互连关系;以及与实体外部引线的对应关系。ARCHITECTURE
structural
OF
rsff
ISCOMPONENT nand2 PORT(a,b:IN BIT; c:OUT BIT);ENDCOMPONENT;BEGINu0:nand2
PORT
MAP
(a=>set,b=>qb,c=>q);u1:nand2
PORT
MAP
(a=>reset,b=>q,c=>qb);END
structural;
第十九页,共三十三页,编辑于2023年,星期一3.数据流描述法 结构体的数据流描述法反映了从输入数据到输出数据之间所发生的逻辑变换,或者说描述了数据流程的运动路径、运动方向和运动结果。LIBRARYIEEE;USEIEEEstd_logic_1164.ALL;ENTITYcomparatorISPORT(a,b:INstd_logic_vector(7downto0);g:OUTstd_logic);ENDcomparator;ARCHITECTURE
dataflow
OF
comparator
ISBEGINg<="1"when(a=b)else"0";ENDdataflow;第二十页,共三十三页,编辑于2023年,星期一总结:从例子可以看出,VHDL语言由两部分组成:第1部分为实体说明,第2部分为结构体。实体描述VHDL程序结构结构体描述
1行为描述法
2数据流描述法
3结构化描述法(1)设计实体用关键字ENTITY
来标识,结构体用ARCHITECTURE来标识。(2)一个设计实体必须包含一个结构体或含有多个结构体第二十一页,共三十三页,编辑于2023年,星期一(3)配置 用于在多构造体中的实体中选择构造体,例如,在做RS触发器的实体中使用了两个构造体,目的是研究各个构造体描述的RS触发器的行为性能如何,但是究竟在仿真中使用哪一个构造体的问题就是配置问题。
配置语句格式:
CONFIGURATION配置名OF实体名IS[说明语句]END配置名;
描述层与层之间的关系以及实体与结构之间的连接关系。第二十二页,共三十三页,编辑于2023年,星期一默认配置格式
CONFIGURATION配置名OF实体名IS FOR选配构造体名
ENDFOR;
END配置名;例:两个构造体,可以用配置语句进行设置:
CONFIGRATIONrsconOFrsIS//选择构造体rsff1 FORrsff1 ENDFOR; ENDrscon;第二十三页,共三十三页,编辑于2023年,星期一
--结构体rsff1ARCHITECTURErsff1OFrsISCOMPONENTnand2PORT(a,b:INBIT;c:OUTBIT);ENDCOMPONENT;BEGINU1:nand2PORTMAP(a=>set,b=>qb,c=>q);U2:nand2PORTMAP(a=>reset,b=>q,c=>qb);ENDrsff1;--结构体rsff2
ARCHITECTURErsff2OFrsISBEGINq<=NOT(qbANDset);qb<=NOT(qANDreset);ENDrsff2--配置CONFIGRATIONrsconOFrsIS FORrsff1 ENDFOR; ENDrscon;--实体ENTITYrsISPORT(set,reset:INBIT;q,qb:BUFFERBIT);ENDrs;第二十四页,共三十三页,编辑于2023年,星期一(4)库(LIBRARY) 库(Library)是用于存放预先编译好的程序包(Package),程序包中定义了数据集合体、逻辑操作和元件等。主要是声明在设计或实体中将用到的常数,数据类型,元件及子程序等。使用格式:LIBRARY库名;
USE库名.程序包名.All;
例:LIBRARYIEEE
USEieee.std_logic_1164.all该例说明要使用IEEE库中的1164包中所有项目第二十五页,共三十三页,编辑于2023年,星期一在Max+plusⅡ系统中有4个库能支持VHDL语言,它们分别是Std库、IEEE库、Altera库和Lpm库。IEEE库中的程序包std_logic_1164定义了std_logic和std_logic_vector等数据类型。注意STD库:STD库是VHDL的标准库,在库中有名为STANDARD的包,还有TEXTIO包。若使用STANDARD包中的数据可以不按标准格式说明,但是若使用TEXTIO包,则需要按照如下格式说明:
LIBRARYSTD;
USESTD.TEXTIO.ALL库的作用范围:库的作用范围从一个实体说明开始到它所属的结构体、配置为止,当有两个实体时,第二个实体前要另加库和包的说明。
第二十六页,共三十三页,编辑于2023年,星期一 通常在一个实体中对数据类型、常量等进行的说明只可以在一个实体中使用,为使这些说明可以在其它实体中使用,VHDL提供了程序包结构,包中罗列VHDL中用到的信号定义、常数定义、数据类型、元件语句、函数定义和过程定义,它是一个可编译的设计单元,也是库结构中的一个层次,使用包时可以用USE语句说明。
例如:
USEIEEE.STD_LOGIC_1164.ALL
(5)程序包(PACKAGE)第二十七页,共三十三页,编辑于2023年,星期一程序包由两部分组成:程序包说明和程序包体程序包说明为程序包定义接口,声明包中的数据类型、元件、函数。其方式与实体定义模块接口非常相似。程序体规定程序的实际功能,存放说明中的函数和元件。其方式与结构体语句方法相同。第二十八页,共三十三页,编辑于2023年,星期一包结构格式程序包说明:PACKAGE包名IS[说明语句]END包名包头中列出所有项的名称
程序包体:PACKAGEBODY包名IS[说明语句]END包名;包体给出各项的具体细节
第二十九页,共三十三页,编辑于2023年,星期一程序包说明USESTD.LOGIC.ALLPACKAGElogicISTYPEthree_level_logicIS(‘0’
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化与科技融合创新模式对数字文化产业发展的影响报告
- 2024年“南粤家政”健康照护师职业技能竞赛项目技术文件
- 2023年简易车辆买卖合同(26篇)
- 2025年汽车行业供应链风险管理中的风险管理风险评估报告
- 2023幼儿园中班班务上学期期末工作总结
- 2023年证券从业资格考试证券投资分析串讲讲义(二)
- 2023年电大货币银行学形成性练习综合题 (一)
- 2023车销售工作计划(20篇)
- 广东省惠州市2026届高三上学期一模语文试题(含答案)
- 2025版特色酒店经营管理权租赁合作协议书
- 食品厂员工食品安全培训
- UL4703标准中文版-2020光伏线UL中文版标准
- 《T-ZGYSYJH 005-2022 食养药膳烹饪技术操作规范 通则》
- 企业的研究院规划
- 2024年-2025年公路养护工理论知识考试题库
- 2024-2030年全球及中国海缆敷设船行业需求潜力与发展趋势洞悉研究报告
- 二年级上册“快乐读书吧”-阅读综合测评
- 专题16 双曲线(1大考向真题解读)-备战2025年高考数学真题题源解密(新高考卷)解析版
- 物流运输突发事件应急预案
- ISO27001信息安全管理体系全套文件(手册+程序文件+作业规范)
- DZ/T 0462.3-2023 矿产资源“三率”指标要求 第3部分:铁、锰、铬、钒、钛(正式版)
评论
0/150
提交评论