Я пытаюсь имитировать EXOR, используя ворота NOR. Я написал логику для EXOR-ворот. Теперь мой nor2 определяется с задержкой 4 нс.Можем ли мы включить задержки структурной архитектуры?
ENTITY ex IS
PORT (a, b : IN BIT; c : OUT BIT);
END ex;
ARCHITECTURE structure OF ex IS
SIGNAL tmp1, tmp2, tmp3, tmp4: BIT;
COMPONENT nor2 PORT (x, y : IN BIT; z : OUT BIT); END COMPONENT;
BEGIN
u0: nor2 PORT MAP (a, a, tmp1);
u1: nor2 PORT MAP (b, b ,tmp2);
u2: nor2 PORT MAP (tmp1,tmp2,tmp3);
u3: nor2 PORT MAP (b, a, tmp4);
u4: nor2 PORT MAP (tmp3, tmp4, c);
END structure;
Я знаю, что tmp1
, tmp2
и tmp4
изменит сигналы через 4 нс после a
или b
изменений. Я также замечаю, что tmp3
и, следовательно, c
меняются после 4 нс (поскольку nor2
имеет задержку 4 нс [c <= a nor b after 4ns
]). Но я хочу, чтобы tmp3
отражал изменение после 8 нс согласно правильной логике и c
после 12 нс. Это даст мне правильный результат для EXOR
. Мой вопрос заключается в том, как я могу представить задержку в структурной архитектуре? Есть ли способ сделать это? Я пытался искать, но не нашел и ждать не работает, он продолжает давать синтаксическую ошибку (подождите 8ns). Большое спасибо за помощь!
Я проследил все комбинации a и b. Но, я получил тот же результат, что и вы сказали. Но я хочу, чтобы c отражал изменения только после того, как a и b изменились. Я меняю a и b через 10 нс. Когда я вижу форму волны, tmp3 и tmp4 первоначально являются 0, а после 4 ns c изменяется на 1. Как и ожидалось, так как a и b также равны 0. Но прежде чем a и b изменят свои значения на 0 и 1, значения tmp изменяются и, следовательно, c изменяется на 0, но a и b все равно 0. Я ожидаю, что c изменится только после того, как a и b изменятся, поэтому я хочу ввести задержку. В противном случае форма волны выглядит очень запутанной и в отличие от ворот EXOR. – San
У меня есть форма волны, если вы хотите, чтобы я опубликовал его. – San
@San См. [Здесь] (http://www.ida.liu.se/~TDTS01/lectures/13/lect3.frm.pdf), а также [здесь] (http://www.gmvhdl.com/delay .htm). –