技术实用教程课件第3章设计初步.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《技术实用教程课件第3章设计初步.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技术 实用教程 课件 设计 初步
- 资源描述:
-
1、EDA技术实用教程技术实用教程第第3 3章章 VHDL设计初步设计初步 教学内容教学内容:3.1组合电路的组合电路的VHDL描述描述3.2基本时序电路的基本时序电路的VHDL描述描述 3.3计数器的计数器的VHDL设计设计3.4实用计数器的实用计数器的VHDL设计设计 教学要求:教学要求:通过对通过对VHDL电路示例分析学习,了解电路示例分析学习,了解用用VHDL表达和设计电路的方法,理解表达和设计电路的方法,理解VHDL语言现象和语句规则的特点。语言现象和语句规则的特点。VHDL的优点的优点*易于设计复杂的、多层次的设计。支持设计库和设易于设计复杂的、多层次的设计。支持设计库和设计的重复使用
2、计的重复使用*与硬件独立,一个设计可用于不同的硬件结构,而与硬件独立,一个设计可用于不同的硬件结构,而且设计时不必了解过多的硬件细节。且设计时不必了解过多的硬件细节。*有丰富的软件支持有丰富的软件支持VHDL的综合和仿真,从而能在的综合和仿真,从而能在设计阶段就能发现设计中的设计阶段就能发现设计中的Bug,缩短设计时间,缩短设计时间,降低成本。降低成本。*更方便地向更方便地向ASIC过渡过渡*VHDL有良好的可读性,容易理解。有良好的可读性,容易理解。VHDL与计算机语言的区别与计算机语言的区别l*运行的基础运行的基础 计算机语言是在计算机语言是在CPURAM构建的平台上运行构建的平台上运行
3、VHDL设计的结果是由具体的逻辑、触发器组成的数字电路设计的结果是由具体的逻辑、触发器组成的数字电路l*执行方式执行方式计算机语言基本上以串行的方式执行计算机语言基本上以串行的方式执行VHDL在总体上是以并行方式工作在总体上是以并行方式工作l*验证方式验证方式计算机语言主要关注于变量值的变化计算机语言主要关注于变量值的变化VHDL要实现严格的时序逻辑关系要实现严格的时序逻辑关系3.1组合电路的组合电路的VHDL描述描述 3.1.12选选1多路选择器及其多路选择器及其VHDL描述描述1 通道选择控制信号端通道选择控制信号端数据通数据通道输入道输入端口端口数据输出端数据输出端ENTITY mux2
4、1a ISPORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGIN y=a WHEN s=0 ELSE b ;END ARCHITECTURE one;【例【例3-1】2选选1多路选择器多路选择器s=0 y=a s=1 y=b3.1.12选选1多路选择器及其多路选择器及其VHDL描述描述1 2选选1多路选择器多路选择器s=0 y=a s=1 y=b(1)以关键词以关键词ENTITY引导,引导,END ENTITY 结尾的结尾的语句部分,称为语句部分,称为实体实体。mux21
5、a实体实体 2选选1多路选择器的多路选择器的VHDL描述描述功能功能:描述设计模块的输入描述设计模块的输入/输出信号或引脚,并给出设计模块输出信号或引脚,并给出设计模块与外界的接口。与外界的接口。实体类似一个实体类似一个“黑盒黑盒”,实体描述了,实体描述了“黑盒黑盒”的输入输出的输入输出口。口。port:*在层次化设计时,在层次化设计时,Port为模块之间的接口为模块之间的接口 *在芯片级,则代表具体芯片的管脚在芯片级,则代表具体芯片的管脚(2)以关键词以关键词ARCHITECTURE引导,引导,END ARCHITECTURE 结尾结尾的语句部分,称为的语句部分,称为结构体结构体。图图3-2
6、 mux21a结构体结构体 功能功能:通过若干通过若干顺序语句和并行语句顺序语句和并行语句来描述来描述设计实体设计实体的的逻辑功能逻辑功能(行为描述行为描述)或或内部电路结构内部电路结构(结构描述结构描述),从而建立设计实体输出与输入之间的关系。,从而建立设计实体输出与输入之间的关系。一个设计实体可以有多个结构体一个设计实体可以有多个结构体结构体有三种描述方式结构体有三种描述方式*行为描述行为描述(behavioral):高层次的功能描述,不必考虑在电路中到底是怎样实现的。高层次的功能描述,不必考虑在电路中到底是怎样实现的。*数据流描述数据流描述(dataflow):描述输入信号经过怎样的变换
7、得到输出信号描述输入信号经过怎样的变换得到输出信号*结构化描述结构化描述(structural):类似于电路的网络表,将各个器件通过语言的形式进行连接,与电类似于电路的网络表,将各个器件通过语言的形式进行连接,与电路有一对应的关系路有一对应的关系,一般用于大规模电路的层次化设计时。一般用于大规模电路的层次化设计时。结构体结构体(ARCHITECTURE)进程进程或其它并行结构或其它并行结构实体(实体(ENTITY)配置(配置(CONFIGURATION)库、程序包库、程序包设设计计实实体体结结构构设计实体:设计实体:一个完整的、可综合的一个完整的、可综合的VHDL程序设计构建程序设计构建VHD
8、L程序设计基本结构:程序设计基本结构:结构体三种描述方式的比较结构体三种描述方式的比较描述方式描述方式优点优点缺点缺点适用场合适用场合结构化描述结构化描述连接关系清晰,电路模块化清晰电路不易理解、繁琐、复杂电路层次化设计数据流描述数据流描述布尔函数定义明白 不易描述复杂电路,修改不易小门数设计行为描述行为描述电路特性清楚明了 进行综合效率相对较低大型复杂的电路模块设计1.实体表达实体表达 描述电路器件端口构成、描述电路器件端口构成、端口类型(信号流动端口类型(信号流动方向和方式)方向和方式)和信号属性和信号属性【例【例】ENTITY e_name IS PORT(p_name:port_m d
9、ata_type;.p_namei:port_mi data_type);END ENTITY e_name;VHDL相关语法说明相关语法说明语法格式语法格式entity 实体名实体名 is port()端口说明;()端口说明;end entity 实体名实体名;注意:关键词注意:关键词2.实体名实体名 3.端口端口语句语句PORT和端口信号名和端口信号名 实体名实际上是器件名,最好根据相应的电路功实体名实际上是器件名,最好根据相应的电路功能确定;实体名必须与文件名相同,否则无法编译;能确定;实体名必须与文件名相同,否则无法编译;实体名不能用工具库中定义好的元件名;实体名不能实体名不能用工具库
10、中定义好的元件名;实体名不能用中文,也不能用数字开头。用中文,也不能用数字开头。端口语句端口语句(port)说明说明:以以port为引导,并在语句结尾为引导,并在语句结尾处加分号处加分号“;”port(端口信号名:端口模式端口信号名:端口模式 数据类型名数据类型名 :=初始初始值值;);4.端口模式端口模式“IN”、“OUT”、“INOUT”、“BUFFER”输入(输入(In):):从外部输入至实体;单向端口;输出(输出(Out):):从实体输出至外部;单向端口;双向(双向(Inout):):可以从外部输入至实体;也可以从实体输出至外部;双向端口;可代替所有其他模式,但降低了程序的可读性,一般
11、用于与CPU的数据总线接口;缓冲(缓冲(Buffer):):可以从实体输出至外部;也可以从端口回读该输出值至实体;不可以从外部输入至实体;单向端口(伪双向端口);允许该管脚名作为一些逻辑的输入信号。VHDL语言中数据对象语言中数据对象(信号、变量、常数信号、变量、常数)被赋予的类型被赋予的类型规定取值范围和数值类型,即对传输或存储数据的类规定取值范围和数值类型,即对传输或存储数据的类型作明确的界定。型作明确的界定。如Integer(整型)、Bit(位型)等;*VHDL-强类型语言强类型语言*预定义类型预定义类型 vs.自定义类型:自定义类型:-数据类型的分类数据类型的分类已在已在VHDL标准中
12、预先定义,可直接使用标准中预先定义,可直接使用,如,如Integer,Real,Bit等;等;按照按照类型说明类型说明的格式自定义用户所需的类型;的格式自定义用户所需的类型;5.数据类型数据类型BIT:位数据类型:位数据类型 规定的取值范围是逻辑位规定的取值范围是逻辑位1和和0;可参与逻辑运算或算术运算;可参与逻辑运算或算术运算;BIT数据类型的定义在数据类型的定义在VHDL标准程序包标准程序包STANDARD中中6.结构体表达结构体表达【例【例】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)说明和定义数据对象、说明和定义数据对象、数据数据类型、元
13、件调用说明等类型、元件调用说明等 BEGIN (功能描述语句功能描述语句)电路功能描述语句电路功能描述语句,可以是并行语句、顺序语句或是他们的混合语句可以是并行语句、顺序语句或是他们的混合语句END ARCHITECTURE arch_name;一个设计实体的功能与(一个设计实体的功能与(/或)结构描述;或)结构描述;一个设计实体可以有多个结构体;一个设计实体可以有多个结构体;语法格式语法格式architecture 结构体名结构体名 of 设计实体名设计实体名 is 说明区;说明区;begin 执行语句区;执行语句区;end architecture 结构体名结构体名;顺序语句:顺序语句:由
14、进程语句引导的,以顺序方式执行的语句由进程语句引导的,以顺序方式执行的语句,其执行结果与其执行结果与书写先后顺序有关书写先后顺序有关.如赋值语句如赋值语句;分支控制语句分支控制语句;循环控制语句循环控制语句;同同步控制语句步控制语句 并行语句:并行语句:在结构体中以并行方式执行的语句。在结构体中以并行方式执行的语句。其结果与书写先后其结果与书写先后顺序无关顺序无关.并行语句有五种语句结构:块语句、进程语句、信并行语句有五种语句结构:块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。号赋值语句、子程序调用语句和元件例化语句。VHDL的基本语句的基本语句顺序语句顺序语句并行语句并行语句
15、-eqcomp4 is a four bit equality comparatorLibrary IEEE;use IEEE.std_logic_1164.all;entity eqcomp4 isport(a,b:in std_logic_vector(3 downto 0);equal :out std_logic);end entity eqcomp4;architecture dataflow of eqcomp4 isbegin equal=1 when a=b else 0;End architecture dataflow;VHDL 大小写不敏感大小写不敏感eqcomp4.vh
16、d包实体结构体文件名和实体名一致每行;结尾关键字begin关键字end后跟实体名关键字end后跟构造体名库7.赋值符号和数据比较符号赋值符号和数据比较符号 8.WHEN_ELSE条件信号赋值语句条件信号赋值语句并行语句并行语句并行并行逻辑操作符:逻辑操作符:赋值符号赋值符号:“=”用于信号数据的传输,仿真传输延时最短为一个用于信号数据的传输,仿真传输延时最短为一个。要求两边的要求两边的 信号的信号的 数据类型必须一致数据类型必须一致数据比较符号数据比较符号:“=”在条件语句表式中用于比较待测数据的关系。在条件语句表式中用于比较待测数据的关系。没有赋值的含义,只是一种数据比较符号。没有赋值的含义
17、,只是一种数据比较符号。输出结果的数据类型是布尔(输出结果的数据类型是布尔(BOOLEAD)赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE .表达式表达式;例:例:z =a WHEN p1=1 ELSE b WHEN p2=1 ELSE c ;VHDL语言中预定义的有特殊含义的英文词语。用户不能用关键词命名自用对象或用作标识符。9关键字关键字10标识符标识符 11规范的程序书写格式规范的程序书写格式用户在编程中自定义的,用于表示不同名称的词语12文件取名和存盘文件取名和存盘 文件取名:文件取名:建议文件名与建议文件名与V
18、HDL设计的实体名一致,后缀是设计的实体名一致,后缀是.vhd。文件存盘:文件存盘:VHDL设计文件必须存于指定为工程的目录中,此目录将设计文件必须存于指定为工程的目录中,此目录将被设定为被设定为WORK库,库,WORK库的路径即为此目录的路径。库的路径即为此目录的路径。文件名后缀为文件名后缀为.vhd文件名英文字母不分大小文件名英文字母不分大小【例【例4-2】2选选1多路选择器多路选择器ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SI
19、GNAL d,e:BIT;BEGINd=a AND(NOT s);e=b AND s;y=d OR e ;END ARCHITECTURE one;s=0 y=a s=1 y=bde并行语句并行语句3.1.22选选1多路选择器及其多路选择器及其VHDL描述描述2布尔表达式1.逻辑操作符逻辑操作符在在AND(与与)、OR(或或)和和NOT(取反取反)等的作用下可构成组等的作用下可构成组合电路。合电路。AND、OR、NOTNAND、NOR、XOR、XNOR操作对象的数据类型为:操作对象的数据类型为:BIT、BOOLEAD、STD_LOGICBIT数据类型定义:数据类型定义:种取值种取值TYPE B
20、IT IS(0,1);STD_LOGIC数据类型定义:数据类型定义:种取值种取值TYPE STD_LOGIC IS (U-未初始化的未初始化的X-强未知的强未知的 0-强强0 1-强强1Z-高阻态高阻态W-弱未知的弱未知的 L-弱弱0 H-弱弱1-忽略)忽略)可实现:可实现:X-0 1 Z2.标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC库(库(LIBRARY)存放预先设计好的程序包和数据的集存放预先设计好的程序包和数据的集合体。常用的库有合体。常用的库有IEEE、STD、WORK、用户库等。这、用户库等。这些设计单元可用作其他些设计单元可用作其他VHDL描述的资源。用户编写的设描述的
21、资源。用户编写的设计单元既可以访问多个设计库计单元既可以访问多个设计库,又可以加入到设计库中又可以加入到设计库中,被其被其他单元所访问。他单元所访问。程序包(程序包(PACKAGE)将已定义的数据类型、元件调将已定义的数据类型、元件调用说明及子程序收集在一起用说明及子程序收集在一起,供供VHDL设计实体共享和调用设计实体共享和调用,若干个包则形成库。程序包由两个独立的单元组成:程序若干个包则形成库。程序包由两个独立的单元组成:程序包声明单元和程序包体单元构成。包声明单元和程序包体单元构成。3.设计库和标准程序包设计库和标准程序包IEEE库包括:库包括:STD_LOGIC_1164STD_LOG
22、IC_ARITH是是SYNOPSYS公司加入公司加入IEEE库库程序包,包括:程序包,包括:STD_LOGIC_SIGNED(有符号数)(有符号数)STD_LOGIC_UNSIGNED(无符号数)(无符号数)STD_LOGIC_SMALL_INT(小整型数小整型数)VHDL 87版本使用版本使用IEEE STD 1076-1987 语法标准语法标准VHDL 93版本使用版本使用IEEE STD 1076-1993 语法标准语法标准描述器件的输入、输出端口数据类型中将要用到的描述器件的输入、输出端口数据类型中将要用到的IEEE的标准库中的的标准库中的STD_LOGIC_1164程序包。程序包。使
23、用库和程序包的一般定义表式是:使用库和程序包的一般定义表式是:LIBRARY ;USE .ALL;信号是在结构体(信号是在结构体(ARCHITECTURE)、程序包)、程序包(PACKAGE)和实体()和实体(ENTITY)中说明的全局量。)中说明的全局量。信号定义格式:信号定义格式:SIGNAL 信号名:数据类型:信号名:数据类型:=初值;初值;例如:例如:SIGNAL Q1:STD LOGIC:=0;信号赋值语句:信号赋值语句:目标信号名目标信号名=表达式表达式例如:例如:x=9;z=x AFTER 5ns;4.SIGNAL信号定义和数据对象信号定义和数据对象数据对象:数据对象:数据对象定
24、义:数据对象定义:类似于容器,可接受不同数据类型的赋值类似于容器,可接受不同数据类型的赋值数据对象类型:数据对象类型:信号、变量、常数信号、变量、常数【例【例3-3】2选选1多路选择器多路选择器ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;3.1.32选选1多路选择器及其多
25、路选择器及其VHDL描述描述3进程语句进程语句敏感信号敏感信号s=0 y=a s=1 y=bIF THEN ELSE顺序语句顺序语句1.条件语句条件语句2.进程语句和顺序语句进程语句和顺序语句 IF语句必须以语句语句必须以语句“END IF;”结结束束 IF_THEN_ELSE顺序顺序进程语句进程语句以以PROCESS(敏感信号表敏感信号表).END PROCESS引导的语句结构引导的语句结构 敏感信号表中敏感信号的变化将激活所在进程;敏感信号表中敏感信号的变化将激活所在进程;在一个结构体中可以包含任意个进程语句结构在一个结构体中可以包含任意个进程语句结构,所有进程语句是并行语句;所有进程语句
展开阅读全文