第四章VHDL设计初步_第1页
第四章VHDL设计初步_第2页
第四章VHDL设计初步_第3页
第四章VHDL设计初步_第4页
免费预览已结束,剩余42页可下载查看

下载本文档

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

文档简介

1、第第 1 1 页页第四章 VHDL设计初步第第 1 1 页页第四章 VHDL设计初步第四章 VHDL设计初步第第 2 2 页页第四章 VHDL设计初步VHDL (Very High Speed Integrated Circuit VHDL (Very High Speed Integrated Circuit Hardware Description Language)Hardware Description Language),意为超高速集,意为超高速集成电路硬件描述语言。由美国国防部成电路硬件描述语言。由美国国防部70708080年代组织年代组织研制开发,研制开发,19851985年完成

2、第一版,年完成第一版, 19871987年成为年成为IEEE IEEE Std1076-1987Std1076-1987。美国国防部规定所有官方的。美国国防部规定所有官方的ASICASIC设设计都必须用计都必须用VHDLVHDL为设计描述语言,此后渐渐成为工为设计描述语言,此后渐渐成为工业标准为大家接受。业标准为大家接受。19931993年修改成年修改成IEEE Std1164-IEEE Std1164-19931993。19951995年,中国国家技术监督局组织编撰并出年,中国国家技术监督局组织编撰并出版版CADCAD通用技术规范通用技术规范,推荐,推荐VHDLVHDL语言作为我国电语言作为

3、我国电子设计自动化硬件描述语言的国家标准。子设计自动化硬件描述语言的国家标准。VHDL的由来的由来4.1 概述概述 第第 3 3 页页第四章 VHDL设计初步一些语法约定1. 可选内容可选内容2. 大小写不敏感大小写不敏感3. - 后面为注释后面为注释4. 层次缩进层次缩进5. 源文件名源文件名必须与实体名一致与实体名一致第第 4 4 页页第四章 VHDL设计初步4.2 VHDL语言的基本单元及其构成语言的基本单元及其构成 4.2.1 2选选1多路选择器的多路选择器的VHDL描述描述 mux21aabsqasbq第第 5 5 页页第四章 VHDL设计初步LIBRARY IEEE;USE IEE

4、E.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多路通道程序包实体结构体信号传输符号第第 6 6 页页第四章 VHDL设计初步第第 7 7 页页第四章 VHDL设计初步4.2.2 VHDL程序的基本结构程序的基本结构 第第 8 8 页页第四章 VHDL设计初步1、ENTITY(实体)是(实体)是VHDL设计中最基本的组设计中最基本的组成

5、部分之一,它类似于原理图中的一个部件符成部分之一,它类似于原理图中的一个部件符号,它并不描述设计的具体功能,只定义了该号,它并不描述设计的具体功能,只定义了该设计所需的全部输入设计所需的全部输入/输出信号。输出信号。实体的格式如下实体的格式如下: ENTITY 实体名实体名 IS GENERIC(常数名(常数名: 数据类型数据类型 :=设定值设定值 ); PORT(列出设计的所有输入列出设计的所有输入/输出信号输出信号); END 实体名实体名;VHDL结构要点实际上是器件名,最好用实际上是器件名,最好用相应功能来确定,如相应功能来确定,如counter4b,adder8b。注。注意不能用意不

6、能用prim等库的元件等库的元件的名字。的名字。规定实体的内部特性参数,规定实体的内部特性参数,如端口大小,子元件数目,如端口大小,子元件数目,定时特性等。定时特性等。第第 9 9 页页第四章 VHDL设计初步端口说明格式为:端口说明格式为: PORT(端口名:端口模式端口名:端口模式 数据类型数据类型);VHDL结构要点 IN OUT INOUT BUFFER端口模式:端口模式:用来说明数据、信号通过该端口的方向。用来说明数据、信号通过该端口的方向。(1)IN 信号进入实体;信号进入实体;(2)OUT 信号离开实体,不能在内部反馈使用;信号离开实体,不能在内部反馈使用;(3)INOUT 信号

7、是双向的,既可进入也可离开实体;信号是双向的,既可进入也可离开实体;(4)BUFFER 信号输出到实体外部,但同时也可在信号输出到实体外部,但同时也可在实体内部反馈,允许内部引用该端口的信号。实体内部反馈,允许内部引用该端口的信号。第第 1010 页页第四章 VHDL设计初步注意注意简单地说简单地说= 或或 : = In端口端口 out端口端口 = 或或 : = buffer端口端口 = 或或 : = buffer端口端口VHDL结构要点In In 信号只能被引用信号只能被引用, ,不能被赋值不能被赋值out out 信号只能被赋值信号只能被赋值, ,不能被引用不能被引用buffer buff

8、er 信号可以被引用信号可以被引用, ,也可以被赋值也可以被赋值第第 1111 页页第四章 VHDL设计初步2、Arcthitecture(结构体)(结构体) 格式:格式: Arcthitecture 结构体名结构体名 of 实体名实体名 is 说明语句说明语句 内部信号、常数、元件、数据类内部信号、常数、元件、数据类型、函数等的定义型、函数等的定义 begin 功能描述语句功能描述语句 end 结构体名;结构体名; VHDL结构要点并行语句或顺序语并行语句或顺序语句或它们的混合。句或它们的混合。描述器件内部逻辑描述器件内部逻辑功能或电路结构。功能或电路结构。第第 1212 页页第四章 VHD

9、L设计初步VHDL结构要点说明语句说明语句说明功能描述中用到的说明功能描述中用到的 信号(信号(SIGNAL) 数据类型(数据类型(TYPE) 常数(常数(CONSTANT) 元件(元件(COMPONENT) 函数(函数(FUNCTION) 过程(过程(PROCEDURE)第第 1313 页页第四章 VHDL设计初步VHDL结构要点功能描述:块语句、进程语句、信号赋值语句、功能描述:块语句、进程语句、信号赋值语句、子程序调用语句、元件例化语句子程序调用语句、元件例化语句多个语句可以是并行执行的,也可顺序执行,多个语句可以是并行执行的,也可顺序执行,取决于所使用的语句类型:取决于所使用的语句类型

10、:1. 块语句:多个并行语句构成的模块块语句:多个并行语句构成的模块2. 进程语句:顺序语句模块进程语句:顺序语句模块3. 信号赋值语句:向信号或端口赋值信号赋值语句:向信号或端口赋值4. 子程序调用语句:调用一个已设计好子程序。子程序调用语句:调用一个已设计好子程序。5. 元件例化语句:调用元件,并将元件拼接为元件例化语句:调用元件,并将元件拼接为电路模块电路模块第第 1414 页页第四章 VHDL设计初步VHDL结构要点ENTITY mux21aISPORT(a,b:IN BIT;s:INBIT;q:OUT BIT);END ENTITY mux21a;ARCHITECTURE one O

11、F mux21a ISBEGINq=a WHEN s=0 ELSE b;END ARCHITECTURE one;第第 1515 页页第四章 VHDL设计初步ARCHITECTURE one OF mux21a ISSIGNAL d,e: BIT;BEGINd= a AND (NOT s);e= b AND s;q= d OR e;END ARCHITECTURE one;第第 1616 页页第四章 VHDL设计初步ARCHITECTURE one OF mux21a ISBEGINq=(a AND (NOT s) OR (b AND s) ;END ARCHITECTURE one;第第 1

12、717 页页第四章 VHDL设计初步ARCHITECTURE one OF mux21a ISBEGINPROCESS (a,b,s)BEGINIF s=0 THENq=a; ELSE q= b;END IF;END PROCESS;END ARCHITECTURE one;第第 1818 页页第四章 VHDL设计初步4.3 VHDL文本输入设计方法初步文本输入设计方法初步第第 1919 页页第四章 VHDL设计初步将当前设计指定为工程然后选择器件、分配引脚然后选择器件、分配引脚第第 2020 页页第四章 VHDL设计初步排错有两种定位错误的方法第第1步、单击步、单击Error行,使之反色显示

13、行,使之反色显示第第2步、单击步、单击Locate按钮按钮直接双击直接双击Error行行第第 2121 页页第四章 VHDL设计初步常见错误l标点错误l将设计文件放于根目录下,没有放在工作库下l文件后缀.vhd设成.tdfl设计文件名和实体名不一致l底层设计没有运行create default include file命令l第第 2222 页页第四章 VHDL设计初步仿真下载时序仿真时序仿真和和功能仿真功能仿真的意义的意义时序仿真时序仿真就是接近真实器件运行特性的时序仿真,就是接近真实器件运行特性的时序仿真, 仿仿文件中已包含了器件硬件特性参数,因而仿真精度高。文件中已包含了器件硬件特性参数,

14、因而仿真精度高。但时序仿真的仿真文件必须来自针对具体器件的综合但时序仿真的仿真文件必须来自针对具体器件的综合器与适配器器与适配器。功能仿真功能仿真是直接对是直接对VHDL、原理图描述或其它描述形式、原理图描述或其它描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求的过程。仿真过程不涉及任何具体器满足原设计要求的过程。仿真过程不涉及任何具体器件的硬件特性件的硬件特性。仿照第三章的内容进行仿真和下载仿照第三章的内容进行仿真和下载第第 2323 页页第四章 VHDL设计初步第第 2424 页页第四章 VHDL设计初步LIBRARY IE

15、EE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT (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程序包程序包4.4 VHDL 程序设计举例程序设计举例例例41 D触发器触发器第第 2525 页页第四章 VHDL设计初步ARCHITECTURE bhv OF DFF1 IS S

16、IGNAL q1:STD_LOGIC;BEGINPROCESS(clk)BEGINIF clkEVENT AND CLK=1 THEN q1=D;END IF;q=q1;END PROCESS;END bhv;引进内部节点信号进程语句及敏感信号检测clk上升沿将数据输出端口不完整条不完整条件语句件语句顺序顺序语句语句第第 2626 页页第四章 VHDL设计初步边沿型触发器的时序波形边沿型触发器的时序波形第第 2727 页页第四章 VHDL设计初步LIBRARY IEEE;USE IEEE. STD_LOGIC _1164.all;ENTITY test1 ISport (clk, d : IN

17、 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_body;第第 2828 页页第四章 VHDL设计初步 例例41基本语法小结基本语法小结 定义信号定义信号 SIGNAL: SIGNAL A1 : STD_LOGIC; 信号属性函数信号属性函数 EVENT PROCESS语句结构语句结构: 顺序语句,行为描述语句顺序语句,行为描

18、述语句 敏感信号表,敏感信号表,PROCESS语句特点语句特点 时序电路:不完整条件语句产生时序电路时序电路:不完整条件语句产生时序电路 时钟上升沿测试时钟上升沿测试语句结构语句结构: CLKEVENT AND CLK = 1 ,RISING_EDGE()第第 2929 页页第四章 VHDL设计初步例例42 一位全加器一位全加器第第 3030 页页第四章 VHDL设计初步半加器真值表ABSCo0000101001101101第第 3131 页页第四章 VHDL设计初步方法一:根据电路原理图LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_add

19、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;并行赋值语句并行赋值语句第第 3232 页页第四章 VHDL设计初步co0acobso0so第第 3333 页页第四章 VHDL设计初步方法二:根据真值表ARCHITECTURE fh2 OF h_adder2 ISSIGNAL sel:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINselso=

20、0;coso=1;coso=1;coso=1;coNULL;END CASE;END PROCESS;END fh2;并置操作符并置操作符完整条件语句完整条件语句第第 3434 页页第四章 VHDL设计初步SEL1.0DATA3.0OUTMUXSEL1.0DATA3.0OUTMUXMux04 hE -acosobMux14 h8 -第第 3535 页页第四章 VHDL设计初步全加器或门描述或门描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT (a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END

21、or2a;ARCHITECTURE one OF or2a ISBEGINc=a OR b;END one;第第 3636 页页第四章 VHDL设计初步全加器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_adder;ARCHITECTURE fd1 OF f_adder ISCOMPONENT h_adder1PORT(a,b: IN STD_LOGIC;co,so:OUT STD_LO

22、GIC);END COMPONENT;COMPONENT or2aPORT(a,b: IN STD_LOGIC; c:OUT STD_LOGIC);END COMPONENT; 第第 3737 页页第四章 VHDL设计初步 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 MAP (d,f,cout); END fd1;def第第 3838 页页第四章 VHDL设计初步 例例42基本语法小结基本语法小结 CA

23、SE语句:语句:表达真值表表达真值表CASEISWHEN;END CASE;第第 3939 页页第四章 VHDL设计初步标准逻辑矢量数据类型:标准逻辑矢量数据类型: 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 )连接端口名,连接端口名,); 第第 4141 页页第四章 VHDL设计初步并置操

24、作符:“ & ” a = 1 0 b(1) e(2) IF a d = 10100011” THEN 第第 4242 页页第四章 VHDL设计初步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; EN

25、D PROCESS;END behave; 取整数数据类型,为什么?取整数数据类型,为什么?整数取值范围整数取值范围端口信号模式取端口信号模式取BUFFER,为什么?,为什么?注意整数和位的不同表达方式!注意整数和位的不同表达方式!例例43 四位加法计数器四位加法计数器第第 4343 页页第四章 VHDL设计初步 定输出信号数据类型为整数类型:定输出信号数据类型为整数类型: INTEGER,必须定义整数取值范围必须定义整数取值范围, RANGE 15 DOWNTO 0 端口信号模式取缓冲型:端口信号模式取缓冲型: BUFFER 整数和位的表达方式:整数和位的表达方式: 1 + 5 ; 1;“1011” 加减算术符的适用范围:整数加减算术符的适用范围:整数 Q = Q + 1 ;例例43基本语法小结基本语法小结第第 4444 页页第四章 VHDL设计初步 如何进行四位加法计数器的设计?如何进行四位加法计数器的设计? 计数器由组合电路模块和时序电路模块构计数器由组合电路模块和时序电路模块构成:成: 加加1组合电路、锁存器;计数时钟其实是锁存信号组合电路、锁存器;计数时钟其实是锁存信号 BUFFER并非是一种特殊的硬件

温馨提示

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

评论

0/150

提交评论