Chinaopub.com 下载 第10章其他论题 本章讲述诸如函数、任务、层次结构、值变转储文件和编译程序指令等多种论题。 10.1任务 个任务就像一个过程,它可以从描述的不同位置执行共同的代码段。共同的代码段用 任务定义编写成任务,这样它就能够从设计描述的不同位置通过任务调用被调用。任务可以 包含时序控制,即时延控制,并且任务也能调用其它任务和函数。 10.1.1任务定义 任务定义的形式如下 task task id: declarat⊥ons] procedural statement endtask 任务可以没有或有一个或多个参数。值通过参数传入和传出任务。除输入参数外(参数 从任务中接收值),任务还能带有输出参数(从任务中返回值)和输入输出参数。任务的定义 在模块说明部分中编写。例如: arameter MAXBITS =8 task Reverse bits input [MAXBITS-1: 0] Din output [MAXBITS-1: 0]Dout begin for (K=0; K< MAXBITS: K=K+1) Dout [MAXBIT'S-K]= Din[K] end edtas endmodule 任务的输入和输出在任务开始处声明。这些输入和输出的顺序决定了它们在任务调用中 的顺序。下面是另一个例子 task Rotate left inout [1: 16] In Arr nput [0: 3] start Bit, stop Bit, Rotate By: integer MacI, Mac3 begin下载 第10章 其 他 论 题 本章讲述诸如函数、任务、层次结构、值变转储文件和编译程序指令等多种论题。 10.1 任务 一个任务就像一个过程,它可以从描述的不同位置执行共同的代码段。共同的代码段用 任务定义编写成任务,这样它就能够从设计描述的不同位置通过任务调用被调用。任务可以 包含时序控制,即时延控制,并且任务也能调用其它任务和函数。 10.1.1 任务定义 任务定义的形式如下: t a s k t a s k _ i d; [d e c l a r a t i o n s] p r o c e d u r a l _ s t a t e m e n t e n d t a s k 任务可以没有或有一个或多个参数。值通过参数传入和传出任务。除输入参数外(参数 从任务中接收值),任务还能带有输出参数(从任务中返回值)和输入输出参数。任务的定义 在模块说明部分中编写。例如: m o d u l e H a s _ T a s k; p a r a m e t e r MAXBITS = 8; t a s k R e v e r s e _ B i t s; i n p u t [MAXBITS -1:0] D i n; o u t p u t [MAXBITS -1:0] D o u t; i n t e g e r K; b e g i n f o r (K = 0; K < M A X B I T S; K = K + 1) D o u t [M A X B I T S-K] = D i n[K] ; e n d e n d t a s k . . . e n d m o d u l e 任务的输入和输出在任务开始处声明。这些输入和输出的顺序决定了它们在任务调用中 的顺序。下面是另一个例子 : t a s k R o t a t e _ L e f t; i n o u t [1:16] I n _ A r r; i n p u t [0:3] S t a r t _ B i t,S t o p _ B i t,R o t a t e _ B y; r e g F i l l _ V a l u e; i n t e g e r M a c 1,M a c 3; b e g i n