版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA技术及应用,主讲:牛军浩,第四章 VHDL设计初步,4.1 多路选择器的VHDL描述 4.2 寄存器描述及其VHDL语言现象 4.3 1位二进制全加器的VHDL描述 4.4 计数器设计 4.5 一般加法计数器设计,教学目的,通过简单、完整而典型的VHDL设计示例,初步了解用VHDL表达和设计电路的方法。,4.1 多路选择器的VHDL描述,2选1多路选择器的示意图和真值表,a,b,y,s,0,1,当s=0时,y=a 当s=1时,y=b,4.1 多路选择器的VHDL描述,2. 2选1多路选择器实现原理图形输入法,0,0,1,y=a,0,a,1,1,0,y=b,b,0,4.1 多路选择器的VH
2、DL描述,2. 2选1多路选择器实现VHDL文本输入法1,实体,结构体,实体名称,端口名称,流动方向,数据类型,结构体名,功能描述,4.1 多路选择器的VHDL描述,2. 2选1多路选择器实现VHDL文本输入法2,实体,结构体,4.1 多路选择器的VHDL描述,2. 2选1多路选择器实现VHDL文本输入法3,实体,结构体,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法实体表达结构,ENTITY、IS、PORT、END都是描述实体的关键词,不分大写小写,但是为了便于阅读,一般在设计中将关键词使用大写,自定义使用小写。,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法实体名称
3、,实体名表达的是该设计电路的器件名,通常根据相应电路的功能来确定。 不能用数字或中文、不能与工具库中已定义的元件名、不能数字开头。,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法实体名称举例,mux41 74LS04 and2 adder4b not 4输入与门,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法端口语句和名称,端口以PORT();来引导 端口模式有:IN、OUT、INOUT、BUFFER 数据类型有:BOOLEAN、BIT、INTEGER、CHAR型等,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法结构体表达结构,ARCHITECTURE、OF
4、、IS、BEGIN、END都是描述结构体的关键词。 功能描述语句:并行语句,顺序语句并行语句:WHEN_ELSE,逻辑操作赋值 顺序语句:IF_THEN_ELSE,功能描述语句,4.1 多路选择器的VHDL描述,3. 相关语句结构和语法文件名称,使用VHDL语句编写:后缀是.vhd 使用Verilog HDL语句编写:后缀是.v 使用原理图输入设计:后缀是.gdf,文件名称建议和实体名称相同,4.1 多路选择器的VHDL描述,4. 思考,y = ab + c,_,思考1:画出真值表,_,4.1 多路选择器的VHDL描述,4. 思考,y = ab + c,_,思考2:使用原理图方式实现上式功能,
5、4.1 多路选择器的VHDL描述,4. 思考,y = ab + c,_,思考3:使用VHDL实现上式功能,4.1 多路选择器的VHDL描述,5. 赋值符号,Y = (a AND (NOT s) or (b AND s),赋值符号,4.1 多路选择器的VHDL描述,6. 各种表达式的比较-布尔逻辑表达式,y = (a AND (NOT s) OR (b AND s),4.1 多路选择器的VHDL描述,6. 各种表达式的比较-条件赋值表达式,y = a WHEN s1=0 ELSE b ;,赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE 表达式 WHEN
6、赋值条件 ELSE 表达式 ;,4.1 多路选择器的VHDL描述,7. 各种表达式的比较-IF_THEN_ELSE表达,IF (s=0) THEN y=a; ELSE y=b; END IF;,IF 条件表达式 THEN 赋值语句; ELSIF 条件表达式 THEN 赋值语句; ELSIF 条件表达式 THEN 赋值语句; ELSE 条件表达式 ; END IF;,4.1 多路选择器的VHDL描述,8. 小结,4.1 节中主要通过多路选择器的实现过程,学习了VHDL描述的基本语言结构,以及组合逻辑电路的功能描述方法 布尔逻辑表达式 WHEN_ELSE条件表达式 IF_THEN_ELSE表达式,
7、4.2 寄存器描述及其VHDL语言,1. 教学目的,通过D触发器的VHDL实现过程,学习时序电路的VHDL描述方法。,4.2 寄存器描述及其VHDL语言,2. D触发器的功能描述,当CP=0时,触发器不工作,处于维持状态。当CP=1时,它的功能如下:当D=0时,次态=0,当D=1时,次态=1。,4.2 寄存器描述及其VHDL语言,3. VHDL实现,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
8、 dff1; ARCHITECTURE bhv OF dff1 IS SIGNALq1 : STD_LOGIC; BEGIN PROCESS (clk,q1) BEGIN IF CLKEVENT AND CLK=1 THEN q1 = d; END IF; END PROCESS; q=q1; END bhv;,引用库,数据类型,内部节点,时钟条件,4.2 寄存器描述及其VHDL语言,4. VHDL实现引用库,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;,LIBRARY 设计库名称; USE 设计库.程序包名.ALL;,数据类型、函数等放在设计库中和程序
9、包中。,因为使用了STD_LOGIC的数据类型,而该数据类型放置在设计库IEEE的STD_LOGIC_1164程序包中,所以在使用前需要先申明。,4.2 寄存器描述及其VHDL语言,4. VHDL实现数据类型,PORT(clk : IN STD_LOGIC; d: IN STD_LOGIC; q: OUT STD_LOGIC);,BIT的定义: TYPE BIT IS (0, 1);,STD_LOGIC的定义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-),4.2 寄存器描述及其VHDL语言,4. VHDL实现信号定义(内部节点),SIGNALq1 : STD_L
10、OGIC;,不必定义端口模式(如IN、OUT) 目的是为了设计更大的时序电路,q,q1,X1,PORT(clk : IN STD_LOGIC; d: IN STD_LOGIC; q: OUT STD_LOGIC);,q=q1;,4.2 寄存器描述及其VHDL语言,4. VHDL实现时钟表达式,IF clkEVENT AND clk=1,检测时钟信号的上升沿 表示clk信号有变化,并且变化后为1,4.2 寄存器描述及其VHDL语言,4. VHDL实现存储功能的产生,不完整的条件语句实现存储功能元件 如果是完整的条件语句,则只能构成逻辑电路,IF clkEVENT AND clk=1 THEN q
11、1 = d; END IF;,4.2 寄存器描述及其VHDL语言,5. 实现时序电路的不同描述,IF (clkEVENT) AND (clk=1) AND (clkLAST_VALUE=0),IF (clk=1) AND (clkLAST_VALUE=0),IF rising_edge(clk) -STD_LOGIC_1164定义,Wait until clk = 1;,4.2 寄存器描述及其VHDL语言,6. 同步时序电路和异步时序电路,移位寄存器,二进制计数器,只需一个时钟进程,需两个时钟进程,4.2 寄存器描述及其VHDL语言,6. 同步时序电路和异步时序电路,PROCESS (clk)
12、 BEGIN * END PROCESS; PROCESS (q) BEGIN * END PROCESS;,4.3 1位二进制全加器的VHDL描述,1. 半加器功能描述,全加器可由两个半加器和一个或门构成 半加器是最简单的加法器,把2个1位二进制数相加,不考虑低位的进位 ,产生一个2位和,和的低位叫半加和,高位叫半加进位 半加器由一个与门,一个或门和一个异或门构成,4.3 1位二进制全加器的VHDL描述,2. 半加器真值表及电路图,co = a AND b,so = a XOR b,4.3 1位二进制全加器的VHDL描述,3. 半加器VHDL描述方法布尔表达式,LIBRARY IEEE; U
13、SE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT( a,b : IN STD_LOGIC; co,so: OUT STD_LOGIC); END h_adder; ARCHITECTURE a OF h_adder IS BEGIN co = a AND b; so = a XOR b; END a;,4.3 1位二进制全加器的VHDL描述,3. 半加器VHDL描述方法真值表表达方式,4.3 1位二进制全加器的VHDL描述,4. 全加器图形输入法,考虑低位进位的情况下,2个输入和,4.3 1位二进制全加器的VHDL描述,5. 全加器VHDL描
14、述或门,通过顶层调用底层元件,实现全加器,下面使用VHDL描述实现或门逻辑。,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2aIS PORT( a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END or2a; ARCHITECTURE a OF or2aIS BEGIN c = a or b; END a;,4.3 1位二进制全加器的VHDL描述,5. 全加器VHDL描述顶层设计,通过顶层调用底层元件,实现全加器,d,e,f,4.3 1位二进制全加器的VHDL描述,6. 新学内容总结,a. 标准逻辑矢
15、量数据类型,b.并置操作符,c. CASE语句,d. 顶层描述及例化语句,4.3 1位二进制全加器的VHDL描述,6. 新学内容总结标准逻辑矢量数据类型,STD_LOGIC_VECTOR 标准一维数组,数组中每一位的数据类型都是STD_LOGIC,STD_LOGIC 标准位类型,定义方法: A : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) B : OUT STD_LOGIC_VECTOR(1 TO 5),赋值方法: A = “01010101”; A(7 DOWNTO 4 ) =“0101”;,4.3 1位二进制全加器的VHDL描述,6. 新学内容总结并置操作符,并置操
16、作符 co,so: OUT STD_LOGIC); END COMPONENT ;,将现成的设计实体定义为一个元件,做出调用申明 端口名表需要列出元件对外通信的各端口名,命名方式与实体中的PORT()一致(端口名可重新定义)。 元件申明语句放置在ARCHITECTURE和BEGIN之间,COMPONENT 元件名 PORT( 端口名表); END COMPONENT ;,4.3 1位二进制全加器的VHDL描述,6. 新学内容总结PORT MAP,u1 : h_adder2 PORT MAP(a=ain,b=bin,co=d,so=e); u2 : h_adder2 PORT MAP(a=e,b
17、=cin,co=f,so=sum); u3 : or2a PORT MAP(a=d,b=f,c=cout);,例化名相当于电子电路里的标号 元件名即调用的元件实体的名称,相对于器件名称 PORT MAP表示端口映射,端口到外部引脚或引线的连接关系 两个例化元件之间不能直接连接 = 是连接符号,例化名: 元件名 PORT MAP(端口名=X, 端口名=Y, ),4.3 1位二进制全加器的VHDL描述,7. 思考 习题4-2,思考 习题4-3,思考 习题4-4,4.4 计数器设计,1. 计数器的VHDL描述,BUFFER,INTEGER,q=q+1,4.4 计数器设计,1. 计数器的VHDL描述B
18、UFFER,BUFFER,IN,OUT,INOUT,元件,等效于在结构体BEGIN之前定义了一个信号,供反馈使用,4.4 计数器设计,1. 计数器的VHDL描述INTEGER,INTEGER,BIT,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER类型可用32位有符号的二进制数表示,取值范围:-2147483647+2147483647 INTEGER必须有RANGE限定范围,否则无法综合 VHDL规定加、减等算术符对应的操作数的数据类型只能是INTEGER型(除非重载算术操作符) NATURAL、POSITIVE是INTEGER的子类型 在语句中INTEGER类型表达式不
19、加 ,4.4 计数器设计,1. 计数器的VHDL描述运算符重载,4.4 作业,1. 端口模式有那些?各有什么区别?,2. 习题4-2,4.5 4位2进制计数器设计,1. 带进位计数器的VHDL描述,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY cnt4 IS PORT( clk : IN STD_LOGIC; q : BUFFER INTEGER RANGE 15 DOWNTO 0; c : OUT STD_LOGIC ); END cnt4 ; ARCHITECTURE a OF cnt4 IS BEGIN PROCESS(clk) BE
20、GIN IF(clkEVENT AND (clk = 1) THEN IF (q 15) THEN q =q +1; c=0; ELSE q = 0; c=1; END IF; END IF; END PROCESS; END a;,4.5 4位2进制计数器设计,2. 4位构成8位计数器的VHDL描述,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY cnt2d IS PORT( clk : IN STD_LOGIC; qH : BUFFER INTEGER RANGE 9 DOWNTO 0; qL : BUFFER INTEGER RANGE
21、 9 DOWNTO 0; cout: OUT STD_LOGIC ); END cnt2d ; ARCHITECTURE a OF cnt2d IS COMPONENT cnt4 PORT( clk : IN STD_LOGIC; q : BUFFER INTEGER RANGE 9 DOWNTO 0; c : OUT STD_LOGIC ); END COMPONENT; SIGNAL s1:STD_LOGIC; BEGIN u1: cnt4 PORT MAP(clk = clk, q = qL, c=s1 ); u2: cnt4 PORT MAP(clk = s1 , q = qH, c=
22、cout); END a;,4.5 作业,设计一位十进制计数器,即计数范围09 要求:有进位输出,2. 使用第一题中的一位十进制计数器,设计3位十进制计数器,即计数范围000999 要求:有进位输出 采用顶层设计的方法,调用习题1的设计。,4.5 作业,设计一位十进制计数器,即技术范围09 要求:有进位输出,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY cntten IS PORT( clk : IN STD_LOGIC; q : BUFFER INTEGER RANGE 9 DOWNTO 0; c : OUT STD_LOGIC ); END cntten ; ARCHITECTURE a OF cntten IS BEGIN PROCESS(clk) BEGIN IF(clkEVENT AND (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1-Heptadecanol-Standard-生命科学试剂-MCE
- 医联体内疼痛多学科诊疗资源配置标准化
- 呼吸机护理中的沟通技巧
- 医疗辐射防护的精准化防护方案评价
- 医疗资源区域协同
- 护理延伸服务中的康复护理指导
- 护理伦理道德课件设计
- 2025年安全用电操作培训
- 呼吸系统疾病护理中的特色技术
- 2026上海中医药大学附属岳阳中西医结合医院财务处科员岗位公开招聘考试参考题库及答案解析
- 《E252024船用集装箱式移动电源》
- 《吊顶工程施工工艺》课件
- 人教鄂教版六年级下册科学全册知识点
- 会展数字化转型
- DL∕T 5370-2017 水电水利工程施工通 用安全技术规程
- 高中全册物理实验总结
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 电力建设施工技术规范 第1部分 土建结构工程DL5190.1-2012
- 巩膜后兜带术后护理查房
- 下肢静脉曲张的护理
- 口腔修复前的准备及处理-口腔检查与修复前准备(口腔修复学课件)
评论
0/150
提交评论