[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
например в Сadence Ambit есть library aware
только не поможет т.к это только для симуляции, а для синтеза используются специальные библиотеки
вот пример из поведенческой библиотеки - такое и самому можно придумать :)
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library ambit;
use ambit.attributes.all;
entity AW_multiply_accumulator_area is
generic (nA: integer := 8; nB: integer := 8; nC: integer := 16);
port (A : in unsigned(nA-1 downto 0);
B : in unsigned(nB-1 downto 0);
C : in unsigned(nC-1 downto 0);
TC : in Bit;
Z : out unsigned(nC-1 downto 0)
);
attribute TEMPLATE of AW_multiply_accumulator_area : entity is True;
end AW_multiply_accumulator_area;
architecture behavior of AW_multiply_accumulator_area is
begin
mac_process:
process
begin
wait on TC, A, B, C;
if TC = '1' then
Z <= unsigned(signed(A) * signed(b) + signed(C));
else
Z <= A * B + C;
end if;
end process;
end behavior;
E-mail: info@telesys.ru