2016-08-31 7 views
-1

질문이 있습니다. 문제를 해결하기위한 힌트를 누군가에게 줄 수 있기를 바랍니다.Verilog : tmax보다 큰 펄스를 감지합니다.

입력 신호 in의주기가 tmax보다 큰 경우 즉시 "재설정"신호를 높이기 위해 Verilog 코드가 필요합니다.

"에서"입력 신호의주기는 "다음 신호 티맥스 미만이면

(다음 양의 에지가있는 경우) 신호가"리셋 ","IN "의 다음 양의 에지에서 다시 저 가야

리셋 "은 낮게 유지되어야합니다.

예 1

tmax=100ns 
period(in) = 80ns 
  • 리셋

예 2

tmax=100ns 
period(in) = 130ns 
  • 리셋의 제 1 포지티브 에지 이후 높은 100ns의 간다 항상 낮게 유지 "in"
  • 제 2 펄스

See attached image

내가 시작해야이있을 경우

  • 리셋 "의"의 다음 양 가장자리에 낮은 간다?

  • +0

    Verilog 테스트 벤치 용인가요? – toolic

    +2

    지금까지 시도한 것과 실패한 것을 보여주십시오. –

    +0

    안녕하세요, 실제로는 입력 신호를 "in"으로 모니터하고 위의 설명에 따라 "reset"을 출력하는 모델입니다. 고맙습니다! –

    답변

    0

    어때? Tmax가 초과되는지 확인하기 위해 검사를해야하지만 결과 사이에 1 배의 해상도를 얻습니다.

    always @ (*) 
        begin 
         while(1) 
          begin 
          current_time = $realtime; 
          if (last_time > 0.0) freq = 1.0e9/(current_time - last_time); 
          last_time = current_time; 
          # 1; // This allows for 1 timescale between loops. If you leave 
            // this out, most simulators become non-responsive in the loop. 
          end 
        end