[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]

Отправлено SNN 22 ноября 2001 г. 20:22
В ответ на: Вопрос о параметрах в Verilog отправлено Начинающий 22 ноября 2001 г. 20:01

module multtable (a, c);
parameter coeff=2;
input [7:0]a;
output [15:0]c;
assign c=a*coeff;
endmodule

module multt (ma,mb, mc,md);
input [7:0]ma;
input [7:0]mb;
output [15:0]mc;
output [15:0]md;
multtable x1(ma,mc);
defparam x1.coeff= 3;

multtable x2(mb,md);
defparam x2.coeff= 4;

endmodule

--------------------------------------------------------------------

// Но лучше вочпользуйтесь Synplifi. Получите tdf:

TITLE "multtable_3";
SUBDESIGN multtable_3
(
ma1, ma2, ma3, ma4, ma5, ma6, ma7, mc0, mc1, mc2, mc3, mc4, mc5, mc6, mc7, mc8 : INPUT;
mc9, un1_a_add1, un1_a_add2, un1_a_add3, un1_a_add4, un1_a_add5, un1_a_add6, un1_a_add7,
un1_a_add8 : OUTPUT;
)
VARIABLE un1_a_carry_7, un1_a_carry_6, un1_a_carry_5, un1_a_carry_4, un1_a_carry_3,
un1_a_carry_2, un1_a_carry_1 : NODE;
BEGIN
-- S_CAR un1_a_add8
un1_a_add8 = LCELL(((!ma7 & un1_a_carry_7) # (ma7 & !un1_a_carry_7)));
mc9 = LCELL(CARRY((ma7 & un1_a_carry_7)));
-- S_CAR un1_a_add7
un1_a_add7 = LCELL(un1_a_carry_6 $ ma7 $ ma6);
un1_a_carry_7 = CARRY(((!ma6 & (ma7 & un1_a_carry_6)) # (ma6 & (ma7 # un1_a_carry_6))));
-- S_CAR un1_a_add6
un1_a_add6 = LCELL(un1_a_carry_5 $ ma6 $ ma5);
un1_a_carry_6 = CARRY(((!ma5 & (ma6 & un1_a_carry_5)) # (ma5 & (ma6 # un1_a_carry_5))));
-- S_CAR un1_a_add5
un1_a_add5 = LCELL(un1_a_carry_4 $ ma5 $ ma4);
un1_a_carry_5 = CARRY(((!ma4 & (ma5 & un1_a_carry_4)) # (ma4 & (ma5 # un1_a_carry_4))));
-- S_CAR un1_a_add4
un1_a_add4 = LCELL(un1_a_carry_3 $ ma4 $ ma3);
un1_a_carry_4 = CARRY(((!ma3 & (ma4 & un1_a_carry_3)) # (ma3 & (ma4 # un1_a_carry_3))));
-- S_CAR un1_a_add3
un1_a_add3 = LCELL(un1_a_carry_2 $ ma3 $ ma2);
un1_a_carry_3 = CARRY(((!ma2 & (ma3 & un1_a_carry_2)) # (ma2 & (ma3 # un1_a_carry_2))));
-- S_CAR un1_a_add2
un1_a_add2 = LCELL(un1_a_carry_1 $ ma2 $ ma1);
un1_a_carry_2 = CARRY(((!ma1 & (ma2 & un1_a_carry_1)) # (ma1 & (ma2 # un1_a_carry_1))));
-- S_CAR un1_a_add1
un1_a_add1 = LCELL(((!mc0 & ma1) # (mc0 & !ma1)));
un1_a_carry_1 = CARRY((mc0 & ma1));
END;

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru