.. vim: ft=rst showbreak=--»\ noexpandtab fileencoding=utf-8 nomodified wrap textwidth=0 foldmethod=marker foldmarker={{{,}}} foldcolumn=4 ruler showcmd lcs=tab\:|- list tabstop=8 noexpandtab nosmarttab softtabstop=0 shiftwidth=0 linebreak :date: 2026.08.05 15:24:16 :_modified: 1970.01.01 00:00:00 :tags: HW,HowTo :authors: Gilhad :summary: How to program CPDL :title: %summary% :nice_title: |logo| %title% |logo| %HEADER% CPDL_program -------------------------------------------------------------------------------- .. code:: cd C:\wincupl\shared cupl -bxf -m1 -u c:\Wincupl\Shared\cupl.dl z:\BX.PLD cd C:\Wincupl\WinCupl\Fitters fit1508 Z:\BX.tt2 -CUPL -dev P1508T100 -JTAG ON -preassign keep fit1508 Z:\BX.tt2 -CUPL -dev P1508T100 -JTAG ON druha varianta fit1508 bez -preassign keep je asi lepsi - asi neni BX.pld: .. code:: :number-lines: 100 PIN 1 = HALT; PIN Rw; PINNODE 603 = RAM_0; PINNODE RAM_1; NODE RAM_2; /* RAM_3 bez NODE, jen s prirazenim asi jeste lepsi */ $MACRO PN name val $IFDEF EMPTY NODE name; $ELSE PINNODE val = name; $ENDIF $ENDM $DEFINE EMPTY "" PN (RAM_5, 605); * všechny `$neco` výrazy musí být na začátku řádky ("znak číslo 1 je $") * `$define name value` vyžaduje i tu value Jak vynutit vzorec do bunky (a nasledne pouzivat vystup te bunky jako fanin=1, nikoli vzorec fanin=11) .. code:: PINNODE 637 = addr_in_REGS; /* */ /* NODE addr_in_REGS; /* */ PROPERTY ATMEL {Soft_Buffer=addr_in_REGS}; addr_in_REGS = CA:[A000..A01F]; otestovat APPEND pro konstrukci cteni registru .. code:: APPEND D0 = REG0 & EMS1_B0; APPEND D0 = REG1 & EMS1_C; .... takhle by slo pridat do registru vzdy jednu vec na jednom miste