vhdl程序设计及应用内容摘要:
C。 out: OUT STD_LOGIC)。 END COMPONENT。 COMPONENT and4 PORT(in1,in2,in3,in4: IN STD_LOGIC。 out: OUT STD_LOGIC)。 END COMPONENT。 SIGNAL s: STD_LOGIC(0 TO 3)。 BEGIN u0: xnor2 PORT MAP(a(0), b(0), s(0))。 u1: xnor2 PORT MAP(a(1), b(1), s(1))。 u2: xnor2 PORT MAP(a(2), b(2), s(2))。 u3: xnor2 PORT MAP(a(3), b(3), s(3))。 u4: and4 PORT MAP(s(0), s(1), s(2), s(3), y)。 END structural。 CONFIGURATION p4_con OF p4 IS FOR behavio END FOR。 END p4_con。 可通过修改 FOR语句选择一个结构体与实体配对。 上例中的设置,选择的 是 behavio结构,若要选择 dataflow结构或 structural结构,只需改动 FOR语句中 的相应部分。 前面的例子已给出了如何对 structural结构体中的元件 xnor and4进行配 置。 二输入与门源代码: LIBRARY IEEE。 USE。 ENTITY and2_v IS PORT(a: IN STD_LOGIC。 b: IN STD_LOGIC。 y: OUT STD_LOGIC)。 END and2_v。 ARCHITECTURE and2_arc OF and2_v IS BEGIN y = a AND b。 END and2_arc。 CONFIGURATION and2_cfg OF and2_v IS FOR and2_arc END for。 END and2_cfg。 程序包和库 程序包 PACKAGE 程序包名 IS [说明部分 ] END [PACKAGE] [程序包名 ]; PACKAGE BODY 程序包名 IS [说明部分 ] END [PACKAGE BODY] [程序包名 ]; 程序包说明 程序包体单元 程序包说明为程序包定义接口,声明包中的类型、元件、函数和子程序。 程序包体规定程序的实际功能,存放说明中的函数和子程序。 库 库 设计库 资源库 STD WORK IEEE …… 语法形式: LIBRARY 库逻辑表名; USE 程序包标识表; VHDL的语言元素 标识符 标识符是最常用的操作符,可以是常数、变量、信号、端口、子程序或参数的名字。 标识符规则是 VHDL语言中符号书写的一般规则,为 EDA工具提供了标准的书写规范。 VHDL‟93对 VHDL‟87版本的标识符语法规则进行了扩展 , 通常称VHDL‟87版本标识符为短标识符, VHDL‟93版标识符为扩展标识符。 VHDL短标识符需遵守以下规则: ( 1) 必须以英文字母开头; ( 2) 英文字母 、 数字 ( 0~ 9) 和下划线都是有效的字符; ( 3) 短标识符不区分大小写; ( 4) 下划线 ( _) 的前后都必须有英文字母或数字。 一般的,在书写程序时,应将 VHDL的保留字大写或黑体,设计者自己定义的字符小写,以使得程序便于阅读和检查。 尽管 VHDL仿真综合时不区分大小写,但一个优秀的硬件程序设计师应该养成良好的习惯。 例: 一些合法的标识符: S_MACHINE, present_state, sig3 不合法的标识符: presentstate, 3states, cons_,_now 扩展标识符的识别和书写有下面的规则: ( 1) 用反斜杠来界定扩展标识符 , 如 \control_machine\, \s_block\ 等都是合法的扩展标识符; ( 2) 扩展标识符允许包含图形符号和空格 , 如 \samp。 33\, \legal$state\ 是合法的扩展标识符; ( 3) 两个反斜杠之间的字可以和保留字相同 , 如 \SIGNAL\, \ENTITY\ 是合法的标识符 , 与 SIGNAL、 ENTITY是不同的; ( 4) 两个反斜杠之间的标识符可以用数字开头 , 如 \15BIT\, \5ns\是合法的; ( 5) 扩展标识符是区分大小写的 , 如 \a\ 与 \ A\ 是不同的标识符; ( 6) 扩展标识符允许多个下划线相邻 , 如 \our_ _entity\ 是合法的扩展标识符( 不推荐这种方式 ) ; ( 7)扩展标识符的名字中如果含有一个反斜杠,则用相邻的两个反斜杠来代表它,如 \te\\xe\ 表示该扩展标识符的名字为 te\xe (共 5个字符); 对象 常量( CONSTANT) (常数 ) 定义一个常数主要是为了使设计实体中的某些量易于阅读和修改。 常数说明就是对某一常数名赋予一个固定的值。 通常在程序开始前进行赋值 , 该值的数据类型在说明语句中说明。 常数说明语句格式为: CONSTANT 常数名 :数据类型 := 表达式 ; 例如: CONSTANT Vcc : REAL :=。 CONSTANT Fbus : BIT_VECTOR := “1011”; CONSTANT Delay : TIME := 10ns; 变量只能在进程和子程序中用,是一个局部量,不能将信息带出对它做出定义的当前设计单元。 与信号不同,变量的赋值是理想化数据传输,其赋值是立即生效的,不存在任何的延时行为。 变量定义语句的格式为: VARIABLE 变量名 : 数据类型 : 约束条件 := 初始值; 例如: VARIABLE n: INTEGER RANGE 0 TO 15 := 2。 VARIABLE a: INTEGER。 变量( VARIABLE) 变量赋值语。vhdl程序设计及应用
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。