Потратил 40 минут времени.

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 в заголовке сущности я что-нибудь сделаю, но потом. ;)

языки описания аппаратуры, Хаскель

Previous post Next post
Up