CUPL, part IV

Расширения
CUPL предлагает большой список расширений (см.ниже). Увы, применительно к ATF16V8B подходит только одно – D-триггер.

По сути своей, расширение – это способ описать некоторую аппаратную особенность ПЛИС.
Пример:

Name D-Flip-Flop ;
PartNo 00 ;
Date 20.12.2015 ;
Revision 01 ;
Designer JM ;
Company Home ;
Assembly None ;
Location ;
Device g16v8a ;

PIN 1 = CLOCK;
PIN 2 = DATA;
PIN 19 = Q;

Q.D = DATA;

В данном случае имеем описание одного D-триггера. Микросхема (ATF16V8B) устроена таким образом, что CLOCK всегда выведен на первый вывод (его можно было бы и не указывать в коде). И CLOCK общий для всех триггеров (их восемь на одну микросхему).
Фактически, можно указать лишь вывод, к которому надо подключить D-вход триггера и вывод, к которому надо подключить выход Q триггера.
Имена выводов могут быть произвольными. Важно лишь указать “.D”. По сути, никаких объявлений переменных/инстансов здесь нет. Расширение привязывается к имени выхода.
Последняя особенность: ножка 11 (Output Enable) должна быть подключена к земле. Причина заключается в том, что при попытке использования триггеров компилятор переводит микросхему в регистровый режим, в котором выводы CLK и OE намертво привязываются к выводам 1 и 11 и нет никакой возможности этим управлять.
Триггер защёлкивает данные по фронту импульса.

Полный список расширений CUPL

Extension Side Description
.AP L Asynchronous preset of flip-flop
.AR L Asynchronous reset of flip-flop
.APMUX L Asynchronous preset multiplexer selection
.ARMUX L Asynchronous reset multiplexer selection
.BYP L Programmable register bypass
.CA L Complement array
.CE L CE input of enabled D-CE type flip-flop
.CK L Programmable clock of flip-flop
.CKMUX L Clock multiplexer selection
.D L D nput of D-type flip-flop
.DFB R D registered feedback path selection
.DQ R Q output of D-type flip-flop
.IMUX L Input multiplexer selection of two pins
.INT R Internal feedback path for registered macrocell
.IO R Pin feedback path selection
.IOAR L Asynchronous reset for pin feedback register
.IOAP L Asynchronous preset for pin feedback register
.IOCK L Clock for pin feedback register
.IOD R Pin feedback path through D register
.IOL R Pin feedback path through latch
.IOSP L Synchronous preset for pin feedback register
.IOSR L Synchronous reset for pin feedback register
.J L J input of JK-type output flip-flop
.K L K input of JK-type output flip-flop
.L L D input of transparent latch
.LE L Programmable latch enable
.LEMUX L Latch enable multiplexer selection
.LFB R Latched feedback path selection
.LQ R Q output of transparent input latch
.OBS L Programmable observability of buried nodes
.OE L Programmable output enable
.OEMUX L Tri-state multiplexer selection
.PR L Programmable preload
.R L R input of SR-type output flip-flop
.S L S input of SR-type output flip-flop
.SP L Synchronous preset of flip-flop
.SR L Synchronous reset of flip-flop
.T L T input of toggle output flip-flop
.TEC L Technology-dependent fuse selection
.TFB R T registered feedback path selection
.T1 L T1 input of 2-T flip-flop
.T2 L T2 input of 2-T flip-flop