《ch3VHDL设计初步》PPT课件.ppt_第1页
《ch3VHDL设计初步》PPT课件.ppt_第2页
《ch3VHDL设计初步》PPT课件.ppt_第3页
《ch3VHDL设计初步》PPT课件.ppt_第4页
《ch3VHDL设计初步》PPT课件.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第3章 VHDL设计初步 3.1 组合电路的VHDL描述 3.2 基本时序电路的VHDL描述 3.3 计数器的VHDL设计 3.4 实用计数器的VHDL设计 2 一、VHDL结构及相关语句说明 1、实体 l 是VHDL程序的基本单元,用于描述设计系统的端口结 构。 l 一个电路系统的程序设计只有一个实体。 l 一般语句结构: ENTITY 实体名 IS PORT (端口表); END ENTITY 实体名; 3.1 二选一多路选择器VHDL描述 用VHDL描术电路由两部分组成:实体和结构体 3 【例3-1】 ENTITY elector2_1 IS . END ENTITY elector2_1; 1)、实体名 l 实体名设计者自己添加,最好根据相应电路的功能 来确定; l 不要用数字或中文定义实体名; l 不要与EDA工具库中已定义好的元件同名; 4 2)、PORT语句和端口信号名 PORT说明语句是对一个设计实体与外部电路的接口通道 的说明,其中包括对每一接口的输入输出模式和数据类型的 定义。其格式如下: PORT(端口名,端口名:端口模式 数据类型; 端口名,端口名:端口模式 数据类型); A、端口模式: 端口模式用于定义端口上的数据的流动方向和方式,一 般有四种模式: IN、OUT、INOUT、BUFFER 5 端口模式端口模式说说明 IN单单向只读读模式,数据只能通过该过该 端口读读入实实体中 OUT单单向输输出模式,数据通过该过该 端口从实实体输输出 INOUT输输入输输出双向端口,可以通过该过该 端口读读入或写出信息 BUFFER 具有读读功能的输输出模式,可以读读或写,回读读信号由内部 产产生 INOUTINOUTBUFFER 端口模式符号图 INOUTBUFFERINOUT 6 B、数据类型 1)意义和作用:数据类型是指端口上流动的数据的表达格式或取 值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互 作用。 2)数据类型种类:INTEGER、BOOLEAN、 BIT和STD_LOGIC等。 BOOLEAN:FALSE,TRUE BIT : (0,1) STD_LOGIC: (U,X,0,1,Z,W,L,H,-) U表示未初始化的; X表示强未知的; 0表示强逻辑0; 1表示强逻辑1; Z表示高阻态; W 表示弱未知的; L表示弱逻辑0; H表示弱逻辑1; -表示忽略。 7 ENTITY mux21a IS PORT(a,b:IN BIT; s:IN BIT; y:OUT BIT) ; END ENTITY mux21a ; 实体 3)、 2选1多路选择器的VHDL描述(实体) 8 2、结构体表达 结构体是描述设计实体的内部结构和外部设计实体端口间 的逻辑关系。结构体的一般结构为: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句; BEGIN 功能描述语句; END ARCHITECTURE 结构体名; u 说明语句:包括对数据对象、数据类型、常数、信号、子程序和元件等元素的 说明部分,可省略。 u 功能描述语句:描述实体逻辑行为,可以是并行、顺序语句或两者的混合,必 须给出。 u 一个实体可以有多个结构体,每个结构体对应着实体不同的结构和算法实现方 案,各个结构体的地位是同等的。 9 ARCHITECTURE one OF mux21a IS BEGIN y 大于 =大于等于 3、关系运算符 三、关系运算符、逻辑操作符 16 1、 IF_THEN条件语句 2、WHEN_ELSE条件信号赋值语句 赋值目标 so so so so NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; CASE语句 并置操作 符 . ; ; WHEN = ; . ; ; . WHEN OTHERS = ; END CASE ; p 选择值或标识符的值必须在表达式的取值范围内。 p OTHERS作为最后一种条件取值,只能出现一次,以涵盖表 达式未列出的值。 p 关键词NULL表示不做任何操作。 p 相同的选择值只能出现一次,CASE语句执行时,只能选中 所列条件语句中的一条。 28 【例3】 -半加器描述(3) SIGNAL abc,cso : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN abc cso cso cso cso连接端口名,); 33 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); u3 : or2a PORT MAP (a=d,b=f,c=cout); 全加器f_adder电路图 34 (2)全加器描述 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 ; COMPONENT or2a PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f : STD_LOGIC; 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); u3 : or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd1; 35 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) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 b1 THEN q1 b1 THEN q1 X) 为了简化表达才使用短语“(OTHERS=X)”,这是一个省 略赋值操作符,它可以在较多位的位矢量赋值中作省略化的赋 值,如以下语句: SIGNAL d1,d2 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; d21,4=1,others=0); 则d1为00000,a1为0000000000000000 , d2为 10010 56 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 0); -计数器复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN = 1 THEN -检测是否允许计数 IF CQI 0); -大于9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论