ABEL语言逻辑方程、状态图设计法课件_第1页
ABEL语言逻辑方程、状态图设计法课件_第2页
ABEL语言逻辑方程、状态图设计法课件_第3页
ABEL语言逻辑方程、状态图设计法课件_第4页
ABEL语言逻辑方程、状态图设计法课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

ABEL语言逻辑方程、状态图设计法

一、ABEL语言逻辑方程设计法

逻辑方程是ABEL源文件描述逻辑设计的一种方法。它既可进行组合逻辑设计,也可进行时序逻辑设计,但有时不如真值表和状态图逻辑设计简单、易懂。但任何一种逻辑描述方式,经EDA软件编译后,都会变成逻辑方程的形式。1、逻辑方程设计类型1已知逻辑方程表达式进行逻辑设计例:已知八进制同步计数器的状态转移方程如下,用ABEL语言设计之。MODULEcounter8fcCP PIN;Q3,Q2,Q1PIN

ISTYPE'REG';Z PIN

ISTYPE'COM';EQUATIONSQ3.CLK=CP;Q2.CLK=CP;Q1.CLK=CP;Q1:=!Q1;Q2:=(!Q1&!Q2)#(Q1&Q2);Q3:=(!Q1&!Q2&!Q3)#(!(!Q1&!Q2)&Q3);Z=Q1&Q2&Q3;END

2、逻辑方程设计类型2已知逻辑电路进行逻辑设计例:已知带异步清零的八进制异步计数器的电路图如下,用ABEL语言设计之。012MODULECOUNTER8DLCP PIN;RESET PIN;Q2,Q1,Q0PINISTYPE'BUFFERREG';EQUATIONSQ2.CLK=Q1.Q;Q1.CLK=Q0.Q;Q0.CLK=CP;Q2.ACLR=!RESET;Q1.ACLR=!RESET;Q0.ACLR=!RESET;Q2.D=!Q2.D;Q1.D=!Q1.Q;Q0.D=!Q0.Q;END3、逻辑方程设计类型3已知逻辑功能文字描述进行逻辑设计例:已知4位二进制比较器的输入、输出关系如下,用ABEL语言设计之。条件输出A_NE_BA_EQ_BA_GT_BA_LT_BA3A2A1A0=B3B2B1B0A3A2A1A0≠B3B2B1B0A3A2A1A0>B3B2B1B0A3A2A1A0<B3B2B1B0011110000X100X01MODULECOMP4FCA3..A0 PIN;B3..B0PIN;A_NE_B,A_EQ_BPINistype’com’;A_GT_B,A_LT_BPINistype’com’;A=[A3..A0];B=[B3..B0];EQUATIONSA_EQ_B=A==B;A_NE_B=!(A==B);A_GT_B=A>B;A_LT_B=A<B;END4、逻辑方程设计类型4已知逻辑真值表或功能表进行逻辑设计例:用ABEL语言设计一个2线-4线译码器,已知其真值表如下:I1I0Y3Y2Y1Y0000110111110110110110111MODULEDECODER24FCI1,I0 PIN;Y3,Y2,Y1,Y0PINISTYPE'COM';I=[I1,I0];Y=[Y3,Y2,Y1,Y0];EQUATIONSWHEN(I==^B00)THENY=^B1110;WHEN(I==^B01)THENY=^B1101;WHEN(I==^B10)THENY=^B1011;WHEN(I==^B11)THENY=^B0111;END5、逻辑方程设计类型5与其它设计法混合使用例:用ABEL语言设计一个六进制计数器,要求时钟下降沿触发MODULEcounter6dCP PIN;Q2,Q1,Q0PINISTYPE'REG';Q=[Q2,Q1,Q0];EQUATIONSQ.CLK=!CP;TRUTH_TABLE(Q:>Q)0:>1;1:>2;2:>3;3:>4;4:>5;5:>0;END二、ABEL语言状态图设计法

状态图是ABEL源文件描述逻辑设计的一种方法,类似于数字电路状态状态转移图的描述方式,它只适用于描述时序逻辑设计,不能描述纯组合逻辑电路。状态图的设计关键字是:STATE_DIAGRAM

设计步骤状态机定义状态定义寄存器时钟方程状态描述1、状态图逻辑设计类型1利用IF……THEN……ELSE语句进行设计

格式:MODULE模块名

(输入引脚定义) (输出引脚定义)//状态机定义 (……)

(状态定义语句)

EQUATIONS

(寄存器时钟语句)

(……)

STATE_DIAGRAM[状态寄存器] STATES0:IF

逻辑表达式THEN

状态表达式1

ELSE

状态表达式2

(……)

END

例:用ABEL语言设计一个同步六进制可逆计数器。MODULEcounter6knCP,UP_DOWNPIN;Q2..Q0PINISTYPE'REG';Q=[Q2..Q0];S0=^B000;S1=^B001;S2=^B010;S3=^B011;S4=^B100;S5=^B101;S6=^B110;S7=^B111;EQUATIONSQ.CLK=CP;STATE_DIAGRAMQSTATES0:IFUP_DOWN==0THENS1ELSES5;STATES1:IFUP_DOWN==0THENS2ELSES0;STATES2:IFUP_DOWN==0THENS3ELSES1;STATES3:IFUP_DOWN==0THENS4ELSES2;STATES4:IFUP_DOWN==0THENS5ELSES3;STATES5:IFUP_DOWN==0THENS0ELSES4;STATES6:GOTOS0;STATES7:GOTOS0;END2、状态图逻辑设计类型2利用链接式IF……THEN……ELSEIF……语句设计格式:MODULE模块名 (输入引脚定义) (输出引脚定义)//状态机定义 (状态定义语句)

EQUATIONS (寄存器时钟语句)

(……)

STATE_DIAGRAM[状态寄存器]

STATES0:IF

逻辑表达式THEN

状态表达式

ELSEIF逻辑表达式THEN

状态表达式

(……)

ELSE

状态表达式 (……)

END

MODULEcounter8kk CP PIN;C1,C0PIN;Q2..Q0PINISTYPE'REG';Q=[Q2..Q0];CONTROL=[C1,C0];EQUATIONSQ.CLK=CP;STATE_DIAGRAMQSTATE0:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN0ELSEIFCONTROL==2THEN1ELSE7;STATE1:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN1ELSEIFCONTROL==2THEN2ELSE0;例:用ABEL语言设计一个可控八进制计数器。要求: (1)CONTROL=0时,计数器清零 (2)CONTROL=0时,计数器保持 (3)CONTROL=0时,计数器加1

(4)CONTROL=0时,计数器减1STATE2:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN2ELSEIFCONTROL==2THEN3ELSE1;STATE3:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN3ELSEIFCONTROL==2THEN4ELSE2;STATE4:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN4ELSEIFCONTROL==2THEN5ELSE3;STATE5:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN5ELSEIFCONTROL==2THEN6ELSE4;STATE6:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN6ELSEIFCONTROL==2THEN7ELSE5;STATE7:IFCONTROL==0THEN0ELSEIFCONTROL==1THEN7ELSEIFCONTROL==2THEN0ELSE6;END3、状态图逻辑设计类型3利用CASE……ENDCASE语句设计格式:MODULE模块名 (输入引脚定义) (输出引脚定义)//状态机定义 (……) (状态定义语句)

EQUATIONS (寄存器时钟语句)

(……) STATE_DIAGRAM[状态寄存器] STATES0:CASE

逻辑表达式:状态表达式

(……)

ENDCASE; (……)

END

例:用ABEL语言设计一个可控八进制计数器。要求: (1)CONTROL=0时,计数器清零 (2)CONTROL=0时,计数器保持 (3)CONTROL=0时,计数器加1

(4)CONTROL=0时,计数器减1MODULEcounter8kk CP PIN;C1,C0PIN;Q2..Q0PINISTYPE'REG';Q=[Q2..Q0];CONTROL=[C1,C0];EQUATIONSQ.CLK=CP;STATE_DIAGRAMQSTATE0:CASECONTROL==0:0CONTROL==1:0CONTROL==2:1CONTROL==3:7;ENDCASE;STATE1:……CASE和ENDCASE之间的表达式必须满足互斥条件,任何时候,只有一个表达式为真CASE语句中表达式应包含所有可能的条件4、状态图逻辑设计类型4利用GOTO语句设计格式:MODULE模块名 (输入引脚定义) (输出引脚定义)//状态机定义 (……) (状态定义语句)

EQUATIONS (寄存器时钟语句)

(……) STATE_DIAGRAM[状态寄存器] STATES0:GOTO

状态表达式

(……)

END

MODULECOUNTER6GOTOCP PIN;Q2..Q0PINISTYPE'REG';Q=[Q2..Q0];EQUATIONSQ.CLK=CP;STATE_DIAGRAMQSTATE0:GOTO1;STATE1:GOTO2;STATE2:GOTO3;STATE3:GOTO4;STATE4:GOTO5;STATE5:GOTO0;STATE6:GOTO0;STATE7:GOTO0;END例:用ABEL语言设计一个同步六进制计数器。5、状态图逻辑设计类型5利用WITH……ENDWITH语句设计格式:MODULE模块名 (输入引脚定义) (输出引脚定义)//状态机定义 (状态定义语句)

EQUATIONS (寄存器时钟语句) STATE_DIAGRAM[状态寄存器] STATES0:IF逻辑表达式THEN状态表达式

WITH

输出方程

(……)

ENDWITH;

ELSE状态表达 (……)

END

温馨提示

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

评论

0/150

提交评论