home *** CD-ROM | disk | FTP | other *** search
- module _FPLS flag '-ky' "leave unused OR terms connected
- title 'Feature test for F82S157
- Bob Lockhart Data I/O Redmond WA 15 Jan 1985'
-
- FPLS device 'F82S157';
-
- C,L,H,X,Z = .C.,0,1,.X.,.Z.;
-
- Clk,Ena pin 1,11;
- I0,I1,I2,I3 pin 2,3,4,5;
- B0,B1,B2,B3,B4,B5 pin 6,7,8,9,12,19;
- F0,F1,F2,F3 pin 13,14,15,16;
- !F4,!F5 pin 17,18; "Name as Active Low
- COM,FC node 28,21;
-
- mode = [B2,B1,B0];
- M_norm = [ 0, 0, 0];
- M_Preset = [ 1, 0, 0];
- M_Reset = [ 0, 1, 0];
- M_Load = [ 0, 0, 1];
-
- "Configure Flip/Flops F0 and F1 with ISTYPE statement
- F0 istype 'reg_JK';
- F1 istype 'reg_D';
-
- equations
-
- "Output enable for bank A registers
- enable [F1,F0] = !Ena; " Enable controlled by pin 11
-
- "Flip/Flop control term
- FC = I0;
-
- "Flip/Flop equations
- !F0 := I1;
- F0.K = I2;
-
- !F1 := I1;
- F1.K = I3;
-
- "Feedback equations
- B5 = !F1 & !F0;
-
- "Preset,Reset, and Load
- F0.PR = B2;
- F0.RE = B1;
- F0.L = B0;
-
- @page
- test_vectors 'F1 in D type'
- ([Clk,Ena,I0,I1,I2,I3,mode ] -> [!F0,!F1, B5])
- [ C , L , 0, 0, 0, 0,M_norm ] -> [ 0 , 0 , 0 ];
- [ C , L , 0, 1, 0, 0,M_norm ] -> [ 1 , 1 , 1 ]; "High
- [ C , L , 0, 1, 1, 0,M_norm ] -> [ 0 , 1 , 0 ]; "Toggle F0
- [ C , L , 0, 1, 1, 0,M_norm ] -> [ 1 , 1 , 1 ]; "Toggle F0
- [ C , L , 0, 0, 0, 0,M_norm ] -> [ 1 , 0 , 0 ]; "Hold F0
- [ C , L , 0, 0, 1, 0,M_norm ] -> [ 0 , 0 , 0 ]; "Low
- [ 0 , L , 0, 0, 1, 0,M_Preset ] -> [ 1 , 1 , 1 ]; "Preset
- [ C , L , 0, 1, 1, 0,M_norm ] -> [ 0 , 1 , 0 ]; "Toggle F0
-
- test_vectors 'F1 in JK type'
- ([Clk,Ena,I0,I1,I2,I3,mode ] -> [!F0,!F1, B5])
- [ 0 , L , 1, 0, 0, 0,M_Reset ] -> [ 0 , 0 , 0 ]; "Reset
- [ C , L , 1, 1, 1, 1,M_norm ] -> [ 1 , 1 , 1 ]; "Toggle
- [ C , L , 1, 1, 1, 1,M_norm ] -> [ 0 , 0 , 0 ]; "Toggle
- [ C , L , 1, 1, 0, 0,M_norm ] -> [ 1 , 1 , 1 ]; "High
- [ C , L , 1, 0, 0, 0,M_norm ] -> [ 1 , 1 , 1 ]; "Hold
- [ C , L , 1, 0, 1, 1,M_norm ] -> [ 0 , 0 , 0 ]; "Low
- [ C , H , 1, 1, 1, 1,M_norm ] -> [ Z , Z , 1 ]; "Toggle
- [ C , H , 1, 1, 1, 1,M_norm ] -> [ Z , Z , 0 ]; "Toggle
-
- test_vectors 'load'
- ([Clk,Ena,I0,I1,I2,I3,mode ,!F0,!F1] -> [!F0,!F1, B5])
- [ 0 , L , 1, 0, 0, 0,M_Reset, X , X ] -> [ 0 , 0 , 0 ]; "Reset
- [ C , H , 1, 0, 0, 0,M_Load , 1 , 0 ] -> [ X , X , 0 ]; "Load
- [ 0 , L , 1, 0, 0, 0,M_norm , X , X ] -> [ 1 , 0 , 0 ]; "Test
- [ C , L , 1, 1, 1, 1,M_norm , X , X ] -> [ 0 , 1 , 0 ]; "Toggle
-
- equations
- "Output enable for bank B registers
- enable [F5,F4] = [1,1];" Always enabled
-
- "Configure Flip/Flops explicitly
- [F5.M,F4.M] = [0,0]; " fuse open - fixed at JK
-
- "Async Reset Equation
- F4.RE = !B3;
-
- "Equations for toggel counter (F4 and F5 were declared Active Low)
- [F4,F4.K] := [1,1];
- [F5,F5.K] := F4;
-
- test_vectors 'toggle counter'
- ([Clk,Ena,B3] -> [F5,F4])
- [ 0 , 0 , 0] -> 0; " Reset
- [ C , 0 , 1] -> 1;
- [ C , 0 , 1] -> 2;
- [ C , 0 , 1] -> 3;
- [ C , 0 , 0] -> 0;
- [ C , 1 , 1] -> 1; " Output always enabled
- [ C , 0 , 1] -> 2;
- [ 0 , 0 , 0] -> 0; " Async Reset
- end
-