Carry Look-ahead Adder Design

Carry Look-ahead Adder(캐리 예측 덧셈기)
 전가산기를 이용한 Ripple Carry Adder는 많은 bit의 연산을 하려고 할 때
지연되는 시간이 길어지는 단점을 갖는다.
 CLA(Carry Look-ahead Adder)의 경우는 carry의 발생을 bit입력시
바로 계산하여 시간의 지연 없이 바로 덧셈연산을 수행할 수 있는 장점을 갖는다.
 * 참고: http://en.wikipedia.org/wiki/Carry_lookahead_adder

< RTL(Register Transfer Level) Schematic >

사용자 삽입 이미지
사용자 삽입 이미지

크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2009/04/10 19:44 2009/04/10 19:44

Leave a comment
[로그인][오픈아이디란?]

2's compliment & Absolute Unit


2의 보수를 만드는 Unit의 경우 부호가 없는 8bit의 데이터를 입력받은 후
1의 보수를 취하기 위해 ~ 연산을 수행하였다.
그 뒤에 1을 더하여 2의 보수를 구하고 그 결과를 16bit로 확장하기 위해 { 비트1, 비트2 }로 묶었다.

절대값을 취하는 Unit의 경우 입력받은 데이터는 10bit의 signed number이다.
따라서 입력한 bit가 양수인지 음수인지 파악하기 위해 최상위 비트(MSB)값에 대한 조건문을 추가한다.
그 값이 참일 경우 음수임을 의미하므로, 1을 빼고 1의 보수를 취해서 양수로 만들어준다.
MSB가 0인 경우 양수이므로, 입력받은 데이터를 그대로 출력한다.

사용자 삽입 이미지

< 2's Complement Unit Simulation Result >

사용자 삽입 이미지
< Absolute Unit >
< Test Bench >

more..

크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2009/03/27 18:30 2009/03/27 18:30

Leave a comment
[로그인][오픈아이디란?]

4-Bit Ripple Carry Adder


반가산기 모듈을 이용해서 전가산기를 만들었다.(2개의 반가산기와 OR gate를 결합)
전가산기 4개를 직렬로 구성하여 4bit Ripple Carry Adder를 만들게 된다.
아래 그림은 Test Bech를 이용한 Simulation결과이다.

사용자 삽입 이미지

크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2009/03/20 18:58 2009/03/20 18:58

Leave a comment
[로그인][오픈아이디란?]

ABEL - Prime number detector

<ABL 코드>
module pdetector
title '4 bit prime number detecting code by changkyu'
PDETECT device 'P16V8C';

"input pins
N0, N1, N2, N3 pin 2,3,4,5;

"output pins
F pin 19;

"definition
NUM = [N3, N2, N1, N0];

equations
F = !N3&N0 # N2&!N1&N0 # !N2&N1&N0 # !N3&!N2&N1;

test_vectors
([N3, N2, N1, N0] -> [F])
 [ 0,  0,  0,  0] -> [0];
 [ 0,  0,  0,  1] -> [1];
 [ 0,  0,  1,  0] -> [1];
 [ 0,  0,  1,  1] -> [1];
 [ 0,  1,  0,  0] -> [0];
 [ 0,  1,  0,  1] -> [1];
 [ 0,  1,  1,  0] -> [0];
 [ 0,  1,  1,  1] -> [1];
 [ 1,  0,  0,  0] -> [0];
 [ 1,  0,  0,  1] -> [0];
 [ 1,  0,  1,  0] -> [0];
 [ 1,  0,  1,  1] -> [1];
 [ 1,  1,  0,  0] -> [0];
 [ 1,  1,  0,  1] -> [1];
 [ 1,  1,  1,  0] -> [0];
 [ 1,  1,  1,  1] -> [0];

end pdetector
<JED 파일 일부분>
ABEL(tm) Version 2.00b  JEDEC file for: P16V8C
Created on: 15-Nov-107 02:06 PM
4 bit prime number detecting code by changkyu*
QP20* QF2194*
L0000
11111111111111111111111111111111
01111111111110111111111111111111
01111011011111111111111111111111
01110111101111111111111111111111
11110111101110111111111111111111
00000000000000000000000000000000
                (중간생략)
V0001 X0000XXXXNXNXXXXXXLN*
V0002 X1000XXXXNXNXXXXXXHN*
V0003 X0100XXXXNXNXXXXXXHN*
V0004 X1100XXXXNXNXXXXXXHN*
V0005 X0010XXXXNXNXXXXXXLN*
V0006 X1010XXXXNXNXXXXXXHN*
V0007 X0110XXXXNXNXXXXXXLN*
V0008 X1110XXXXNXNXXXXXXHN*
V0009 X0001XXXXNXNXXXXXXLN*
V0010 X1001XXXXNXNXXXXXXLN*
V0011 X0101XXXXNXNXXXXXXLN*
V0012 X1101XXXXNXNXXXXXXHN*
V0013 X0011XXXXNXNXXXXXXLN*
V0014 X1011XXXXNXNXXXXXXHN*
V0015 X0111XXXXNXNXXXXXXLN*
V0016 X1111XXXXNXNXXXXXXLN*
C1C5F*
4F60
크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2007/11/17 02:13 2007/11/17 02:13

Leave a comment
[로그인][오픈아이디란?]

ABEL - 2x4 decoder

<ABL 코드>
module
decoder2to4
title '2 to 4 decoder abel code by changkyu'
DCODER device 'P16V8C';

"input pins
I0, I1 pin 2,3;
EN pin 4;

"output pins
Y0, Y1, Y2, Y3 pin 16,17,18,19;

"constants
X = .X.;

equations
Y0 = EN & !I0 & !I1;
Y1 = EN & !I1 & I0;
Y2 = EN & I1 & !I0;
Y3 = EN & I1 & I0;

test_vectors
([EN, I1, I0] -> [Y3, Y2, Y1, Y0])
[  0,.X.,.X.] -> [ 0,  0,  0,  0];
[  1,  0,  0] -> [ 0,  0,  0,  1];
[  1,  0,  1] -> [ 0,  0,  1,  0];
[  1,  1,  0] -> [ 0,  1,  0,  0];
[  1,  1,  1] -> [ 1,  0,  0,  0];

end decoder2to4
<DOC 출력>
ABEL(tm) Version 2.00b  -  Document Generator             15-Nov-107 01:28 PM
2 to 4 decoder abel code by changkyu
Chip diagram for Module decoder2to4

Device DCODER
                            P16V8C

                 ----------\       /----------
                 |         \     /           |
                 |          -----            |
                 |  1                    20  | Vcc            
                 |                           |
              I0 |  2                    19  | Y3             
                 |                           |
              I1 |  3                    18  | Y2             
                 |                           |
              EN |  4                    17  | Y1             
                 |                           |
                 |  5                    16  | Y0             
                 |                           |
                 |  6                    15  |                
                 |                           |
                 |  7                    14  |                
                 |                           |
                 |  8                    13  |                
                 |                           |
                 |  9                    12  |                
                 |                           |
             GND | 10                    11  |                
                 |                           |
                 |                           |
                 -----------------------------

end of module decoder2to4
크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2007/11/17 02:05 2007/11/17 02:05

Leave a comment
[로그인][오픈아이디란?]

ABEL - Hamming Code

<ABL 코드>
module
Hamming_Code

title 'Hamming code converter'

HAMCVT device 'P22V10';

 

" Input pins

I1, I2, I3             pin 2, 3, 4;

 

" Output pins

D1, D2, D3             pin 23, 22, 21;

P1, P2, P3, P4         pin 20, 19, 18, 17;

T                      pin 16;

 

" Constant definition

L,H = 0,1;

M = 0;                 "even or odd set

 

equations

D1 = I1;

D2 = I2;

D3 = I3;

P1 = I2 $ I1 $ M;      "xor 연산을 통해 1 확인

P2 = I3 $ I1 $ M;

P3 = I3 $ I2 $ M;

T = I1 $ I2 $ I3;      "입력 데이터의 even parity를 구하기 위해 사용

P4 = T $ P1 $ P2 $ P3; "T와 패티티 비트에서 even parity를 구함

 

test_vectors

([I1, I2, I3] -> [D1, D2, D3, P1, P2, P3, P4])  "I1 I2 I3의 해밍코드

[  L,  L,  L] -> [ L,  L,  L,  L,  L,  L,  L];

[  L,  L,  H] -> [ L,  L,  H,  L,  H,  H,  H];

[  L,  H,  L] -> [ L,  H,  L,  H,  L,  H,  H];

[  L,  H,  H] -> [ L,  H,  H,  H,  H,  L,  L];

[  H,  L,  L] -> [ H,  L,  L,  H,  H,  L,  H];

[  H,  L,  H] -> [ H,  L,  H,  H,  L,  H,  L];

[  H,  H,  L] -> [ H,  H,  L,  L,  H,  H,  L];

[  H,  H,  H] -> [ H,  H,  H,  L,  L,  L,  H];

 

end Hamming_Code

<컴파일 결과>
FUSEMAP ABEL-PLD(tm) 3.21

Copyright 1983-1990 Data I/O Corp. All Rights Reserved.

module Hamming_Code

_device HAMCVT  'P22V10'

 29 of 132 terms used,  8 vectors included

FUSEMAP complete.  Time: 0 seconds

 

SIMULATE ABEL-PLD(tm) 3.20

Copyright 1983-1990 Data I/O Corp. All Rights Reserved.

module Hamming_Code

_device HAMCVT  'P22V10'

........

8 out of 8 vectors passed.

SIMULATE complete. Time: 0 seconds

 

DOCUMENT ABEL-PLD(tm) 3.20

Copyright 1983-1990 Data I/O Corp. All Rights Reserved.

module Hamming_Code

_device HAMCVT

DOCUMENT complete.  Time: 0 seconds

          * 참고 사이트: http://www.seas.upenn.edu/~ese201/abel/abel_primer.html
크리에이티브 커먼즈 라이센스
Creative Commons License

"HDL" 카테고리의 다른 글

Posted by downright

2007/11/17 02:01 2007/11/17 02:01

Leave a comment
[로그인][오픈아이디란?]