삽질매니아

위치로그 태그 방명록

'Excess-3'에 해당되는 글 1건

  1. 2007/05/02 Excess-3 변환기(컨버터) Verilog(베릴로그) 소스

Excess-3 변환기(컨버터) Verilog(베릴로그) 소스

전공공부 2007/05/02 02:48
Excess-3 Code(Gray Code)란 0~9까지의 BCD코드를 3더한 순서로 나열한것으로

0011,0100,0110....,1100 으로 나오는 것이다.

다른말로는 BCD to Excess 3 Code Converter라고도 하는데 이것을

Verilog HDL을 이용해 3가지 방법 즉,
1. Gate Level Description(게이트 수준기술)
2. Dataflow Description(데이터플로우 수준기술)
3. Behavioral Description(동작 수준기술)
로 나타내면 다음과 같이 코딩할수 있다.

1. Gate Level Description

module BinaryToGray(A,B,C,D,w,x,y,z);
    input A,B,C,D;
    output w,x,y,z;
    wire w1,w2,w3,w4,w5,w6,w7;
    not g1(z,D);
    and g2(w1,D,C);
    or g3(w2,D,C);
    not g4(w3,B);
    not g5(w7,w2);
    or g6(y,w1,w7);
    and g7(w4,w7,B);
    and g8(w5,w2,w3);
    and g9(w6,w2,B);
    or g10(x,w4,w5);
    or g11(w,w6,A);
endmodule


2. Dataflow Description

module BinaryToGray(A,B,C,D,w,x,y,z);
    input A,B,C,D;
  output w,x,y,z;
     assign z = ~D,
            y = (D&C)|(~(C|D)),
            x = ((~(C|D))&B) | ((C|D)&(~B)),
            w = ((C|D)&B)|A;
endmodule


3. Behavioral Description

module BinaryToGray(A,B,C,D,w,x,y,z);
  input A,B,C,D;
  output w,x,y,z;
  reg [3:0] E;
  wire [3:0] state;
  parameter S0=4'b0000, S1=4'b0001, S2=4'b0010, S3=4'b0011, S4=4'b0100,
             S5=4'b0101, S6=4'b0110, S7=4'b0111, S8=8'b1000, S9=4'b1001;
  assign w=E[3], x=E[2], y=E[1], z=E[0];
  assign state[3] = A, state[2] = B, state[1] = C, state[0] = D;
  always @ (state)
  case(state)
     S0 : E = 4'b0011;
     S1 : E = 4'b0100;
     S2 : E = 4'b0101;
     S3 : E = 4'b0110;
     S4 : E = 4'b0111;
     S5 : E = 4'b1000;
     S6 : E = 4'b1001;
     S7 : E = 4'b1010;
     S8 : E = 4'b1011;
     S9 : E = 4'b1100;
     default : E = 4'b0000;
  endcase
endmodule

이렇게 가능하다.

이것을 보면 동작수준 모델이 항상 최선의 선택이 아님을 알수있다.
때로는 다른방법이 더 짧게 코딩이 될수도 있다.
top
TAG BCD, Behavioral, Dataflow, Excess-3, Gatelevel, GrayCode, Verilog, Verilog HDL


Trackback[트랙백] 0 : Comment[댓글] 0

Trackback Address :: http://skstar.net/blog/trackback/152

Write a comment


◀ PREV : [1] : NEXT ▶

 


관리자 : 새글쓰기
내가 하는 삽질은 활용이지! 활용이라는것이 어떤건지 보여주겠어~

카테고리

전체 (178)
전공공부 (8)
윈도우활용 (24)
동영상 (4)
휴대기기 (20)
휴대폰 (17)
인터넷 (59)
구글(Google) (3)
도메인(Domain) (26)
웹호스팅(Hosting) (6)
태터툴즈(Tattertools) (11)
신기한서비스 (2)
워드프레스(WordPress) (0)
지름신 (2)
Photos (0)
Macro (0)
일기장 (21)
음악과 함께 (2)
In Houston (3)
닌텐도 DS(NDS) (29)
라디오 (1)
돈이야기 (9)

태그목록

  • 스마트케이스 파이널 판타지 3 SineWave 메일 닌텐독스 헤드셋 CPU쿨러 whois.sc 구글 W15 Verilog MPEG2 무선랜카드 피파2006 EA Adsense 프리스페이스 투표 고대디할인쿠폰 하나로통신

최근에 올라온 글

  • 웨스턴 유니온(Western Union)... (1)
  • 한국은행이 7월30일에 발표한...
  • 오늘(7월30일) 현물,선물,옵션...
  • 08년 상반기 외국인 대량보유(...
  • MYLG070 전화기 해지하다.

최근에 달린 댓글

  • 국민은행, 부산은행, 기업은행... kikiwo 10/31
  • 저도 부탁드립니다. 영어울렁... 박정호 10/29
  • kko-kkal@hanmail.net 부탁드... J 10/28
  • 님 저도 부탁드릴께요!!! 너... 하하호호ㅋ 10/13
  • 12시간째 2400 bps 모뎀 수준... 미쳐버리겠네요 09/29

최근에 받은 트랙백

  • 실망스런 닷네임...
    삽질매니아 04/05
  • 도메인 및 호스팅 업체인 X네...
    삽질매니아 04/05
  • Gmail 알리미.
    블로그를 살리자~!!! 02/05
  • 고객실망도 1위 닷네임코리아.
    RERIC.COM 2007
  • 네이버 미수녀?.
    5월의 작은 선인장 2006

글 보관함

  • 2008/08 (1)
  • 2008/07 (4)
  • 2008/05 (2)
  • 2008/04 (2)
  • 2008/03 (2)

달력

«   2008/11   »
일 월 화 수 목 금 토
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

링크

  • DCinside 주식갤러리.
  • 비누넷.
  • 우울한 피.
  • 테터툴즈.

Total : 169619

Tattertools
rss


위치로그 : 태그 : 방명록 : 관리자
myeva’s Blog is powered by Tattertools.com / Designed by plyfly.net