산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> verilog

Verilog 초기 블록

Verilog 문 세트는 일반적으로 시뮬레이션에서 순차적으로 실행됩니다. 이러한 명령문은 절차적 차단하다. 절차적에는 주로 두 가지 유형이 있습니다. Verilog의 블록 - 초기 그리고 항상

구문

  
  
	initial 
		[single statement]

	initial begin
		[multiple statements]
	end

  

초기 블록은 무엇에 사용됩니까?

initial 블록은 합성할 수 없으므로 디지털 요소가 있는 하드웨어 회로도로 변환할 수 없습니다. 따라서 초기 블록은 시뮬레이션에 사용되는 것보다 많은 목적을 수행하지 않습니다. 이 블록은 주로 변수를 초기화하고 특정 값으로 설계 포트를 구동하는 데 사용됩니다.

초기 블록은 언제 시작되고 종료되나요?

initial 블록은 시간 0 단위에서 시뮬레이션 시작 시 시작됩니다. 이 블록은 전체 시뮬레이션 동안 한 번만 실행됩니다. initial 실행 블록 내의 모든 명령문이 실행되면 블록이 종료됩니다.

<노스크립트> verilog-initial-block

위에 표시된 이미지에는 module이 있습니다. 및 b라는 두 개의 내부 신호가 있는 행동이라고 합니다. initial 블록에는 명령문이 하나만 있으므로 begin 내에 명령문을 배치할 필요가 없습니다. 및 end . 이 명령문은 초기 블록이 시간 0 단위에서 시작될 때 값 2'b10을 a에 할당합니다.

지연 요소가 있으면 어떻게 됩니까?

아래 표시된 코드에는 신호 b에 일부 값을 할당하는 추가 명령문이 있습니다. 그러나 이것은 이전 명령문을 실행한 후 10시간 단위 후에만 발생합니다. 이것은 a가 주어진 값으로 먼저 할당되고 10시간 단위 후에 b가 0으로 할당됨을 의미합니다.

<노스크립트> verilog-initial-block-begin-end

모듈에 허용되는 초기 블록은 몇 개입니까?

initial의 수에는 제한이 없습니다. 모듈 내에서 정의할 수 있는 블록입니다.

아래에 표시된 코드에는 3이 있습니다. initial 모든 블록이 동시에 시작되고 병렬로 실행됩니다. 그러나 각 초기 블록 내의 명령문 및 지연에 따라 블록을 완료하는 데 걸리는 시간이 다를 수 있습니다.

<노스크립트> verilog-multiple-initial-blocks

이 예에서 첫 번째 블록의 지연 시간은 20단위이고 두 번째 블록의 총 지연 시간은 50단위(10 + 40)이고 마지막 블록의 지연 시간은 60단위입니다. 따라서 60시간 단위까지 실행 중인 초기 블록이 하나 이상 있기 때문에 시뮬레이션을 완료하는 데 60시간 단위가 걸립니다.

$finish 현재 시뮬레이션을 종료하도록 시뮬레이터에 지시하는 Verilog 시스템 작업입니다.

마지막 블록에 아래와 같이 30시간 단위의 지연이 있는 경우 시뮬레이션은 30시간 단위로 종료되어 다른 모든 initial이 종료됩니다. 해당 시간에 활성화된 블록입니다.

  
  
	initial begin
		#30 $finish;
	end

  

initial 블록은 시뮬레이션에서 실행됩니다.

시뮬레이션 예제가 있는 슬라이드쇼를 보려면 여기를 클릭하십시오!


verilog

  1. Verilog 튜토리얼
  2. Verilog 연결
  3. Verilog - 호두 껍질에
  4. Verilog 할당
  5. Verilog 차단 및 비 차단
  6. Verilog 기능
  7. Verilog 작업
  8. Verilog 클록 생성기
  9. Verilog 수학 함수
  10. Verilog 시간 형식