디지털회로설계 3

[Verilog] 베릴로그 function vs task

이번 포스팅에서는 베릴로그에서 function과 task에 대해 정리해보았다.Function과 task는 반복되는 코드를 줄이기 위해 베릴로그에서 제공하는 기능이다.비슷한 듯 하지만, function과 task에는 차이가 있으니 이에 유의하여 살펴보자.0. Overview베릴로그에서 function/task는 사용하고자 하는 모듈 내 혹은 별도의 파일에 정의할 수 있다. 별도의 파일에 함수를 define하는 경우, 해당 파일을 `include 구문을 통해 포함시켜야한다.FunctionTask최소 1개 이상의 input 존재함input 제약없음output/inout 없음output/inout 제약없음return 값 존재함output port를 통해 값 전달 가능함다른 function만 호출 가능함 (tas..

반도체 회로설계 헷갈리지만 중요한 개념, jitter, skew, slack, slew 란?

반도체 회로설계를 하는데에 자주 언급되는 jitter, skew, slack, slew 그 개념 차이에 대해 알아보자.헷갈리지만 서로 다른 개념을 갖는 특성값이므로, 각각을 정확하게 이해하는 것이 중요하다. 0. Jitter (지터)" 디지털 신호 파형이 시간축상으로 흐트러 지는 현상  "Clock signal이라 함은 일정한 주기를 갖는데 각 주기마다 조금씩 차이가 날 때 이를 jitter라고 정의한다.일정한 주기를 가져야 하는데 주기가 변하는 특성이기 때문에, uncertainty가 발생하여 좋지 않은 특성이다. 1. Skew (스큐)" 가장 빨리 도달하는 clock과 가장 늦게 도달하는 clock의 차이 "Skew(스큐)란 보통 clock signal의 특성으로도 이해할 수 있는데,가장 빨리 도달하..

[Verilog] Continuous Assignment vs Procedural Assignment - 베릴로그 연속 할당 vs 절차형 할당

Verilog에서 값을 할당하는 구문은 Continuous Assignment와 Procedural Assignment 두 가지가 있다. 각 할당문과 그 차이에 대해서 알아보자. 1. Continuous Assignment - 연속 할당 " Net형 객체에 값을 할당하는 구문 " Continuous assignment 연속 할당문은 assign문을 통해 net형 객체에 값을 할당한다. =의 우변에 값의 변화가 생기면, 즉 이벤트가 발생하면 좌변의 객체에 그 값을 할당하게 된다. 모든 continuous assignment는 우선순위가 없이 우변의 이벤트에 따라 수행되기 때문에, 할당문의 기술순서가 시뮬레이션 결과에 영향을 끼치치 않는다. 연속 할당문을 사용하여 조합논리회로인 combinational lo..