[an error occurred while processing this directive] [an error occurred while processing this directive]
Помогите начать работать с МАХ
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Начинающий 18 октября 2001 г. 16:41

Вот взял из книжки пример програмки табличного умножения 4х4.
После компиляции и симуляции смотрю осцилограммы SCF файла.
Там конечно же нет никакого умножения, хотя в книжке А.П. Антонова нарисованы красивые осцилограмы - когда на входе 2 и 3 на выходе 6. Я вообще не понимаю где в программе указано, что 2х3=6, 3х4=12, и т.д. Может есть специалисты.

CONSTANT size = 8;
CONSTANT hi_bit =4;

%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)
RETURNS (result[LPM_WIDTHP-1..0]);%

INCLUDE "lpm_mult.inc";

SUBDESIGN mult4x4
(a[hi_bit..1],b[hi_bit..1] : INPUT;
result[size..1] : OUTPUT;
)
VARIABLE
mult : LPM_MULT WITH( LPM_WIDTHA=hi_bit,
LPM_WIDTHB=hi_bit,
LPM_WIDTHP=size,
LPM_WIDTHS=size);
BEGIN
mult.dataa[] = a[];
mult.datab[] = b[];
result[] = MULT.result[];
% Optional IN-LINE referance
result[] = LPM_MULT(.dataa[]=a[],.datab[]=b[]) with
(LPM_WIDTHA=hi_bit, LPM_WIDTHB=hi_bit, LPM_WIDTHP=size, LPM_WIDTHS=size);%
END;

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru