Sep 14, 2011 00:27
Сделал создание заголовков "сущностей".
Вот кусочек:
entity runningSum_1 is
port map (
generated_temporary_name_0 : in bit_vector (0 to 31);
generated_temporary_name_1 : out bit_vector (0 to 31);
Simple2_Clk: in std_logic;
Simple2_Reset: in std_logic
);
end entity runningSum_1;Simple2_Clk и Simple2_Reset будут протянуты автоматически по всем нуждающимся в них сущностям (если не нужны, то лишнее не будет протянуто).
Тактовые частоты протягиваются с помощью типов.
Вот описание класса Clock:
class (Typeable c, Typeable (ClkReset c)) => Clock c where
type ClkReset c
-- |Provide construction of clock value to carry around.
clockValue :: c
-- |Reset sensitivity.
resetPositive :: c -> Bool
-- |Front sensitivity.
clockFrontEdge :: c -> Bool
У тактовой частоты есть тип-сброс. Несколько тактовых частот могут разделять этот сигнал (если понадобится).
Для всех триггеров, которые используют какую-то тактовую частоту, будут созданы одинаковые варианты реакции на изменения сигналов сброса и тактовой частоты. Нельзя будет забыть, что полярность сброса поменялась.
С именами вида generated_temporary_name_0 в заголовке сущности я что-нибудь сделаю, но потом. ;)
языки описания аппаратуры,
Хаскель