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

  1. .C1.    FPGA AND HIGH DENSITY PLDS                  5
  2.  
  3.         The STARTER KIT does not support the high density PLDs or FPGAs. 
  4.         This information is provided for users of CUPL "PLD Master" or 
  5.         "Total Designer".
  6.  
  7. o .c2.DESIGNING WITH FPGAs and HIGH DENSITY PLDs
  8.  
  9.     This chapter will provide information on how CUPL is used in 
  10.     conjunction with FPGA tools to create FPGA designs. Typically, FPGA 
  11.     tools offer limited input formats such as Boolean equations and 
  12.     schematic. Higher level state machine designs are often difficult 
  13.     with this approach and a language like CUPL can make this process 
  14.     much easier.
  15.  
  16.     In addition, CUPL now has the capability to handle more advanced 
  17.     architectures such as MACH from AMD and MAPL from National 
  18.     Semiconductor.This capability is made available via the OPEN-PLA 
  19.     format and the external fitter technology now built into CUPL. To be 
  20.     able to use some of these devices, supplemental tools may have to be 
  21.     purchased from LOGICAL DEVICES or from the FPGA manufacturer.  Due 
  22.     to DOS memory restrictions and the memory requirements of these 
  23.     external fitter programs, there may be cases where the CUPL menu 
  24.     system cannot be used. In these cases, the command line version of 
  25.     CUPL should be used.
  26.  
  27. o   .c3.XILINX XNF   INTERFACE
  28.     This section describes how a CUPL source file can be translated into 
  29.     an XNF netlist file.  CUPL generates an equivalent PALASM file, 
  30.     using the c flag, which can be used as input to PDS2XNF.  PDS2XNF 
  31.     will translate the PALASM file into an XNF file to be used by the 
  32.     remaining XILINX XACT_ integrated software package.
  33.  
  34.                     [Picture]
  35.     Figure 5-1. CUPL Design to LCA Translation Data Flow.
  36.  
  37. .c4.Getting an XNF File
  38.     Just as CUPL .i.PALASM:generating;.i.CU PL:generating PALASM 
  39.     output;.i.CUPL Flags:-C;.i.Flags:-C;is run to compile a PLD design, 
  40.     it can be run using the -c flag to produce an equivalent PALASM 
  41.     format file.  For example, entering the following:
  42.  
  43.     CUPL -c  EXAMPLE.PLD
  44.         will create the PALASM file EXAMPLE.PDS.
  45.  
  46. .c4.Translating an Existing PLD File
  47.     Any PLD which can be compiled by CUPL can be translated into PALASM 
  48.     format. Because a device must be specified for PLD design, a device 
  49.     must also be specified when translating a CUPL file to a PALASM 
  50.     format.  In order to preserve the original use of the PLD source 
  51.     file, do not change the device name; CUPL will translate the file 
  52.     based on the devices that PALASM recognizes. A recognizable device 
  53.     is translated into the PDS file using the names given in Table 5-1.  
  54.     An unrecognizable or VIRTUAL device is translated into the PDS file 
  55.     as USER. The VIRTUAL device should be specified when a source file 
  56.     is for XILINX devices.
  57.  
  58.         Table 5-1. PALASM Device Listing
  59.  
  60.         PAL6L16
  61.         PAL10H8
  62.         PAL10L8
  63.         PAL10H20G8
  64.         PAL10H20P8
  65.         PAL12H6
  66.         PAL12L6
  67.         PAL12L10
  68.         PAL14H4
  69.         PAL14L4
  70.         PAL14L8
  71.         PAL16C1
  72.         PAL16H2
  73.         PAL16L2
  74.         PAL16L6
  75.         PAL16L8
  76.         PAL16P8
  77.         PAL16R4
  78.         PAL16R6
  79.         PAL16R8
  80.         PAL16RA8
  81.         PAL16RP4
  82.         PAL16RP6
  83.         PAL16RP8
  84.         PAL18L4
  85.         PAL20C1
  86.         PAL20L2
  87.         PAL20L8
  88.         PAL20L10
  89.         PAL20R4
  90.         PAL20R6
  91.         PAL20R8
  92.         PAL20RA10
  93.         PAL20RS4
  94.         PAL20RS10
  95.         PAL20S10
  96.         PAL20X4
  97.         PAL20X8
  98.         PAL20X10
  99.         PAL22RX8
  100.         PAL22V10
  101.         PAL32R16
  102.         PAL32VX10
  103.         PAL64R32
  104.         PMS14R21
  105.  
  106. .c4.Using a PALASM Device
  107.     .i.PALASM;When a PALASM device is selected, CUPL will generate a 
  108.     functionally-equivalent PALASM file, which can then be translated 
  109.     into an XNF file.
  110.  
  111.     When a device is selected that PALASM does not recognize, CUPL will 
  112.     insert USER as the device name in the PALASM file.  PDS2XNF 
  113.     recognizes this USER device.  Some PLD macro configurations which 
  114.     are not supported by PALASM will be ignored or translated into a 
  115.     PALASM equivalent.  This will generate a warning message. For 
  116.     example, if the extension .i.CKMUX;.i.Extensions:CKM UX;CKMUX is 
  117.     used, it is considered to be a CK extension, and a warning message 
  118.     is generated. If the extension .i.DFB;.i.Extensions:DFB;D FB is 
  119.     used, it is ignored and a warning message is generated.
  120.  
  121. .c4.Source Files for XILINX Devices
  122.     The following discusses how to create a new CUPL source file for 
  123.     XILINX devices.
  124.  
  125.     .i.XILINX devices;When a new CUPL source file is created, any device 
  126.     on the CUPL device list can be specified.  The imaginary PLD9000 or 
  127.     the limitless .i.Virtual:device;.i.devic e:virtual;VIRTUAL device 
  128.     can also be specified.  Refer to the device support section of the 
  129.     CUPL manual for details on these devices.  The CUPL source file 
  130.     remains the same except for the following few differences:  Pin 
  131.     numbers are not needed when using the VIRTUAL device.  The 
  132.     .i.Virtual:pin declarations;.i.PIN:use with virtual device;PIN 
  133.     keyword is still used, however, to assign names to the pins of a 
  134.     device that will be used later.  For example:
  135.  
  136.         pin = Input0 ;
  137.  
  138.     The keyword .i.Keywords:NODE;.i.NODE;N ODE is not used with the 
  139.     VIRTUAL device.  The keyword .i.Keywords:PINNODE;.i.PIN NODE;PINNODE 
  140.     is, however, still used.
  141.  
  142. o   .c3.DEVICE   FITTERS
  143.     Newly .i.Device Fitters;.i.Fitter;designed devices are becoming 
  144.     increasingly more complex.  The time required to make design tools 
  145.     available for these new devices is also therefore increased because 
  146.     of more complex software issues.  The solution to this is to have 
  147.     the device manufacturer design a backend device .i.Fitter;fitter 
  148.     that simply takes the logic description and fits it into the device 
  149.     and creates a JEDEC file. The manufacturer can begin work on this 
  150.     software at a much earlier stage in the development cycle than the 
  151.     tool manufacturers. The trick is to take this fitter tool and plug 
  152.     it into the backend of CUPL. CUPL is therefore, relieved of the task 
  153.     of figuring out how equations are placed into the device, it merely 
  154.     reduces the equations and feeds them to the fitter. The fitter in 
  155.     turn uses these equations to create a JEDEC file.
  156.  
  157.     Although CUPL now has less to worry about in terms of how to fit 
  158.     equations into the device, it still has a lot of work to do.  For 
  159.     example, when using devices that require fitters, pin numbers are 
  160.     not necessary.  If a designer does put pin numbers into the PLD file 
  161.     CUPL needs to check to see if these are valid or not. The same 
  162.     situation goes for valid extensions. If a designer tries to use T 
  163.     registers in a device that does not have the capability, CUPL needs 
  164.     to figure this out and let the user know.  Even if the fitter can 
  165.     adequately handle a case where a designer tries to use a function 
  166.     that does not exist in the device, it is better to trap these design 
  167.     errors earlier in the compile cycle because of time.  Why should a 
  168.     designer wait for CUPL to compile the design and create an Open PLA 
  169.     file then to find out that he made a mistake.
  170.  
  171.     Another thing that CUPL does is to call the fitter with the correct 
  172.     options, sometimes it calls a fitter multiple times using different 
  173.     options until it gets a fit or exhausts all possible options.  The 
  174.     best part of all this is that the designer does not have to worry 
  175.     about calling the fitter at all because CUPL calls the appropriate 
  176.     fitter for the device being used. If it were not for the fact that 
  177.     the fitter produced screen output, the user would not even be aware 
  178.     that a separate fitter was being called.
  179.  
  180.                     [Picture]
  181.      Figure 5-2. CUPL-Fitter Interaction
  182.  
  183.     Because of the highly specialized nature and high complexity of 
  184.     fitters, software fitters are combined with CUPL as an option. Some 
  185.     fitters take many man years of development.
  186.  
  187. o   .c3.USING CUPL   FOR FPGA2020   DEVELOPMENT
  188.  
  189.     .i.PLUSTRAN;.i.device:FPGA 2020;CUPL is well suited as an 
  190.     enhancement to PLUS LOGIC's PLUSTRAN development tool.  When 
  191.     developing using schematic capture it is difficult to implement
  192.     state machines and tables. CUPL may be used to assist the developer 
  193.     in these cases and may be easily integrated into the PLUSTRAN 
  194.     environment.  This note is meant to assist the developer in the 
  195.     integration of CUPL into the PLUSTRAN environment and the assumption 
  196.     is made that the user is familiar with PLUSTRAN.
  197.  
  198.     Once CUPL and PLUSTRAN have been installed, run PLUSTRAN. Under the 
  199.     PLUS DIRECTOR ROOT MENU, set up the Design Name to be the same as 
  200.     the CUPL source file, and the Design Directory to be the location of 
  201.     the CUPL source files.
  202.  
  203.     [Picture]
  204.      Figure 5-3 PLUS DIRECTOR ROOT MENU
  205.  
  206.     Now select Options.  Under the OPTIONS MENU, set up the following:b) 
  207.     Editor Command (editor of your choice) c) Editor Directoryd) 
  208.     Compiler Command (select MCUPL)e) Compiler Directory (use CUPL 
  209.     directory)i) Equation File Ext (use PDS)
  210.  
  211.     [Picture]
  212.      Figure 5-4. OPTIONS  MENU
  213.  
  214.     MCUPL is the CUPL menu system. It will allow the developer to edit 
  215.     and compile CUPL source files from within the PLUSTRAN environment.  
  216.     Make sure that when the CUPL file is compiled, that PALASM output is 
  217.     selected (-c option flag). This will cause CUPL to create a .PDS 
  218.     output file for PLUSTRAN.  Once the options have been set up.  
  219.     Return to the ROOT MENU.  Now select Behavioral Entry.
  220.  
  221.     Under the BEHAVIORAL ENTRY MENU select
  222.     Options.
  223.  
  224.     [Picture]
  225.  
  226.      Figure 5-5. BEHAVIORAL     ENTRY MENU
  227.  
  228.     Under this OPTIONS MENU, use the same setup as above:a) Editor 
  229.     Command (editor of your choice) b) Editor Directoryc) Compiler 
  230.     Command (select MCUPL)d) Compiler Directory (use CUPL directory)e) 
  231.     Equation File Ext (use PDS)
  232.  
  233.     [Picture]
  234.      Figure 5-6. OPTIONS MENU
  235.  
  236.     Return to the BEHAVIORAL ENTRY MENU.
  237.  
  238.     To edit and compile CUPL source files, select Compiler. This will 
  239.     run MCUPL. When a design is completed and compiled using CUPL with 
  240.     the PALASM output selected, the .PDS file must be edited.
  241.  
  242.     Select Edit Design from the main MCUPL menu.  Select the design file 
  243.     with the .PDS extension.  On the line that contains CHIP <name> 
  244.     USER, change the word USER to FPGA , so that the line reads CHIP 
  245.     <name> FPGA and save the file.  For most applications this may be 
  246.     all that is necessary for PLUSTRAN to compile the .PDS file 
  247.     successfully.  Refer to the PLUSTRAN manual for differences between 
  248.     PALASM and PLUSASM.
  249.  
  250.    Note
  251.      Since the PALASM file contains equations already reduced by CUPL 
  252.      the user may wish to add the PLUSASM MINIMIZE OFF command for the 
  253.      outputs, to disable the PLUSASM minimizer which saves some 
  254.      compilation time.
  255.  
  256.     Once the CUPL PALASM file has been edited, Quit the MCUPL 
  257.     environment.  This will return the developer to the PLUSTRAN 
  258.     BEHAVIORAL ENTRY MENU.
  259.  
  260.     Select Assemble from this menu.
  261.  
  262.     This will compile the source file. Refer to the PLUSTRAN manual if 
  263.     errors occur.
  264.  
  265.     Once the file has been "Assembled" without errors, select Integrate 
  266.     Equations from the BEHAVIORAL ENTRY MENU.  This will fit the design 
  267.     into the selected PLUS LOGIC component.  Once the design has been 
  268.     "Integrated" into a component successfully, return to the PLUS 
  269.     DIRECTOR ROOT MENU.  Select Programming from the ROOT MENU.
  270.  
  271.      [Picture]
  272.  
  273.      Figure 5-7. PROGRAMMING MENU
  274.  
  275.     Select a Signature ID from the PROGRAMMING MENU before generating 
  276.     the output file. To generate an Intel Hex file, select Export EPROM 
  277.     Map.  The design will then be ready to be programmed into the 
  278.     selected PLUS LOGIC component.
  279.  
  280.           [Picture]
  281.      Figure 5-8. Using CUPL with PLUSASM
  282.  
  283.  
  284.  
  285.  
  286.         Name            PLUS LOGIC Counter;
  287.         Partno          FPGA2020;
  288.         Revision        REV_1;
  289.         Date            July 1991;
  290.         Company         Logical Devices;
  291.         Assembly        None;
  292.         Location        U1;
  293.         device          virtual;
  294.         pin = CLK;
  295.         pin = A;
  296.         pin = B;
  297.         pin = C;
  298.         pin = D;
  299.         pin = LOAD;
  300.         pin = CLRA;
  301.         pin = ENP;
  302.         pin = ENT;
  303.         pin = SCO;
  304.         pin = QA;
  305.         pin = QB;
  306.         pin = QC;
  307.         pin = QD;
  308.         field DataIn = [D,C, B, A];
  309.         field DataOut = [QD, QC, QB,QA];
  310.  
  311.         sequenced DataOut {
  312.        $repeat State = [0..15]
  313.        present      'd'{State}
  314.        if ENP next  'd'{(State+1)%16};
  315.        default next 'd'{State};
  316.        $repend
  317.         DataOut.ar = CLRA;
  318.         SCO = ENT & DataOut:&;
  319.  
  320.      Figure 5-9. CUPL Input File
  321.  
  322.         TITLE           PLUS LOGIC Counter
  323.         PATTERN         FPGA2020
  324.         REVISION        REV_1
  325.         DATE            July 1991
  326.         AUTHOR          Jim Millener
  327.         COMPANY         Logical Devices
  328.         CHIP PLCNTR FPGA
  329.         CLK A B C D LOAD CLRA ENP ENT SCO QA QB QC QD
  330.         MINIMIZE OFF SCO QA QB QC QD
  331.  
  332.         EQUATIONS
  333.         QA.RSTF = CLRA
  334.         QA := ENP * /QA  + /ENP * QA
  335.         QB.RSTF = CLRA
  336.         QB := /ENP * QA * QB  +  ENP * QA * /QB  +  /QA * QB
  337.         QC.RSTF = CLRA
  338.         QC := /ENP * QA * QB * QC  +  ENP * QA * QB * /QC +  /QA * QB * 
  339.                 QC  +  /QB * QC
  340.         QD.RSTF = CLRA
  341.         QD := /ENP * QA * QB * QC * QD  + ENP * QA * QB * QC * /QD  +   
  342.                 QA * QB * /QC * QD  +  /QB * QD  +  /QA * QB * QD
  343.         SCO = ENT * QA * QB * QC * QD
  344.  
  345.      Figure 5-10. PLUSASM     Output File
  346.  
  347. o   .c3.USING CUPL   WITH THE MACH   DEVICES
  348.     .i.MACH;.i.device:MACH;The MACH (Macro Array CMOS High-density) 
  349.     family provides a way to implement large logic designs in a 
  350.     programmable logic device.  Their unique architecture makes these 
  351.     devices ideal for replacing large amounts of TTL logic.  They 
  352.     provide increased functionality without forcing the designer to
  353.     sacrifice speed and cost.  The MACH devices consist of PAL blocks 
  354.     interconnected by a programmable switch matrix.  Designs that
  355.     consist of several interconnected functional modules can be 
  356.     efficiently implemented by placing the modules into the PAL blocks.
  357.     Designs that are not as modular can still be implemented since the 
  358.     switch matrix provides a high level of connectivity between the PAL 
  359.     blocks. This internal arrangement of resources is managed 
  360.     automatically by the fitter, so that the designer does not have to 
  361.     be concerned with the logic implementation details.
  362.  
  363.     Designs can be entered using multiple state machine, truth table, 
  364.     and Boolean input formats.  Pins and nodes can be left unassigned, 
  365.     allowing the fitter to place them in optimal locations.  Signals 
  366.     that must be located on critical pins can also be manually placed; 
  367.     the fitter will then fit the rest of the design on the remaining 
  368.     pins.
  369.  
  370.     Once the design entry is complete, CUPL will compile and minimize 
  371.     the logic, automatically calling the fitter to fit the design into 
  372.     the device. A JEDEC file is generated for programming the device and 
  373.     a documentation report is generated that describes the final 
  374.     implementation.  Unit-delay simulation is provided, allowing the 
  375.     designer to verify that the design is operating correctly.  The 
  376.     simulation results can be viewed as waveforms for easy analysis.  
  377.     JEDEC-format test vectors are also generated, and are added to the 
  378.     JEDEC file. It is not critical to do detailed internal timing 
  379.     simulations, since the placement and routing of the logic will not 
  380.     affect timing.
  381.  
  382.     To design with MACH devices using CUPL, a separate MACH package is 
  383.     required. It contains the MACH device library and a specialized 
  384.     fitter.  Included in the package is a complete MACH User's Manual 
  385.     that contains detailed information on designing with the MACH 
  386.     devices. This package can be obtained by calling Logical Devices.
  387.  
  388.    .c3.USING CUPL   WITH THE MAPL   DEVICES
  389.     .i.MAPL;.i.FPGA;.i.device:  MAPL;If you have ever had to design a 
  390.     medium to large sized sequential state machine or controller in a 
  391.     high density PAL-type architecture or programmable gate array, you 
  392.     will be familiar with the "product term limitation", "routing", and 
  393.     "skew" problems.  By the time that you have dealt with these 
  394.     problems you have probably paid a major penalty in overall system 
  395.     performance.
  396.  
  397.     The MAPL devices address the above concerns by providing flexible, 
  398.     user-programmable architectures that utilize standard PLD 
  399.     development tools and programmer support.  The MAPL devices are a 
  400.     family of higher density programmable logic devices. All MAPL 
  401.     devices contain a core architecture of multiple interconnected 
  402.     pages, that is expandable into a more resourceful and larger 
  403.     pin-count packages.  More importantly, the delay time from any input 
  404.     to any output via any internal FPLA page is always the same for any 
  405.     given MAPL device.  A single MAPL device is also able to integrate 
  406.     multiple designs that were implemented in PAL, GAL and discrete 
  407.     logic devices.
  408.  
  409.     When creating a design for a MAPL device using CUPL, you use the 
  410.     same familiar state machine or Boolean equations as in any other 
  411.     CUPL design.  CUPL will compile this design and then call the MAPL 
  412.     fitter program. CUPL will look for the MAPL device mnemonic on the 
  413.     command line or in the PLD file header and it will call the 
  414.     appropriate fitter program.
  415.  
  416.     The MAPL fitter will synthesize the necessary logic to incorporate 
  417.     the page registers into the design logic. This will then create a 
  418.     JEDEC file which contains the completed design.
  419.  
  420.     To design with the MAPL devices and CUPL, you will need the 
  421.     CUPL/MAPL supplemental package from Logical Devices, which contains 
  422.     documentation on designing with the MAPL devices, the MAPL fitter 
  423.     program and the MAPL device library.
  424.  
  425. o   .c3.USING CUPL   WITH THE MAX   DEVICES
  426.     .i.MAX;Altera's new Multiple Array MatriX (MAX) family offers a 
  427.     combination of logic density, performance, and flexibility that's 
  428.     tough to beat. The EPM5000 MAX series of EPLDs comprises eight 
  429.     devices with a range of densities to meet logic application needs at 
  430.     system clock rates up to 66MHz and pipeline data rates of over 100 
  431.     MHz.  A MAX solution is available for every problem--be it a 20-pin 
  432.     device ideal for high-speed address decoding and state machines, or 
  433.     a over 100 lead device that accommodates several thousand gates. And 
  434.     every MAX family member has a fully programmable architecture that 
  435.     efficiently fits any mix of TTL functions without the design and 
  436.     routing headaches commonly associated with fixed and programmable 
  437.     gate arrays.  The most important objective for the MAX architecture 
  438.     was to overcome the serious limitations of earlier PLD structures, 
  439.     which were unable to achieve higher levels of integration of 
  440.     TTL-based designs.  These limitations traditionally have included 
  441.     fixed product-term distribution, lack of register control inputs, 
  442.     and tight coupling of register and I/O pin resources, to name a few. 
  443.     .i.device:EPM5032;The EPM5032 contains 32 MAX macrocells. The 
  444.     EPM5032 expander product term array contains 64 expanders.  The I/O 
  445.     control block contains 16 bidirectional I/O pins that can be 
  446.     configured for dedicated input, dedicated output, or bidirectional 
  447.     operation.  All I/O pins feature dual-feedback for maximum pin 
  448.     flexibility.  .i.device:EPM5064;.i.devic e:EPM5128;The EPM5064 and 
  449.     EPM5128 contain 64 and 128 macrocells respectively. CUPL will 
  450.     provide both JEDEC and POF format in support of all MAX devices.  
  451.     CUPL will provide the means of implementing designs using these 
  452.     devices to most efficiently utilize the expander product terms as 
  453.     well as the large selection of macrocells within each device.
  454.  
  455.     Contact LOGICAL DEVICES, INC.  for availability dates.
  456.  
  457.