본문 바로가기

Contact English

【논리설계】 5강. 하드웨어 기술 언어

 

5강. HDL(hardware description language), 베릴로그(verilog)

 

추천글 : 【논리설계】 논리설계 목차


1. wire vs reg [본문]

2. always@/initial [본문]

3. descriptions [본문]

4. 벡터 표시 [본문]

5. 하드웨어 구현 시 주의사항 [본문]


 

1. wire vs reg [목차]

wire

① wire는 두 인스턴스를 연결하는 도선이다.

② wire는 실제 module 선언 시 inputoutput으로 꼭 사용된다.

③ wire는 홀로 어떤 값을 저장할 수 없다; 정보의 통로 역할이기 때문

④ wirealways@/initial 블록에서 =, <= 연산 시 왼쪽에 올 수 없다.

⑤ 좌변이 wire이고, 우변이 reg이면 wire가 값을 저장하는 게 돼 버리므로

⑥ always@/initial 블록 밖에서는 wire 연결 시 assign을 써야 한다.

⑦ always@/initial 블록 안에서는 assign은 쓸 수 없다.

⑧ assign 연산을 수행 시 wire 변수만 좌변에 올 수 있다.

⑨ wire는 combinational logic에서만 쓰인다.

⑩ wire의 용례

 

Figure. 1. wire의 용례

 

⑵ reg

① reg는 값을 저장하는 변수로 flip-flop이나 latch가 쓰인다.

② input과 똑같은 이름의 reg 변수를 선언함으로써 자동으로 input과 연결될 수 있다.

③ regoutput으로 연결될 수는 있으나, output wire와 연결될 수는 없다.

④ reg 변수가 input으로 사용될 수 없다.

⑤ always@/initial 블록에서 =, <= 연산 시 reg 변수만 좌변에 올 수 있다.

⑥ '<='가 포함된 문장을 비블록형 문장(non-blocking statement)이라고 한다.

⑦ '='가 포함된 문장을 블록형 문장(blocking statement)이라고 한다.

⑧ 반복 구간 안에서 비블록형은 동시에 처리되고, 블록형은 따로 처리된다.

⑨ regassign 연산 시 왼쪽에 올 수 없다.

⑩ assign은 기본적으로 좌변의 wire를 우변에 연결한다는 의미이기 때문

⑪ always@/initial 블록 안에서는 있으나 마나 차이가 없다.

⑫ reg는 combinational logic과 sequential logic에서 모두 쓰인다.

⑬ reg의 용례

 

Figure. 2. reg의 용례

 

 

2. always@/initial [목차]

⑴ 값의 저장, 논리함수 등은 반드시 always@/initial 블록 안에 있어야 한다.

⑵ initial은 맨 처음 1회, always@는 해당 조건이 만족할 때면 항상 실행되는 명령이다.

⑶ always@ (*) : 신호가 들어올 때.. () 값이 변할 때는 언제.. (posedge ##) (negedge ##)

 

 

3. descriptions [목차]

⑴ structural description : 모듈 및 gate를 조합해서 논리회로를 완성하는 방식

⑵ hierarchical description : 모듈 간의 포함관계 또한 설정할 수 있다. 

⑶ data flow style description : 모듈 간의 wiring을 설정해서 논리회로를 완성하는 방식

⑷ behavioral(algorithmic) description : C 프로그래밍과 비슷한 방법

 

 

4벡터 표시 [목차]

⑴ [n-1 : 0]에서 [n-1]은 MSB, [0]은 LSB를 나타낸다.

⑵ 이러한 벡터표현도 가능하다.

⑶ .A({a[1], a[0]}) .A({a[1:0]})  .A(a[1:0])

 

 

5. 하드웨어 구현 시 주의사항 [목차]

⑴ 하드웨어 구현 시 시뮬레이션과 다르게 initial이 전혀 의미가 없다. initial 구문은 전부 지우자.

⑵ 레지스터에 값을 저장 시 반드시 비블록형 문장을 쓰도록 하자. (물론 블록형도 가능하지만.)

 

 입력: 2016.10.07 20:24