吉林大学《数字电路设计基础》课程 - VHDL 2课件_第1页
吉林大学《数字电路设计基础》课程 - VHDL 2课件_第2页
吉林大学《数字电路设计基础》课程 - VHDL 2课件_第3页
吉林大学《数字电路设计基础》课程 - VHDL 2课件_第4页
吉林大学《数字电路设计基础》课程 - VHDL 2课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、可编程器件及数字系统设计一、VHDL概述 VHDL是超高速集成电路硬件描述语言 (Very High speed Integrated Circuit Hardware Description Language)的英文缩写。 语法和风格:(1)类似与现代高级编程语言,如C语言。(2)VHDL描述的是硬件,它包含许多硬件特有的结构。 VHDL语言的程序结构 LIBRARY(USE)- 库 PACKAGE - 程序包集合 ENTITY - 实体 ARCHITECTURE - 结构体 CONFIGURATION - 配置语句一、VHDL概述端口逻辑关系一、VHDL概述include “stdio.h

2、”; include “math.h”;int main(void) int a,b,c; a=8; b=9; c=a+b; return c; Library std; Use std.standard.all;Entity and2 is Port( a,b : in bit;c : out bit);End and2;Architecture a1 of and2 is Begin c = a and b; End a1;VHDL程序 C程序 “实体”and2结构体a1 作用: ENTITY(实体)用于定义电路的外观,即I/O端口的类型和数量。 定义格式:Entity 实体名 is Po

3、rt( a : in bit; b : in bit; c : out bit);End 实体名;(2)ENTITY定义区一、VHDL概述端口名数据类型端口模式端口模式(MODE)有以下几种类型: IN ;OUT;INOUT ;BUFFER 端口模式可用下图说明:(黑框代表一个“设计实体”或模块) IN OUT BUFFER INOUT一、VHDL概述(4)CONFIGURATION部分 作用: 当实体有多个结构体时,利用CONFIGURATION语句来为实体选择一个结构体,作为内部电路结构。定义格式:Configuration 配置名 of 实体名 isfor 选用的结构体名end for;

4、end configuration 配置名 ;一、VHDL概述实体 (A,B,C)结构体a1结构体a2Configuration a1库声明程序包声明结构框图workingABC结构体a1一、VHDL概述 标识符的定义原则:(1)标识符由字母、数字和下划线组成,a7_;(2)在标识符不区分大小写,ab和AB是一样的;(3)第一个字符必须是字母,即a666;(4)不允许有两个连续的下划线,a_b错误;(5)末尾不能是下划线,mname_错误;(6)标识符不能和关键字相同,如Entity,is等。一、VHDL概述 设计范例:2输入与门abc电路真值表abc000100010111一、VHDL概述L

5、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;Entity and2 is Port( a : in bit; b : in bit; c : out bit);End and2;-实体定义结束。 双减号-为VHDL程序的注释符,类似C语言中的/注释符。一、VHDL概述Architecture Na of and2 is Begin c =0 when a=0 and b = 0 else 0 when a=1 and b = 0 else

6、 0 when a=0 and b = 1 else 1; - 符号=为信号直接赋值符。 End Na; - 结构体Na Architecture Nb of and2 is Begin c = a and b; - and 为逻辑与操作End Nb; -结构体Nb一、VHDL概述二、VHDL数据类型与数据对象在VHDL程序中,我们经常会遇到这样的语句:Signal A : std_logic;Variable B : std_logic_vector(7 downto 0); Constant C : integer;数据对象类型数据类型数据对象名 数据对象常 量信 号变 量(Data Ob

7、jects)二、VHDL数据类型与数据对象 数据对象常 量信 号变 量(Data Objects)二、VHDL数据类型与数据对象端 口当做“操作变量” 使用 VHDL语言中的基本数据类型逻辑类型数值类型布尔代数(Boolean)位 (Bit)标准逻辑 (Std_Logic)整数 (Integer)实数 (Real)二、VHDL数据类型与数据对象 逻辑数据类型type BIT is (0, 1); type BOOLEAN is (FALSE, TRUE) ;二、VHDL数据类型与数据对象标准逻辑类型Type Std_Logic Is ( U, -Undefined X , -Forcing U

8、nknown 0 , -Forcing 0 1 , -Forcing 1 Z , -Hign Impedance W, -Weak Unknown L , -Weak 0; H , -Weak 1;- , -Dont Care;)二、VHDL数据类型与数据对象 标准逻辑类型对数字逻辑电路的逻辑特性描述更加完整,真实,因此在VHDL程序中,对逻辑信号的定义通常采用标准逻辑类型 逻辑序列位序列 (Bit_Vector)标准逻辑序列 (Std_Logic_Vector)二、VHDL数据类型与数据对象多个BIT类型的“组合”Signal D: Std_Logic_Vector( 7 downto 0)

9、;Signal S: Bit_Vector ( 0 to 3);序列的范围大小声明方式:To(序号升), Downto(序号降) 序列的使用二、VHDL数据类型与数据对象可表示一个8位二进制数D7D6D5D4D3D2D1D0可表示一个4位开关变量S0S1S2S3 VHDL中的运算符二、VHDL数据类型与数据对象 算术运算符: +加-减*乘/除*乘方mod求模 rem求余 abs求绝对值 逻辑运算: and 逻辑与or逻辑或nand与非nor 或非xor 异或xnor同或not 逻辑非关系运算符: =等于/=不等于小于大于=大于或等于注:其中=操作符也用于表示信号的赋值操作。 &连接符,将两个数

10、据对象或矢量连接成维数更大的矢量,它可给代码书写带来方便。 例如: vabc=a & b & c;如果a=1 , b=0 , c=1 ,则 vabc=“101” 。二、VHDL数据类型与数据对象并列语句 并列语句一般处于进程(PROCESS)的外部。所有并列语句都是并行执行的,即与它们出现的先后次序无关。 并列语句有三个特点:a. 所有语句的执行是并行的;b. 每条语句的执行和其所在的位置无关;c. 并列语句的输出仅仅依赖于输入,没有其它的限制条件。 并列语句(1)直接赋值语句:= 赋值运算符(2)条件赋值语句:When-Else(3)选择赋值语句:With-Select-When(4) Pr

11、ocess(进程)语句(5) Block(块)语句(6) 函数调用语句(后面章节讲)(7) Component(元件)例化语句(8)For-Generate语句直接赋值语句直接赋值语句的格式:Signal_name=expression;如:Signal A,B: std_logic_vector(7 downto 0); A=”0000000”; B=”1000000”; B= A;When-Else条件赋值语句语法格式为:label: Signal_name= expression1 When logic_expression1 Else expression2 When logic_ex

12、pression2 Else expressionn;例如:f=1 when (x1=x2) else 0;With-Select-When选择式赋值label:With expression SelectSignal_name=expression1 When constant_value1 , expression2 When constant_value2 ;signal tmp : std_logic_vector(1 downto 0);Begintmp=x&y;With tmp Selectz= 1 when “01”, 1 when 10, 0 when others;End a

13、;With-Select-When选择式赋值四、设计实例(1)数据选择器4选1 MUX ABCDZS0S1library ieee;use ieee.std_logic_1164.all;entity mux41 is port(A,B,C,D: in std_logic; sel : in std_logic_vector(1 downto 0); dout : out std_logic);end mux41;architecture archmux of mux41 is begin dout=A when sel=00 else B when sel=01 else C when se

14、l=“10 else D when others;end archmux; (2)译码器A. 38译码器38译码器A6A7A5A4A3A2A1A0Y2Y1Y0ENlibrary ieee;use ieee.std_logic_1164.all;entity ymq isport( Y: in std_logic_vector (2 downto 0); EN: in std_logic; A: out std_logic_vector (7 downto 0);end ymq;architecture m1 of ymq issignal sel : std_logic_vector(3 downto 0);beginsel=En & Y;with sel select A=00000001 when 1000, 00000010 when 1001, 00000100 when 1010, 00001000 when 1011, 00010000 when 1100, 00

温馨提示

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

评论

0/150

提交评论