home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / pcwk_09_96.iso / demo / elmark / cupl / manual / sb4.txt < prev    next >
Text File  |  1992-01-20  |  10KB  |  226 lines

  1. .c1.Using PTOC  4
  2.     PTOC converts PALASM source files into CUPL and CSIM source files in 
  3.     order to maintain existing designs and develop new ones while using 
  4.     only one universal language.
  5.  
  6.     Use PTOC on files that have assembled successfully with a PALASM 
  7.     assembler.  The output of PTOC is directly compatible with CUPL 
  8.     syntax and may be compiled without modifications.
  9.  
  10. o   .c2.RUNNING PTOC
  11.     Run PTOC with the following format:
  12.  
  13.         ptoc palasm_file1
  14.         palasm_file2 ...
  15.  
  16.     where
  17.  
  18.         palasm_file1, palasm_file2 are PALASM source files to be 
  19.         translated.
  20.  
  21.     There is no standard file extension for PALASM source files; specify 
  22.     the full filename and extension when running PTOC.  For each input 
  23.     PALASM file, PTOC generates a CUPL logic description file, 
  24.     filename.PLD; the filename is the same as the input PALASM filename.
  25.  
  26.     If the PALASM file contains a function table (that is, test vector 
  27.     information) PTOC also generates a test specification file, 
  28.     filename.SI, that can be input to CSIM.  It is possible to specify 
  29.     more than one file to be translated with a single PTOC command line.
  30.  
  31.    For example, to translate the files COUNT2 and DECADE, type the 
  32.    following:
  33.  
  34.         ptoc count2 decade
  35.  
  36.     PTOC generates the files COUNT2.PLD and DECADE.PLD. If the PALASM 
  37.     files contain test vectors, PTOC also generates COUNT2.SI and 
  38.     DECADE.SI.
  39.  
  40. o   .c2.PALASM SOURCE   FILE FORMAT
  41.     Because of variations in PALASM assemblers, PTOC follows the 
  42.     standard set by Monolithic Memories in the PAL Handbook (Third 
  43.     Edition).  Figure 4-1 shows a sample PALASM source file in the 
  44.     format required by PTOC.
  45.  
  46.     -----------------------------------------------------------------
  47.     PAL16R8                             Line 1, col 1 - PAL part
  48.     #PART NO 1234B                      Line 2 - User's part 
  49.     #SAMPLE                             Line 3 - Name of device
  50.     GYRO, SAN JOSE, CA                  Line 4 - Company, city,state
  51.         CLK I0 I1 I2 I3 I4 I5 I6 I7     Line 5 - Pin list (must start on 
  52.         GND /OE O1 O2 O3 NC NC                  line 5), consists of 20 or 24 
  53.         NC NC NC VCC                            symbolic names that are 
  54.                                                 consecutively assigned 
  55.                                                 to pins 1 through 20 
  56.                                                 (24).
  57.     /O1 := /I0*/I1*/I2 + /I1*/I2*/I3    Equations
  58.     /O2 := /I0*/I1*/I2 + /I1*/I2*/I4
  59.     /O3 := /I0*/I1*/I2 + /I1*/I2*/I5
  60.  
  61.     FUNCTION TABLE    Keyword (must start in column 1)
  62.     I0 I1 I2 I3 I4 I5 CLK /OE 01 02 03    Function table pin list;
  63.                                        I0-I5 CLK /OE 01-03
  64.  
  65.     COMMENTS    Optional    comments
  66.     -------------------------------- Dashed line (length optional)
  67.     LLLLLL C L LLL LOAD ZEROS       Function table vectors,
  68.     HHHHHH C L HHH LOAD ONES        one vector per line
  69.     HHHHHL C L HHH WHATEVER         followed by optional comments
  70.     HHHHLL C L HHH
  71.     HHHLLL C L HHH
  72.     -------------------------------- Dashed line(length optional)
  73.  
  74.     DESCRIPTION                     Keyword, optional if following 
  75.     THIS IS A SAMPLE PALASM FILE    function table (must start in column 
  76.     FOR A PAL16R8 DEVICE            1 followed by comments
  77.     -----------------------------------------------------------------
  78.     Figure 4-1.  Sample PALASM File with Explanations
  79.  
  80.     The following sections refer back to this sample file to show how 
  81.     PTOC converts PALASM files to CUPL format.
  82.  
  83. o   .c2.PTOC .PLD   OUTPUT FILE
  84.     PTOC generates a CUPL source file (palasm_file.PLD) for each PALASM 
  85.     file that it translates.  The CUPL source file is organized into 
  86.     header information, pin assignments, and equations.
  87.  
  88. o   .c3.Header   Information
  89.     PALASM header information cannot be directly translated into CUPL 
  90.     header information. PTOC places dummy header information into the 
  91.     CUPL source file, and puts the PALASM header information within 
  92.     comments.  Use a text editor to replace the dummy header information 
  93.     with valid information to maintain consistent documentation. Figure 
  94.     4-2 shows the header information created by translating the PALASM 
  95.     sample file in Figure 4-1.
  96.  
  97.  
  98.         NAME            XXXXX ;
  99.         PARTNO          XXXXX ;
  100.         REV             XXXXX ;
  101.         DATE            XXXXX ;
  102.         DESIGNER        XXXXX ;
  103.         COMPANY         XXXXX ;
  104.         ASSEMBLY        XXXXX ;
  105.         LOCATION        XXXXX ;
  106.  
  107.         /* PAL16R8 */
  108.         /* PART NO 1234B */
  109.         /* SAMPLE */
  110.         /* GYRO, SAN JOSE, CA        */
  111.     Figure 4-2.  Header Information Translation
  112.  
  113. o   .c3.Pin List
  114.     PTOC translates the PALASM pin list into CUPL   pin   assignments
  115.     beginning at line five in the PALASM source  file.  CUPL does not  
  116.     translate GND, NC  and  VCC  pins.  Figure 4-3 shows the pin list 
  117.     translation from the sample  PALASM  file  in Figure 4-1.
  118.  
  119.     -----------------------------------------------------------------
  120.         PIN 1 =  CLK ;
  121.         PIN 2 =  I0 ;
  122.         PIN 3 =  I1 ;
  123.         PIN 4 =  I2 ;
  124.         PIN 5 =  I3 ;
  125.         PIN 6 =  I4 ;
  126.         PIN 7 =  I5 ;
  127.         PIN 11 = !OE ;
  128.         PIN 12 =  O1 ;
  129.         PIN 13 =  O2 ;
  130.         PIN 14 =  O3 ;
  131.     -----------------------------------------------------------------
  132.     Figure  4-3.  Pin   List Translation
  133.  
  134. o   .c3.Equations
  135.     PTOC translates PALASM equations into CUPL equations, replacing 
  136.     symbols, and adding parentheses and variable extensions as 
  137.     necessary.  Figure 6-4 shows the equation translation for the PALASM 
  138.     sample file shown in Figure 4-1.
  139.  
  140.         !O1.D = !I0 & !I1 & !I2 # !I1 & !I2 & !I3 ;
  141.         !O2.D = !I0 & !I1 & !I2 # !I1 & !I2 & !I4 ;
  142.         !O3.D = !I0 & !I1 & !I2 # !I1 & !I2 & !I5 ;
  143.  
  144.     Figure   4-4.   Equation Translation
  145.  
  146.     PTOC replaces the *, +, and / symbols in the PALASM file with 
  147.     the CUPL &, # and ! symbols respectively.  PTOC 
  148.     translates the assignment operator for registered outputs, :=, by 
  149.     adding the .D extension to the variable name on the left side of 
  150.     the assignment statement (see the subtopic, Extensions in 
  151.     Chapter 1).
  152.  
  153. o   .c2.PTOC .SI   OUTPUT FILE
  154.     When PTOC translates a PALASM file containing a function table, it 
  155.     generates a CSIM source file, (palasm_file.SI).  This CSIM source 
  156.     file is organized into header information, pin order, and vectors. 
  157.     The header information is translated in the same manner as the CUPL 
  158.     source file header information (see the subtopic, Header Information 
  159.     in this chapter).
  160.  
  161.     PTOC translates the PALASM function table pin list into a CSIM pin 
  162.     order list.  Figure 4-5 shows the function table pin list 
  163.     translation for the PALASM sample file shown in Figure 4-1.
  164.  
  165.         ORDER:I0, I1, I2, I3, I4, I5, CLK, !OE, O1, O2, O3;
  166.  
  167.     Figure 4-5.  CSIM Pin Order List
  168.  
  169.     PTOC translates the PALASM function table vectors into a CSIM 
  170.     vectors list. Figure 4-6 shows the function table vectors 
  171.     translation for the PALASM sample file shown in Figure 4-1.
  172.  
  173.         VECTORS:
  174.         000000        C        0        LLL        /* LOAD ZEROS */
  175.         111111        C        0        HHH        /* LOAD ONES */
  176.         111110        C        0        HHH        /* WHATEVER */
  177.         111100        C        0        HHH
  178.         111000        C        0        HHH
  179.  
  180.     Figure 4-6. Vectors List
  181.  
  182. o   .c3.Translation   Ambiguities
  183.     Because of inherent ambiguities in PALASM syntax, certain conditions 
  184.     cannot be accurately translated into CUPL syntax.  Many PALASM 
  185.     assemblers do not verify that the correct assignment statement, "=" 
  186.     for combinatorial outputs and ":=" for registered outputs, is being
  187.     used.  For example, source assemblers treat the following equations 
  188.     in the same manner:
  189.  
  190.         OUT = INA * INB
  191.         OUT := INA * INB
  192.  
  193.     PTOC   translates   them
  194.     respectively as follows:
  195.  
  196.         OUT = INA & INB
  197.         OUT.D = INA & INB
  198.  
  199.     Another ambiguity concerns the use of exclusive OR devices.  PTOC 
  200.     requires the use of the PALASM exclusive OR symbol ":+:" to 
  201.     explicitly define the position of the exclusive OR in the equation.  
  202.     However, some PALASM assemblers allow an exclusive OR output to be 
  203.     organized by position without explicitly defining the exclusive OR.  
  204.     For example, some PALASM assemblers treat the following two 
  205.     equations in the same manner:
  206.  
  207.         OUT := INA * INB        + INC * IND    +        INE * INF
  208.         OUT := INA * INB        + INC * IND        :+: INE * INF
  209.  
  210.     PTOC translates them respectively as follows:
  211.  
  212.         OUT.D = INA & INB
  213.               # INC & IND
  214.               # INE & INF;
  215.         OUT.D = INA & INB
  216.               # INC & IND
  217.               $ INE & INF;
  218.  
  219.     The most troublesome ambiguity is in the function table of source 
  220.     files with bi-directional pins.  Since the same values are used by 
  221.     PALASM to indicate inputs and outputs during simulation, PTOC cannot 
  222.     accurately determine whether a bidirectional pin should be treated 
  223.     as an input or an output. If a PALASM source file has bidirectional 
  224.     pins, check the vector table translation in the source specification 
  225.     file to determine whether PTOC's interpretation is correct.
  226.