文档详情

【2017年整理】第九章_VHDL语句1.ppt

发布:2017-05-03约2.41万字共61页下载文档
文本预览下载声明
9.1 顺序语句 赋值语句 流程控制语句 等待语句 子程序调用语句 返回语句 空操作语句 【例9-14】 PACKAGE data_types IS -- 定义程序包 SUBTYPE data_element IS INTEGER RANGE 0 TO 3 ;-- 定义数据类型 TYPE data_array IS ARRAY (1 TO 3) OF data_element; END data_types; USE WORK.data_types.ALL; --打开以上建立在当前工作库的程序包data_types ENTITY sort IS PORT ( in_array : IN data_array ; out_array : OUT data_array); END sort; ARCHITECTURE exmp OF sort IS BEGIN PROCESS (in_array) -- 进程开始,设data_types为敏感信号 PROCEDURE swap(data : INOUT data_array; -- swap的形参名为data、low、high low, high : IN INTEGER ) IS VARIABLE temp : data_element ; BEGIN -- 开始描述本过程的逻辑功能 IF (data(low) data(high)) THEN -- 检测数据 temp := data(low) ; data(low) := data(high); data(high) := temp ; END IF ; END swap ; -- 过程swap定义结束 VARIABLE my_array : data_array ; -- 在本进程中定义变量my_array 接下页 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. BEGIN -- 进程开始 my_array := in_array ; -- 将输入值读入变量 swap(my_array, 1, 2); -- my_array、1、2是对应于data、low、high的实参 swap(my_array, 2, 3); -- 位置关联法调用, 第2、第3元素交换 swap(my_array, 1, 2); -- 位置关联法调用, 第1、第2元素再次交换 out_array = my_array ; END Process ; END exmp ; 接上页 【例9-15】 ENTITY sort4 is GENERIC (top : INTEGER :=3); PORT (a, b, c, d : IN BIT_VECTOR (0 TO top); ra, rb, rc, rd : OUT BIT_VECTOR (0 TO top)); END sort4; ARCHITECTURE muxes OF sort4 IS PROCEDURE sort2(x, y : INOUT BIT_VECTOR (0 TO top)) is VARIABLE tmp : BIT_VECTOR (0 TO top); 接下页 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 接上页 BEGIN IF x y THEN tmp := x; x := y; y := tmp; END IF; END sort2; BEGIN P
显示全部
相似文档