베릴로그
-
Verilog : parameter가 선언된 module은 합성 할 때 template을 명시하자Tech/Verilog 2012. 5. 22. 01:38
Verilog를 배우기 시작하면, 처음 얼마간은 C/C++나 Java 등 프로그래밍 언어처럼 접근해서 사용하며 친숙해지겠지만, 본격적인 반도체 설계에 들어간다면 Synthesis 과정 등을 위해 고려해야할 점이 더 많아진다. 특히, Synopsys 사의 Design compiler에만 적용되는 몇가지 Verilog keyword 들이 있는데 (// 주석을 이용한 pragma 등) module의 선언에 흔히 사용되는 parameter도 특정 pragma가 필요하다. Tool에 의존적인 키워드이기 때문인지 Verilog 강의 등에 포함하여 설명하는 곳이 거의 드문데, 이 때문에 직접 합성을 하다 삽질하는 경우가 빈번하다.아무튼, Parameter를 이용하여 선언된 module이 전체 합성되는 Verilog ..
-
Verilog : case문 사용 시, parallel_case 선언 이해하기Tech/Verilog 2012. 5. 21. 17:31
case와 if는 연속된 조건문을 비교한다는 관점에서 보면 그 기능이 동일하다. 특히, Verilog에서는 C/C++의 switch-case문과 달리 break 등을 따로 기술하지 않으므로 기능이 완전히 동일하다고 볼 수 있다. 예를 들어보자. 아래의 두 module은 기능적으로 동일하다. module interrupt_decode4 (output reg somthing, input [3:0] irq ); always @* begin if (irq[0]) do interrupt 0 else if (irq[1]) do interrupt 1 else if (irq[2]) do interrupt 2 else if (irq[3]) do interrupt 3 end endmodule module interrupt..
-
Verilog : assert와 assert property 활용하기Tech/Verilog 2012. 5. 18. 15:49
Verilog는 하드웨어 개발을 위한 프로그래밍 언어라, 실제 하드웨어 합성(synthesis)을 위해서는 C/C++ 등 일반 프로그래밍 언어와 다른 점이 많다. 하지만, 시뮬레이션을 위해 보다 더 프로그래밍 언어적 요소가 많이 추가되어 왔으며, 특히 SystemVerilog에 이르러서는 2가지 타입의 assert 명령어가 지원되어 테스트벤치 작성에 많이 활용된다. Immediate type (assert) Concurrent type (assert property) 1.Immediate Type Assertions 먼저, Immediate type에 대해서 알아보자. 이 타입은 우리가 프로그래밍을 할 때 흔히 사용하는 일반적인 assert와 동일하다. Simulation 수행 중 assert문에 도달하..