VHDL知识点

上传人:油条 文档编号:103256304 上传时间:2019-10-06 格式:DOCX 页数:8 大小:511.44KB
返回 下载 相关 举报
VHDL知识点_第1页
第1页 / 共8页
VHDL知识点_第2页
第2页 / 共8页
VHDL知识点_第3页
第3页 / 共8页
VHDL知识点_第4页
第4页 / 共8页
VHDL知识点_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《VHDL知识点》由会员分享,可在线阅读,更多相关《VHDL知识点(8页珍藏版)》请在金锄头文库上搜索。

1、VHDL程序的基本结构一个完整的VHDL语言程序通常包含 库(Library):如ieee, std, work等 程序包(Package) 实体(Entity):I/O 端口 结构体或构造体(Architecture): 具体描述电路所要实现的功能 配置(Configuration)Ø 实体:用于描述所设计系统的外部接口特性;即该设计实体对外的输入、输出端口数量和端口特性。Ø 结构体:用于描述实体所代表的系统内部的结构和行为;它描述设计实体的结构、行为、元件及内部连接关系。Ø 库:存放已经编译的实体、结构体、程序包集合和配置。Ø 程序包:存放各设计模块

2、都能共享的数据类型、常数和子程序库;Ø 配置:实体对应多个结构体时,从与某个实体对应的多个结构体中选定一个作为具体实现。保存的文件名与实体名字应该一致PORT(端口)说明PORT ( 端口名 : 端口模式 数据类型 ; 端口名 : 端口模式 数据类型 ; ) ;端口模式Ø out (输出):只能被赋值,用于不能反馈的输出;Ø in (输入):只能读,用于时钟输入、控制输入单向数据输入;Ø inout(输入输出) :既可读又可被赋值,被读的值是端口输入值而不是被赋值,作为双向端口。Ø buffer(缓冲):类似于输出,但可以读,读的值是被赋值,用

3、做内部反馈用,不能作为双向端口使用结构体的一般表达如下: ARCHITECTURE 结构体名称 OF 实体名称 IS 说明语句 可以不要 BEGIN (功能描述语句) END ARCHITECTURE 结构体名称;功能描述语句:处于 begin 与 end 之间,描述结构体的行为与连接关系,它是构成结构体的主体。描述实体的逻辑行为、以各种不同的描述风格表达的功能描述语句,或针对层次设计中,以元件例化语句为特征的外部元件(设计实体)端口间的连接。库:是一些常用代码的集合。库说明总是放在设计单元的最前面将常用代码存放到库中有利于设计的复用和代码共享,也可使代码结构更清晰;(1)IEEE库IEEE库

4、定义了四个常用的程序包:Ø std_logic_1164 (std_logic (8值)& std_ulogic (9值)逻辑值的逻辑运算)Ø std_logic_arith (signed、unsigned数据类型的 ( 算术、比较运算函数)Ø std_logic_signed (std_logic_vector类型数据的 进行有符号算术、比较运算操作函数)Ø std_logic_unsigned (std_logic_vector类型数据 进行无符号算术、比较运算操作函数) (2)STD库(默认库)VHDL的标准资源库,包括数据类型和输入/输

5、出文本等内容。库中包集有:standard和textio。(3)WORK库(默认库) 当前工作库,当前设计的所有代码都存放在work库中,无需声明。(4)ASIC 矢量库 各公司提供的 ASIC 称逻辑门库(5)用户定义的库 用户为自身设计需要所开发的共用包集合和实体。除 WORK、STD 库外,其他库在使用之前,在使用库之前, 首先需要对库进行声明程序包:集合用于封装属于多个设计单元分享的公共信息。已定义的常数、数据类型、元件调用说明、子程序的一个集合,类似于C语言中的“.h”文件(头文件);数据对象信号(signal)、变量(variable)处理非静态数据常量(constant)、通用属

6、性(generic)处理静态数据1.常量 (constant):命名数据类型的一种特殊值。2.变量(variable):用来在顺序执行的语句间传递中间值。3.信号(signal) : 用于在实体(或进程)之间传送信息。常量和信号是全局的,既可以用于顺序代码也可用于并发代码变量只能在顺序代码中使用,相对于信号而言,变量只能是局部的,所以变量值不能传递到进程process、函数function和过程procedure外部。(1)常量声明的语法格式: constant 常数名:数据类型:=初始值; 例: constant aa : real; constant bb : bit; (2)常量的赋值:

7、 aa:= 5.0 ; bb:=1;(1)变量声明的语法格式 Variable 变量名:数据类型 约束条件 :=表达式; 例: Variable x,y: bit; Variable a,b: integer range 0 to 255:=10;(2)变量的赋值 x:=1; Y:=0; a:=10; b:=2+a;(1)信号声明的语法格式: signal 信号名:数据类型约束条件:=初始值; 例: signal a : bit ; signal b : std_logic_vector(7 downto 0);(2)信号的赋值: a<=0; b<=“01101111” after

8、 10ns;进程语句内部由顺序语句构成。(进程内部只能加载顺序语句) 进程标号: process(敏感信号表) 进程说明部分 begin 顺序处理语句 end process 标号;敏感信号表:进程内要读取的所有敏感信号(包括端口)的列表。每一个敏感信号的变化,都将启动进程。如果在process内部使用了wait语句,则process就不能再使用敏感信号列表,并且wait语句是process内部的第一条语句。进程说明用来定义在该进程中需要用到的局部量,如变量、常数等,在此处定义的变量是局部量,只能在该进程中使用,其他地方不能使用。特别强调在进程说明部分只能定义局部变量,不能定义信号和共享变量。

9、几种常见的顺序描述语句:信号赋值语句、变量赋值语句、if语句、case语句、wait语句和null语句。可以实现时序逻辑,还可以实现组合逻辑。信号赋值语句即可以作为并行语句出现在结构体中,也可以作为顺序语句出现在进程中 信号量表达式中可以有延时,如 q<=a after 2ns例如:signal a: bit; signal b: std_logic_vector (3 downto 0); a<=1 after 2ns; b<=“1100”变量赋值语句只能作为顺序语句出现在进程中变量表达式无延时;例如:variable a: bit; variable b: std_log

10、ic_vector (3 downto 0); a:=1; b:=“1100”;if语句只能用于顺序代码,只能在process、function和procedure中出现。(1) if 语句的门闩控制举例 if a>b then y<=1 end if; 不完全语句产生时序电路(2) if 语句的二选择控制用条件来选择两条不同程序执行的路径。举例 if a>b then y<=1; else y<=0; end if ;完全语句产生组合电路。(3)if 语句的多选择控制举例 if a>b then y<=1; elsif a=b then y<=

11、0; else y<=0; end if ;case语句 case 表达式 is when 选择值1=>顺序语句; when 选择值2=>顺序语句; . when others=>顺序语句; end case;进程中的case注意事项:* Case只能在进程内使用;* Case选择值必须在选择表达式的合法取值范围内;* Case选择值必须是互斥;不能由两个相同的选择值出现;* Case选择值必须覆盖全面,否则需要用OTHERS来代替其他 可能取值;* Case各个选择值之间的关系是并列的,没有优先权之分;IF 语句由优先权loop语句Ø 当一段代码需要多次重复

12、、顺序地执行时,loop语句非常有效。Ø 只能在process、function和procedure中使用;Ø 与generate语句的最大不同:Ø generate语句复制建立某项操作的 0 个或多个备份,这些备份并行地执行某项操作,与先后顺序无关;Ø loop语句则按顺序、循环地执行某项操作。LOOP语句的语法结构:FOR/LOOP:循环固定次数label: FOR 循环变量 IN 范围 LOOP (顺序描述语句) END LOOP label;WHILE/LOOP: 循环执行直到某个条件不再满足label: WHILE 条件表达式 LOOP (顺序

13、描述语句) END LOOP label;EXIT: 结束整个循环操作label: EXIT label WHEN 条件表达式;NEXT: 跳出本次循环操作label: NEXT loop_label WHEN 条件表达式;常用的并发描述语句,通常位于process、function和procedure之外,包括: · 运算操作符:逻辑运算、算术运算等 · WHEN语句(when/else或with/select/when) · 块(block)语句 · 生成(GENERATE)语句。 并行信号赋值语句并行信号赋值语句的特点: 赋值目标必须为信号或端口; 在结构体内是并行执行的; 在结构体的进程之外使用生成语句(GENERATE)可用于并发描述Ø 生成语句的作用:复制建立某项

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号