Quality control (2)/Digital System Design

DSD - Verilog Coding Basic

빈그레 2023. 4. 2. 22:15

 

 


Verilog coding basic

 

 

 

수 표현

 

크기와 진수를 명시 (b=binary, h=hexa, d=decimal)

 

 

앞쪽에는 사용할 bits수를 ' 뒤에는 사용할 진수(ex. b,h,d)를 명시하고, 그 뒤에 입력할 값을 작성한다.

cpu는 general purpose를 가지고 있으므로 많은 기능을 위한 많은 공간을 필요로 하기에, 

cpu와 같은 HW에서는 공간의 낭비가 없어야하므로 사용하고자 하는 bit 수를 공간 낭비 없이 명확히 해야한다.

 

수 표현에 있어서 verilog의 엄청난 장점은 음수 사용이 -로 가능하다는 것이다.

 

ex, -6;d3   //3의 2의 보수로써 음수

 

위와 같이 편리하게 음수 사용이 가능하다.

 

 

 

 

 

 

 

 

Invalid & Unsized

 

 

 

 

1.bit 수 or 진수 표현이 없을 때

    default로 32bits가 할당되고 decimal(십진수)로 인식된다.

 

2. 선언한 진수와 뒤에 작성한 number의 진수 표현이 일치하지 않을 때

    ex) 3'b5  ->  3bit의 binary를 표현하겠다고 했지만 그 뒤에 5라는 decimal number를 작성하여 invalid한 표현이다.

 

 

 

 

 

 

 

 

논리값

 

 

'수 표현'에서 다루었던 '수'의 개념과 위 '논리값'의 개념의 가장 큰 차이는

논리값은 수가 아닌 '상태(state)'를 나타내는 것이다.

 

x는 알 수 없는 논리값의 상태로 wire 충돌의 경우의 상태이고,

z는 high impedance or floating 상태로 선 연결이 제대로 안 되었을 때의 상태이다.

 

** impedance : 회로에서 전압이 가해졌을 때 전류의 흐름을 방해하는 값

 

 

 

 

 

 

Net (wire)

 

 

 

 

net은 기본적으로 1bit를 사용한다.

 

 

 

 

 

 

Register (레지스터)

 

: 데이터를 저장해둘 수 있는 변수, 기본적으로 1bit 사용

 

reg reset;              //값을 가질 수 있는 변수 reset 정의
initial
begin
	reset = 1'b1;       //디지털 회로에서 reset을 1로 초기화 한다.
	#100 reset = 1'b0;  //100단위 시간이 지난 뒤 reset 값을 binary type 0으로 바꾼다
end

 

integer i;          //32-비트 부호가 있는 값

 

 

 

 

 

vector형 wire와 reg

 

벡터형 wire,reg

 

 

 

위와 같이 벡터의 일부를 골라서 쓸 수도 있다.