protel 99se 还支持CUPL语言编程GAL系列的PLD。下面就是小弟我写的一段。用GAL22V10做一个单片机键盘的编码器:4x4键盘,4-bit二进制码,带中断输出。
总的来说,用GAL编组合逻辑还是很方便的,但是对于时序逻辑还是觉得难。
name keyboard ;
partno ;
revision 1 ;
date 2008-4-6 ;
designer ;
company ;
assembly ;
location ;
device g22v10 ;
format ;
/** inputs **/
pin [2..11] = [in0..9] ;
pin 12 = gnd;
pin [13..18] = [in10..15];
/** outputs **/
pin 19 = !key_int;
pin [20..23] = [out0..3];
/** declarations and intermediate variables **/
field input = [in0..15];
field output = [out0..3];
/** logic equations **/
table input => output
{
'hƍfff => 'b
'h'bfff => 'b
'h'dfff => 'b
'h'efff => 'b
'h'f7ff => 'b
'h'fbff => 'b
'h'fdff => 'b
'h'feff => 'b
'h'ff7f => 'b
'h'ffbf => 'b
'h'ffdf => 'b
'h'ffef => 'b
'h'fff7 => 'b
'h'fffb => 'b
'h'fffe => 'b
}
key_int = in0 & in1 & in2 & in3 & in4 & in5 & in6 & in7 & in8 & in9 & in10 & in11 & in12 & in13 & in14 & in15;