电子设计自动化chapter05课件_第1页
电子设计自动化chapter05课件_第2页
电子设计自动化chapter05课件_第3页
电子设计自动化chapter05课件_第4页
电子设计自动化chapter05课件_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子设计电子设计自动化自动化EDA Electronic Design Automation第 5 章 ABEL 硬件描述语言 5.1 硬件描述语言概述 5.2 ABEL硬件描述语言规则 5.3 ABEL硬件描述语言元素 5.4 ABEL语言常用语句 5.5 ABEL真值表逻辑设计方法 5.6 ABEL逻辑方程设计方法 5.7 ABEL状态图逻辑设计方法版权所有 侵权必究5.1 ABEL硬件描述语言概述 传统的逻辑设计非常繁琐复杂,需要专业设计人员掌握大量的器件特性和设计方法及设计技巧,但随着硬件描述语言的出现和使用,传统的设计方法有了根本性的变革。 5.1.1 硬件描述语言概述 5.1.2

2、ABEL硬件描述语言源文件格式版权所有 侵权必究5.1.1 硬件描述语言概述 电子设计自动化除采用电路原理图逻辑设计方法外,目前更推广的是硬件描述语言逻辑设计方法。 各软件公司研制开发的硬件描述语言差异较大,目前较为流行的是 VHDL、VerilogHDL 和 ABELHDL 硬件描述语言。 ABLE 语言是美国 DATA I/O 公司开发的一种逻辑设计软件,AbelHDL 是最早流行的硬件描述语言,它简单易学,并有多种 EDA 开发软件支持。硬件描述语言与原理图逻辑设计相比有如下特点:5.1.1 硬件描述语言概述 以文本形式表示逻辑电路的结构和行为,并可直接将逻辑方程、真值表或状态图转换为硬

3、件描述语言的形式。 设计精确简练,便于阅读和分析。 逻辑设计以文件方式保存,因此易于设计修改、调用、共享和更新。 与原理图混合设计,构成“自顶而下”的层次化设计方法。5.1.2 ABEL硬件描述语言源文件格式Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ; B = B3,B2,B1,B0 ;Equations A_EQ_B

4、 = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; EndModule comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_

5、GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End模块头部分表明ABEL硬件

6、描述的开始。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A

7、_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End设计说明部分提供有关设计的说明信息,一般包括设计题目、输入/输出信号等名称分配及相应的器件引脚属性。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A

8、2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End设计描述部分用来描述数字电路的逻辑功能。基本设计描述采用的方法有:逻辑方程、真值表和状态图三种。Module comp4Ti

9、tle 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A_EQ_B,A_GT_B,A_LT_B,

10、A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End设计仿真部分是建立一组仿真测试向量,以检查输出的响应是否满足逻辑设计要求。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equatio

11、ns A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors(A,B-A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End模块结束表明ABEL硬件描述的结束,它与Model相呼应,构成一个完整的ABEL硬件逻辑描述。5.2 ABEL硬件描述语言规则 ABEL 源文件一般包括五个部分:模块头、设计说明部分、设计描

12、述部分、设计仿真和模块结束部分。在每部分,ABEL 源文件必须符合所规定的语法规则。 5.2.1基本语法 5.2.2 合法的 ASCII 码 5.2.3 标识符 5.2.4 关键字版权所有 侵权必究5.2.1 基本语法 ABEL源文件的每一行必须符合下列语法规则:Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3

13、,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End 关键字、标识符及数字之间必须用一个及一个以上空格隔开。Module comp4Title 四位二进制数值比较器Declarations A3

14、,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,N

15、o,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End 关键字、标识符及数字之间必须用一个及一个以上空格隔开。 但一列标识符可用逗号分隔。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B

16、; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End 关键字、标识符及数字之间必须用一个及一个以上空格隔开。 但表达式中的数字与标识符间可由运算符分隔。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin;

17、B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - N

18、o,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End 关键字、标识符及数字之间必须用一个及一个以上空格隔开。 但圆括号可起分隔号作用。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin is type com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! (

19、 A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End5.2.1 基本语法 ABEL源文件的每一行必须符合下列语法规则: 关键字、数字、运算符及标识符中不可嵌入空格。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1

20、,B0PIN; A_NE_B,A_EQ_BPin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No

21、,Yes ; 3,9 - No,No,Yes,Yes ; End5.2.1 基本语法 ABEL源文件的每一行必须符合下列语法规则: 关键字可以用大写、小写或大小写混合字体输入,其代表的意义不变。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B

22、 ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End5.2.1 基本语法 ABEL源文件的每一行必须符合下列语法规则: 标识符可以用大写、小写或大小写混合字体输入,但其代表的意义不同。 NO,YES = 0,1; Module comp4Title 四位二进制数值

23、比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_

24、B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End5.2.2 合法的ASCII码 所有大写、小写字母及一般键盘使用的大部分字符均为合法字符。 大小写字母 a z A Z 数字 0 9 空格/进格键 常用键!#$?*&()- _ = + ;:“ |, ./%Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype

25、 com; No,Yes = 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End5.2.3 标识符 标识符用来标识输入引脚、输出引脚或节

26、点、集合、常量等。 所有标识符必须遵从如下规则: 标识符必须以字母或下划线开头。 除第一个字符外,标识符可由大小写字母、数字、波浪号和下划线组成。 标识符中不能使用空格,可用下划线或大写字母分隔标识符。 除关键字外,标识符与输入字体有关,大写字母和小写字母被视为不同标识符。 除用作点扩展外,在标识符中不能出现句号“ .”。Module comp4Title 四位二进制数值比较器Declarations A3,A2,A1,A0pin; B3,B2,B1,B0pin; A_NE_B,A_EQ_Bpin istype com; A_GT_B,A_LT_Bpin istype com; No,Yes

27、= 0,1; A = A3,A2,A1,A0 ;B = B3,B2,B1,B0 ;Equations A_EQ_B = A = B ; A_NE_B = ! ( A = B ) ; A_GT_B = A B ; A_LT_B = ! ( A B ) # ( A = B ) ;Test_Vectors ( A , B - A_EQ_B,A_GT_B,A_LT_B,A_NE_B ) 0,0 - Yes,No,No,No ; 1,0 - No,Yes,No,Yes ; 3,9 - No,No,Yes,Yes ; End 5.2.4 关键字 关键字也叫保留标识符,由于它已有明确的特殊含义,所以不能用来

28、给引脚、节点、常量、集合或信号等命名。5.3 ABEL硬件描述语言元素 5.3.1注释 5.3.2 块 5.3.3 数据类型 5.3.4 字符串 5.3.5 集合 5.3.6 逻辑运算符 5.3.7 算术运算符 5.3.8 关系运算符 5.3.9 赋值运算符 5.3.10 表达式 5.3.11 点扩展符 5.3.12 特殊常量 5.3.13 指令字版权所有 侵权必究5.3.1 注释 注释不同于逻辑设计描述语句,注释主要用于说明源文件某些需要强调或说明的地方,它并不影响源文件的逻辑描述。 适当使用注释,可改善较复杂的 ABEL 源文件可读性。 可采用两种方法输入注释,即符号“”和“/”。MODU

29、LE EXAMPLE A,BPIN; AND_OUT PIN ISTYPE COM; OR_OUT PIN ISTYPE COM; XOR_OUT PIN ISTYPE COM; EQUATIONS AND_OUT = A & B; OR_OUT = A # B; XOR_OUT = A $ B; End 与逻辑定义 或逻辑定义 异或逻辑定义/ 输入信号引脚定义/ 二输入“与”逻辑输出引脚定义/ 二输入“或”逻辑输出引脚定义/ 二输入“异或”逻辑输出引脚定义 块是括在“ ”内的ASCII码文本段。 使用块语句,可使一些较复杂功能的逻辑输出描述更为简洁,改善源程序的易读性。MODULE EXAM

30、PLE CP,UP_DOWN PIN; Q3,Q2,Q1 PIN ISTYPE REG; EQUATIONS Q3.CLK = CP; Q2.CLK = CP; Q1.CLK = CP; WHEN(UP_DOWN = 0) THEN Q1 := !Q1; Q2 := (Q1 & !Q2) # (!Q1 & Q2); Q3 := (Q1 & Q2 & !Q3) # (!(Q1 & Q2) & Q3); ELSE Q1 := !Q1; Q2 := (!Q1 & !Q2) # (Q1 & Q2); Q3 := (!Q1 & !Q2 & !Q3) # (!(!Q1 & !Q2) & Q3); TEST

31、_VECTORS(CP,UP_DOWN-Q3,Q2,Q1) REPEAT 10 .C.,0-.X.,.X.,.X.; REPEAT 10 .C.,1-.X.,.X.,.X.; ENDMODULE EXAMPLE CP,UP_DOWN PIN; Q3,Q2,Q1 PIN ISTYPE REG; EQUATIONS Q3.CLK = CP; Q2.CLK = CP; Q1.CLK = CP; WHEN(UP_DOWN = 0) THEN Q1 := !Q1; Q2 := (Q1 & !Q2) # (!Q1 & Q2); Q3 := (Q1 & Q2 & !Q3) # (!(Q1 & Q2) & Q

32、3); ELSE Q1 := !Q1; Q2 := (!Q1 & !Q2) # (Q1 & Q2); Q3 := (!Q1 & !Q2 & !Q3) # (!(!Q1 & !Q2) & Q3); TEST_VECTORS(CP,UP_DOWN-Q3,Q2,Q1) REPEAT 10 .C.,0-.X.,.X.,.X.; REPEAT 10 .C.,1-.X.,.X.,.X.; END 该块说明当UP_DOWN =0时,为正计数。MODULE EXAMPLE CP,UP_DOWN PIN; Q3,Q2,Q1 PIN ISTYPE REG; EQUATIONS Q3.CLK = CP; Q2.CL

33、K = CP; Q1.CLK = CP; WHEN(UP_DOWN = 0) THEN Q1 := !Q1; Q2 := (Q1 & !Q2) # (!Q1 & Q2); Q3 := (Q1 & Q2 & !Q3) # (!(Q1 & Q2) & Q3); ELSE Q1 := !Q1; Q2 := (!Q1 & !Q2) # (Q1 & Q2); Q3 := (!Q1 & !Q2 & !Q3) # (!(!Q1 & !Q2) & Q3); TEST_VECTORS(CP,UP_DOWN-Q3,Q2,Q1) REPEAT 10 .C.,0-.X.,.X.,.X.; REPEAT 10 .C.,

34、1-.X.,.X.,.X.; END 该块说明当UP_DOWN =1时,为逆计数。MODULE EXAMPLE CP,UP_DOWN PIN; Q3,Q2,Q1 PIN ISTYPE REG; EQUATIONS Q3.CLK = CP; Q2.CLK = CP; Q1.CLK = CP; WHEN(UP_DOWN = 0) THEN Q1 := !Q1; Q2 := (Q1 & !Q2) # (!Q1 & Q2); Q3 := (Q1 & Q2 & !Q3) # (!(Q1 & Q2) & Q3); ELSE Q1 := !Q1; Q2 := (!Q1 & !Q2) # (Q1 & Q2);

35、 Q3 := (!Q1 & !Q2 & !Q3) # (!(!Q1 & !Q2) & Q3); TEST_VECTORS(CP,UP_DOWN-Q3,Q2,Q1) REPEAT 10 .C.,0-.X.,.X.,.X.; REPEAT 10 .C.,1-.X.,.X.,.X.; END 该块说明重复产生括号内语句。5.3.2 块进 制基 数数制符号二进制2b 或 B5.3.3 数据类型 适当使用数据类型,可使 ABEL 源程序简洁、易读。 数制符号可用大写或小写输入。 若一个数据前没有数制符号,则认为它使用的是隐含数制,一般隐含数制为十进制。进 制基 数数制符号二进制2b 或 B十进制10d

36、或 D进 制基 数数制符号二进制2b 或 B十进制10d 或 D八进制8o 或 O进 制基 数数制符号二进制2b 或 B十进制10d 或 D八进制8o 或 O十六进制16h 或 H5.3.3 数据类型MODULE EXAMPLE CP PIN; Q3,Q2,Q1,Q0 PIN ISTYPE REG; Q = Q3,Q2,Q1,Q0;EQUATIONS Q.CLK = CP; TRUTH_TABLE(Q3,Q2,Q1,Q0:Q3,Q2,Q1,Q0) B0000 : B0001; B0001 : B0010; B0010 : B0011; B0011 : B0100; B0100 : B0101;

37、 B0101 : B0110; B0110 : B0111; B0111 : B1000; B1000 : B1001; B1001 : B1010; B1010 : B1011; B1011 : B0000;TEST_VECTORS(CP-Q) REPEAT 15 .C.-.X.;ENDMODULE EXAMPLE CP PIN; Q3,Q2,Q1,Q0 PIN ISTYPE REG; Q = Q3,Q2,Q1,Q0;EQUATIONS Q.CLK = CP; TRUTH_TABLE(Q3,Q2,Q1,Q0:Q3,Q2,Q1,Q0) B0000 : B0001; B0001 : B0010;

38、 B0010 : B0011; B0011 : B0100; B0100 : B0101; B0101 : B0110; B0110 : B0111; B0111 : B1000; B1000 : B1001; B1001 : B1010; B1010 : B1011; B1011 : B0000;TEST_VECTORS(CP-Q) REPEAT 15 .C.-.X.;END 数据用二进制数据类型表示MODULE EXAMPLE CP PIN; Q3,Q2,Q1,Q0 PIN ISTYPE REG; Q = Q3,Q2,Q1,Q0;EQUATIONS Q.CLK = CP; TRUTH_TA

39、BLE(Q3,Q2,Q1,Q0:Q3,Q2,Q1,Q0) O0 : O1; O1 : O2; O2: O3; O3 : O4; O4 : O5; O5 : O6; O6 : O7; O7 : O10; O10 : O11; O11 : O12; O12 : O13; O13 : O0;TEST_VECTORS(CP-Q) REPEAT 15 .C.-.X.;END 数据用八进制数据类型表示MODULE EXAMPLE CP PIN; Q3,Q2,Q1,Q0 PIN ISTYPE REG; Q = Q3,Q2,Q1,Q0;EQUATIONS Q.CLK = CP; TRUTH_TABLE(Q3,

40、Q2,Q1,Q0:Q3,Q2,Q1,Q0) 0 : 1; 1 : 2; 2: 3; 3 : 4; 4 : 5; 5 : 6; 6 : 7; 7 : 8; 8 : 9; 9 : 10; 10 : 11; 11 : 0;TEST_VECTORS(CP-Q) REPEAT 15 .C.-.X.;END 数据用十进制数据类型表示MODULE EXAMPLE CP PIN; Q3,Q2,Q1,Q0 PIN ISTYPE REG; Q = Q3,Q2,Q1,Q0;EQUATIONS Q.CLK = CP; TRUTH_TABLE(Q3,Q2,Q1,Q0:Q3,Q2,Q1,Q0) H0 : H1; H1 :

41、 H2; H2: H3; H3 : H4; H4 : H5; H5 : H6; H6 : H7; H7 : H8; H8 : H9; H9 : HA; HA : HB; HB : H0;TEST_VECTORS(CP-Q) REPEAT 15 .C.-.X.;END 数据用十六进制数据类型表示5.3.4 字符串 字符串是用单引号括起来的 ASCII 码字符序列。 字符串主要用于以下场合:MODULE EXAMPLETITLE This is an example. A,B,C,D PIN; Y PIN ISTYPE COM,BUFFER; Y1,Y2 NODE ISTYPE COM; EQUA

42、TIONS Y1 = A & B; Y2 = C & D; Y = !(Y1 & Y2); TEST_VECTORS(A,B,C,D-Y) 0,1,1,0 - 1; 1,1,1,1 - 0;ENDMODULE EXAMPLETITLE This is an example. A,B,C,D PIN; Y PIN ISTYPE COM,BUFFER; Y1,Y2 NODE ISTYPE COM; EQUATIONS Y1 = A & B; Y2 = C & D; Y = !(Y1 & Y2); TEST_VECTORS(A,B,C,D-Y) 0,1,1,0 - 1; 1,1,1,1 - 0;EN

43、D 标题语句TITLE,用字符串简要说明设计。MODULE EXAMPLETITLE This is an example. A,B,C,D PIN; Y PIN ISTYPE COM,BUFFER; Y1,Y2 NODE ISTYPE COM; EQUATIONS Y1 = A & B; Y2 = C & D; Y = !(Y1 & Y2); TEST_VECTORS(A,B,C,D-Y) 0,1,1,0 - 1; 1,1,1,1 - 0;END 引脚语句PIN,说明引脚输入或输出属性。MODULE EXAMPLETITLE This is an example. A,B,C,D PIN;

44、Y PIN ISTYPE COM,BUFFER; Y1,Y2 NODE ISTYPE COM; EQUATIONS Y1 = A & B; Y2 = C & D; Y = !(Y1 & Y2); TEST_VECTORS(A,B,C,D-Y) 0,1,1,0 - 1; 1,1,1,1 - 0;END 节点语句NODE,说明内部节点属性。MODULE EXAMPLE A3,A2,A1,A0,B3,B2,B1,B0 PIN; Y3,Y2,Y1,Y0 PIN ISTYPE COM; A = A3,A2,A1,A0; B = B3,B2,B1,B0; Y = Y3,Y2,Y1,Y0; EQUATION

45、S WHEN(AB) THEN Y = A-B; WHEN(A=B) THEN Y = -A;TEST_VECTORS(A,B-Y) 5,10-.X.; 10,5-.X.; 3,3 -.X.;END5.3.5 集合 集合是作为一个整体来进行运算的成批信号和常量,对集合的任何运算实际上是对集合中每一个元素进行的。MODULE EXAMPLE A3,A2,A1,A0,B3,B2,B1,B0 PIN; Y3,Y2,Y1,Y0 PIN ISTYPE COM; A = A3,A2,A1,A0; B = B3,B2,B1,B0; Y = Y3,Y2,Y1,Y0; EQUATIONS WHEN(AB) TH

46、EN Y = A-B; WHEN(A=B) THEN Y = -A;TEST_VECTORS(A,B-Y) 5,10-.X.; 10,5-.X.; 3,3 -.X.;END集合 A 定义集合 B 定义集合 Y 定义利用已定义的集合进行逻辑设计利用已定义的集合进行输出仿真MODULE EXAMPLE A,B,CI PIN; S,CO PIN ISTYPE COM; EQUATIONS S = A $ B $ CI; CO = !(!(A $ B) & CI) & !(A & B); END5.3.6 逻辑运算符 逻辑运算符用于逻辑方程中,多位逻辑运算是逐位进行的。运 算 符举 例说 明!A取 反

47、运 算 符举 例说 明!A取 反&A & B与运 算 符举 例说 明!A取 反&A & B与#A # B或运 算 符举 例说 明!A取 反&A & B与#A # B或$A $ B异 或运 算 符举 例说 明!A取 反&A & B与#A # B或$A $ B异 或!$A !$ B同 或5.3.7 算术运算符 算术运算符定义了表达式中各项间的算术关系。 注意减号的用法不同,意义也不同。运 算 符举 例说 明 A取 补运 算 符举 例说 明 A取 补A B减 法运 算 符举 例说 明 A取 补A B减 法+A + b加 法运 算 符举 例说 明 A取 补A B减 法+A + b加 法*A * B乘

48、法运 算 符举 例说 明 A取 补A B减 法+A + b加 法*A * B乘 法/A / B无符号整数除法运 算 符举 例说 明 A取 补A B减 法+A + b加 法*A * B乘 法/A / B无符号整数除法%A % B取 模运 算 符举 例说 明 A取 补A B减 法+A + b加 法*A * B乘 法/A / B无符号整数除法%A % B取 模A BA 左移 B 位运 算 符举 例说 明 A取 补A B减 法+A + b加 法*A * B乘 法/A / B无符号整数除法%A % B取 模A A BA 右移 B 位MODULE EXAMPLE S2,S1,S0 PIN; Y3,Y2,Y

49、1,Y0 PIN ISTYPE COM; S = S2,S1,S0; Y = Y3,Y2,Y1,Y0;EQUATIONS WHEN(S=B000) THEN Y = 4+5; WHEN(S=B001) THEN Y = 15-7; WHEN(S=B010) THEN Y = 5*3; WHEN(S=B011) THEN Y = 12/6; WHEN(S=B100) THEN Y = B10111;END5.3.7 算术运算符当S=000时,实现加法。当S=001时,实现减法。当S=010时,实现乘法。当S=011时,实现除法。当S=100时,实现左移。 当S=101时,实现右移。5.3.8 关

50、系运算符 关系运算符用于比较表达式中的左式和右式,比较结果为逻辑代数中的真值或假值。运 算 符举 例说 明=A = B等 于运 算 符举 例说 明=A = B等 于!=A != B不等于运 算 符举 例说 明=A = B等 于!=A != B不等于A B小 于运 算 符举 例说 明=A = B等 于!=A != B不等于A B小 于=A = B小于等于运 算 符举 例说 明=A = B等 于!=A != B不等于A B小 于=A A B大 于运 算 符举 例说 明=A = B等 于!=A != B不等于A B小 于=A A B大 于=A = B大于等于 在使用关系运算符时,最好使用括号以保证表

51、达式按期望的次序进行计算。5.3.8 关系运算符MODULE EXAMPLE A3,A2,A1,A0 PIN; B3,B2,B1,B0 PIN; Y5,Y4,Y3,Y2,Y1,Y0 PIN ISTYPE COM; A = A3,A2,A1,A0; B = B3,B2,B1,B0; EQUATIONS WHEN (A = B) THEN Y0 = 1; ELSE Y0 = 0; WHEN (A != B) THEN Y1 = 1; ELSE Y1 = 0; WHEN (A B) THEN Y2 = 1; ELSE Y2 = 0; WHEN (A B) THEN Y4 = 1; ELSE Y4 =

52、 0; WHEN (A = B) THEN Y5 = 1; ELSE Y5 = 0;TEST_VECTORS(A,B-Y0,Y1,Y2,Y3,Y4,Y5) 8,8 -1,0,0,1,0,1; 10,8-0,1,0,0,1,1; 3,12-0,1,1,1,0,0;END 当A等于B,则输出Y0=1,否则Y0=0。 当A不等于B,则输出Y1=1,否则Y1=0。 当A小于B,则输出Y2=1,否则Y2=0。 当A小于等于B,则输出Y3=1,否则Y3=0。 当A大于B,则输出Y4=1,否则Y4=0。 当A大于等于B,则输出Y5=1,否则Y5=0。5.3.9 赋值运算符 赋值运算符通过等式将逻辑表达式的值

53、赋给输出信号。运 算 符说 明=立即赋值 立即赋值:逻辑方程一经求值,就立即赋值,没有延迟,在进行组合逻辑电路设计时可采用该赋值运算符。 时钟赋值:逻辑方程要等与输出有关的时钟脉冲到来后,才进行赋值,在进行时序逻辑电路设计时可采用该赋值运算符。运 算 符说 明=立即赋值:=时钟赋值MODULE EXAMPLE A,B,C,D PIN; F PIN ISTYPE COM;EQUATIONS F = !(A & B) # (C & D); TEST_VECTORS(A,B,C,D-F) 0,1,1,0 - 1; 1,1,0,1 - 0; END5.3.9 赋值运算符 输出引脚 F 定义为组合输出类

54、型。 组合逻辑设计,当右式有结果时立即赋值给 F。MODULE EXAMPLE CP PIN; Q PIN ISTYPE REG;EQUATIONS Q.CLK = CP; Q := !Q; TEST_VECTORS(CP-Q) REPEAT 6 .K.-.X.;END5.3.9 赋值运算符 时钟赋值:当寄存器Q输入时钟沿为上升沿时赋值。 输出引脚 Q 定义为时序输出类型。 立即赋值:寄存器时钟输入端时刻跟随输入时钟CP变化。5.3.10 表达式 表达式是标识符和运算符的组合。表达式中运算符之间存在一定的优先级。优 先 级运 算 符说 明优 先 级运 算 符说 明1取补1!取反1取补1!取反2

55、&与2/无符号除法2右移2%取模1取补1!取反2&与2/无符号除法2右移2%取模3#或3+加法3$异或3-减法3!$同或1取补1!取反2&与2/无符号除法2右移2%取模3#或3+加法3$异或3-减法3!$同或4=等于4大于4=大于等于 若同一表达式中有优先级相同的运算符,则按从左到右的顺序进行计算。 圆括号可以改变运算次序,圆括号内的运算优先进行。5.3.10 表达式MODULE EXAMPLE A,B,CI PIN; S,CO PIN ISTYPE COM;EQUATIONS S = A $ B $ CI; CO = (A $ B) & CI) # (A & B);TEST_VECTORS(

56、CI,A,B-S,CO) 0,0,0 - 0,0; 0,0,1 - 1,0; 0,1,0 - 1,0; 0,1,1 - 0,1; 1,0,0 - 1,0; 1,0,1 - 0,1; 1,1,0 - 0,1; 1,1,1 - 1,1;ENDMODULE EXAMPLE A,B,CI PIN; S,CO PIN ISTYPE COM;EQUATIONS S = A $ B $ CI; CO = (A $ B) & CI) # (A & B);TEST_VECTORS(CI,A,B-S,CO) 0,0,0 - 0,0; 0,0,1 - 1,0; 0,1,0 - 1,0; 0,1,1 - 0,1; 1

57、,0,0 - 1,0; 1,0,1 - 0,1; 1,1,0 - 0,1; 1,1,1 - 1,1;ENDMODULE EXAMPLE A,B,CI PIN; S,CO PIN ISTYPE COM;EQUATIONS S = A $ B $ CI; CO = (A $ B) & CI) # (A & B);TEST_VECTORS(CI,A,B-S,CO) 0,0,0 - 0,0; 0,0,1 - 1,0; 0,1,0 - 1,0; 0,1,1 - 0,1; 1,0,0 - 1,0; 1,0,1 - 0,1; 1,1,0 - 0,1; 1,1,1 - 1,1;END5.3.11 点扩展符 需

58、要精确其置“0”端或置“1”端操作,或控制一些器件特定输入端,可采用详细的点扩展方式加以描述。带缓冲寄存器反馈 .Q异步清零 .ACLR同步清零 .CLR寄存器反馈.FB边沿触发器 输入时钟.CLK异步置位 .ASET同步置位 .SET带缓冲引脚反馈 .CLK.OE输出使能5.3.11 点扩展符MODULE EXAMPLE CP PIN; RESETPIN; Q2,Q1,Q0 PIN ISTYPE REG,BUFFER;EQUATIONS Q0.CLK = CP; Q1.CLK = Q0.Q; Q2.CLK = Q1.Q; Q0.ACLR = !RESET; Q1.ACLR = !RESET;

59、 Q2.ACLR = !RESET; Q0.D = !Q0.Q; Q1.D = !Q1.Q; Q2.D = !Q2.Q;TEST_VECTORS(CP,RESET-Q2,Q1,Q0) / 逻辑设计测试 REPEAT 10 .C.,0-.X.,.X.,.X.; .X.,1-.X.,.X.,.X.;ENDMODULE EXAMPLE CP PIN; RESETPIN; Q2,Q1,Q0 PIN ISTYPE REG,BUFFER;EQUATIONS Q0.CLK = CP; Q1.CLK = Q0.Q; Q2.CLK = Q1.Q; Q0.ACLR = !RESET; Q1.ACLR = !RES

60、ET; Q2.ACLR = !RESET; Q0.D = !Q0.Q; Q1.D = !Q1.Q; Q2.D = !Q2.Q;TEST_VECTORS(CP,RESET-Q2,Q1,Q0) / 逻辑设计测试 REPEAT 10 .C.,0-.X.,.X.,.X.; .X.,1-.X.,.X.,.X.;ENDMODULE EXAMPLE CP PIN; RESETPIN; Q2,Q1,Q0 PIN ISTYPE REG,BUFFER;EQUATIONS Q0.CLK = CP; Q1.CLK = Q0.Q; Q2.CLK = Q1.Q; Q0.ACLR = !RESET; Q1.ACLR = !

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论