- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
; 一个完整的VHDL程序,或者说设计实体,通常要求最低能为VHDL综合器所支持,并能作为一个独立的设计单元,即元件的形式而存在的VHDL程序。在VHDL程序中,通常包含实体(ENTITY)、结构体(ARCHITECTURE)、配置(CONFIGURATION)、包集合(PACKAGE)和库(LIBRARY)5个部分。其中实体和结构体这两个基本结构是必需的,他们可以构成最简单的VHDL程序。 ;1 实体;;;2 结构体 ;例:结构体的信号定义实例。
ARCHITECTURE rtl OF muj IS
SIGNAL s1:BIT
SIGNAL s2,s3:STD_LOGIC_VECTOR (0 TO 3);
┇
BEGIN
┇
END rtl; ;结构体构造图: ;图中5种功能描述语句的基本组成和功能分别是:
块语句是由一系列并行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个子模块。
进程语句定义顺序语句模块,用以将从外部获得的信号值或内部运算数据向其他的信号进行赋值。;信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。
子程序调用语句可以调用进程或参数,并将获得的结果赋值于信号。
元件例化语句对其他的设计实体做元件调用说明,并将此元件的端口与其他元件、信号或高层实体的界面端口进行连接。
各语句后面将介绍 ;例: 2选1数据选择器
ENTTITY mux2 IS
PORT (d0,d1:IN BIT;
sel:IN BIT;
s:OUT BIT);
END mux2;
ARCHITECTURE dataflow OF mux2 IS
SIGNAL sig:BIT;
BEGIN
Sig = (d0 AND sel) OR (NOT sel AND d1);
S=sig;
END dataflow; ;3 块、子程序和进程 ;BLOCK块语句的结构:
块标号:BLOCK
接口说明
类属说明
BEGIN
并行块语句
END BLOCK(块标号); ;例: B1: BLOCK
SIGNAL s1:BIT;
BEGIN
s1 = a AND b;
B2: BLOCK
SIGNAL s2:BIT;
BEGIN
s2= c AND d;;3.2 进程(PROCESS)
PROCESS结构是最能体现VHDL语言特色的语句。与BLOCK语句一样,利用PROCESS语句结构可以描述一个功能独立的电路。与BLOCK语句不同之处是,在系统仿真时,PROCESS结构中的语句是按顺序逐条向下执行的,而不像BLOCK语句那样并发执行。一个结构体中可以有多个并行运行的进程结构,每一个进程内部是由一系列顺序语句来构成的。 ;PROCESS语句的结构
[进程标号] PROCESS [(敏感信号表)] [IS]
[进程说明语句]
BEGIN
顺序描述语句
END PROCESS [进程标号]; ;例:两输入或非门
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY nor2_v2 IS
PORT(a,b: IN STD_LOGIC;
y: OUT STD_LOGIC);
END nor2_v2;
ARCHITECTURE behave OF nor2_v2 IS
BEGIN
PROCESS (a,b)
VARIABLE comb : STD_LOGIC_VECTOR(1 DOWNTO 0);
;BEGIN
comb := a b;
CASE comb IS
WHEN 00= y =1;
WHEN 01= y =0;
WHEN 10= y =0;
WHEN 11= y =0;
WHEN OTHERS = y =X;
END CASE;
E
文档评论(0)