При программировании потоковой модели автомата возникла потребность в тактировании а именно:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity MY_STREAM is
port(
DL : in std_logic;
M : in std_logic;
C : in std_logic;
R : in std_logic;
Q0 : out std_logic;
Q1 : out std_logic;
Q2 : out std_logic
);
end MY_STREAM;
architecture MODEL of MY_STREAM is
SIGNAL F1,F2,F3,F4,F5,F6,F7,F8,F9,F10 : STD_LOGIC;
SIGNAL NM,NR,NC,NDL : STD_LOGIC;
SIGNAL J0,J1,J2,K0,K1,K2,NQ0,NQ1,NQ2,NQ3: std_logic;
SIGNAL QV0,QV1,QV2,QT0,QT1,QT2: STD_LOGIC;
BEGIN
NQ0<=NOT QT0 AFTER 22 NS;
NQ1<=NOT QT1 AFTER 22 NS;
NQ2<=NOT QT2 AFTER 22 NS;
NM<=NOT(M) AFTER 22 NS;
NC<= NOT© AFTER 22 NS;
NDL<= NOT( DL) AFTER 22 NS;
F1<=(NM AND QT1) AFTER 22 NS ;
F2<=(QT1 AND QT0)AFTER 22 NS ;
J2<=F1 OR F2 AFTER 22 NS;
F3<=NM AND QT0 AFTER 22 NS;
F4<=NQ2 AND QT0 AFTER 22 NS;
J1<=F3 OR F4 AFTER 22 NS;
F5<=M AND NQ2 AFTER 22 NS;
F6<=NM AND DL AFTER 22 NS;
J0<=F5 OR F6 AFTER 22 NS;
K2<=M AND NQ1 AFTER 22 NS;
F7<=M AND QT2 AFTER 22 NS;
F8<=QT2 AND NQ0 AFTER 22 NS;
F10<=M AND QT0 AFTER 22 NS;
F9<=NM AND NQ0 AFTER 22 NS;
K1<=(F7 OR F8 OR F9 OR F10) AFTER 22 NS;
K0<=M OR NDL AFTER 22 NS;
QV0<=(R AND ((J0 AND NOT(QT0)) OR (NOT(K0)AND QT0)AND RISING_EDGE(NC)) ) ;
QV1<=(R AND((J1 AND NOT(QT1)) OR (NOT(K1)AND QT1)AND RISING_EDGE(NC)) ) ; --неверный тип boolean нужен std_logic!
QV2<=(R AND((J2 AND NOT(QT2)) OR (NOT(K2)AND QT2)AND RISING_EDGE(NC)) ) ;
END MODEL;
Подскажите как задается тактирование в потоковых моделях. Я так понял нельзя использовать условные конструкции, функции итд. только логику