close

Вход

Забыли?

вход по аккаунту

?

Проектирование в системе Max + Plus II VHDL против AHDL.

код для вставкиСкачать
KiT#24(7)_Olia.qxd
4/8/05
6:44 PM
Page 124
Софт
Компоненты и технологии, № 7?2002
Проектирование в системе Max+Plus II:
VHDL против AHDL
Разработчики, замкнувшиеся в рамках AHDL, уподобляются программистам,
пишущим на ассемблере.
Глеб Варфоломеев
gleb@schemes.spb.ru
124
???? ???????? ?????????? ??????????? ???
??????? ???????????? ????? ?????????? ?????????????. ? ??????? ??????? ????? ???????????? ???????????? ?????? Max+Plus II ?????
Altera, ??????? ???????????? ???????? ???????? ??
?? ???? ??????: AHDL, VHDL ? Verilog. ? ???????
????????? Max+Plus II ?? ???? ???? ?????? ??????
???? AHDL ???????? ? ?? ??? ???? ?????????? ?????????? ?????? ????? ?? ???????????? ? ????????????? ?????????-?????????????. ?? ?????? ??????,
?????? ???? ???. ?????? ? ??? ???????????? ???????? ? ???????????? ??????????????????? ? ?????????? ???????, ??? ???????? ?????????? ?????????
???????? ?????????. ?????? ?????? ??????? ?
??? ???????? ??????????? ?????????? ?? ?????
AHDL, ??????? ????????????? ???????????? ????
[3]. ? ??????????? ?? ?? ????? VHDL ???????? ????????? ???????????????. ???? ?????????? ?? ?????? ?????????? ? ????? ??????, ?? ?????, ??? ????????? ?????? ? ??????? ????? ?? ????? VHDL, ?????
???, ????????, ?????? ???, ?????? ? 2000?2001 ?????.
?????? ??? ????????? ?????? ????? ?? VHDL ??????
?????????? ??????? ??????????? ?? ?????, ? ? ??????? ????????????? ????? ???? ????, ??? ???????
??? AHDL [3], ? ???????? ?? ??????????.
?? ???????? ??????, ????? ???? ? ?? ?? ??????
????? ?????? ??????? ?????????, ????????? ???????????? ?????? ? ???, ????? ?????? ???????????
? ? ????? ?????????. ?????? ? ????????? ?????? ?????????? (?? ?????? ?? ??????? ?????) ?? ?????????? ????????? ????????????? ?????? AHDL ? VHDL.
?? ?????? ??????, ????????????, ????????????
? ?????? AHDL, ???????????? ?????????????, ??????? ?? ??????????. ???????? ??? ???????????
????? ????????? ?????? ?? ???? ????????, ????????? ??????????? ???? ???????????? ?????? ? ???????? MAX+Plus II. ????? ????, ?????? ?????? ??????
????? ? ????????? ???? ?????????????? ??????????
????????????? ????? ?? ?????????????? ?? VHDL
? Max+Plus II. ???????, ????????? ?????? ?? ??????? ????? ???????????? ?? VHDL ? ?????????? ??????? Max+Plus II. ????????? ?????? ?????????
?? ?????? ? ???? Max+Plus II, ?? ?? ?????? ? ? ?????? ?????????? ???? ????? Altera ? Quartus.
AHDL (AlteraHDL) ???????? ?????????? ??????
?????? Max+Plus II. ??? ????????, ??? ? ????? ?? ???? ?? ?? ????????? ???? ?????? (???????????,
AHDL, VHDL, Verilog ??? ? ???? ????????? ???-
?
????? ? Waveform Editor), ?????????? Max+Plus II
??????? ????????? ??? ?????? ?? ???? AHDL. ?????
?????????? ????????? AHDL-???? ? ???? ???????? ? ??????????? .pof. ???? ????????? ?????????
????? ??????? ???????? ?????????? ? ???????
????????????????, ?? ????? ????????????? ???????? (???. 1).
???. 1
????? ?? ????? ?????? ???????? ?????????? ???????? ???????? ?????? ???????????????? ???????? ??????? ??? ???????? ????????? ??????????
?? ???? ?? ?????????????? ???????????? ???????????????? ??????????????? ?. ?. ?????: «????????
?????? ???????????????? ???????? ?????? ???????? ???? VHDL». ??? ??????????? ?????????????? ????? ??????????? ???????? ??????.
?????? ? ?????? ????????????????. ??????????
??????? ???????????? ???????????? ???? ?????
32-????????? ?????, ?????????? ?? ????? ???????? ?????? C:
long MULT(int a, int b)
{
return a*b
}
? ??? ?? ?? ????????????, ???????????? ?? ????
??????? ?????? Macro Assembler.
push ebp
mov ebp,esp
mov eax,[ebp+0x08]
imul [ebp+0x0c]
pop ebp
ret
??????? ??? ??? ????????????. ??? ????? ????????? ? ?????? ??-??????, ???????????? ?????? ?????? ???????????? ?? ????????? ?? ??????. ???? ??
www.finestreet.ru
KiT#24(7)_Olia.qxd
4/8/05
6:44 PM
Page 125
Софт
Компоненты и технологии, № 7?2002
??????? 1
??????? 2
??? ??????
??? ??????
??????????
???????????
dataa[]
????
????????
?????? ????? LPM_WIDTHA
datab[]
????
?????????
?????? ????? LPM_WIDTHB
result[]
?????
result = dataa[] * datab[]
?????? ????? LPM_WIDTHP
??????? ????? ? ????????? ????????, ?? ???????????? ?? ?? ??????? ?? ???? ????? ? ????????? ???????????? ? ?????????? ?????????. ???????????? ?? ?????????? ???????? 6
?????. ??-??????, ? ? ??? ???????? ???? ????? ?????, ??? ????????????, ? ???????????
?????? ???????????? ?? ????????? ?? ??????. ???? ???? ?? ?? ?????? ????? ??, ?? ?????? ???????????? ???? ????????????????,
???????? ?? ?????? ??????? ?? ?????????
???????, ??? ?????????? ???????????? ????
?????????? a ? b. ? ??? ?? ?????? ?????????
??????? ???????: ???? ??????? ???????????
?? ??????????, ????????? ?? ???? ????? ??????
???? ???????, ??? ????? ??? ????? ????????????, ??????? ??????????? ????? 32-????????? ?????.
? ????? ????????? ????? ??????????
? ? ????? ????????? ??????? ??????? ??????? ????? ????????! ?????????? ??????
?? ??????? ?????: ? 1997 ???? ?????? ????
?????? ???? ???????? ?????????? ?? ????
?????? ??? ??????????? AVR-????????????????? ????? Atmel. ??????? ?????? ???????????????? ???????, ????? ?????????
????????????????? ??????????? ? ????? ?????????? wavrasm ?? ????????????. ??????
?? ???? ? ???????? ?????? ?????????
?? ??????????. ? ???????? ????????? ?????????, ?????????? ? ?????? ????? 3 ?????,
??? ?????????? ???????? ????? 30 ???????,
? ?? ?? ????????? «?? ???» ???? ????? ???????. ???????????? ??? ?????????, ???????????? ?? ????? ? ??? ??????????
ImageCraft ???? ????????? ????????? ? ???????? ?? ??????? ??????!
??????????? ???????? ? ??????? ????????
??????????. ????? ??????? ??? ??????????
?????????????. ?????? ??? ???????? ???????? ??????????? ????????? ?? 8 (32-????????? ????????????? ?????? ?? ??????????
? ??????????? ?????????, ?? ? ??????????
?????? ??????? ????? ??????? ??????????
?????). ??? ??? ????? ??????? ????? ????????????? ?? VHDL:
ENTITY MULT IS
PORT (
a, b : IN INTEGER RANGE 0 TO 2**8-1;
ret : OUT INTEGER RANGE 0 TO 2**16-1 );
END MULT;
ARCHITECTURE a OF MULT IS
BEGIN
ret <= a*b;
END a;
???? ?? ??????? ????????????? ?????
(ENTITY), ????????????? ????? ???????? ????????? ???????????? ??????? MULT. ? ??????????? ?? ??: ????????? ? ???????????.
? ?????? ??????? ?????????, ??? ????????
??????? MULT, ?????????? ?? AHDL. ?????
??????? ?????? ???????? AHDL-??????????www.finestreet.ru
??? ?????????
LPM_WIDTHA
LPM_WIDTHB
LPM_WIDTHP
LPM_WIDTHS
???
Integer
Integer
Integer
Integer
????????
?????? ????? dataa[]
?????? ????? datab[]
?????? ????? result[]
?????? ????? sum[]*
* ??????????: ???? ? ??????????? ???????????? ???? sum ?? ????????????,
???? ???????? ??????? ?????????? ?????? LPM_WIDTHP
??? ? ??? ?????????????? ??????????????? ????????? ? MAX+Plus II. ?????????????? ?????? ?????, ?????????????? ? ???? ???????????, ????? ? ???? «Processing»
? ???????? ?? ??????? «Generate AHDL TDO
File». ?????? ????? ?????????? ????? ??????
???? ? ??? ?? ??????, ??? ? ???????? ??????, ?? ? ??????????? .tdo. ???? ???? ?????
????????? ???????? ?????? ??????? ?? ?????
AHDL, ?????? ?? ????? «??????» ??????,
?? ???? ??? ???????????? ? c ??????????
????? ??????????? ?? ????????? ??????????. ??????? ???? ????. ??????, ??, ??? ??
??????? ?? ??????, ??????? ? ??????????????? ???????? ?????????. ????? ???? ???????
??????? ????? ????? ???????????? ???????, ????????? ??????????? ???????????
?????? ?? ???? ???????! ????????? ???????
?? ????? ????? ???????? ???:
???. 2
-- Node name is 'ret12'
ret12
_EQ019
= LCELL ( _EQ019 $ _EQ020);
= _LC088 & _X009 & _X011 & _X013 & _X015
# _LC238;
_EQ020
= _X016 & _X017;
_X016
= EXP ( _LC253 & _LC255);
_X017
= EXP (!_LC253 & !_LC255);
???. 3
.
???? ?? ???????, ??? ????????? ?????, ?????????? ?? VHDL, ????? ???????????? ? ????????? ????? ????? ? AHDL. ??????, ???????
????????, ??? ???? ??????? ????????????? ???????? ????? ?????? ???????. ???? AHDL
????????? ???????? ? ????? ???????????????
????????, ?? ??? ???????? ??????? ???????.
???????????? ?????? ??????????? ?????
????? ? AHDL ? ??? ??????????????? ???????
????????, ? ?????? ?????? «????????????»
(????????????????? ???????) LPM_MULT.
?? ??? ??????? ?? ??? ??????. ?????????
?? ????????? ???? ???????, ???????? ??????? ????????? ? ??????? ?? AHDL:
FUNCTION
lpm_mult
(dataa[(LPM_WIDTHA-1)..0],
datab[(LPM_WIDTHB-1)..0], sum[(LPM_WIDTHS-1)..0], aclr, clock)
WITH
(LPM_WIDTHA,
LPM_WIDTHB,
LPM_WIDTHP,
LPM_WIDTHS,
LPM_REPRESENTATION,
LPM_PIPELINE,
LATENCY,
INPUT_A_IS_CONSTANT,
INPUT_B_IS_CONSTANT, USE_EAB, MAXIMIZE_SPEED)
RETURNS (result[LPM_WIDTHP-1..0]);
? ??????????? «????????????» ??? ??????? ????? ??? ?????? ??????? ????????,
?????? ???????? ???????? ? ?????? ???????????? ????????? (??. ????. 1?2).
??? ???? ????? ?? ????????? ??? ??? ????????? ???????, ????? ???????????????
??????? ??????? «MegaWizard Plug-In
Manager» (????? ???????????? ? ??????????
????????? ??? ?????????????? ?? ???????) ???
???????? ??????????? ??????? MULT ?? ????
LPM_MULT. ??????? ??????????? ?? ????
???. 4
???. 5
???. 6
125
KiT#24(7)_Olia.qxd
4/8/05
6:44 PM
Page 126
Софт
Компоненты и технологии, № 7?2002
???. 7
«File». ????? ??????? ????? ?????? ??????????????? ????????? ????, ? ??????? ???????
?????? ????????? ?????????? (???. 2?7).
????? ???? ???? ??????????? ???????
MULT, ?????????? ?? AHDL, ????? ?????????
????????? ???????:
: INPUT;
: INPUT;
: OUTPUT;
VARIABLE
lpm_mult_component : lpm_mult WITH (
LPM_WIDTHA = 8,
LPM_WIDTHB = 8,
LPM_WIDTHP = 16,
LPM_WIDTHS = 16,
INPUT_B_IS_CONSTANT = «NO»,
LPM_REPRESENTATION = «UNSIGNED»,
USE_EAB = «OFF»
);
BEGIN
result[15..0] = lpm_mult_component.result[15..0];
lpm_mult_component.dataa[7..0] = dataa[7..0];
lpm_mult_component.datab[7..0] = datab[7..0];
END;
???????????, ??????? ?? ?????????
? VHDL-????????? ????????.
???? ???????? ?? ???????? ? ??????? ????????????????, ?? ??? ???-???? ?? ????? ??????. ???????? ????????? ?? ????? ???????????????? ???????? ??????, ?? ??????? ? ???????? ? ???, «??? ??? ?????? ??????»
(????????????? ???????? [1, 4?5]), ? ?? ? ???,
«??? ??? ???????» (??????????? ????????).
???????????????? ?? ?????????? ??????????
??? ?????? ?????? ? ???, «??? ??? ???????».
??????????? ???????? ?? ??????????? ?????????? ???????? ?????? ??????? ????? ??????????, ??? ????????????? ????????. ? ????
?? ????????????? ???????? ??????? «????????????» ??? ?????????? ?????????. ??????
?????? ?? ??????? ???????? ???????????? ????????. ? ???? ?????? ? ????????? ?? ??????
???????? ?????? ????????? ????????????
??????? ??? ?????????? ??????? ???????????? ??????. ? ?????? ???????? ??????????
????? ???????? ???. ???? ??????? ????? VHDL
?????? Max+Plus II ????????? ???????? ??????? (??????????), ?????????? ?? AHDL, ?????? ??? ?????? ?? ???????????. VHDL ????????? ????????? ??????????? ???????? ???????
??? ?????-???? ???????????. ? ?????? ?? ?????? ?????? ?? VHDL ? ????? «??? ?? AHDL».
?? ????? VHDL ????? ?????? ? ????? ?????????????? ???????. ????? ? ???? ?????????,
?????????? ????????????? ?? ??????????
126
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY EVENT IS
PORT (
d
c
END EVENT;
INCLUDE «lpm_mult.inc»;
SUBDESIGN MULT
(
dataa[7..0]
datab[7..0]
result[15..0]
)
(??? ????????? ??? ?? ???? «Max+Plus II», ???? ?? ?? ??? ???????), ??????? ??????????
??????? ? ??????? «VHDL Netlist Writer» ????
«Interface», ?????????????? ?????? ? ?????????
???????? ??? ?? ????? VHDL ? ???????????
.vho ? ????????.
???? AHDL ???? ????? ??????????? ?????????????? ????????, ?????????? ????,
??? ? ????? ?????????? ????? ????????????
???????????? ??? ?????? ??????????? ???????. ?? AHDL ????????? ?????? ???????????
????????????? ????????. ??? ????????????
(??????????) ?????? AHDL ????????? ??????
???? ????? ???????? ? ???????????. ????????? ??? ??????? ????????? ??? ?? VHDL:
: IN
: OUT
STD_LOGIC;
STD_LOGIC);
ARCHITECTURE a OF EVENT IS
BEGIN
PROCESS (d)
BEGIN
IF (d'event AND d = '1') THEN
c <= NOT(d);
END IF;
END PROCESS;
END a;
? ??? ??? ?????????? ??????? ???? ???
?? AHDL:
SUBDESIGN 'event'
(
d:
c:
)
INPUT;
OUTPUT;
BEGIN
c = DFFE( d $ GND, GLOBAL( d), VCC, VCC, VCC);
END;
??-?? ?????????? ? AHDL ???????????, ??????????? PROCESS, WAIT ? 'EVENT, ??????????? ????????????? ???????? ????????????
????????, ?????????? MAX+Plus II ??? ???????? ?????????? ? ???????????? ????????
???????. ??? ???? ?? ??????????? ???????????? ? ????? AHDL ???????????? ??????? ?
???????. ??????, ? ?????? ?????? ????????
?? AHDL ????????? ??????????, ??? ?? VHDL.
?? ???? ?????? ????? ?? AHDL-????????, ????? ?????????? ??????? ????????? ??????
??????????, ??????????? ??????????. ? ???
VHDL-???????? ???? ??? ?????? ?????????
??????????.
??? ???? ???????????? ?????????? ?????
AHDL ? ????????????? ????????? ? ????????? ?? ????????? ?????? ?? ????? AHDL.
? ????? ??????, ?? ????????? ????? Altera
???? ?????? ?? ???????! ??????? ?? ?????????? ????? ?????, ? ?????????, ????? ?? ????????????????? ?????????-?????????????
??????? ???? ???????????. ? ???? ?? ?????? ???????????? ?? ?????????????????? ??????, ?? ?????? ??????? ????? ???? ??????
? ??????????? ??????????? ???? ??????
????. ?? ??????? ????, ????? Altera, ?????
???????????? ??????????? ??????????
? ?? ????? ?????????? ?????????? ?????
Xilinx. ???????? ?????? ?? ????? ?????? ????????? ????????????. ?? ?????? ??????????
?????????? ?????? ?? ???? ?????????
MAX7000. ?????? ??? ?????? ? ???????????
???????, ? ????????? ????? ???? ????????
?? AHDL. ?? ???? ??????? ????? ??????? ??????? ????? ?????????? ????????? ?????????
?????. ???????????? ???? ?????????? ???????? ? ???? ?????? ?? ??????? ????.
?? ??? ????: ??? ????? ???????? ????????????? ?? ?????????? ???? ????? Xilinx, ? ? ???????? ?? ?????? ???? ? ??????? ?? ??????.
????? Xilinx ????????????? ?? ???????????? ???? AHDL, ??? ??? ????? Altera ? ?? ??????? ????????? ?? ????? ????. ? ??????????
???? ?????? ???????? ????????????. ??????
????????? ?? ?? ?????????, ???? ?? ??????
??? ???????? ?? ????? VHDL, ?????????
VHDL, ? ??????? ?? AHDL, ??-????? ????????
????????????? ?????????? ????? ????????
? ????????????? ??????????.
????????, ????? ?????? ?????? ????????????? ??????????, ? ?????? ???????? ?????? ????????? ?????????, ? ??? ????? ????. ????????? Max+Plus II ???????? ???????????? ?????? ????. ??? ????????????? ????? ??????????
??????? ???????????? ??????? ??????????, ?????, ??? ModelSim, Orcad Express ? ??. ???????? ??????, ?? ?????? ??????, ?????????
Orcad Express, ???????? ? ?????????? ?????
????????? ?????????????? ??????????? ?????????? Orcad. Orcad Express ???????????? ????????????? ????????, ?????????? ?? VHDL
[2]. ???????? ??????????? ? ???, ??? ??????
Orcad ? Max+Plus II ???????????? ??????????? ????????? ???? ????? (???. 8).
????????? ????????, ??????? ??????
???????? ? ?????? AHDL: «AHDL ? ??? ?????? ???? Max+Plus II, ??????? ???????, ??????????? ?? AHDL, ????? ?????????????? ???????????? ? ???????? ??????? ?????? ????? ? ????, ?????? ??????? ?? ?????
VHDL». ??? ?????????? ???????? ???????????, ????????? ????? ??????? ???????? ?????????? ? ??????? ???????????????? ???
?????? ????????. ???????? ??? ????? ??????.
???????? ? ???? «Assign/Device...» ????????? MAX3000. ?????? ?????????? ?????????????? ??? ???????? ?????????? MULT.
???? MULT.vhd ??????? ??????????????
??? ???? EPM3256ATC144. ?????????????? ?? ?????? MULT.tdf ???????, ???? ??????
????????? ?????????? ??????????? (Fitter)
???????????? ??? ??????????. ? ???? ?????????? ?????? MULT.tdf ?????? ?? ??????????!
?? ?????? ??????, ? ????? AHDL ???? ????
???????????? ????? VHDL ? ??????? ????????. ? AHDL, ???? ?? ??????? ????? ?????????, ?????????? ?????? ???? ??? ?????? ?
?????? (??? ???????) ?????????? ???????.
??? ???? ??????????? ???????? ? ??????????? ????? ??????. ??????????? ??? ???????
????? ????????? ???????? ? ??????? ????????. ???????, ???? ?? ?? ????????? ???????????? ???? AHDL, ?? ????? ????? ?? ???????? ??? ????????? ????????, ? ??????? ??
?????????????? ?????-???? ??????????????
???????? ??? ??????? ????????? ????????.
????? ?? ????? ?????????: ???? ?? ???
?? ????? ????? ????????????? ?????? ???????? ?????????? ? ??????????? ? ??????
?????, ?? ????????? VHDL! ???? ?? ?? ???
www.finestreet.ru
KiT#24(7)_Olia.qxd
4/8/05
6:44 PM
Page 127
Софт
Компоненты и технологии, № 7?2002
???. 8
????????? ?? AHDL, ?? ??????????? ???????? ?? ??????? ?????
???????, ??? ?????????? 4-????????? ????? ??? ?????, ?? ???, ??????????, ???? ??????? ??????? ? ???????????? ?????? VHDL. ? ???,
???????, ??? ??????? ?????? ??????.
Литература
1. ?????? ?. ?. ?????? ????? VHDL. ?. ?????-?. 2000.
2. ???????? ?. ?., ?????? ?. ?. ???? VHDL ??? ?????????????? ?????? ?? ????, ???.: ???????. 2001.
3. ??????? ?. ?. ???? ???????? ???????? ????????? AlteraHDL.
???????????? ????. ?. ?????????. 2001.
4. ????????? ??. ?. ????????????? ???????? ?????? ?? ????? VHDL.
???. ? ????. ?. ???. 1992.
5. An Introductory VHDL Tutorial. Green Mountain Computing Systems,
Inc. http://www.gmvhdl.com/VHDL.html.
www.finestreet.ru
127
Документ
Категория
Без категории
Просмотров
5
Размер файла
212 Кб
Теги
против, plus, ahdl, система, max, vhdl, проектирование
1/--страниц
Пожаловаться на содержимое документа