2012-06-12 3 views
2

Я в настоящее время застреваю, пытаясь понять две вещи, связанные с условиями гонки.Условия гонки

Выпуск 1:

Я был представлен со следующим вопросом:

We consider the digital circuit and the value of its inputs a, 
and b as given below. For all logic gates, we assume that 
there is a gate delay of exactly one time unit (i.e. the gate 
delay equals the time between two dotted lines in the 
diagram). Give the values of c, d, e, f in the digital circuit for 
every point of time between 0 and 8. 

enter image description here

И ответ дается следующим образом:

enter image description here

Как именно это достигается? Это то, что я думаю, что до сих пор:

  • C начинается на 1, потому что в старт в 0
  • d начинается на 0, потому что б старт на 1
  • Когда время равно до 2 a становится 1 ... существует задержка прообраза 1 для c для переключения на 0, следовательно, она становится 0 в 3 единицах времени
  • же логика применима и к д
  • х и х предназначены быть постоянными 1 или 0, но, кажется, зависят от чего-то.

Что здесь происходит? Связано ли это с булевой функцией или с ней. Если да, то?

Выпуск 2:

Кто-нибудь есть простой способ или логический подход, в котором для получения простой схемы (с помощью XOR, AND, OR, NOT NAND булевых функций с:

  • статическое состояние гонки - когда значение предназначается, чтобы быть постоянным
  • динамическое состояние гонки - когда значение, как ожидается, изменить

Большое спасибо заранее!

+0

Горячее проклятье, вопрос EE. –

+0

@ Ханс хаха это ревизия для экзамена по информатике – methuselah

ответ

2

Хорошо, поэтому условия гонки в асинхронных цепях происходят, когда в разные моменты времени входы меняются. Допустим, ваша логическая функция выглядит следующим образом

λ = ab + ~b~a 

самый простой способ реализации этой функции с воротами выглядит как

ПРИМЕЧАНИЕ: Я предполагаю, что ваши основные строительные блоки AND, OR и NOT. Очевидно, что в схемах CMOS NAND, NOR и NOT - это то, как вы строите схемы, но общий принцип остается неизменным.Я также предполагаю, что AND, NOR и NOT имеют такую ​​же задержку, когда на самом деле NAND и NOR имеют разные задержки, если выход идет с формой 0 to 1 или 1 to 0, а НЕ примерно на 20% быстрее, чем NAND или NOR.

a ->| AND |-------->| OR | -> λ 
b ->| 1 |   | | 
        | | 
a ->| NOT |->|AND|->| | 
b ->| NOT |->| 2 | | | 

Теперь предположим, что И и НЕ имеют задержку 2 нс. Это означает, что логический элемент ИЛИ видит значение при первом изменении позиции 2 нс, прежде чем он увидит значение при втором изменении позиции.

Что означает, если a и b оба идут от 1 к 0, можно было бы ожидать λ остаться такой же, так как выход из первого и ворот происходит от 1 к 0, но выход логической схемы И выходит из 0 - 1, что означает, что условие OR остается истинным.

Однако, если вы получите на выходе из второго логического элемента И немного после того, как первый логический элемент, то ваш или ворота на мгновение увидеть 0,0 на это вход в то время как переход от 1,0 к 0,1. Это означает, λ будет иметь мгновенное падение, и это будет выглядеть

 __ 
    a |___________ 
    __ 
    b |___________ 
    ____ 
AND1  |_________ 
      _______ 
AND2 ______| 
    ______ _____ 
    λ  |_| 

Если посмотреть на входы логического элемента ИЛИ прямо между когда AND1 идет вниз и AND2 идет вверх, он распространяет 0 через OR ворота , и, конечно же, на выходе 2ns появится провал.

Это общий обзор того, как возникают условия гонки. Надеюсь, это поможет вам понять ваш вопрос.

+0

Как бы вы читали 'λ = ab + ~ b ~ a' - мы использовали AND, OR, NOT, когда именовали наши логические функции. – methuselah

+0

ab эквивалентно (a и b). Мотивировка заключается в том, что если вы принимаете 0 для обозначения значения false, а любое другое значение означает 1, то ab равно 0, если либо a, либо b равно 0. a + b эквивалентно a или b. Обоснование заключается в том, что либо a, либо b> 0, то a + b> 0. ~ a - другой способ записи не a. как и есть а, -а и а '. –