t1.phd

来自「一个veriloghdl编写的键盘扫描程序」· PHD 代码 · 共 213 行

PHD
213
字号
" XPLAOPT Version 9.99.99.99
" Created on Fri Mar 04 13:07:31 2005
" 52 Mcells, 80 PLApts, 8 Levels, 143 Fanins
" XPLAOPT -run s -it b -i KeypadScan.blx -dev XC2C32A-6CP56 -reg -xor a -mode 1 
"         -th 28 -fi 32 -bfi 38 -pre keep -unused pullup -terminate pullup -no_output_files 
MODULE KeypadScan

	clk  pin ; 
 	column<0>  pin ; 
 	column<1>  pin ; 
 	column<2>  pin ; 
 	column<3>  pin ; 
 	column<4>  pin ; 
 	column<5>  pin ; 
 	column<6>  pin ; 
 	column<7>  pin ; 
 	out<0>  pin ;  " 2 pt.
 	out<1>  pin ;  " 2 pt.
 	out<2>  pin ;  " 2 pt.
 	out<3>  pin ;  " 2 pt.
 	out<4>  pin ;  " 2 pt.
 	out<5>  pin ;  " 2 pt.
 	row<0>  pin ;  " 1 pt.
 	row<1>  pin ;  " 1 pt.
 	row<2>  pin ;  " 1 pt.
 	row<3>  pin ;  " 1 pt.
 	row<4>  pin ;  " 1 pt.
 	row<5>  pin ;  " 1 pt.
 	row<6>  pin ;  " 1 pt.
 	row<7>  pin ;  " 1 pt.
 

	N_PZ_100  node istype 'collapse';  " 1 pt.
 	N_PZ_101  node istype 'collapse';  " 1 pt.
 	N_PZ_72  node istype 'collapse';  " 1 pt.
 	N_PZ_73  node istype 'collapse';  " 1 pt.
 	N_PZ_74  node istype 'collapse';  " 1 pt.
 	N_PZ_75  node istype 'collapse';  " 1 pt.
 	N_PZ_76  node istype 'collapse';  " 1 pt.
 	N_PZ_77  node istype 'collapse';  " 2 pt.
 	N_PZ_78  node istype 'collapse';  " 1 pt.
 	N_PZ_79  node istype 'collapse';  " 2 pt.
 	N_PZ_80  node istype 'collapse';  " 2 pt.
 	N_PZ_81  node istype 'collapse';  " 1 pt.
 	N_PZ_82  node istype 'collapse';  " 2 pt.
 	N_PZ_83  node istype 'collapse';  " 1 pt.
 	N_PZ_84  node istype 'collapse';  " 1 pt.
 	N_PZ_85  node istype 'collapse';  " 1 pt.
 	N_PZ_86  node istype 'collapse';  " 2 pt.
 	N_PZ_87  node istype 'collapse';  " 1 pt.
 	N_PZ_88  node istype 'collapse';  " 1 pt.
 	N_PZ_89  node istype 'collapse';  " 2 pt.
 	N_PZ_90  node istype 'collapse';  " 1 pt.
 	N_PZ_91  node istype 'collapse';  " 1 pt.
 	N_PZ_92  node istype 'collapse';  " 1 pt.
 	N_PZ_93  node istype 'collapse';  " 1 pt.
 	N_PZ_94  node istype 'collapse';  " 1 pt.
 	N_PZ_95  node istype 'collapse';  " 1 pt.
 	N_PZ_96  node istype 'collapse';  " 1 pt.
 	N_PZ_97  node istype 'collapse';  " 1 pt.
 	N_PZ_98  node istype 'collapse';  " 1 pt.
 	N_PZ_99  node istype 'collapse';  " 1 pt.
 	_n009837  node ;  " 4 pt.
 	_n010237  node ;  " 4 pt.
 	outreg<0>  node ;  " 3 pt.
 	outreg<1>  node ;  " 3 pt.
 	outreg<2>  node ;  " 2 pt.
 	outreg<3>  node ;  " 3 pt.
 	outreg<4>  node ;  " 3 pt.
 	outreg<5>  node ;  " 2 pt.
 

xpla property 'USER_SLEW_RATE row<2> row<0> row<6> row<4> row<5> row<1> row<3> row<7> out<0> 
	out<1> out<2> out<3> out<4> out<5> '; 
xpla property 'POWER_UP_HIGH row<2> row<0> row<6> row<4> row<5> row<1> row<3> '; 
xpla property 'unused_pullup'; 
xpla property 'timespec  row<6>.Q row<7>.D 1.000000'; 
xpla property 'timespec  row<4>.Q row<5>.D 1.000000'; 
xpla property 'timespec  row<0>.Q row<1>.D 1.000000'; 
xpla property 'timespec  row<1>.Q row<2>.D 1.000000'; 
xpla property 'timespec  row<7>.Q row<0>.D 1.000000'; 
xpla property 'timespec  row<2>.Q row<3>.D 1.000000'; 
xpla property 'timespec  row<5>.Q row<6>.D 1.000000'; 
xpla property 'timespec  row<3>.Q row<4>.D 1.000000'; 
xpla property 'IOSTD column<7> 2 -1';
xpla property 'IOSTD column<6> 2 -1';
xpla property 'IOSTD column<5> 2 -1';
xpla property 'IOSTD column<4> 2 -1';
xpla property 'IOSTD column<3> 2 -1';
xpla property 'IOSTD column<2> 2 -1';
xpla property 'IOSTD column<1> 2 -1';
xpla property 'IOSTD column<0> 2 -1';
xpla property 'IOSTD row<2> 2 -1';
xpla property 'IOSTD row<0> 2 -1';
xpla property 'IOSTD row<6> 2 -1';
xpla property 'IOSTD row<4> 2 -1';
xpla property 'IOSTD row<5> 2 -1';
xpla property 'IOSTD row<1> 2 -1';
xpla property 'IOSTD row<3> 2 -1';
xpla property 'IOSTD row<7> 2 -1';
xpla property 'IOSTD clk 2 -1';
xpla property 'IOSTD out<0> 2 -1';
xpla property 'IOSTD out<1> 2 -1';
xpla property 'IOSTD out<2> 2 -1';
xpla property 'IOSTD out<3> 2 -1';
xpla property 'IOSTD out<4> 2 -1';
xpla property 'IOSTD out<5> 2 -1';
EQUATIONS 

 N_PZ_100 = !_n010237 & !N_PZ_96;		"--- [PT=1, FI=2, LVL=7] ---
 N_PZ_101 = N_PZ_87 & N_PZ_88;		"--- [PT=1, FI=2, LVL=3] ---
 N_PZ_72 = column<2> & column<0>;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_73 = column<4> & column<1>;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_74 = column<3> & N_PZ_72;		"--- [PT=1, FI=2, LVL=2] ---
 N_PZ_75 = column<6> & column<5>;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_76 = column<7> & N_PZ_73;		"--- [PT=1, FI=2, LVL=2] ---
 N_PZ_77 = !row<5>.Q & row<7>.Q
      # row<5>.Q & !row<7>.Q;		"--- [PT=2, FI=2, LVL=1] ---
 N_PZ_78 = N_PZ_74 & N_PZ_75;		"--- [PT=1, FI=2, LVL=3] ---
 N_PZ_79 = !row<2>.Q & row<3>.Q
      # row<2>.Q & !row<3>.Q;		"--- [PT=2, FI=2, LVL=1] ---
 N_PZ_80 = !row<4>.Q & N_PZ_83
      # row<4>.Q & N_PZ_77;		"--- [PT=2, FI=3, LVL=2] ---
 N_PZ_81 = N_PZ_76 & N_PZ_78;		"--- [PT=1, FI=2, LVL=4] ---
 N_PZ_82 = column<6> & !column<5> & N_PZ_92
      # !column<7> & N_PZ_73 & N_PZ_78;		"--- [PT=2, FI=6, LVL=4] ---
 N_PZ_83 = row<5>.Q & row<7>.Q;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_84 = row<2>.Q & row<3>.Q;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_85 = row<0>.Q & row<4>.Q;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_86 = column<3> & !column<2> & column<0>
      # !column<3> & N_PZ_72;		"--- [PT=2, FI=4, LVL=2] ---
 N_PZ_87 = row<6>.Q & row<1>.Q;		"--- [PT=1, FI=2, LVL=1] ---
 N_PZ_88 = N_PZ_83 & N_PZ_85;		"--- [PT=1, FI=2, LVL=2] ---
 N_PZ_89 = !column<4> & column<1> & N_PZ_94
      # N_PZ_82;		"--- [PT=2, FI=4, LVL=5] ---
 N_PZ_90 = N_PZ_84 & N_PZ_87;		"--- [PT=1, FI=2, LVL=2] ---
 N_PZ_91 = N_PZ_84 & N_PZ_88;		"--- [PT=1, FI=2, LVL=3] ---
 N_PZ_92 = N_PZ_74 & N_PZ_76;		"--- [PT=1, FI=2, LVL=3] ---
 N_PZ_93 = N_PZ_75 & N_PZ_76;		"--- [PT=1, FI=2, LVL=3] ---
 N_PZ_94 = column<7> & N_PZ_78;		"--- [PT=1, FI=2, LVL=4] ---
 N_PZ_95 = !column<6> & N_PZ_92;		"--- [PT=1, FI=2, LVL=4] ---
 N_PZ_96 = column<5> & N_PZ_95;		"--- [PT=1, FI=2, LVL=5] ---
 N_PZ_97 = !row<6>.Q & N_PZ_91;		"--- [PT=1, FI=2, LVL=4] ---
 N_PZ_98 = row<1>.Q & N_PZ_97;		"--- [PT=1, FI=2, LVL=5] ---
 N_PZ_99 = !_n009837 & !N_PZ_98;		"--- [PT=1, FI=2, LVL=6] ---
 _n009837 = !row<0>.Q & row<4>.Q & N_PZ_83 & N_PZ_90
      # row<6>.Q & !row<1>.Q & N_PZ_91
      # row<0>.Q & N_PZ_80 & N_PZ_90
      # N_PZ_79 & N_PZ_101;		"--- [PT=4, FI=10, LVL=4] ---
 _n010237 = column<3> & column<2> & !column<0> & N_PZ_93
      # column<4> & !column<1> & N_PZ_94
      # N_PZ_86 & N_PZ_93
      # N_PZ_89;		"--- [PT=4, FI=9, LVL=6] ---
 out<0> = N_PZ_81
      # outreg<0>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 out<1> = N_PZ_81
      # outreg<1>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 out<2> = N_PZ_81
      # outreg<2>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 out<3> = N_PZ_81
      # outreg<3>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 out<4> = N_PZ_81
      # outreg<4>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 out<5> = N_PZ_81
      # outreg<5>.Q;		"--- [PT=2, FI=2, LVL=5] ---
 outreg<0>.D = column<4> & !column<1> & N_PZ_94
      # !column<3> & N_PZ_72 & N_PZ_93
      # N_PZ_82;		"--- [PT=3, FI=7, LVL=5] ---
! outreg<0>.LH = N_PZ_100;		"--- [PT=1, FI=1, LVL=8] ---
 outreg<1>.D = !column<7> & N_PZ_73 & N_PZ_78
      # N_PZ_86 & N_PZ_93
      # N_PZ_96;		"--- [PT=3, FI=6, LVL=6] ---
! outreg<1>.LH = N_PZ_100;		"--- [PT=1, FI=1, LVL=8] ---
 outreg<2>.D = N_PZ_96
      # N_PZ_89;		"--- [PT=2, FI=2, LVL=6] ---
! outreg<2>.LH = N_PZ_100;		"--- [PT=1, FI=1, LVL=8] ---
 outreg<3>.D = row<2>.Q & !row<3>.Q & N_PZ_101
      # row<6>.Q & !row<1>.Q & N_PZ_91
      # N_PZ_77 & N_PZ_85 & N_PZ_90;		"--- [PT=3, FI=9, LVL=4] ---
! outreg<3>.LH = N_PZ_99;		"--- [PT=1, FI=1, LVL=7] ---
 outreg<4>.D = row<5>.Q & !row<7>.Q & N_PZ_85 & N_PZ_90
      # N_PZ_79 & N_PZ_101
      # N_PZ_98;		"--- [PT=3, FI=7, LVL=6] ---
! outreg<4>.LH = N_PZ_99;		"--- [PT=1, FI=1, LVL=7] ---
 outreg<5>.D = row<0>.Q & N_PZ_80 & N_PZ_90
      # N_PZ_98;		"--- [PT=2, FI=4, LVL=6] ---
! outreg<5>.LH = N_PZ_99;		"--- [PT=1, FI=1, LVL=7] ---
 row<0>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<0>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<0>.D = row<7>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<1>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<1>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<1>.D = row<0>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<2>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<2>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<2>.D = row<1>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<3>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<3>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<3>.D = row<2>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<4>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<4>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<4>.D = row<3>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<5>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<5>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<5>.D = row<4>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<6>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<6>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<6>.D = row<5>.Q;		"--- [PT=1, FI=1, LVL=1] ---
 row<7>.CE = N_PZ_81;		"--- [PT=1, FI=1, LVL=5] ---
 row<7>.CLK = clk;		"--- [PT=1, FI=1, LVL=1] ---
 row<7>.D = row<6>.Q;		"--- [PT=1, FI=1, LVL=1] ---
END

⌨️ 快捷键说明

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