home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…e: Engineering & Science / Explore_the_World_of_Software_Engineering_and_Science_HRS_Software_1998.iso / programs / electrnc / digisim.txt < prev    next >
Text File  |  1997-09-18  |  32KB  |  1,085 lines

  1. Digital Design Laboratory 
  2. Computer Science Department 
  3. Michigan State University 
  4. East Lansing, MI 48828 
  5.  
  6. July 1, 1986 
  7.  
  8. Contact me, Professor Richard J. Reid, at the above address, or
  9. phone me at (517) 355-8389, to discuss troubles or report
  10. successes. Please include a SASE for correspondence.  You will
  11. probably wish to print a hardcopy of this file for reference in
  12. performing the included experiment and in using the various 
  13. components in experiments of your own design.  Column one is used
  14. for  print control in this file: 
  15.  
  16.                  S  New Page 
  17.                  +  Suppress Line Advance 
  18.             <blank> New Line 
  19.  
  20. I believe this diskette is sufficient basis to launch a one or
  21. two term laboratory in digital logic and computer design.  You
  22. would choose the textbook and present the theoretical basis. 
  23. Unfortunately, I have not yet prepared as elaborate documentation
  24. as I or my students would like, so you'll also have to suffer
  25. through discovering most things yourself. As I've probably told
  26. you before, there is a series of seven video tapes supporting
  27. this laboratory that are available. 
  28.  
  29. To create networks of your own design you will need an editor
  30. that will allow you to prepare ASCII files similar to the data
  31. files included on this disk. 
  32.  
  33. The files on this distribution include: 
  34.  
  35.      This file:                         README 
  36.      The simulator:                     SIM.EXE 
  37.      The data for Exp1:                 EXP1DATA 
  38.      Data for an advanced experiment:   HBO 
  39.  
  40.  This file contains: 
  41.      A copy of a sample first experiment. 
  42.      A listing of individual component characteristics. 
  43.      A listing of command-line flags that control the input phase.
  44.      A listing of keyboard actions that are possible during       
  45.    simulation. 
  46.      A listing of the contents of the video-tape series. 
  47.  
  48.  
  49.   
  50.                    DIGITAL DESIGN LABORATORY, CPS 417 
  51.  
  52.  
  53. Experiment 1.                                           Fall 1986
  54.  
  55.  
  56.  
  57. Begin this experiment by using the simulator with the command
  58. line: 
  59.  
  60.                                 sim exp1data
  61.  
  62. On your screen you will see the following list of components roll
  63. by as the input processor does its task. 
  64.  
  65.                       /* Experiment  1  Data */ 
  66.  
  67.   Switch 1a s0 ZERO;       And 1b s0 s1 aout;    Probe 1c aout; 
  68.   Switch 1a s1 ONE; 
  69.  
  70.   Switch 2a s2 ZERO;        Or 2b s2 s3 Oout;    Probe 2c Oout; 
  71.   Switch 2a s3 ONE; 
  72.  
  73.   Switch 3a s4 ONE;         Mux2 3b s4 pa s5 mout;  Probe 3cmout; 
  74.        Pulser 3a pa ONE 100; 
  75.   Switch 3a s5 ZERO; 
  76.  
  77.   Switch 4a s6 ONE; Counter 4b s6 clock | O2 O1 O0;  Probe 4c O2;
  78.  
  79.   Clock 4a clock ZERO 100 0 200;                     Probe 4c O1;
  80.  
  81.                                                      Probe 4c O0;
  82.  
  83.  
  84. Next, enter the experimental phase and observe the components'
  85. behaviors as you  change  the  switch  values and cause the
  86. pulser to cycle.  Verify the proper logical operation of each of
  87. the components. 
  88.  
  89. Note, in the upper  left  corner  of  the  screen  that  the 
  90. time  display indicates  time  passing furiously.  Immediately to
  91. its right is the length of the queue of gates waiting  to  be 
  92. evaluated  because  they  have  been activated by one of their
  93. inputs having changed.  Depress one of the Switch keys for an
  94. extended period and note the queue-length grow.  Then when  the 
  95. Switch is released the simulation will catch up with the queued
  96. changes and the queue will shrink. 
  97.  
  98. Use the "G" option and a redraw "r" to place the names on the
  99. gates. 
  100.  
  101. Type a "T" and the time display will no  longer  be  updated 
  102. although  the simulation will continue.  Notice that the Clock
  103. appears to be cycling more rapidly when there's less display
  104. activity  for  the  computer  to  manage.  Give  another  "T" 
  105. and the time display will be reactivated.  The toggling action
  106. you have just observed with the "T" is a property  of  many  of 
  107. the  interactive  keys,  i.e.   alternate  key  activations 
  108. start and stop some  feature. 
  109.  
  110. Next type a "t" and notice the "throbing" of the Counter
  111. activated  by  the Clock.   Activate  the  other  gates  (by
  112. changing their inputs), and their "throbs" will appear also.  The
  113. throb-mode allows a quick examinination  of gate  outputs without
  114. having to add probes to a network, and can be helpful in
  115. debugging.  The next "t" will toggle the "throb" back to off. 
  116. When the network is first displayed, the entire circuit is on 
  117. the  screen, but  it  is  possible  to view only a sub-region of
  118. the network.  The arrow  keys on the right of the keyboard
  119. control the  boundaries  of  the  viewing window.   If  you  try 
  120. the arrow key now, the window can't expand, because it's already
  121. full size.  If you hold down the "Ctrl" key  while  you  press 
  122. one  of  the  right  or left arrow keys, the corresponding
  123. boundary will be contracted.  Unfortunately the "Ctrl"  action 
  124. is  not  available  for  the  up/down  arrow  keys and you must
  125. instead use the "Home" key to the left of the up arrow to
  126. contract the upper boundary, and the "End" key to the  left of 
  127. the  down  arrow  to  contract  the  lower  boundary.   Use 
  128. these  key  combinations to experiment with moving the window
  129. over  the  network.   The  adjusted  size  of the new network
  130. display area is shown on the top line of  the display.  The
  131. network is redrawn in the newly-sized  window  using  the  "r"
  132. command. 
  133.  
  134. As you see the signals appear in the "panes" of some of the
  135. components  you will  notice them passing through an intermediate
  136. uncertain state for every transition  between  the  logical 
  137. values.   This  uncertain  condition  is indicated  visually  by 
  138. a  diagonal  line  in  the  panes.  To aid in this  observation
  139. you can slow down the simulation  by  introducing  a  real-time 
  140. wait loop by typing a number of "z"'s.  Each "z" doubles a wait
  141. loop count.  The minus sign in the upper left corner indicates
  142. "slow".  The  slowing  by  "z"'s can be countered with speed-ups
  143. from typed "y"'s.  The plus sign will reappear when the wait loop
  144. is minimized. 
  145.  
  146.  As a single, integrated DEMO session show your TA the following:
  147.  
  148.  
  149.       1.  And and Or gates treating uncertainties differently. 
  150.  
  151.       2.  The addressing and routing capabilities of the         
  152.  multiplexer. 
  153.  
  154.       3.  The Counter portion of the network filling up the
  155. entire           screen. 
  156.  
  157.       4.  The effect of indeterminate values  on  the  reset 
  158. input  to  the Counter.   Why  is  there  such  a drastic action
  159. on the Counter's contents even if the reset doesn't make it all
  160. the way to ZERO? 
  161.        5.  A  network  you've  created  using  the Editor.  Have
  162. your network consist of two Switches, an Xnor, and a Probe. 
  163.  
  164. If time remains during this period, do some work on  the  next 
  165. experiment. In any case, plan on using the "arranged" hours of
  166. your lab BEFORE the next scheduled laboratory period to be
  167. certain that you'll be able  to  complete  your  demonstration 
  168. of  the  next lab exercise early in the next scheduled  period. 
  169.  
  170.                      DIGITAL DESIGN LABORATORY, CPS 417 
  171.  
  172.                               SIM  Version  6.0 
  173.  
  174.                                  Components 
  175.  
  176.  
  177. The input to  SIM  consists  of  a  list  of  components 
  178. indicating  their interconnections.  The input is free-form. 
  179. White-space and comments may be  used freely to enhance
  180. readability.  Comments are  bracketed  with  /*  */.  Comments
  181. may be nested but may not be included within tokens. Fields are
  182. delimited by spaces, tabs and newlines. 
  183.  
  184.  Individual components have the form: 
  185.  
  186.     <Name> [ !<label> ] <cell-designator> [ <input-list> ] [ | ] 
  187.       [ <output-list> ] [ <symbolic-parameters> ] [
  188. <numeric-parameters> ] ; 
  189.  
  190. where [..] indicates a field that may not be present in all
  191. record types. 
  192.  
  193. The record fields are case sensitive, and all  primitives  have 
  194. a  leading capital letter. 
  195.  
  196. A range for the components' delays is given in the descriptions
  197. below.  The smaller  end  of  the  range is indicative of the
  198. most rapid propagation of input effects to the output for the
  199. given type of device.  The  higher  end of the range represents
  200. the maximum delay the given type may exhibit. 
  201.  
  202.  
  203. And 
  204. Variable number of inputs. 
  205. Delay: 15-22 
  206. Example: (With five inputs) 
  207.     And 2K a b c d e Out; 
  208.  
  209.  
  210. Arm 
  211. Four inputs, six outputs. 
  212. The falling edge of the drive signal moves the arm according to: 
  213.     c1,c0: (0,0) (0,1) (1,0) (1,1) :: (up) (right) (left) (down) 
  214. C1 and C0 must not be in transition when the drive makes its
  215. transition.  Horizontal and vertical 3-bit outputs give the
  216. current position. 
  217. The output values are coded so: (down) > (up) and (right) >
  218. (left) 
  219. The reset signal currently has no effect. 
  220. Delay: 20-30 
  221. Example: 
  222.     Arm 2b c1 c0 drive reset h2 h1 h0 v2 v1 v0; 
  223.  
  224. Clock 
  225. One output, one symbolic parameter, three integer parameters. 
  226. The symbolic parameter specifies  the  quiescent  value  of  the 
  227. output.   The  integer  parameters are: "on" duration, offset
  228. from t = 0, and period. 
  229. Delay: 10-15 
  230. Example: 
  231.     Clock 4W-5X Clk ONE 200 100 500; 
  232.  
  233.  
  234.  Counter 
  235. +_______ 
  236.  Two inputs, variable number of outputs. 
  237.  A synchronous counter with active-low reset signal.  The  count 
  238. occurs  on 
  239.  the falling edge. 
  240.  Delay: 15-22 
  241.  Example: (With five outputs) 
  242.     Counter aB Reset Count | O4 O3 O2 O1 O0; 
  243.  
  244.  
  245.  Dec2x4 
  246. +______ 
  247.  Two  inputs  to  be  decoded, one active-low input for enabling. 
  248. There are 
  249.  four active-low outputs. 
  250.  Delay: 15-22 
  251.  Example: 
  252.     Dec2x4 2A I1 I0 Enable O3 O2 O1 O0; 
  253.  
  254.  
  255.  Dec3x8 
  256. +______ 
  257.  Three  inputs  to be decoded, one active-low input for enabling. 
  258. There are 
  259.  eight active-low outputs. 
  260.  Delay: 15-22 
  261.  Example: 
  262.     Dec3x8 4X I2 I1 I0 Enable O7 O6 O5 O4 O3 O2 O1 O0; 
  263.  
  264.  
  265.  Die 
  266. +___ 
  267.  Seven LED-like spots in a Die configuration. 
  268.     Spot configuration:      a     e 
  269.  
  270.                              b  d  f 
  271.  
  272.                              c     g 
  273.  Example: 
  274.     Die 9x a b c d e f g; 
  275.  
  276.  
  277.  Disk 
  278. +____ 
  279.  There  are  two  inputs  and  no  outputs.   The  first  input
  280. controls the 
  281.  direction of spin, one for counterclockwise, and the second
  282. input activates 
  283.  the   spin  when  high.   Only  the  graphical  presentation  is 
  284. currently 
  285.  implemented. 
  286.  
  287.  
  288.                                                                  
  289.          5 
  290.  
  291.  
  292.  Example: 
  293.     Disk 2b ccw spin; 
  294.  
  295.  
  296.  End 
  297. +___ 
  298.  Terminates the body of the corresponding Module. 
  299.  Example: 
  300.     End ; 
  301.  
  302.  
  303.  Endm 
  304. +____ 
  305.  Terminates the Macro body. 
  306.  Example: 
  307.     Endm ; 
  308.  
  309.  
  310.  Gate 
  311. +____ 
  312.  Two  inputs  and  one  output.  A clock signal is gated to the
  313. output under 
  314.  control of a gating signal.  Only complete, positive clock
  315. pulses appear at 
  316.  the  output  regardless  of  the  timing  of  the  gate  signal. 
  317.  Gate  is 
  318.  high-active. 
  319.  Delay: 10-15 
  320.  Example: 
  321.     Gate 2b clk2 gate g-clock; 
  322.  
  323.  
  324.  Hexobot 
  325. +_______ 
  326.  Four inputs, six outputs, and one integer parameter. 
  327.  The falling edge of the drive signal causes a move as: 
  328.      c1,c0 : (0,0) (0,1) (1,0) (1,1) :: (BK) (CW) (CCW) (FWD) 
  329.  c1 and c0 must not be  in  transition  when  the  drive  makes 
  330. its  active 
  331.  transition.   The  six  outputs  are activated by switches on
  332. the hexobot's 
  333.  skirt.  These switches close as on-screen objects are bumped. 
  334. The  integer 
  335.  parameter  is  the  size  of  step  (in screen dots) the hexobot
  336. takes when 
  337.  moving forward or backward. 
  338.  Delay: 20-30 
  339.  Example: 
  340.     Hexobot 2b c1 c0 drive reset o5 o4 o3 o2 o1 o0 3; 
  341.  
  342.  
  343.  Jkff 
  344. +____ 
  345.  Master/slave  flip-flop  with  asynchronous, active-low Set and
  346. Clear.  The 
  347.  clock input is normally low.  The master rank accepts inputs
  348. when the clock 
  349.  is  high,  and  the falling edge of the clock gates the master
  350. to the slave 
  351.  rank.  This is a pre-defined Macro of eight Nands. 
  352.  Delay: As determined by the Nand network. 
  353.  Example: 
  354.     Jkff aa Set J Clk K Clr Q Q'; 
  355.  
  356.  
  357.  
  358.  
  359.  
  360.                                                                  
  361.          6 
  362.  
  363.  
  364.  
  365.  Local 
  366. +_____ 
  367.  This optional statement must immediately follow a Macro
  368. statement. 
  369.  A variable number of node labels may be declared. 
  370.  Example: 
  371.     Local x3 x2 x1 x0; 
  372.  
  373.  
  374.  Logic-analyzer 
  375. +______________ 
  376.  Variable  number  of inputs.  The inputs are displayed as
  377. functions of time 
  378.  using the character set {0,?,1}.  A transition to ONE  of  the 
  379. reset  line 
  380.  re-initializes  the display.  The first numeric parameter sets
  381. the sampling 
  382.  time.  The second numeric parameter gives the character
  383. dot-width  of  each 
  384.  display sample. 
  385.  Example: (With three inputs to be displayed) 
  386.     Logic-analyzer 4x I2 I1 I0 reset 10 7; 
  387.  
  388.  
  389.  Macro 
  390. +_____ 
  391.  This  header  statement introduces a Macro form.  The subsequent
  392. statements 
  393.  until the corresponding Endm; defines the body of the macro. 
  394.  Example: (With five formal parameters) 
  395.     Macro Name-one pa pb pc pd pe; 
  396.  
  397.  
  398.  Module 
  399. +______ 
  400.  This header statement introduces a Module.  The subsequent
  401. statements until 
  402.  the corresponding End; define the components within this 
  403. Module.   Modules 
  404.  may  be  nested and have variable numbers of inputs and outputs. 
  405. This is a 
  406.  graphical organization device only without any logical
  407. significance. 
  408.  Example: (With five inputs and three outputs) 
  409.     Module 4S Ia Ib Ic Id Ie | Ox Oy Oz; 
  410.  
  411.  
  412.  Mux2 
  413. +____ 
  414.  This  multiplexer  has  two  data inputs and an address input. 
  415. The address 
  416.  selects between the data inputs and routes that value to the
  417. single output. 
  418.  Delay: 20-30 
  419.  Example: 
  420.     Mux2 2A I1 I0 Addr Out; 
  421.  
  422.  
  423.  Mux4 
  424. +____ 
  425.  This  multiplexer has four data inputs and two address inputs. 
  426. The address 
  427.  selects the data input and routes that value to the single
  428. output. 
  429.  Delay: 20-30 
  430.  Example: 
  431.     Mux4 3G I3 I2 I1 I0 a1 a0 Out; 
  432.  
  433.  
  434.  
  435.  
  436.  
  437.                                                                  
  438.          7 
  439.  
  440.  
  441.  
  442.  Mux8 
  443. +____ 
  444.  This  multiplexer  has  eight  data  inputs  and three address
  445. inputs.  The 
  446.  address selects the data input and routes that value to the
  447. single output. 
  448.  Delay: 20-30 
  449.  Example: 
  450.     Mux8 23 I7 I6 I5 I4 I3 I2 I1 I0 a2 a1 a0 Out; 
  451.  
  452.  
  453.  Nand 
  454. +____ 
  455.  Variable number of inputs. 
  456.  Delay: 10-15 
  457.  Example: (With three inputs) 
  458.     Nand 4E a b c d; 
  459.  
  460.  
  461.  Nor 
  462. +___ 
  463.  Variable number of inputs. 
  464.  Delay: 10-15 
  465.  Example: (With five inputs) 
  466.     Nor 4E a b c d e f; 
  467.  
  468.  
  469.  Not 
  470. +___ 
  471.  Delay: 10-15 
  472.  Example: 
  473.     Not 1W Sig Sig'; 
  474.  
  475.  
  476.  One-shot 
  477. +________ 
  478.  This  device  emits  a  single pulse for each edge-trigger
  479. activation.  The 
  480.  first symbolic parameter is the quiescent output, and  the 
  481. second  is  the 
  482.  triggering  direction for the input.  The integer parameter is
  483. the duration 
  484.  of the emitted pulse. 
  485.  Delay: 10-15 
  486.  Example: 
  487.     One-shot 2x in out ZERO ONE 50; 
  488.  
  489.  
  490.  Or 
  491. +__ 
  492.  Variable number of inputs. 
  493.  Delay: 15-22 
  494.  Example: (With two inputs) 
  495.     Or 3J A B Or(A,B); 
  496.  
  497.  
  498.  Power-on 
  499. +________ 
  500.  The  single  output  is normally used for state initialization. 
  501. The single 
  502.  symbolic parameter is the quiescent value immediately upon start 
  503. up.   The 
  504.  integer  parameter  gives  the  time  at  which  the  output
  505. changes to the 
  506.  complement of the quiescent value to remain there for the
  507. remainder of  the 
  508.  
  509.  
  510.                                                                  
  511.          8 
  512.  
  513.  
  514.  simulation. 
  515.  Example: 
  516.     Power-on 3Z clr ZERO 100; 
  517.  
  518.  
  519.  Presettable-counter 
  520. +___________________ 
  521.  This  variable-length  counter  has asynchronous, active-low
  522. load and reset 
  523.  signals.  The count occurs on the falling edge of the clock
  524. signal. 
  525.  Delay: 15-22 
  526.  Example: (As a four-bit counter) 
  527.     Presettable-counter aB I3 I2 I1 I0 Load Reset Count | O3 O2
  528. O1 O0; 
  529.  
  530.  
  531.  Probe 
  532. +_____ 
  533.  A logic probe with a single input. 
  534.  Example: 
  535.     Probe 3D Sig; 
  536.  
  537.  
  538.  Pulser 
  539. +______ 
  540.  A  momentary  switch.   The symbolic parameter is the quiescent
  541. value.  The 
  542.  integer parameter is the duration of the output.  There  is  a 
  543. maximum  of 
  544.  eight pulsers which may be used. 
  545.  Delay 10-15 
  546.  Example: 
  547.     Pulser 2C Pa ZERO 100; 
  548.  
  549.  
  550.  Ram16x4 
  551. +_______ 
  552.  Random  access  memory:  16  words by 4 bits.  Active-low write
  553. and enable. 
  554.  Outputs are zero when not enabled. 
  555.  Delay: 10-15 
  556.  Example: 
  557.     Ram16x4 2B I3 I2 I1 I0 a3 a2 a1 a0 R/W' Enable O3 O2 O1 O0; 
  558.  
  559.  
  560.  Ram16x8 Ram32x4 Ram32x8 Ram64x4 Ram64x8 
  561. +_______ _______ _______ _______ _______ 
  562.  Additional  Ram's  available.   The  number  of data and address
  563. lines vary 
  564.  according to size. 
  565.  
  566.  
  567.  Register 
  568. +________ 
  569.  This  is  a  variable-width  register.   The  inputs  are 
  570. captured  by  an 
  571.  active-low load signal. 
  572.  Delay: 10-15 
  573.  Example: (With a width of three bits) 
  574.     Register 5R I2 I1 I0 Load | O2 O1 O0; 
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.                                                                  
  582.          9 
  583.  
  584.  
  585.  
  586.  Rom16x4 
  587. +_______ 
  588.  A  read-only  memory  with  16  words  by  4 bits.  Active-low
  589. enable.  The 
  590.  outputs are zero when the Rom is not enabled.  The contents are
  591. listed from 
  592.  low to high address. 
  593.  Delay: 10-15 
  594.  Example: (With contents set equal to address) 
  595.     Rom16x4 2B a3 a2 a1 a0 enable O3 O2 O1 O0 0 1 2 3 4 5 6 7 8 9
  596. 10  11  12 
  597.  13 14 15; 
  598.  
  599.  
  600.  Rom16x8 Rom16x12 Rom16x16 Rom32x4 Rom32x8 Rom32x12 Rom32x16
  601. Rom64x4 Rom64x8 
  602. +_______ ________ ________ _______ _______ ________ ________
  603. _______ _______ 
  604.  Rom64x12 Rom64x16 
  605. +________ ________ 
  606.  Additional Rom's available.  The number  of  address  lines, 
  607. outputs,  and 
  608.  contents vary according to size. 
  609.  
  610.  
  611.  Scope 
  612. +_____ 
  613.  There  may  be  a  variable number of inputs and these will be
  614. displayed as 
  615.  function of time.  The last input causes a recording sweep to 
  616. occur  on  a 
  617.  transition to ONE.  The first integer parameter sets the
  618. sampling time, and 
  619.  the second gives the trace length (in screen dots) for each
  620. display value. 
  621.  Example: (With three traces) 
  622.     Scope 4x I2 I1 I0 reset 20 3; 
  623.  
  624.  
  625.  Seven-segment 
  626. +_____________ 
  627.  The segments turn on when their corresponding input is a ONE. 
  628.    Segment configuration: 
  629.                                a 
  630.                               --- 
  631.                             f| g |b 
  632.                               --- 
  633.                             e| d |c 
  634.                               --- 
  635.  
  636.  Example: 
  637.     Seven-segment 9w a b c d e f g; 
  638.  
  639.  
  640.  Shift-register 
  641. +______________ 
  642.  This  is  a  universal synchronous shift register of variable
  643. length.  Both 
  644.  parallel and serial input and output are provided.  The
  645. mode-control inputs 
  646.  select the function according to: 
  647.  M1,M0: (0,0)-hold; (0,1)-SR; (1,0)-SL; (1,1)-Load. 
  648.  the mode-selected action occurs on the falling edge of the
  649. clock.  Reset is 
  650.  active-low and asynchronous. 
  651.  Delay: 15-22 
  652.  Example: (With three-bit width) 
  653.     Shift-register aB SRin I2 I1 I0 SLin M1 M0 reset clock | O2
  654. O1 O0; 
  655.  
  656.  
  657.  
  658.                                                                  
  659.         10 
  660.  
  661.  
  662.  
  663.  Sound 
  664. +_____ 
  665.  The  four-bit  input  selects  the  pitch of the note played on
  666. the micro's 
  667.  speaker.  The rising edge of the gating signal causes  the  note 
  668. to  play. 
  669.  Successive  pitches  have  a  ratio  equal to the twelfth-root
  670. of two.  The 
  671.  enable is low-active. 
  672.  Example: 
  673.     Sound 5G I3 I2 I1 I0 Gate Enable; 
  674.  
  675.  
  676.  Switch 
  677. +______ 
  678.  Switches  have  a  single  output that initially has the value
  679. of the given 
  680.  symbolic parameter.  The first switch in the source file is
  681. assigned to the 
  682.  "0"  key  of  the  keyboard,  the second to "1", etc.  The
  683. eleventh through 
  684.  sixteenth to ":;<=>?".  There is a limit of 16 switches. 
  685.  Delay: 10-15 
  686.  Example: 
  687.     Switch 3A Sw1 ONE; 
  688.  
  689.  
  690.  Sync 
  691. +____ 
  692.  This  synchronizing  element  transfers the data input to the
  693. output at the 
  694.  falling edge of the clock.  The input may be asynchronous. 
  695.  Delay: 10-15 
  696.  Example: 
  697.     Sync 1b data clk s-data; 
  698.  
  699.  
  700.  Time-probe 
  701. +__________ 
  702.  This component gives a digital readout of the time a given value
  703. is reached 
  704.  by the sampled input.  The capture must  be  suitably  armed.  
  705. The  single 
  706.  input  is  the signal to be monitored.  The first symbolic
  707. parameter is the 
  708.  threshold being monitored  for  the  input  signal.   The 
  709. second  symbolic 
  710.  parameter is the value of the input signal that will re-arm the
  711. capture. 
  712.  Example: 
  713.     Time-probe 2a sigx ???  ONE; 
  714.  This example  displays  the  time  when  sigx  comes  to  the 
  715. value  "???" 
  716.  (uncertain).  Re-arming occurs when sigx becomes ONE. 
  717.  
  718.  
  719.  X-stepper 
  720. +_________ 
  721.  This  positioning  device has asynchronous control inputs.  The
  722. rising edge 
  723.  of C0 followed by the rising edge of C1 gives a positive
  724. increment  to  the 
  725.  X-position.   The  opposite  phasing  in  the  changes of C0 and
  726. C1 gives a 
  727.  decrease in the position.  The current position  is  given  as 
  728. a  four-bit 
  729.  output.   Whenever  one  of the control signals is in
  730. transition, the other 
  731.  must be stable. 
  732.  Delay: 20-30 
  733.  Example: 
  734.     X-stepper 7b C1 C0 o3 o2 o1 o0; 
  735.  
  736.  
  737.  
  738.                                                                  
  739.         11 
  740.  
  741.  
  742.  
  743.  Xnor 
  744. +____ 
  745.  Exclusive-nor  (equivalence)  gate.  If there are more than two
  746. inputs, the 
  747.  function is that of even-parity. 
  748.  Delay: 15-22 
  749.  Example: (With three inputs) 
  750.     Xnor 5J a b c d; 
  751.  
  752.  
  753.  
  754.  Xor 
  755. +___ 
  756.  Exclusive-or gate.  If there are more than two inputs, the
  757. function is that 
  758.  of odd-parity. 
  759.  Delay: 15-22 
  760.  Example: (With five inputs) 
  761.     Xor 9Q a b c d e f; 
  762.  
  763.  
  764.  Y-stepper 
  765. +_________ 
  766.  See the description of the X-stepper. 
  767.  Delay: 20-30 
  768.  Example: 
  769.     Y-stepper 7b c1 c0 o3 o2 o1 o0; 
  770.  
  771.  
  772.  
  773.  
  774.                                 Command Line 
  775. +                               ____________ 
  776.  
  777.  The command line can have  a  supplementary  parameter  that 
  778. controls  the 
  779.  actions of SIM.  For example, 
  780.  
  781.      sim <infile> <flags (hex)>   {generic} 
  782.  
  783.              or 
  784.  
  785.      sim EXP1DATA 3C74 
  786.  
  787.  
  788.  If the flag field is omitted the default flag used is 3. 
  789.  
  790.  The flags are composed as the union of the desired bits from
  791. below: 
  792.  
  793.    Flag Name            Value      Action (if bit is set). 
  794.  
  795.    Time_Disp_flag         0x1      Turns on the time display. 
  796.    Mem_Part_flag          0x2      Displays the segment register
  797. contents. 
  798.    Throb_flag             0x4      Turns on the icon
  799. oscillograph. 
  800.    Q_Audit_flag           0x8      Enables auditing of the event
  801. queue. 
  802.    CompIO_flag           0x10      Provides commentary on the
  803. input. 
  804.    A_lists_flag          0x20      Lists the activation sets. 
  805.  
  806.  
  807.                                                                  
  808.         12 
  809.  
  810.  
  811.    Audit_Tab_flag        0x40      Enables auditing of the
  812. interconnections. 
  813.    Sub_Cell_flag         0x80      Displays the packing of screen
  814. cells. 
  815.    Manhattan_flag       0x100      Enables Manhattan-type
  816. interconnections. 
  817.    Scrn_Cell_flag       0x200      Shows the screen-grid
  818. allocations. 
  819.    Sig_Q_flag           0x400      Displays the length of the
  820. event queue. 
  821.    Echo_flag            0x800      Enables echoing of keyboard to
  822. screen. 
  823.    M_Audit_flag        0x1000      Enables auditing of memory
  824. allocation. 
  825.    Symbol_flag         0x2000      Shows symbol table operations.
  826.  
  827.    Node_label_flag     0x4000      Disables the labeling of
  828. interconnections. 
  829.    Dynamic_alloc_flag  0x8000      Enables comments on heap
  830. actions. 
  831.    Interconnect_flag  0x10000      Turns off the drawing of
  832. interconnections. 
  833.    Stack_flag         0x20000      Enables comments on stack
  834. allocation. 
  835.    Gate_Decal         0x40000      Enables the labeling of
  836. primitive gates. 
  837.    Q_Warp             0x80000      Provides disgnostic for
  838. time-warp. 
  839.    Hash_flag         0x100000      Dumps the hash table. 
  840.    Echo_comp_flag    0x200000      Turns off the echoing of the
  841. source file. 
  842.    MAC_DEF_FLAG      0x400000      Dumps the macro definitions. 
  843.    MAC_VERBOSE       0x800000      Enable comments during macro
  844. formation. 
  845.  
  846.  
  847.  The above flags which apply to the simulation interval can also
  848. be  toggled 
  849.  by interactive keyboard entries. 
  850.  
  851.  
  852.  
  853.  
  854.                      DIGITAL DESIGN LABORATORY, CPS 417 
  855.  
  856.                         SIM    Version 6.0    6-9-86 
  857.  
  858.                              Interactive Control 
  859.  
  860.  During simulation the network may be logically stimulated  or 
  861. the  display 
  862.  may be controlled.  The following single-key actions are
  863. provided: 
  864.  
  865.             Key  Action 
  866.              +   Double the window-growth increment--F1..F8
  867. effect. 
  868.              -   Halve the window-growth increment. 
  869.              A   Cycle through foreground colors (needs color
  870. monitor). 
  871.              B   Toggle the window border drawing option. 
  872.              C   Toggle the window foreground/background color. 
  873.              D   Toggle the auditing of dynamic (HEAP)
  874. allocation. 
  875.              E   Toggle echo of key to screen. 
  876.              H   Toggle the "Halt" of the simulation. 
  877.              I   Toggle the drawing of interconnections. 
  878.              K   Toggle the auditing of stack usage. 
  879.              L   Toggle the window labeling option. 
  880.              l   Toggle the the option of including node labels. 
  881.              M   Toggle Manhattan/point-to-point
  882. interconnections. 
  883.              m   Set the Module display hierarchy to the next
  884. higher level. 
  885.              n   Set the Module display hierarchy to the next
  886. lower level. 
  887.  
  888.  
  889.                                                                  
  890.         13 
  891.  
  892.  
  893.              Q   Toggle  Q-Warp  (Q  entries  in  reverse   time 
  894.  sequence) 
  895.  reporting. 
  896.              q   Toggle auditing (error checking) of event queue.
  897.  
  898.              R   Reset the simulation to time zero. 
  899.              r   Redraw the network in the current window. 
  900.              S   Toggle print of diagnostics of signal queueing. 
  901.              s   Toggle print of diagnostics of cell divisions. 
  902.              T   Toggle time display. 
  903.              t   Toggle "throb" display.  This is an 
  904.                  oscillographic-type display that is drawn 
  905.                  within the icon of each component. 
  906.              W   Advance to the next window. 
  907.              w   Wipe the current window to the background color.
  908.  
  909.              x   Exit SIM. 
  910.              y   Decrease the delay loop. 
  911.              z   Increase the delay loop, i.  e.  slow down the
  912. screen 
  913.                  presentation so you can watch the changes. 
  914.          Arrow   Move window boundary with respect to the 
  915.                  virtual circuit space in the direction 
  916.                  indicated. 
  917.     Ctrl-Arrow   Contract window edge indicated. 
  918.           Home   Contract top window edge.  Ctrl Up and Down 
  919.                  Arrow are stripped off by the DOS keyboard
  920. processor. 
  921.            End   Contract bottom window edge. 
  922.     0..9:;<=>?   Toggle the logic state of the switch with the 
  923.                  corresponding screen label.  If presently
  924. indeterminate, 
  925.                  change to one. 
  926.     "Alt"-0..9   If corresponding switch is at zero or one change
  927.  
  928.                  its output to indeterminate.  If indeterminate, 
  929.                  change to zero. 
  930.           a..h   Activate the pulser with the corresponding
  931. label. 
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.                                                                  
  955.         14 
  956.  
  957.  
  958.  
  959.  The function keys control the physical screen size of the 
  960. windows  through 
  961.  which  the virtual circuit is viewed.  The labels below indicate
  962. the action 
  963.  of these keys in moving window edges in either of two modes. 
  964.  
  965.                 | 
  966.              F5 ^                                           F5   
  967. F7 
  968.                 |                                           |    
  969.  | 
  970.              F7 v corner                                    ^    
  971.  v 
  972.                 | position                                  |    
  973.  | 
  974.        ---<--->-*---------------   ---                 
  975. ----*------*---- 
  976.          F1  F2 |              |    ^ F6                |        
  977.      | 
  978.                 |              |    |height   OR   F1-<-*->-F2   
  979. F3-<-*->-F4 
  980.                 |              |    v F8     <-->       |        
  981.      | 
  982.                 ----------------   ---                 
  983. ----*------*---- 
  984.                      width                                  |    
  985.  | 
  986.                 |---<----->----|             Mode           ^    
  987.  v 
  988.                     F3   F4                 toggled         |    
  989.  | 
  990.                                               by            F6   
  991. F8 
  992.                                               F9 
  993.  
  994.  
  995.  
  996.  
  997.                       COMPUTER SCIENCE DEPARTMENT 
  998.  
  999.  
  1000.                        DIGITAL DESIGN LABORATORY 
  1001.  
  1002.  
  1003.     The following video tapes are available for review in the
  1004. audio-visual 
  1005.  section of the main library or they can be purchased for
  1006. off-campus use. 
  1007.  One is broadcast each week on the campus video network on
  1008. Mondays at 9:00 
  1009.  a.m.  Lecture 1 is broadcast on the first Monday of the term. 
  1010.  
  1011.     The files listed below are available from the TA or can be
  1012. obtained to 
  1013.  accompany off-campus purchases.  These are most of the files
  1014. used in the 
  1015.  video-taped demonstrations.  You are encouraged to use these
  1016. files to 
  1017.  clarify netlist specifications, to experiment with networks, and
  1018. to form 
  1019.  the basis of networks you need to create for the various
  1020. experiments. 
  1021.  
  1022.  
  1023.   Lecture   Topics                                              
  1024. Files 
  1025.  
  1026.      1      Introduction, single-output combinational           
  1027. NT1, FIBOC, 
  1028.             networks, oscilloscope instrumentation.             
  1029. FIBOMUX 
  1030.                                                                 
  1031. CNTSCOPE 
  1032.  
  1033.      2      Logic analyzer, multiple-output combinational       
  1034. CATDOG 
  1035.             networks, static hazards.                           
  1036. ALL3 
  1037.                                                                 
  1038. CHAINLA 
  1039.  
  1040.      3      Latches, flip-flops, simple machines,               
  1041. LATCH 
  1042.             event-driven simulation.                            
  1043. JKHIER 
  1044.                                                                 
  1045. FFGG 
  1046.  
  1047.      4      Initialization, synchronization with asynchronous   
  1048. TCSYNC 
  1049.             external inputs, feedback error control,            
  1050. ANDCHAIN 
  1051.             conservative simulation and waveform dispersion.    
  1052. DISPER 
  1053.  
  1054.      5      Tone generation, sequential controllers, stepper    
  1055. DORA 
  1056.             motors, stack machine and periodicity in event      
  1057. STACK 
  1058.             queues.                                             
  1059. DISKS 
  1060.  
  1061.      6      The 4B1 computer:  instruction set, timing,         
  1062. 4B1ROM 
  1063.             hard-wired control, executing a program from ROM,   
  1064. 4B1 
  1065.             manual program entry and execution using RAM. 
  1066.  
  1067.      7      A micro controller for the 4B1, microprogramming,   
  1068. MCNTRL 
  1069.             discarding the hard-wired control and merging.      
  1070. 4B1&UC 
  1071.             Writing netlist generators in a high-level          
  1072. BIG200 
  1073.             language. 
  1074.