当前位置:
文档之家› 第四章图表 VHDL语言基础
第四章图表 VHDL语言基础
4.6 VHDL语法 Port、Mode、Type
一、几种关键词的说明 1.Modes(模式): 2.数据类型 (Data Type): 3.信号( Signal ):
1.Modes(模式): 4种工作Modes: ⑴.输入模式: ①.CLK, Enable, Load, Reset, CLR, Preset; ②.单方向数据输入,Address BUS,etc; ③.不用的输入端一般接地,以防止浮动引入干扰信号。
寄存器传输级 (RTL级) 逻辑级(门级) 电路级
寄存器传输
算术逻辑单元、 乘法器、寄存器 等
门、触发器 晶体管、连接线
逻辑函数、状态 方程 传输函数
3.VHDL程序结构的组成
程序结构由五部分组成: ⑴.实体(Entity): 描述设汁系统的外部接口信号; ⑵.结构体(Architecture):用于描述设汁系统的行为、 系统数据(信号)的流程、或系统组织的结构形式。 ⑶.配置(Configuration):用于从库里选取所需单元(模块) 来组成系统设计的不同规格和不同版本, 使被设计系统的功能或行为改变。 ⑷.包集合(Package):存放各种设计模块能共享的 数据类型、常数和子程序等。 ⑸.库(Library):用于已存放已编译的实体、 结构体、包集合&配置及第3方开发的元器件等。
图4.2.1. VHDL实体和结构体
2.VHDL的分层结构
表4.1.1.数字系统各层次划分及功能
各层次功能及结构 层次名称 系统级(算法级) 行为级描述
针对设计技术条 件、流程图、算 法进行系统级综 合
结构级描述
处理器、控制器、存 储器、总线等
物理层表示的对象
集成电路芯片、印刷电路 板(PCB)、多个模块的 连接 芯片、布图和布线、模块 结构图 单元电路、电路模块等 晶体管版图、连接线段、 节点等
②.单向data输出; ③.不用的输出端不能接地,以防止输出为高电平时烧坏 CPLD/FPGA的引脚。
图4.6.2 缓冲端口与输出端口的区别
⑶.缓冲模式(Buffer Mode):
缓冲模式允许从端口引出信号,并且向CPLD引入一个反馈信号。 即缓冲端口可用于输出也可用于反馈。缓冲端口的驱动源可以 是:被设计实体的内部信号源或其它实体的缓冲端口。缓冲端 口不允许多重驱动,不与其它实体的双向端口、输出端口相连。
1.Port data type VHDL语言标准所定义的标准数据类型有10种。 ①.整数类型(INTEGER TYPE) ②.实数或浮点类型(REAL TYPE or FLOATING TYPE) ③.位类型(BIT TYPE) ④.位矢量类型(BIT_VECTOR TYPE) ⑤.布尔类型(BOOLEAN TYPE) ⑥.字符类型(CHARAVTER TYPE) ⑦.时间类型(TIME TYPE) ⑧.字符串类型(TRING TYPE) ⑨.自然数、整数类型(NATURAL TYPE) ⑩.错误类型(NOTE,WARNING,ERROR,FAILURE TYPE) 2.用户在电子系统设计时,自行定义的数据类型共8种。 ①.整数类型(INTEGER TYPE) ②.实数或浮点类型(REAL TYPE or FLOATING TYPE) ③.枚举类型(ENUMERATEI TYPE) ④.数组类型(ARRAY TYPE) ⑤.存取类型(ACCESS TYPE) ⑥.文件类型(FILE TYPE) ⑦.时间类型(TIME TYPE) ⑧.记录类型(RECODE TYPE) 这些数据类型在后面章节用到时将会介绍。
Buffer A B
≥1
X<=A or B
数据流描述方法
&
C
y<=X and C Out
⑷.输入/输出模式( Input/output mode ): 双向模式
2.数据类型 (Data Type):
VHDL中Type称为类型,它除了定义端口标识名称、端口定义外, 还要标明输出输入端口的数据类型。表示port、Signal或variable 的性质,决定对象可能有什么值。 用于VHDL语言中的IEEE1706/93标准规定, EDA综合工具 提供的数据类型有布尔型(Boolean)、位型(Bit),位矢量型 (Bit-vector)和整数型(Integer)。 VHDL语言编写的程序是电子系统的行为描述、功能的说明和 结构的组织,使用规范化语言,有着很强的约束性。 不同的数据类型不能直接代入,相同的类型,位长不同也不能代入。 除了上述两种不同标准规定的数据类型以外, 数据类型根据使用目的分为: ⑴.用于EDA工具,对电子系统进行综合的数据类型。 如标量类型(SCALAR TYPE),复合类型(COMPOSITE TYPE)。 ⑵.用于EDA工具,对电子系统进行仿真的数据类型。 如存取类型(ACCESS TYPE)。
• • • • ①.IN ②.Out ③.IN/OUT ④.Buffer
• ⑵.Data type:
• • • • • • ①.Boolen ②.bit ③.bit_vector ④.integer ⑤.std_Logic ⑥. std_Logic_vector
3.结构体说明 结构体的语法格式:
ARCHITECTURE 结构体名 OF 实体名 IS 关键字 BEGIN : : END 结构体名 BEGIN和END结构体名组成结构体框架语句对, 从第2行开始用布尔表达式定义输入与输出之间的逻辑关系。
1位加法器
≥1
A B
Y
A B
≥1
≥1
Co
&
≥1 ≥1
&
y
CO C
C
(b)VHDL符号
(a)加法器逻辑电路
例4.3.1.
• --full_add.vhd • --full adder :adds two bits, a and b, plus input carry • --to yield sum bit and output carry.
• 以C语言为基础,充分保留了C语言的简洁、高效和编程风格。语法宽 松。
2.EDA技术的发展 ⑴ .Protell(Tonger)--印刷线路板(PCB)设计;
⑵. Simulation Software—multisim & Max+plusⅡ; ⑶.Design 、Compilation& Simulation 软件-QuartusⅡ &ISE
Behavior描述
Data Flow描述
结构体配置
CONFIGURATION定义
Sec4.3.实体和结构体
1.实体的组成及一般格式 :
≥1
Co
A B C Y CO
A B C
≥1 ≥1
&
≥1 ቤተ መጻሕፍቲ ባይዱ1
&
y
(a)逻辑电路图 图4.3.1
(b)VHDL符号
一位数加法器逻辑电路和VHDL符号
实体的组成是由实体名、类属表、端口表、实体说明部分和实体 语句部分组成。 根据IEEE标准,实体组成的一般格式如下:
实体的书写格式
Entity 实体名 IS [GENERIC (参数类属表)] [port(端口表)] 实体端口说明部分 ; END(实体名 );
文本文件 文本文件
实体说明(描述)
结构体(描述) 功能定义 行为描述 数据流程 系统结构
图4.2.2 VHDL程序文件结构
例4.3.1.
图4.3.1 一位加法器逻辑电路
图4.3.2 例4.3.2逻辑电路图
• 例4.3.2.图 • 对下面的逻辑电路图4.3.2,写出用BIT类型定义端口的VHDL文件。
A B
&
≥1
C D
&
≥1
Y
解:电路的逻辑表达式Y= ((AB+A’C’)+D)’ 用VHDL描述成设计实体。 ENTITY logic_circuit IS PORT(a,b,c,d : IN BIT; y : OUT BIT); END logic_circuit; ARCHITECTURE examp1 OF logic_circuit IS BEGIN Y<=not((a and b)or ((not a) and(not c))or d); END examp1;
Sec4.4.用QuartusⅡ开发数字系统 (附录A) Sec4.5.QuartusⅡ的开发流程
图4.4.1 QuartusⅡ的设计流程图
设计输入 设计编译 功能仿真 时序仿真 硬件配置与验证
图4.5.1 QuartusⅡ启动窗口
图4.5.2建立工程项目名称及顶层实体名
工程文件夹 工程名程
顶层实体名
4.结构体的描述方法 • 1.行为描述法: ( behavioral description)这是以元 器件或电路模块为基础的描述方法,描述元器件或电路模 块之间输入、输出的逻辑关系,是对它们性能或行为的描 述。在VHDL语言中对这一类的描述称作行为描述。 • 2.数据流描述法:数据流描述(dataflow description) 法主要反映数据经过一定的逻辑运算后在输入和输出之间 的传送过程。这种描述方法以表示数据在设计实体中从输 入到输出的传输或流向为目的。使用并发语句 (concurrent procedure call也叫并发过程调用语句) 描述。 • 3.结构描述法:(structural description)描述结构 体功能的第3种方法是结构描述法,它以描述元部件 (component)为基础,通过描述模块与模块之间的连接 关系来表示被设计实体的构成和性能。这种描述方法适用 于多层次设计,把一个复杂的系统分解成多个子系统,将 每一个子系统设计成一个模块,再用结构描述法将各模块 之间的连接关系写出来形成一个整体。
图4.5.3 新建VHDL 文件对话框
图4.5.4 VHDL文本编辑窗口输入代码
扦入模板
图4.5.5 引脚分配编辑器窗口