Professional Documents
Culture Documents
WINCUPL
Giao dieän chöông trình
Laäp trình duøng
WINCUPL
Bieán – Teân Bieán
Bieán laø chuoãi kyù töï ñaïi dieän cho giaù
trò, haèng soá, nuùt noäi vaø nuùt ngoaïi,
input/output.
Teân bieán ñöôïc ñaët theo quy taéc:
Teân bieán khoâng daøi quaù 31 kyù töï.
Khoâng coù khoaûng traéng giöõa caùc töø
Khoâng duøng caùc kyù töï ñaëc bieät vaø
caùc töø khoùa cuûa chöông trình.
Phaûi coù ít nhaát 1 kyù töï trong teân.
Teân bieán coù phaân bieät chöõ
thöôøng vaø chöõ hoa.
Vd: a0, A0, D_enable
Laäp trình duøng
WINCUPL
Chæ soá bieán
Chæ soá bieán = indexed variables
Chæ soá bieán ñöôïc ñaët theo quy taéc:
phaûi keát thuùc bôûi moät soá thaäp
phaân naèm giöõa 0 -> 31.
Toát nhaát neân baét ñaàu bôûi soá 0.
Phaàn soá cuûa chæ soá bieán phaûi chính
xaùc töøng kyù töï
Ví duï:
AD0, AD7
A07 ≠ A7
Laäp trình duøng
WINCUPL
Danh saùch - List
Danh saùch phaûi ñöôïc lieät keâ trong daáu
[]
[ bieán 1, bieán 2, …, bieán n]
Vd:
[up, down, left, right]
[a0, a1, a2, a3, a4, a5, a6, a7]
[a0..7]
[a0..2, a3, a4, a5..7]
Laäp trình duøng
WINCUPL
Bieåu dieãn soá - numbers
Soá ñöôïc ñaët theo quy taéc:
Duøng caùc tieàn toá ‘b’ ‘o’ ‘h’ ‘d’ ñeå baùo
hieäu soá thuoäc heä naøo.
Vd: ‘b’01 , ‘o’84, ‘h’A5, ‘d’15
Coù theå duøng x ñeå bieåu dieãn tuøy
ñònh.
Vd: ‘b’1x10, ‘h’[10xx..1FFF]
Maëc ñònh soá khoâng ghi heä laø soá ôû
heä hexa tröø soá ghi ôû chæ soá bieán,
soá thöù töï chaân.
Laäp trình duøng
WINCUPL
Chuù thích - comment
Vd:
$DEFINE ON 1
$DEFINE OFF 0
$DEFINE hang_so ‘h’3512
Laäp trình duøng
WINCUPL
pheùp toaùn logic
Caùc pheùp toaùn logic bao goàm:
Non-registered
input output
registere
Maïch toå hôïp d output
Maïch nhôù
state
output
Feedback
WINCUPL
maùy traïng thaùi – state
machine
Khai baùo maùy traïng thaùi:
SEQUENCE list_var{
PRESENT state_n statement;
}
Statement – caùc khai baùo veà ñieàu
kieän hoaëc ngoõ ra hoaëc traïng thaùi keá
hoaëc coù theå laø caùc töø khoùa IF,
DEFAULT, NEXT, OUT.
WINCUPL
maùy traïng thaùi – state
machine
Chuyeån traïng thaùi khoâng ñieàu
SEQUENCE list_var{
kieän:
PRESENT state_n NEXT
state_m;
Chuyeån
} traïng thaùi coù ñieàu kieän:
SEQUENCE list_var{
PRESENT state_n
IF expr_i NEXT state_i;
IF expr_j NEXT state_j;
[DEFAULT NEXT state_default;]
}
WINCUPL
maùy traïng thaùi – state
machine
Ngoõ ra ñoàng boä khoâng ñieàu kieän:
SEQUENCE list_var{
PRESENT state_n
NEXT state_m OUT var1 OUT var2;
}
Ngoõ ra ñoàng boä coù ñieàu kieän:
SEQUENCE list_var{
PRESENT state_n
IF expr_i NEXT state_i OUT var_i;
IF expr_j NEXT state_j OUT var_j;
[DEFAULT NEXT state_default OUT
var_def;]
Laäp trình duøng
WINCUPL
leänh CONDITION
Leänh CONDITION coù caáu truùc:
CONDITION {
IF expr_i OUT var_i;
IF expr_j OUT var_j;
DEFAULT OUT var_def;
}
Laäp trình duøng
WINCUPL
haøm - function
- Ñieàn soá
3 vaøo
cöûa soå
INPUT PINS
WINCUPL
Höôùng daãn moâ
phoûng
- Ñieàn soá 1
vaøo cöûa
soå OUTPUT
PINS
- Ñieàn soá 0
vaøo cöûa
soå
PINNODES
Keát quaû:
WINCUPL
Höôùng daãn moâ
phoûng
WINCUPL
Höôùng daãn moâ
phoûng
-Click phaûi
leân töøng
ñoaïn thôøi
gian cuûa
töøng tín
hieäu, choïn
giaù trò thích
hôïp cho
ñoaïn ñoù. Ta
thöû thieát
laäp ñoaïn tín
Keát nhö
hieäu quaû:
sau:
WINCUPL
Höôùng daãn moâ
phoûng
WINCUPL
Höôùng daãn moâ
phoûng
-Choïn File Save ñeå löu giaûn ñoà thôøi
gian vöøa taïo.
* Chuù yù: phaûi löu file naøy taïi thö muïc
-Choïn Simulator Run Simulator ñeå boä
ñaõ
moâlöu file *.PLD
phoûng ôû treân.
tính toaùn caùc tín hieäu ngoõ ra
theo tín hieäu ngoõ vaøo ñaõ taïo.
Keát quaû:
WINCUPL
Höôùng daãn moâ
phoûng
WINCUPL
Höôùng daãn moâ
phoûng
KIEÅM TRA laïi keát quaû vöøa coù theo caùc tín
hieäu ñaàu vaøo vaø ñieàu kieän ñeà baøi. Neáu
sai,
File ta quay
*.JED laølaïi
filechænh
duøngsöûa ñoaïnchip
ñeå naïp code.
hoå trôï file
JED
-------------------------------------