2017.05.07 07:29

출처 : http://egloos.zum.com/pinge/v/2259784

 

 

처음 Verilog HDL 언어를 접하면서 가장 힘들었던 부분은 역시 wire 와 reg의 구분을 하는것..

wire = "선"

reg = "레지스터" 라고 우선 생각을 한다.

wire 는 실제 wire처럼 단지 어떤 모듈과 모듈을 이어주는 선에 불과하고 reg은 실제 레지스터처럼 어떤 신호에 영향을 받아 바뀌는 값이라고 생각함. 따라서 always문 안에서만 reg 값의 변경이 가능하고 wire값은 그 자체로 변경이 불가능하다. 단지 선을 연결하거나 and나 or등의 모듈로 나온 선을 잇는것만 가능할뿐..

ex ) reg와 wire를 이용한 2x4 Decoder.

2x4 Decoder 의 진리표

 

 

Input

Output

00

0001

01

0010

10

0100

11

1000

 

1) Reg 를 이용한 2x4 Decoder

in 신호를 Register값 변경 신호로 잡아 Reg값에 Decode된 값 입력

module Decoder2x4_byReg(in , out);

   input[1:0] in;

   output[3:0] out;

 

   wire[1:0] in;

   reg[3:0] out;

 

   always @(in)

   begin

           if (in == 2'b00) out <= 4'b0001;

           else if (in == 2'b01) out <= 4'b0010;

           else if (in == 2'b10) out <= 4'b0100;

           else if (in == 2'b11) out <= 4'b1000;

   end

endmodule

 

2) wire를 이용한 2x4 Decoder

Not gate와 And gate를 이용한 단순 연결

module Decoder2x4_byWire(in, out);

   input[1:0] in;

   output[3:0] out;

 

   wire[1:0] in;

   wire[3:0] out;

 

   assign out[0] = ~in[0] & ~in[1];

   assign out[1] =   in[0] & ~in[1];

   assign out[2] = ~in[0] &   in[1];

   assign out[3] =   in[0] &   in[1];

endmodule

--------------------------------------------------

이렇게 구분하는 것이 정확하게 맞다고는 생각하지 않지만 처음 개념 잡을때는 필요한 부분이 있다.

wire 는 선이고, reg 는 값을 저장할 수 있다는 것 말이다.

'초보의 아웅다웅 설계하기 > Altera' 카테고리의 다른 글

Verilog simulation  (0) 2017.10.05
Downloading ELF Process failed 에러  (0) 2017.09.25
알테라에서 IP추가후 에러가 발생하는 문제  (0) 2017.09.25
Altera 시뮬레이션 하기  (0) 2017.05.11
wire와 reg  (0) 2017.05.07
ALTERA 프로젝트 만들기  (0) 2017.05.06
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요