欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt

    • 资源ID:6504905       资源大小:314.50KB        全文页数:72页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt

    第 3 章 VHDL设计初步,3.1组合逻辑电路的VHDL描述,3.1.1 2选1多路选择器的VHDL描述,图3-1 mux21a实体,3.1组合逻辑电路的VHDL描述,3.1.1 2选1多路选择器的VHDL描述,图3-2 mux21a结构体,3.1组合逻辑电路的VHDL描述,【例】二选一选择器描述方法1 ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e:BIT;-说明语句 BEGINd=a AND(NOT S);e=b AND s;y=d OR e;END ARCHITECTURE one;,3.1.1 2选1多路选择器的VHDL描述,3.1组合逻辑电路的VHDL描述,此电路的VHDL描述由两大部分组成:(1)以关键词ENTITY引导,END ENTITY mux2la结尾的语句部分,称为实体。实体描述了电路器件的外部情况及各信号端口的基本 性质。(2)以关键词ARCHITECTURE引导,END ARCHITECTURE one结尾的语句部分,称为结构体。结构体负责描述电路器件的内部逻辑功能或电路结构。,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END ENTITY e_name;红色为描述实体的关键词,不分大小写。,1.实体表达,2.实体名 e_name,由设计者自定的标识符。由字母、数字、下划线构成。不能以数字起头,不能用中文,不能与关键词或EDA工具库的元件名相同。如:72lk,OR2均为非法实体名。,3.端口语句和端口信号名 PORT();描述电路的端口及其端口信号。如 PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);,3.1组合逻辑电路的VHDL描述,端口信号名,端口模式,端口信号的数据类型,3.1.2 相关语句结构和语法说明,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,4.端口模式,IN:输入端口,定义的通道为单向只读模式,OUT:输出端口,定义的通道为单向输出模式,INOUT:定义的通道确定为输入输出双向端口,BUFFER:缓冲端口,其功能与INOUT类似,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,5.数据类型 INTEGER类型(整数类型)BOOLEAN类型(布尔类型)取值范围为true,false STD_LOGIC类型(标准逻辑位类型)取值范围有:U,X,0,1,Z,W,L,H,-BIT类型(位类型)取值范围是逻辑位1,0,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,6.结构体表达,ARCHITECTURE arch_name OF e_name IS 说明语句BEGIN(功能描述语句)END ARCHITECTURE arch_name;红色为描述结构体的关键词,不分大小写。说明语句并非必须,而功能描述语句必须存在。,结构体名,实体名,7.逻辑操作符,AND、OR、NOT、NAND(与非)、NOR(或非)、XOR(异或)、XNOR(同或)逻辑操作符的操作数是BIT、BOOLEAN、STD_LOGIC。,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,8.赋值符号和数据比较符号,赋值符“=”如 表达式 y=a 表示输入端口a的数据向输出端口y传输。注:赋值符“=”两边的信号的数据类型必须一致。,数据比较符号“=”其输出结果的数据类型是BOOLEAN类型。,如 表达式 IF s=0 THEN.,3.1组合逻辑电路的VHDL描述,【例】二选一选择器描述方法2ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b;END ARCHITECTURE one;,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,9.WHEN_ELSE条件信号赋值语句(属于并行语句),赋值目标=表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE.表达式;,z=a WHEN p1=1 ELSE b WHEN p2=1 ELSE c;,3.1组合逻辑电路的VHDL描述,【例3-3】二选一选择器描述方法3 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.2 相关语句结构和语法说明,进程的敏感信号表,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,10.条件语句(属于顺序语句),IF_THEN_ELSE,IF语句必须以语句“END IF;”结束,如 IF s=0 THEN y=a;ELSE y=b;END IF;,END IF;,3.1组合逻辑电路的VHDL描述,3.1.2 相关语句结构和语法说明,11.进程语句和顺序语句,顺序语句“IF_THEN_ELSE END IF;”是放在由“PROCESSEND PROCESS”引导的语句中的。由PROCESS引导的语句称为进程语句。在VHDL中,所有合法的顺利描述语句都必须放在进程语句中。PROCESS旁的()称为进程的敏感信号表,要求将进程中的所有输入信号都放在敏感信号表中。当信号表中的某一敏感信号从原来的“1”变成“0”,或者从原来的“0”变成“1”时,将启动此进程语句,即将其中的语句全部执行一遍。,12.文件取名和存盘,12.文件取名和存盘,3.1 组合逻辑电路的VHDL描述,用Quartus ii提供的VHDL文本编辑器编辑VHDL代码文件,在保存文件时,文件名为“*.vhd”。建议程序的文件名尽可能与该程序的实体名一致。推荐使用小写。,3.1.2 相关语句结构和语法说明,3.1组合逻辑电路的VHDL描述,mux21a功能时序波形图,3.1 组合逻辑电路的VHDL描述,【例3-18】或门逻辑描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a IS BEGIN c=a OR b;END ARCHITECTURE one;,半加器h_adder电路图及其真值表,3.3.1 半加器描述,3.3.1 半加器描述,3.3 1位二进制全加器的VHDL描述,【例3-16】LIBRARY IEEE;-半加器描述(1):布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is BEGIN so=a XOR b;co=a AND b;END ARCHITECTURE fh1;,KX康芯科技,【例3-17】LIBRARY IEEE;-半加器描述(2):真值表描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量 数据类型BEGIN X so so so so NULL;END CASE;END PROCESS;END ARCHITECTURE fh1;,3.1 组合逻辑电路的VHDL描述,1.CASE语句(属于顺序语句,必须放在进程语句中),CASE ISWhen=;.;;When=;.;;.WHEN OTHERS=;END CASE;,3.1 组合逻辑电路的VHDL描述,2.标准逻辑矢量数据类型,STD_LOGIC_VECTOR 与 STD_LOGIC 都被定义在STD_LOGIC_1164的程序包中。STD_LOGIC_VECTOR定义为标准一维数组,数组中的每个元素都是标准逻辑位STD_LOGIC。,在使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如:B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);或 SIGNAL A:STD_LOGIC_VECTOR(1 TO 4);,B=01100010;-B(7)为 0 B(4 DOWNTO 1)=1101;-B(4)为 1 B(7 DOWNTO 4)=A;-B(6)等于 A(2),3.1 组合逻辑电路的VHDL描述,3.并置操作符,SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a=1 0 d(1)1;-元素与元素并置,并置后的数组长度为4.IF a d=101011 THEN.-在IF条件句中可以使用并置符,图3-11 全加器f_adder电路图及其实体模块,3.1 组合逻辑电路的VHDL描述,【例3-19】LIBRARY IEEE;-1位二进制全加器顶层设计描述 USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS PORT(ain,bin,cin:IN STD_LOGIC;cout,sum:OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder-调用半加器的声明语句 PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END COMPONENT;SIGNAL d,e,f:STD_LOGIC;-定义3个信号作为内部的连接线。BEGIN u1:h_adder PORT MAP(a=ain,b=bin,co=d,so=e);-例化语句 u2:h_adder PORT MAP(a=e,b=cin,co=f,so=sum);cout=d or f;END ARCHITECTURE fd1;,3.1.6 全加器描述和例化语句,3.1 组合逻辑电路的VHDL描述,元件例化:就是引入一种连接关系,将预先设计好的实体定义为一个元件,然后利用特定语句将此元件与当前设计实体中的指定端口相连接,从而为当前设计实体引进一个低一级的设计层次。元件例化语句由两部分组成,第一部分,先将一个现成的设计实体定义为一个元件。即对要调用的元件做调用说明:COMPONENT 元件名 PORT(端口名表);END COMPONENT 文件名;,例如:COMPONENT h_adder PORT(a,b:IN STD_LOGIC;so,co:OUT STD_LOGIC);,3.1 组合逻辑电路的VHDL描述,第二部分,此元件与当前设计实体(顶层文件)中元件间连接端口的连接说明。端口映射语句格式如下例化名:元件名 PORT MAP(端口名=连接端口名);其中,例化名相当于当前系统(电路板)中的一个插座名。元件名相当于准备在此插座上插入的已定义的元件,即为待调用的元件的名字。PORT MAP为关键词。端口名为待调用的元件本身的端口名。连接端口名为顶层文件中准备与调用元件的端口相连的通信线(端口)名。,3.2 基本时序电路的VHDL描述,3.2.1 D触发器的VHDL描述,KX康芯科技,【例3-8】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT(CLK:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK,Q1)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D;END IF;END PROCESS;Q=Q1;-将内部的暂存数据向端口输出(双横线-是注释符号)END bhv;,图4-4 D触发器,D触发器实体,D触发器仿真波形,边沿触发D触发器:当时钟信号的上升沿到来时,Q=D。否则,Q保持原值不变。,3.2 基本时序电路的VHDL描述,3.2.2 VHDL描述的语言现象说明,图4-4 D触发器,1.标准逻辑位数据类型STD_LOGIC,BIT数据类型定义:TYPE BIT IS(0,1);-只有两种取值,STD_LOGIC数据类型定义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);,STD_LOGIC类型比BIT类型包含的内容多,且包含了BIT类型。以下是程序包中对两种数据类型的定义。,3.2 基本时序电路的VHDL描述,3.2.2 VHDL描述的语言现象说明,图4-4 D触发器,2.设计库和标准程序包,VHDL综合器附带了设计库和程序包,用来存放数据类型的说明,以及函数的。如:BIT数据类型的定义是包含在VHDL标准程序包STANDARD中的,而该程序包是包含在VHDL的标准库STD中的。为了使用BIT数据类型,则应该在程序之前增加说明语句。,3.2 基本时序电路的VHDL描述,例3-1LIBRARY WORK;-表示打开用户工程文件所在的目录,该目录为默认工作库WORKLIBRARY STD;-表示打开STD库USE STD.STANDARD.ALL;-表示允许使用STD库中的STANDARD 程序包中的所有内容(.all)ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b;END ARCHITECTURE one;,3.2 基本时序电路的VHDL描述,使用库和程序包的一般定义表式是:LIBRARY;USE.ALL;如例3-6中LIBRARY IEEE;-表示打开IEEE库USE IEEE.STD_LOGIC_1164.ALL;-表示允许使用IEEE库中 名为STD_LOGIC_1164的程序包的所有内容。,3.2 基本时序电路的VHDL描述,3.2.2 VHDL描述的语言现象说明,图4-4 D触发器,3.数据对象和信号定义,VHDL中的数据对象有三类,即变量(VARIABLE)、常量(CONSTANT)和信号(SIGNAL)。信号是描述硬件系统的基本数据对象,类似于连接线。可以作为设计实体中模块间的信息交流通道。信号只有数据类型属性,没有IN、OUT等端口模式。如:SIGNAL Q1:STD_LOGIC;,3.2 基本时序电路的VHDL描述,如例4-6中:CLKEVENT AND CLK=1该表达式用于检测时钟信号CLK的上升沿,如果检测到上升沿,则该表达式将输出布尔值“true”。,4.上升沿检测表式和信号属性函数EVENT,EVENT 用于测定某信号的跳变情况,即对该信号在当前的一个极小时间段内发生事件的情况进行检测。检测到跳变,则输出一个布尔值“true”,否则为布尔值“false”。,3.2 基本时序电路的VHDL描述,5.不完整条件语句与时序电路,【例3-9】设计一个一位比较器,当a1b1,输出为1,否则输出为0。ENTITY COMP_BAD IS PORT(a1,b1:IN BIT;q1:OUT BIT);END;ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSIF a1 b1 THEN q1=0;-未提及当a1=b1时,q1作何操作END IF;END PROCESS;END;,3.2 基本时序电路的VHDL描述,5.不完整条件语句与时序电路,3.2.2 VHDL描述的语言现象说明,例3-9的电路图(Synplify综合),5.不完整条件语句与时序电路,3.2.2 VHDL描述的语言现象说明,图3-6 例3-8的电路图(Synplify综合),【例3-10】.IF a1 b1 THEN q1=1;ELSE q1=0;END IF;.,3.2.3 实现时序电路的VHDL不同表述,【例3-11】(方法2).PROCESS(CLK)BEGINIF CLKEVENT AND(CLK=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保CLK的变化是一次上升沿的跳变 END IF;END PROCESS;,3.2.3 实现时序电路的VHDL不同表述,【例3-12】(方法3).PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0 THEN Q=D;END IF;END PROCESS;,【例3-13】(方法4)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK,D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF rising_edge(CLK)-上升沿检测函数,是IEEE库中的 STD_LOGIC_1164程序包中的预定义函数 THEN Q1=D;END IF;END PROCESS;Q=Q1;END;,3.2.3 实现时序电路的VHDL不同表述,【例3-14】(方法5).PROCESS BEGIN wait until CLK=1;-利用wait unitl语句,Q=D;如果当前CLK不为1,等待并保持Q原 值不变,直到CLK为1时才对Q进行赋值操作。END PROCESS;,3.2.3 实现时序电路的VHDL不同表述,【例3-15】(方法6).PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;-利用进程的启动特性产生对CLK的边沿检测 END IF;END PROCESS;,图3-7 6种描述方法的电路仿真时序波形,3.2.3 实现时序电路的VHDL不同表述,【例3-16】电平触发型D寄存器,即CLK处于高电平时,输出 Q随D的变化而变化,CLK处于低电平时,Q保持不变。.PROCESS(CLK,D)BEGIN IF CLK=1 THEN Q=D;END IF;END PROCESS;注:将D放在进程的敏感信号表中,D的任何变化都会启动进程,进而判断IF语句,条件成立(即CLK=1),则对Q不断进行更新。条件不成立时,即使D有变化,都不执行Q=D。,3.2.4 异步时序电路设计,【例3-17】用两个进程描述一个异步时序电路。.ARCHITECTURE bhv OF MULTI_DFF IS SIGNAL Q1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=NOT(Q2 OR A);END IF;END PROCESS;PRO2:PROCESS(Q1)BEGIN IF Q1EVENT AND Q1=1 THEN Q2=D;END IF;END PROCESS;QQ=Q2;.,图3-9 例3-15综合后的电路(Synplify综合),3.2.4 异步时序电路设计,3.3 计数器设计,【例3-18】方法1ENTITY CNT4 IS PORT(CLK:IN BIT;Q:BUFFER INTEGER RANGE 15 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q=Q+1;END IF;END PROCESS;END bhv;,3.3.1 4位二进制加法计数器设计,表式Q=Q+1的右项与左项并非处于相同的时刻内,对于时序电路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即左项要获得当前的Q+1,需等待下一个时钟周期。,3.3.2 整数类型,Q:BUFFER INTEGER RANGE 15 DOWNTO 0;设置Q的端口模式为BUFFER,数据类型为INTEGER,取值范围为15到0。注:VHDL规定算术运算的操作数为INTEGER需要用RANGE语句对所定义的数限定范围。此题综合器对Q综合成四条信号线:Q3,Q2,Q1,Q0。,3.3.2 整数类型,1 十进制整数0 十进制整数35 十进制整数10E3 十进制整数,等于十进制整数1000 16#D9#十六进制整数,等于十六进制整数D9H 8#720#八进制整数,等于八进制整数720O 2#11010010#二进制整数,等于二进制整数11010010B,整数常量的书写方式示例,3.3.2 整数类型 整数类型有以下子类型:NATURAL(自然数类型)取值范围为0和所有正整数。POSITIVE(正整数类型)取值范围为所有正整数。注:数据类型BIT,BIT_VECTOR,INTEGER,NATURAL,POSITIVE都被定义在VHDL的标准库(STD库)中的标准程序包STANDARD中的。是默认打开的,说明语句可以省略。,KX康芯科技,3.3.3 计数器设计的其他表述方法,【例3-19】方法2 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 IS PORT(CLK:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END;ARCHITECTURE bhv OF CNT4 ISSIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=Q1+1;END IF;END PROCESS;Q=Q1;END bhv;,上例中,Q的端口模式为OUT,没有输入特性,因此不能使用Q=Q+1的语句。解决方法:定义一个内部信号Q1,内部信号没有端口模式,即Q1的数据流动方向不受限制,可执行 Q1=Q1+1的操作。新的问题:Q1=Q1+1 中的算术运算符“+”的操作数必须是整数类型,而Q1为 STD_LOGIC类型,不符合语法规定。解决方法:调用一个运算符重载函数,使算术运算符“+”具备新的数据类型。使用USE IEEE.STD_LOGIC_UNSIGNED.ALL;此程序包允许当遇到此种情况的运算符时,调用运算符重载函数。,4位加法计数器RTL电路(Synplify综合),4位加法计数器工作时序,3.4 实用计数器设计,【例3-22】带有异步复位和同步时钟使能端的十进制加法计数器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS PORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT10;ARCHITECTURE behav OF CNT10 ISBEGIN PROCESS(CLK,RST,EN)VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN,IF RST=1 THEN CQI:=(OTHERS=0);-计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN-检测时钟上升沿 IF EN=1 THEN-检测是否允许计数(同步使能)IF CQI 0);-大于9,计数值清零 END IF;END IF;END IF;IF CQI=“1001”THEN COUT=1;-计数大于9,输出进位信号 ELSE COUT=0;END IF;CQ=CQI;-将计数值向端口输出 END PROCESS;END behav;,相关语法说明:,1.变量,VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);定义标识符CQI为变量,其数据类型为含有4个元素的标准逻辑矢量。变量的功能主要用于数据的暂存。变量的赋值符号是:=信号的赋值符号是=如:VARIABLE a:BIT;SIGNAL b:BIT;a:=1;b=0;,相关语法说明:,2.省略赋值操作符(OTHERS=X),例如:SIGNAL d:STD_LOGIC_VECTOR(4 DOWNTO 0);VARIABLE a:STD_LOGIC_VECTOR(15 DOWNTO 0);.如:d 0);a:=(OTHERS=0);等价于d=“00000”;a:=“0000000000000000”;,又如 da(3),3=a(5),OTHERS=a(1);等价于d=a(1),十进制加法计数器的RTL电路(Synplify综合),比较器,比较器,二输入与门,2选1选择器,4位锁存器,四输入与门,加1器,二输入与门,2选1选择器,四输入与门,由语句ELSE CQI:=(OTHERS=0)产生。,由IF EN=1 THEN 产生。,由IF CQI=9 THEN COUT=1;ELSE COUT=0;产生。,十进制加法计数器的工作时序,习 题,3-1.画出与下例实体描述对应的原理图符号元件:ENTITY buf3s IS-实体1:三态缓冲器 PORT(input:IN STD_LOGIC;-输入端 enable:IN STD_LOGIC;-使能端 output:OUT STD_LOGIC);-输出端END buf3x;ENTITY mux21 IS-实体2:2选1多路选择器 PORT(in0,in1,sel:IN STD_LOGIC;output:OUT STD_LOGIC);END;,习 题,3-2.图所示的是4选1多路选择器,试分别用IF_THEN语句和CASE语句的表达方式写出此电路的VHDL程序。选择控制的信号s1和s0的数据类型为STD_LOGIC_VECTOR;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和s1=1,s0=1分别执行y=a、y=b、y=c、y=d。,4选1多路选择器,习 题,3-3.图所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=0和1时,分别有y=a和y=b。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。,双2选1多路选择器,习 题,3-4.下图是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件。,习 题,3-5.给出1位全减器的VHDL描述。要求:(1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。(2)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x y-sun_in=diffr)。,1位全减器,习 题,3-6.根据下图,写出顶层文件MX3256.VHD的VHDL设计文件。,3-7.设计含有异步清零和计数使能的16位二进制加减可控计数器。,

    注意事项

    本文(EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开