电子设计自动化ppt.ppt
文本预览下载声明
BEGIN PROCESS( aclr ,clk ) IS BEGIN IF(aclr = ′1′) THEN q = ′0′; nq = ′1′; ELSIF( clk′EVENT AND clk = ′1′ ) THEN IF( sset = ′1′ ) THEN q = ′1′; nq = ′0′; ELSE q = d; nq = NOT d; END IF; END IF; END PROCESS; END ARCHITECTURE arch; 在VHDL中时钟的表示方法如表8 - 6所示。 表6 时钟的表示方法 2) 信号代入语句 信号代入语句也可以作为并行语句出现在结构体中, 共有三种形式: (1) 并发信号代入语句, 其格式为: 目的信号名 = 表达式; (2) 条件信号代入语句,其格式为: 目的信号名 = 表达式 WHEN 布尔表达式 ELSE {表达式 WHEN布尔表达式ELSE} 表达式; (3) 选择信号代入语句, 其格式为: WITH 条件表达式 SELECT 目的信号名 = {表达式 WHEN 条件表达式的值,} 表达式 WHEN 条件表达式的值; 结构体中的这三种信号代入语句实际上是进程语句在特定情况下的缩写。在功能上和语法上,分别与顺序语句中的信号代入语句、 IF语句和CASE语句类似。 需要强调的是,由于结构体中的信号代入语句是并发执行(并发处理、 并发代入)的,所以不允许出现多个对同一个信号的代入语句;而这种情况对顺序信号代入语句是允许的,因为代入是按顺序的,所以信号以最后代入的值作为最终值。 3) 元件例化语句 元件例化是指在层次化设计中,将已经编译好的设计实体定义为元件并在当前的设计中调用的过程。元件例化一般由元件定义语句、 元件例化语句和元件配置语句三部分组成。 (1) 元件定义语句: 用于将一个设计实体定义成一个元件, 存在于结构体说明部分或程序包说明部分,其书写格式为: COMPONENT 元件名 IS [类属参数说明] 端口说明 END COMPONENT元件名; 元件名是用户给例化元件起的名字,一般就是它所代表的实体的名字。元件定义中的类属参数说明和端口说明与例化元件所代表的实体中的这两项完全相同。 (2) 元件例化语句: 用于调用例化元件,即把例化元件的端口与当前设计中指定的信号相连接(端口映射)以及给元件的类属参数赋值(参数映射)。 元件例化语句的书写格式为: 元件标号:元件名 [GENERIC MAP(类属参数映射表)] PORT MAP(端口映射表); 映射的方法有两种:位置映射和名称映射。 位置映射就是按照书写的顺序位置将元件说明中的端口或参数与MAP语句中的实际信号或参数值一一对应;名称映射就是指在MAP语句中“例化元件的端口=实际信号”或“例化元件的参数=参数值”。 例如, 一个例化元件and2——二输入与门的端口说明如下: PORT(a ,b : IN BIT; c : OUT BIT); 若在设计中用元件例化语句描述逻辑方程f 3=f1?f2,则应为: u1 : and2 PORT MAP(f1 ,f2 ,f 3); 或者 u1 : and2 PORT MAP(a = f1 ,b = f2 ,c = f3); (3) 元件配置语句: 就是指定元件对应的实体以及实体对应的结构体, 共有三种方法: 配置说明语句、配置指定语句和默认连接。其中, 配置说明语句前面已经介绍过; 配置指定语句在结构体说明部分的元件定义语句之后, 其书写格式一般为: FOR 元件标号{ ,元件标号}: 元件名
显示全部