⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo600.abl

📁 自己编写的GAL可编程逻辑电路的编译软件abel4的windows界面
💻 ABL
字号:
module DEMO600;  
title '4-bit counters and bidirectional buffer
Data I/O Corp.
5 June 1990
5C060
'
	demo600	device	'E0600';

" Pin 1 clock for pins 3..10, pin 13 clock for pins 15..22
" input pins 2,11,14,23
" programmable i/o pins 3..10 and 15..22
"
	C,X,Z,H,L	= .C.,.X.,.Z.,1,0;

	Clk1,Clk2	pin   1,13;
	Dir		pin   2;	

"Pins for bidirectional buffer
	A3,A2,A1,A0	pin  7, 8, 9,10;
	B3,B2,B1,B0	pin 19,20,21,22;

	SideA		= [A3,A2,A1,A0];
	SideB		= [B3,B2,B1,B0];

equations "bidirectional buffer
	SideA.OE =  Dir;
	SideB.OE = !Dir;

	SideA = SideB;
	SideB = SideA;

test_vectors 'SideA to SideB'
	([Dir,SideA,SideB] -> [SideA,SideB])
	 [ L ,  X  ,  X  ] -> [  Z  ,  X  ];
	 [ L , ^h0 ,  X  ] -> [  X  , ^h0 ];
	 [ L , ^hF ,  X  ] -> [  X  , ^hF ];
	 [ L , ^hA ,  X  ] -> [  X  , ^hA ];
	 [ L , ^h5 ,  X  ] -> [  X  , ^h5 ];

test_vectors 'SideB to SideA'
	([Dir,SideA,SideB] -> [SideA,SideB])
	 [ H ,  X  ,  X  ] -> [  X  ,   Z ];
	 [ H ,  X  ,^h0  ] -> [ ^h0 ,   X ];
	 [ H ,  X  ,^hF  ] -> [ ^hF ,   X ];
	 [ H ,  X  ,^hA  ] -> [ ^hA ,   X ];
	 [ H ,  X  ,^h5  ] -> [ ^h5 ,   X ];

@page 
Declarations " 4 bit toggle flip flop up/down counter

	Clr		pin   11;	
	Q3,Q2,Q1,Q0	pin   3,4,5,6;

	Q3,Q2,Q1,Q0	istype 'buffer,reg_T';

	Count	= [Q3,Q2,Q1,Q0];

equations   
" Use xor with output to transform D f/f equations into T f/f equations

	Count.t = ((Count.fb + 1) &  Dir
		#  (Count.fb - 1) & !Dir)
		$   Count.fb;

	Count.ar  = !Clr;
	Count.oe  = !0;
	Count.clk = Clk1;

test_vectors 'Count Up'
	([Clk1,Dir,Clr] -> Count)
	 [ L  , H , L ] ->   0;
	 [ C  , H , H ] ->   1;
	 [ C  , H , H ] ->   2;
	 [ C  , H , H ] ->   3;
	 [ C  , H , H ] ->   4;
	 [ C  , H , H ] ->   5;
	 [ C  , H , H ] ->   6;
	 [ 0  , H , H ] ->   6;
	 [ C  , H , H ] ->   7;
	 [ C  , H , H ] ->   8;
	 [ C  , H , H ] ->   9;
	 [ C  , H , H ] ->  10;
	 [ C  , H , H ] ->  11;
	 [ C  , H , H ] ->  12;
	 [ C  , H , H ] ->  13;
	 [ C  , H , H ] ->  14;
	 [ C  , H , H ] ->  15;
	 [ C  , H , H ] ->   0;
	 [ C  , H , H ] ->   1;
	 [ C  , H , H ] ->   2;

test_vectors 'Count Down'
	([Clk1,Dir,Clr] -> Count)
	 [ L  , L , L ] ->   0;
	 [ L  , L , H ] ->   0;
	 [ C  , L , H ] ->  15;
	 [ C  , L , H ] ->  14;
	 [ C  , L , H ] ->  13;
	 [ C  , L , H ] ->  12;
	 [ C  , L , H ] ->  11;
	 [ C  , L , H ] ->  10;
@page 
Declarations "4 bit ripple counter

	InA,ClrW	pin  14,23;
	QD,QC,QB,QA	pin  15,16,17,18;

	QD,QC,QB,QA	istype 'buffer,reg_T';

	CNT = [QD,QC,QB,QA];

equations  
	CNT.t   = [1,1,1,1];
	CNT.ar  = ClrW;
	CNT.clk = ![QC.q,QB.q,QA.q,InA];

@message 'Use the -list expand flag to get an expanded listing of test vectors';
test_vectors 'Count Up'
	([InA,ClrW] -> CNT)
	 [ L , H  ] ->   0;
	 [ L , L  ] ->   0;
@const n = 0; @repeat 18 {@const n = n+1;
	 [ C , L  ] ->   @expr n; ;}

	 [ L , L  ] ->   @expr n; ;
	 [ L , H  ] ->   0;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -