home *** CD-ROM | disk | FTP | other *** search
- module _TI1Shot flag '-r3'
- title 'Programmable Digital One Shot
- Brenda French and Kent Dietz FutureNet - Data I/O 11 Jan 1986'
-
- " Produces a active high Pulse every N+2 clocks
- " where N is the value in the input registers (DataIn)
- "
- " The count is cleared when the Clr input is low
-
- TI1Shot device 'P19R8R';
-
- OutClk,Clr,OE,InClk pin 1,2,13,14;
- D3,D2,D1,D0 pin 3,4,5,6;
- Pulse pin 15;
- Q3,Q2,Q1,Q0 pin 19,20,21,22;
-
- D3,D2,D1,D0 istype 'reg';
-
- DataIn = [D3,D2,D1,D0];
- DataOut = [Q3,Q2,Q1,Q0];
-
- Ck,X,Z,H,L = .C. , .X., .Z., 1, 0;
-
- equations
- Pulse := DataIn == DataOut;
-
- State_diagram DataOut
- State 0: if Pulse # !Clr then 0 else 1;
- State 1: if Pulse # !Clr then 0 else 2;
- State 2: if Pulse # !Clr then 0 else 3;
- State 3: if Pulse # !Clr then 0 else 4;
- State 4: if Pulse # !Clr then 0 else 5;
- State 5: if Pulse # !Clr then 0 else 6;
- State 6: if Pulse # !Clr then 0 else 7;
- State 7: if Pulse # !Clr then 0 else 8;
- State 8: if Pulse # !Clr then 0 else 9;
- State 9: if Pulse # !Clr then 0 else 10;
- State 10: if Pulse # !Clr then 0 else 11;
- State 11: if Pulse # !Clr then 0 else 12;
- State 12: if Pulse # !Clr then 0 else 13;
- State 13: if Pulse # !Clr then 0 else 14;
- State 14: if Pulse # !Clr then 0 else 15;
- State 15: if Pulse # !Clr then 0 else 0;
- @page
-
- test_vectors ' Clear and High Z'
- ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
- [ 0 , X , Ck , 0 , 0 ] -> [ H , 0 ];
- [ 0 , X , 0 , 1 , 1 ] -> [ Z , Z ];
-
- test_vectors ' Count of 6'
- ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
- [ Ck , 4 , 0 , 0, 1 ] -> [ X , X ];
- [ 0 , X , Ck , 0 , 0 ] -> [ L , 0 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 1 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 2 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 3 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 4 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ H , 5 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 0 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 1 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 2 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 3 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 4 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ H , 5 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 0 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 1 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 2 ];
-
- test_vectors ' Count of 17'
- ([InClk,DataIn,OutClk ,OE, Clr] -> [Pulse,DataOut])
- [ 0 , X , Ck , 0 , 0 ] -> [ L , 0 ];
- [ Ck , 15 , 0 , 0 , 1 ] -> [ X , X ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 1 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 2 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 3 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 4 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 5 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 6 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 7 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 8 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 9 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 10 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 11 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 12 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 13 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 14 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 15 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ H , 0 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 0 ];
- [ 0 , X , Ck , 0 , 1 ] -> [ L , 1 ];
-
- end _TI1Shot
-
-