




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 VHDL设计初步 概述 VHDL程序基本结构 VHDL程序设计举例4.1 VHDL概述4.1.1 常用硬件描述语言对比VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)(1) 逻辑描述层次:由高到低依次为行为级、RTL级和门电路级VHDL语言:(行为级和RTL级) 最适于描述电路的行为Verilog语言:(RTL级和门电路级) 最适于描述门级电路4.1 VHDL概述(2) 设计要求: VHDL:可以不了解电路的结构细节,设计者所做的工作较少; Verilog:需了解电路
2、的结构细节,设计者需做大量的工作。4.1 VHDL概述(3) 综合过程: VHDL:经过行为级RTL级再到门电路级,过程复杂,对综合器要求高; Verilog:只需RTL至门电路级的转化,易于控制电路资源,对综合器性能要求低。4.1 VHDL概述4.1.2 VHDL的特点VHDL具有更强的行为描述能力,尤其适合描述大的或者复杂的设计IEEE 、工业标准,有丰富的仿真语句和库函数用VHDL完成设计突破了门及设计瓶颈VHDL设计程序的硬件实现有广阔的选择范围,基本做到设计完全独立。VHDL具有类属描述语句和子程序调用功能,程序修改容易。 VHDL 用于描述: -输入端口 -输出端口 -电路的行为和
3、功能 VHDL有过两个标准: -IEEE Std 1076-1987 (called VHDL 1987) -IEEE Std 1076-1993 (called VHDL 1993)4.1 VHDL概述4.1 VHDL概述4.1.3 VHDL程序设计约定(1) 语句结构描述中方括号“ ”内的内容为可选内容。(2) 对于VHDL的编译器和综合器来说,程序文字的大小写是不加区分的。书中关键词用大写,用户自定义名称用小写。(3) 程序中的注释使用双横线“-”。在VHDL程序中,“-”后的文字都不参加编译和综合。(4) 为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式。4.2 VHDL语
4、言的基本 单元及其构成 4.2.1 2选1多路选择器的VHDL描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT(a,b,s: IN BIT; q: OUT BIT );END mux21;ARCHITECTURE connect OF mux21 ISBEGINq=a WHEN s=0 ELSE b;END connect;设计一个2选1多路通道程序包实体结构体信号传输符号4.2.2 VHDL程序的基本结构 库、程序包使用说明: 调用本设计将要用到的库、程序包实体说明: 描述该设计与外界的接口信号结构体说明: 描述设
5、计实体内部工作的逻辑关系4.2.2 VHDL程序的基本结构1、ENTITY(实体)是VHDL设计中最基本的组成部分之一,它类似于原理图中的一个部件符号,它并不描述设计的具体功能,只定义了该设计所需的全部输入/输出信号。实体的格式如下: ENTITY 实体名 IS GENERIC(常数名: 数据类型 :=设定值 ); PORT(列出设计的所有输入/输出信号); END 实体名;VHDL结构要点实际上是器件名,最好用相应功能来确定,如counter4b,adder8b。注意不能用prim等库的元件的名字。规定实体的内部特性参数,如端口大小,子元件数目,定时特性等。端口说明格式为: PORT(端口名
6、:端口模式 数据类型);VHDL结构要点端口模式:用来说明数据、信号通过该端口的方向。(1)IN 信号进入实体;(2)OUT 信号离开实体,不能在内部反馈使用;(3)INOUT 信号是双向的,既可进入也可离开实体;(4)BUFFER 信号输出到实体外部,但同时也可在实体内部反馈,允许内部引用该端口的信号。注意简单地说= 或 : = In端口 out端口 = 或 : = buffer端口 = 或 : = buffer端口VHDL结构要点In 信号只能被引用,不能被赋值out 信号只能被赋值,不能被引用buffer 信号可以被引用,也可以被赋值2、Arcthitecture(结构体) 格式: Ar
7、cthitecture 结构体名 of 实体名 is 说明语句 内部信号、常数、元件、数据类型、函数等的定义 begin 功能描述语句 end 结构体名; VHDL结构要点并行语句或顺序语句或它们的混合。描述器件内部逻辑功能或电路结构。VHDL结构要点说明语句说明功能描述中用到的 信号(SIGNAL) 数据类型(TYPE) 常数(CONSTANT) 元件(COMPONENT) 函数(FUNCTION) 过程(PROCEDURE)VHDL结构要点功能描述:块语句、进程语句、信号赋值语句、子程序调用语句、元件例化语句多个语句可以是并行执行的,也可顺序执行,取决于所使用的语句类型:块语句:多个并行语
8、句构成的模块进程语句:顺序语句模块信号赋值语句:向信号或端口赋值子程序调用语句:调用一个已设计好子程序。元件例化语句:调用元件,并将元件拼接为电路模块VHDL结构要点ENTITY mux21aISPORT(a,b:IN BIT;s:INBIT;q:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINq=a WHENs=0 ELSE b;END ARCHITECTURE one;WHEN_ELSE并行赋值语句赋值语句条件判断表达式ARCHITECTURE one OF mux21a ISSIGNAL d,e: BIT;BEGI
9、Nd= a AND (NOT s);e= b AND s;q= d OR e;END ARCHITECTURE one;逻辑操作符:BIT,BOOLEAN,STD_LOGICARCHITECTURE one OF mux21a ISBEGINq=(a AND (NOT s) OR (b AND s) ;END ARCHITECTURE one;ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s=0 THENq=a; ELSE q= b;END IF;END PROCESS;END ARCHITECTURE one;PROCESS
10、引导的语句为进程语句,所有顺序语句都必须放在进程语句中PROCESS语句的敏感信号表IF_THEN_ELSE顺序语句4.3 VHDL程序设计举例例1 1位半加器a,二进制输入信号b,二进制输入信号s,输出信号,相加和c,输出信号,进位输入输出abcs0000010110011110例1 1位半加器例1 1位半加器VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC; c,s:OUT STD_LOGIC);END ENTITY h_adder ;- IEEE库的使用说明-程序
11、包实体h_adder说明例1 1位半加器 - 实体h_adder的结构体behav的说明 ARCHITECTURE behav OF h_adder IS BEGIN s=(a OR b) AND (a NAND b); c=NOT (a NAND b); END ARCHITECTURE behav ;端口赋值/信号传输例1 1位半加器1位半加器有一个设计实体h_adder ,包括:库和程序包的使用说明、实体说明、结构体说明实体h_adder及对应的结构体behav描述了一个半加器,其组成为:或非门/非门/与门各一个在VHDL中,逻辑关系“与非”、“非”、“或”和“与”分别由运算符NAND、
12、NOT、OR和AND表示。 端口信号模式: IN 、OUT、INOUT、BUFFER 信号数据类型: STD_LOGIC、BIT、INTEGER、BOOLEAN . 程序文件存盘取名: h_adder.VHD 信号传输符号:“ = ” 且两边数据类型必须相同 VHDL语法小结1条件赋值语句: 赋值条件按书写的先后顺序进行判断 基本逻辑操作符 AND OR NOT NAND NOR XOR XNOR 逻辑操作的数据类型: BIT、BOOLEAN、STD_LOGICVHDL语法小结1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PO
13、RT (clk:IN STD_LOGIC;d:IN STD_LOGIC;q:OUT STD_LOGIC);END DFF1 ;ddf1打开IEEE库STD_LOGIC:标准逻辑位在综合器中,STD_LOGIC被看作有9种值,如-、X、0、1和Z等而BIT只能取0和1程序包例2 用VHDL设计D触发器ARCHITECTURE bhv OF DFF1 IS SIGNAL q1:STD_LOGIC;BEGINPROCESS(clk)BEGINIF clkEVENT AND CLK=1 THEN q1=D;END IF;q=q1;END PROCESS;END bhv;引进内部节点信号进程语句及敏感信
14、号检测clk上升沿将数据输出端口不完整条件语句顺序语句例2 用VHDL设计D触发器边沿型触发器的时序波形例2 用VHDL设计D触发器LIBRARY IEEE;USE IEEE. STD_LOGIC _1164.all;ENTITY test1 ISport (clk, d : IN STD_LOGIC; q : OUT STD_LOGIC);END test1;ARCHITECTURE test1_body OFtest1 ISBEGINPROCESS (clk)BEGIN IF rising_edge(clk) THEN q = d; END IF;END PROCESS;END test1
15、_body;测定上升沿的函数,clk必须是STD_LOGIC 例2 基本语法小结 定义信号 SIGNAL: SIGNAL A1 : STD_LOGIC; 信号属性函数 EVENT PROCESS语句结构: 顺序语句,行为描述语句 敏感信号表,PROCESS语句特点 时序电路:不完整条件语句产生时序电路 时钟上升沿测试语句结构: CLKEVENT AND CLK = 1 ,RISING_EDGE()例42 一位全加器半加器真值表ABSCo0000101001101101方法一:根据电路原理图LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_add
16、er1 IS PORT (a,b:IN STD_LOGIC; co,so:OUT STD_LOGIC);END h_adder1;ARCHITECTURE fh1 OF h_adder1 ISBEGINso=NOT(a XOR (NOT b);co=a AND b;END fh1;并行赋值语句方法二:根据真值表ARCHITECTURE fh2 OF h_adder2 ISSIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINselso=0;coso=1;coso=1;coso=1;coNULL;END CASE;END PROCESS;END fh2;并置操
17、作符完整条件语句全加器或门描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT (a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END or2a;ARCHITECTURE one OF or2a ISBEGINc=a OR b;END one;全加器LIBRARY IEEE;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_
18、adder;ARCHITECTURE fd1 OF f_adder ISCOMPONENT h_adder1PORT(a,b: IN STD_LOGIC;co,so:OUT STD_LOGIC);END COMPONENT;COMPONENT or2aPORT(a,b: IN STD_LOGIC; c:OUT STD_LOGIC);END COMPONENT; SIGNAL d,e,f:STD_LOGIC;BEGIN u1: h_adder1 PORT MAP (ain,bin,d,e) ; u2: h_adder1 PORT MAP (e,cin,f,sum) ; u3: or2a PORT
19、 MAP (d,f,cout); END fd1;def 例42基本语法小结 CASE语句:表达真值表CASEISWHEN;END CASE;标准逻辑矢量数据类型: STD_LOGIC_VECTORB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL A: STD_LOGIC_VECTOR(1 TO 4);B=“01100010”; -B(6)=?B(4 DOWNTO 1 )=“1101”; -B(3)=?A(1 TO 4 )=“1101”; -A(3)=?B(7 DOWNTO 4 )连接端口名,); 并置操作符:“ & ” a = 1 0 b(1) e(2) I
20、F a d = 10100011” THEN LIBRARY IEEE;USE IEEE.std_logic_1164.all;ENTITY cnt4_1 IS PORT(clk:IN BIT; q:BUFFER INTEGER RANGE 15 DOWNTO 0);END cnt4_1;ARCHITECTURE behave OF cnt4_1 ISBEGIN PROCESS(clk) BEGIN IF clkEVENT AND clk=1 THEN q=q+1; END IF; END PROCESS;END behave; 取整数数据类型,为什么?整数取值范围端口信号模式取BUFFER,
21、为什么?注意整数和位的不同表达方式!例43 四位加法计数器 定输出信号数据类型为整数类型: INTEGER,必须定义整数取值范围, RANGE 15 DOWNTO 0 端口信号模式取缓冲型: BUFFER 整数和位的表达方式: 1 + 5 ; 1;“1011” 加减算术符的适用范围:整数 Q = Q + 1 ;例43基本语法小结 如何进行四位加法计数器的设计? 计数器由组合电路模块和时序电路模块构成: 加1组合电路、锁存器;计数时钟其实是锁存信号 BUFFER并非是一种特殊的硬件端口结构,只是一种功能描述,作为内部输出信号可以反馈到实体内部。 注意BUFFER与INOUT 不同。4位锁存器组合
22、电路加1器锁存信号输出反馈综合后的计数器电路RTL图LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;Entity cnt4_2 isport (clk: in std_logic; q : out std_logic_vector(3 downto 0);end cnt4_2;architecture test1_body of cnt4_2 ISsignal q1:std_logic_vector(3 downto 0);beginprocess (clk)begin if clkevent A
23、ND clk=1 then q1 = q1+1; end if;q=q1;end process;end test1_body;STD_LOGIC_UNSIGNED库里的操作符为重载函数,解决了“+”只能对相同数据类型操作数进行运算的缺点例3 设计4位加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder4b IS PORT( CINT :IN STD_LOGIC;A, B :IN STD_LOGIC_VECTOR(3 DOWNTO 0);S :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);END ENTITY adder4b ;注意标准逻辑矢量的表达方示例3 设计4位加法器ARCHITECTURE behav OF adder4b ISSIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年胃动力药项目构思建设方案
- 2025年工业用橡胶制品:胶管项目发展计划
- 护理大学生涯规划
- 2025年档案馆管理服务合作协议书
- 陕西西安地区2025年高三5月单元检测试题(月考)历史试题含解析
- 陕西警官职业学院《高级听力(二)》2023-2024学年第二学期期末试卷
- 陕西铁路工程职业技术学院《新媒体项目管理》2023-2024学年第二学期期末试卷
- 雅安职业技术学院《经济史》2023-2024学年第二学期期末试卷
- 集美大学《跨文化管理》2023-2024学年第二学期期末试卷
- 青岛农业大学《木炭画技法》2023-2024学年第二学期期末试卷
- 一般生产经营单位安全培训试题含完整答案(各地真题)
- 开大2018-社区管理-网上作业答案
- 北京公交集团招聘笔试题库2024
- 2024反诈知识竞赛考试题库及答案(三份)
- 新版SEW MOVIDRIVE MDX61B调试步骤(variable setpoint)VER.4.4
- 20061228 福建省“十一五”数字福建专项规划(2006-2010)
- 阳光食品APP培训考核题库(含答案)食品生产企业端
- (正式版)FZ∕T 64111-2024 卫生巾(护垫)用非织造布
- 电机与拖动智慧树知到期末考试答案章节答案2024年辽宁工程技术大学
- DL-T-302.2-2011火力发电厂设备维修分析技术导则第2部分:风险维修分析
- 2024年重庆市中考数学试卷真题B卷(含答案逐题解析)
评论
0/150
提交评论