I saw this, but it doesn't tell how to understand the code. There's
all sorst of strange constructs like:
OUTPUT = NORF(OUTPUT.d, SYSCLK, RESET, GND)
Which I assume is a DFF with a preset and clear, but I can't be sure
unless I have documentation.
There are other constructs like:
X = RORF()
X = COCF()
X = RONF()
X = CONF()
There are also logic equations
X.d = !Y & Z
# Q
Which I assume is X.d = ((not Y) and Z) or Q algebraically.
- Show quoted text -
The macrocells in the Altera CPLDs are registers with or without
feedback and even with or without a direct output. I believe these
primitives are for the output select from the logic and the register.
While the NORF() with the list is similar to ordered lists in other
languages, you'd need a list of primitives to understand precisely
what each entry is. In the case of the NORF, by inspection the first
entry is the output connected to the D input of a declared register
such as a DFFE (D flip-flop with enable). The ports on declared items
are referred to by NAME.port and here, again, the primitive
definitions tell you precise syntax.
I think the language allows both forms - declared elements as well as
the ordered-list function form - such that the NORF could have been
declared in a primitive list and the connections referred to as
NAME.o, NAME.clk, NAME.rst and NAME.clr.
I cut my teeth on AHDL in 1988 and haven't used it in well over a
decade.
If you have other specifics, air them. If I can't recall, I have
another engineer here that declares AHDL as one of his competencies.
- John_H (from comp.arch.fpga)