新闻  |   论坛  |   博客  |   在线研讨会
ABEL-HDL语言
zhchxgh | 2009-07-14 22:34:09    阅读:1376   发布文章

ABEL-HDL语言

  ABEL-HDL语言是一种用语言来描述器件逻辑功能的设计语言,它与其它计算机语言一样有一些关键字及一些规定。

  (1)基本的运算表示

  ABEL-HDL语言运算可分为逻辑运算和算术运算。下面两个表格分别列出了两种运算的符号及功能,下面表格中红底的项为时序电路中才会使用到。

ABEL-HDL基本逻辑运算符号

运算符
优先级
功能
例子
含义
!
1
取反
!(AB)
(AB)的非
&
2
与运算
A&B
A·B
#
3
或运算
A#B
A+B
$
4
异或运算
A$B
A⊕B
=
 
赋值
A=5
将5赋给A
==
 
数值相等
A==1
用于判断数值相等
!=
 
数值不等
A!=1
用于判断数值不等

ABEL-HDL基本算术运算符号

运算符
功能
举例
含义
+
算术加
C=A+B
将A与B相加,将积再赋给C
-
算术减
 
 
*
算术乘
 
 
/
算术除
 
 
<<,>>
左,右移位
A<<B
将A左移B位

  (2)关键字

关键字
作   用
举  例
module
说明模块的开始,与END对应
MODULE tran
End
模块的结束
END
Title
说明模块的名称(可省略)
Title 'U2 is a decode'
Equations
表明与器件相关的方程式的开始
 
Pin
说明器件I/O的引脚
CLK,A Pin 1,2;
Istype
说明输出信号的属性
A Pin 19 istype 'COM';
Test_vectors
测试向量的开始
 
Truth_table
真值表的开始
 
When then Else
当什么时就怎样,否则怎样
When b then c=0 esle a=b
If then else
 
 

  (3)ABEL语言设计举例

   写出全加器的ABEL-HDL语言的源文件。
  分析:在组合逻辑电路中我们分析了全加器的电路,我们可以用真值表、逻辑表达式、电路图等几种方式来描述其逻辑功能。其表达式写为:

进位输出:Co=A·B+A·Ci+B·Ci

本位和的输出:S=A⊕B⊕C

  其值表可写为:

Ci
A
B
Co
S
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1

  该逻辑用真值表和表达式皆可以表示,即ABEL的源文件可以有两种表达方式。
  源文件1:用表达式来表示

源文件
 说  明 
Module FSUM; 模块定义,FSUM为模块名,每行结束用分号结束
  A,B,Ci pin 1,2,3; 定义A,B,Ci对应管脚1,2,3
  S,Co pin 19,18 istype 'com'; 定义S,Co的管脚,并定义其为组合逻辑电路输出
Equations 表示下面一段为逻辑表达式
  S=A$B$Ci;  
  Co=A&B+A&Ci+B&Ci;  
Test_vectors ([Ci,A,B]->[Co,S]) 测试向量定义,下面为测试向量用于模拟逻辑功能
       [0,0,0]->[0,0];  
       [0,0,1]->[0,1];  
       [0,1,0]->[0,1];  
       [0,1,1]->[1,0];  
       [1,0,0]->[0,1];  
       [1,0,1]->[1,0];  
       [1,1,0]->[1,0];  
       [1,1,1]->[1,1];  
End 模块结束

  源文件2:用真值表来表示
  只要将上面的源文件中Equations起的三行用下面一段代替即可。

Truth_table ([Ci,A,B]->[Co,S])
       [0,0,0]->[0,0];
       [0,0,1]->[0,1];
       [0,1,0]->[0,1];
       [0,1,1]->[1,0];
       [1,0,0]->[0,1];
       [1,0,1]->[1,0];
       [1,1,0]->[1,0];
       [1,1,1]->[1,1];

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客