verilog 기초 예제

Verilog 및 SystemVerilog 언어 재단은 엔지니어가 Verilog 및 SystemVerilog로 작성된 디지털 하드웨어 모델및 기존 검증 테스트벤치를 읽고, 이해하고, 유지할 수 있도록 설계된 빠르게 진행되는 워크샵입니다. 데이터 형식의 적절한 사용, 2상태 대 4상태 모델링, 수온형식, 구조, SystemVerilog의 다재다능한 프로그래밍 문 집합을 비롯한 중요한 언어 기반이 제공됩니다. 실습 실습은 수업 강의 에서 논의 된 개념을 강화합니다. Verilog에는 실제 하드웨어에 아날로그가 없는 몇 가지 문(예: $display)이 있습니다. 따라서 대부분의 언어는 하드웨어를 설명하는 데 사용할 수 없습니다. 여기에 제시된 예제는 실제 게이트에 직접 매핑되는 언어의 고전적인 하위 집합입니다. Verilog의 “<=" 연산자는 일반적인 절차 언어와 는 달리 하드웨어 설명 언어의 또 다른 측면입니다. 이를 "비차단" 할당이라고 합니다. 해당 작업은 항상 블록이 실행될 때까지 등록되지 않습니다. 즉, 할당 순서는 관련이 없으며 동일한 결과가 생성됩니다: flop1 및 flop2는 매 클럭마다 값을 바꿉습니다. 같은 시간 프레임에서 케이던스는 아날로그 시뮬레이터 유령 뒤에 표준 지원을 넣어 Verilog-A의 생성을 시작했다. Verilog-A는 독립 실행형 언어를 의도한 것이 아니었으며 Verilog-95를 포괄하는 Verilog-AMS의 하위 집합입니다.

Verilog 시뮬레이터에 대한 자세한 내용은 Verilog 시뮬레이터 목록을 참조하십시오. PLI(현재 VPI)를 사용하면 Verilog가 테스트 하네스, 마이크로 컨트롤러의 명령 세트 시뮬레이터, 디버거 등과 같은 C 언어로 작성된 다른 프로그램과 협력할 수 있습니다. 예를 들어 현재 Verilog 작업 또는 함수의 인수를 작성하고 읽는 데 사용되는 C 함수 tf_putlongp() 및 tf_getlongp()를 각각 제공합니다. (이 워크샵에 제시된 정보는 다른 워크샵과 결합할 수 있으며 서덜랜드 HDL의 “디자인 및 합성을 위한 Verilog/SystemVerilog” 워크샵에 통합되어 있습니다.) Bluespec의 AzureIP는 설계 구성 요소, 인터페이스 및 유형의 풍부한 IP 라이브러리를 통해 설계를 간소화하며, 기존 설계에서 가능한 것보다 더 높은 파라미터화 및 고급 기능으로 가득합니다. 재단 라이브러리는 컴파일러에 포함되어 있습니다. 추가 라이브러리는 선택적으로 사용할 수 있습니다. 플립 플롭은 다음으로 중요한 템플릿입니다. Verilog에서 D-flop은 가장 간단하며 Verilog와 같은 하드웨어 설명 언어는 전파 시간과 신호 강도(감도)를 설명하는 방법을 포함하기 때문에 소프트웨어 프로그래밍 언어와 유사합니다. 할당 연산자는 두 가지 유형이 있습니다. 차단 할당(=) 및 비차단(<=) 할당입니다.

비차단 할당을 사용하면 설계자가 임시 저장소 변수를 선언하고 사용할 필요 없이 상태 시스템 업데이트를 설명할 수 있습니다. 이러한 개념은 Verilog의 언어 의미 체계의 일부이므로 설계자는 비교적 컴팩트하고 간결한 형태로 대형 회로에 대한 설명을 빠르게 작성할 수 있습니다. Verilog의 도입(1984년) 당시 Verilog는 이미 그래픽 회로도 캡처 소프트웨어와 특별히 작성된 소프트웨어 프로그램을 사용하여 문서화하고 시뮬레이션한 회로 설계자에게 엄청난 생산성 향상을 제공했습니다. 전자 회로. Verilog 디자인은 모듈의 계층 구조로 구성됩니다. 모듈은 설계 계층 구조를 캡슐화하고 선언된 입력, 출력 및 양방향 포트 집합을 통해 다른 모듈과 통신합니다.