Browse papers
A

Section A: Long Answer Questions

Attempt all / any as specified.

4 questions
1long12 marks

(a) Convert the following numbers as indicated, showing all steps: (i) (1011.101)2(1011.101)_2 to its decimal and octal equivalents. (ii) (2AF.C)16(2AF.C)_{16} to its binary and decimal equivalents. (6)

(b) Perform the subtraction (110100)2(10111)2(110100)_2 - (10111)_2 using the 2's complement method and verify your answer in decimal. (3)

(c) What is a weighted code? Encode the decimal number (5290)10(5290)_{10} in BCD (8421) and explain why the Gray code is preferred for shaft-position encoders. (3)

(a) Number conversions

(i) (1011.101)2(1011.101)_2

To decimal:

123+022+121+120+121+022+1231\cdot2^3 + 0\cdot2^2 + 1\cdot2^1 + 1\cdot2^0 + 1\cdot2^{-1} + 0\cdot2^{-2} + 1\cdot2^{-3} =8+0+2+1+0.5+0+0.125=(11.625)10= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125 = (11.625)_{10}

To octal (group bits in 3s from the binary point):

0011 0113.1015=(13.5)8\underbrace{001}_{1}\ \underbrace{011}_{3}\,.\,\underbrace{101}_{5} = (13.5)_8

So (1011.101)2=(11.625)10=(13.5)8(1011.101)_2 = (11.625)_{10} = (13.5)_8.

(ii) (2AF.C)16(2AF.C)_{16}

To binary (each hex digit -> 4 bits):

2=0010, A=1010, F=1111, C=11002=0010,\ A=1010,\ F=1111,\ C=1100 (2AF.C)16=(001010101111.1100)2=(1010101111.11)2(2AF.C)_{16} = (0010\,1010\,1111.1100)_2 = (1010101111.11)_2

To decimal:

2162+10161+15160+121612\cdot16^2 + 10\cdot16^1 + 15\cdot16^0 + 12\cdot16^{-1} =512+160+15+0.75=(687.75)10= 512 + 160 + 15 + 0.75 = (687.75)_{10}

(b) Subtraction (110100)2(10111)2(110100)_2 - (10111)_2 by 2's complement

Make both 6 bits: minuend =110100=110100, subtrahend =010111=010111.

2's complement of 010111010111: 1's complement =101000=101000, add 1 101001\Rightarrow 101001.

Add:

110100+101001=1011101110100 + 101001 = 1\,011101

There is a carry-out of the MSB, so the result is positive and we discard the carry:

Result=(011101)2=(29)10\text{Result} = (011101)_2 = (29)_{10}

Verification: (110100)2=52(110100)_2 = 52, (10111)2=23(10111)_2 = 23, and 5223=2952 - 23 = 29. Confirmed.

(c) Weighted code, BCD encoding, Gray code

A weighted code is one in which each bit position is assigned a fixed weight, and the decimal value equals the weighted sum of the bits (e.g. BCD 8-4-2-1).

BCD (8421) of (5290)10(5290)_{10} — encode each digit in 4 bits:

5=0101, 2=0010, 9=1001, 0=00005=0101,\ 2=0010,\ 9=1001,\ 0=0000 (5290)10=(0101001010010000)BCD(5290)_{10} = (0101\,0010\,1001\,0000)_{BCD}

Gray code for shaft encoders: Gray code is preferred because only one bit changes between any two consecutive values. On a rotating shaft this prevents large transient errors that would occur if several bits changed at once and were read at slightly different instants, eliminating spurious ambiguous readings.

number-systemscodes
2long14 marks

(a) State and prove De Morgan's theorems. Using Boolean algebra, simplify the expression F=AB+A(B+C)+B(B+C)F = AB + A(B + C) + B(B + C) and express the result in its simplest form. (6)

(b) A logic function is given by F(A,B,C,D)=m(0,1,2,4,5,7,8,9,12,13,15)F(A,B,C,D) = \sum m(0,1,2,4,5,7,8,9,12,13,15). Use a four-variable Karnaugh map to obtain the minimal sum-of-products expression and implement it using only NAND gates. (8)

(a) De Morgan's theorems and simplification

Statements:

  1. A+B=AˉBˉ\overline{A + B} = \bar A \cdot \bar B (complement of a sum = product of complements)
  2. AB=Aˉ+Bˉ\overline{A \cdot B} = \bar A + \bar B (complement of a product = sum of complements)

Proof by truth table (Theorem 1):

ABA+BA+B\overline{A+B}AˉBˉ\bar A\bar B
00011
01100
10100
11100

Columns A+B\overline{A+B} and AˉBˉ\bar A\bar B are identical, proving Theorem 1. Theorem 2 follows by the same method (columns AB\overline{AB} and Aˉ+Bˉ\bar A+\bar B match).

Simplification:

F=AB+A(B+C)+B(B+C)F = AB + A(B+C) + B(B+C) =AB+AB+AC+BB+BC= AB + AB + AC + BB + BC =AB+AC+B+BC(AB+AB=AB, BB=B)= AB + AC + B + BC \quad (AB+AB=AB,\ BB=B) =AB+AC+B(1+C)=AB+AC+B= AB + AC + B(1 + C) = AB + AC + B =B(1+A)+AC=B+AC= B(1 + A) + AC = B + AC F=B+AC\boxed{F = B + AC}

(b) Karnaugh-map minimization

F(A,B,C,D)=m(0,1,2,4,5,7,8,9,12,13,15)F(A,B,C,D) = \sum m(0,1,2,4,5,7,8,9,12,13,15)

K-map (rows AB, columns CD in Gray order 00,01,11,10):

AB\CD00011110
001 (0)1 (1)1 (7→via) 0?1 (2)
011 (4)1 (5)1 (7)0 (6)
111 (12)1 (13)1 (15)0 (14)
101 (8)1 (9)0 (11)0 (10)

(Cell 3 = m3 is 0; minterm 7 sits at AB=01,CD=11.)

Groups:

  • Column CD=01 all four cells (m1,5,13,9) = CˉD\bar C D
  • Column CD=00 all four cells (m0,4,12,8) = CˉDˉ\bar C\bar D → combine the two columns: Cˉ\bar C (CD = 0x, i.e. C=0): covers m0,1,4,5,8,9,12,13.
  • Remaining 1s: m2 (001000\,10) groups with m0 (000000\,00): AˉBˉCˉ\bar A\bar B\bar C (already in Cˉ\bar C). m2 is covered by Cˉ\bar C? m2 has C=1, so NOT in Cˉ\bar C. Group m0,m2 = AˉBˉDˉ\bar A\bar B\bar D.
  • m7 (011101\,11) and m15 (111111\,11) group: BCDBCD.

Minimal SOP:

F=Cˉ+AˉBˉDˉ+BCDF = \bar C + \bar A\bar B\bar D + BCD

(Here Cˉ\bar C covers all eight C=0 minterms; AˉBˉDˉ\bar A\bar B\bar D covers m2; BCDBCD covers m7, m15.)

NAND-only implementation: convert by double-negation and De Morgan:

F=CˉAˉBˉDˉBCDF = \overline{\overline{\bar C}\cdot\overline{\bar A\bar B\bar D}\cdot\overline{BCD}}
  • First level: a NAND used as inverter to form Cˉ\bar C; 3-input NANDs produce AˉBˉDˉ\overline{\bar A\bar B\bar D} and BCD\overline{BCD}.
  • Second level: a 3-input NAND combines the three terms. All gates are NAND, giving a two-level NAND-NAND realization equivalent to the SOP.
boolean-algebrakarnaugh-maps
3long14 marks

(a) Design a synchronous sequential circuit that detects the input sequence 1011 (overlapping allowed) using a Mealy model. Draw the state diagram, construct the state table, perform state assignment, and obtain the excitation equations using JK flip-flops. (10)

(b) Differentiate between a Moore machine and a Mealy machine with the help of a suitable diagram. (4)

(a) Mealy sequence detector for 1011 (overlapping)

States (track longest matched prefix):

  • S0S_0 : no useful prefix matched
  • S1S_1 : matched "1"
  • S2S_2 : matched "10"
  • S3S_3 : matched "101"

Output Z=1Z=1 (on the transition) when the 4th bit completes 1011; overlap means after detecting 1011 the trailing "1" can begin a new match (go to S1S_1, and the "...11" path).

State diagram (described): transitions labelled input/output.

  • S0S_0: on 1 → S1/0S_1/0; on 0 → S0/0S_0/0
  • S1S_1: on 1 → S1/0S_1/0; on 0 → S2/0S_2/0
  • S2S_2: on 1 → S3/0S_3/0; on 0 → S0/0S_0/0
  • S3S_3: on 1 → S1/1S_1/\mathbf{1} (1011 done, trailing 1 = new prefix); on 0 → S2/0S_2/0

State table:

PresentNext (X=0)Next (X=1)Out X=0Out X=1
S0S_0S0S_0S1S_100
S1S_1S2S_2S1S_100
S2S_2S0S_0S3S_300
S3S_3S2S_2S1S_101

State assignment (Q1Q0Q_1Q_0): S0=00, S1=01, S2=10, S3=11S_0=00,\ S_1=01,\ S_2=10,\ S_3=11.

Transition/excitation table (JK: from present QQ to next QQ):

Q1Q0Q_1Q_0XQ1+Q0+Q_1^+Q_0^+J1K1J_1K_1J0K0J_0K_0Z
000000X0X0
001010X1X0
010101XX10
011010XX00
10000X10X0
10111X01X0
11010X0X10
11101X1X01

Excitation equations (K-map reduction of the columns):

J1=Qˉ1Q0Xˉ,K1=Qˉ0Xˉ+Q0XJ_1 = \bar Q_1 Q_0 \bar X, \qquad K_1 = \bar Q_0\bar X + Q_0 X J0=X,K0=XˉJ_0 = X, \qquad K_0 = \bar X Z=Q1Q0XZ = Q_1 Q_0 X

(Here J0=X, K0=XˉJ_0=X,\ K_0=\bar X make Q0Q_0 follow XX; J1,K1,ZJ_1,K_1,Z are read from the table.)

(b) Moore vs Mealy machine

FeatureMooreMealy
Output depends onpresent state onlypresent state AND input
Output labelled onstatestransitions (arcs)
Number of statesusually moreusually fewer
Output timingsynchronous, changes with statecan change asynchronously with input
Glitchesless proneinput glitches can appear at output

Diagram (described): In a Moore diagram each state circle carries its output (e.g. S/ZS/Z); in a Mealy diagram each arrow carries input/output (e.g. X/ZX/Z).

sequential-circuit-designflip-flopscounters
4long10 marks

(a) Implement the Boolean function F(A,B,C)=m(1,3,5,6)F(A,B,C) = \sum m(1,3,5,6) using an 8-to-1 multiplexer. Draw the complete connection diagram. (5)

(b) Design a 3-to-8 line decoder using logic gates and show how two such decoders can be cascaded with an enable input to build a 4-to-16 line decoder. (5)

(a) F(A,B,C)=m(1,3,5,6)F(A,B,C)=\sum m(1,3,5,6) using an 8:1 MUX

Use A,B,CA,B,C as the select lines S2S1S0S_2S_1S_0. Each minterm drives the corresponding data input to 1; others to 0.

MintermABCABCData lineValue
0000I0I_00
1001I1I_11
2010I2I_20
3011I3I_31
4100I4I_40
5101I5I_51
6110I6I_61
7111I7I_70

Connection diagram (described): an 8:1 MUX with selects S2=A, S1=B, S0=CS_2=A,\ S_1=B,\ S_0=C. Tie I1,I3,I5,I6I_1,I_3,I_5,I_6 to logic 1 (VCCV_{CC}) and I0,I2,I4,I7I_0,I_2,I_4,I_7 to logic 0 (GND). The MUX output Y=FY=F.

(b) 3-to-8 decoder and cascading to 4-to-16

3-to-8 decoder: inputs A2A1A0A_2A_1A_0, enable EE, eight active-high outputs D0D7D_0\ldots D_7 where

Di=E(minterm i),e.g. D0=EAˉ2Aˉ1Aˉ0,  D7=EA2A1A0D_i = E\cdot(\text{minterm } i),\quad e.g.\ D_0=E\bar A_2\bar A_1\bar A_0,\ \ D_7=E A_2 A_1 A_0

Each output is a 4-input AND gate fed by the appropriate true/complement input lines plus EE; three inverters generate the complements.

Cascading to 4-to-16: use two 3-to-8 decoders sharing inputs A2A1A0A_2A_1A_0. The 4th (MSB) input A3A_3 acts as the enable selector:

  • Decoder-0 enabled when A3=0A_3=0 → produces outputs D0D_0D7D_7 (use Aˉ3\bar A_3 on its enable).
  • Decoder-1 enabled when A3=1A_3=1 → produces outputs D8D_8D15D_{15} (use A3A_3 on its enable).

At any time only one decoder is active, so exactly one of the 16 outputs is high, giving a complete 4-to-16 line decoder.

multiplexersdecoderscombinational-logic
B

Section B: Short Answer Questions

Attempt all / any as specified.

7 questions
5short8 marks

(a) Draw the truth table of a full adder and derive the simplified expressions for the SUM and CARRY outputs. (4)

(b) Construct a 4-bit binary parallel adder using full adders and explain the limitation caused by carry-propagation delay. (4)

(a) Full adder

Inputs: A,BA,B and carry-in CinC_{in}. Outputs: SUMSUM and CoutC_{out}.

ABCinC_{in}SUMCoutC_{out}
00000
00110
01010
01101
10010
10101
11001
11111

Simplified expressions:

SUM=ABCinSUM = A \oplus B \oplus C_{in} Cout=AB+BCin+ACin=AB+(AB)CinC_{out} = AB + B C_{in} + A C_{in} = AB + (A \oplus B)C_{in}

(b) 4-bit parallel adder and carry-propagation limitation

Cascade four full adders FA0–FA3. The carry-out of each stage is wired to the carry-in of the next:

A0 B0        A1 B1        A2 B2        A3 B3
 |  |         |  |         |  |         |  |
[FA0]--C1-->[FA1]--C2-->[FA2]--C3-->[FA3]--> C4 (final carry)
  |           |           |           |
  S0          S1          S2          S3

Carry-in of FA0 is 0 (or used for subtraction). Outputs S3S2S1S0S_3S_2S_1S_0 with final carry C4C_4.

Limitation — carry-propagation (ripple) delay: Each full adder must wait for the carry from the previous stage before it can produce a correct sum and carry. The carry therefore ripples through all four stages, so the worst-case settling time grows linearly with the number of bits (n×\approx n \times gate delay of one stage). This makes the ripple-carry adder slow for large word lengths; it is overcome by carry-look-ahead logic.

combinational-logicarithmetic-circuits
6short7 marks

(a) Explain the operation of a JK flip-flop with its characteristic table and characteristic equation. What is the race-around condition and how does a master-slave configuration eliminate it? (5)

(b) Convert a D flip-flop into a T flip-flop, showing the required logic. (2)

(a) JK flip-flop

The JK flip-flop removes the forbidden state of the SR flip-flop. With clock applied:

Characteristic table:

JKQn+1Q_{n+1}Action
00QnQ_nNo change
010Reset
101Set
11Qˉn\bar Q_nToggle

Characteristic equation:

Qn+1=JQˉn+KˉQnQ_{n+1} = J\bar Q_n + \bar K Q_n

Race-around condition: When J=K=1J=K=1 and the clock pulse width tpt_p is greater than the propagation delay of the flip-flop, the output toggles repeatedly during the single high level of the clock. The final state becomes unpredictable. This is the race-around problem of a level-triggered JK flip-flop.

Master-slave elimination: Two latches are connected in series. The master is enabled when the clock is HIGH and accepts the inputs; the slave is enabled when the clock is LOW (it uses the inverted clock) and copies the master's output. Because input and output sections are never enabled at the same instant, the output can change at most once per clock cycle, eliminating race-around.

(b) D flip-flop to T flip-flop

For a T flip-flop, Qn+1=TQnQ_{n+1} = T \oplus Q_n. For a D flip-flop, Qn+1=DQ_{n+1} = D. Equating:

D=TQnD = T \oplus Q_n

So connect an XOR gate whose inputs are TT and the flip-flop output QQ, and feed its output to the DD input. The clock is common.

flip-flops
7short7 marks

(a) Design a MOD-6 synchronous up counter using T flip-flops and draw its timing diagram. (5)

(b) Distinguish between a synchronous counter and a ripple (asynchronous) counter. (2)

(a) MOD-6 synchronous up counter using T flip-flops

Counts 000101000 \to 101 (0–5) then back to 000. Three flip-flops Q2Q1Q0Q_2Q_1Q_0.

State / excitation table (T = 1 where the bit changes):

CountQ2Q1Q0Q_2Q_1Q_0NextT2T_2T1T_1T0T_0
0000001001
1001010011
2010011001
3011100111
4100101001
5101000101

Excitation equations (K-map reduction, states 6 and 7 are don't-cares):

T0=1T_0 = 1 T1=Q0Qˉ2T_1 = Q_0\bar Q_2 T2=Q1Q0+Q2Q0T_2 = Q_1 Q_0 + Q_2 Q_0

(With don't-cares for 110,111: T0=1T_0=1; T1=Q0Qˉ2T_1 = Q_0\bar Q_2; T2=Q0(Q1+Q2)T_2 = Q_0(Q_1+Q_2).)

Timing diagram (described): All flip-flops share one clock.

  • Q0Q_0 toggles every clock (square wave, period = 2 clocks).
  • Q1Q_1 toggles when Q0=1Q_0=1 and Q2=0Q_2=0.
  • Q2Q_2 goes high after count 3 and resets after count 5. The waveforms repeat every 6 clock cycles; the count sequence read top-down is 0,1,2,3,4,5,0,...

(b) Synchronous vs ripple counter

Synchronous counterRipple (asynchronous) counter
All flip-flops clocked by the same common clockOutput of one FF clocks the next
Faster; no cumulative delaySlower; delays add up (ripple)
Needs combinational logic for inputsSimple, minimal logic
No decoding glitchesProne to transient glitches
countersregisters
8short6 marks

With the help of a neat logic diagram, explain the working of a 4-bit Serial-In Parallel-Out (SIPO) shift register. State two practical applications of shift registers.

4-bit Serial-In Parallel-Out (SIPO) shift register

Structure: Four D flip-flops (FF0–FF3) in cascade, all driven by a common clock. Serial data enters DD of FF0; the output of each flip-flop feeds the DD input of the next.

Din -> [D Q]FF0 -> [D Q]FF1 -> [D Q]FF2 -> [D Q]FF3
         |Q0        |Q1        |Q2        |Q3
         v          v          v          v
      (parallel outputs Q0 Q1 Q2 Q3 read together)

Working: On each clock edge every flip-flop loads the value at its DD input, so the bit pattern shifts one position to the right. After four clock pulses a 4-bit serial word has been fully shifted in and is available simultaneously on the four parallel outputs Q0Q1Q2Q3Q_0Q_1Q_2Q_3.

Example (input bits 1,0,1,1 LSB first):

ClkQ0Q1Q2Q3
11000
20100
31010
41101

Thus serial data is converted to parallel form.

Two applications of shift registers:

  1. Serial-to-parallel (and parallel-to-serial) data conversion in communication interfaces such as UART/SPI.
  2. Temporary data storage and delay, ring/Johnson counters, and sequence generators.
registers
9short6 marks

(a) Express the function F=(A+B)(A+C)F = (A + B)(A + C) in canonical sum-of-products (minterm) form. (3)

(b) What are universal gates? Realize the EX-OR function using only NOR gates. (3)

(a) Canonical SOP of F=(A+B)(A+C)F=(A+B)(A+C)

First simplify/expand:

F=(A+B)(A+C)=A+BC(distributive law)F = (A+B)(A+C) = A + BC \quad(\text{distributive law})

Expand to all three variables A,B,CA,B,C by inserting missing variables:

A=A(B+Bˉ)(C+Cˉ)=ABC+ABCˉ+ABˉC+ABˉCˉA = A(B+\bar B)(C+\bar C) = ABC + AB\bar C + A\bar BC + A\bar B\bar C BC=(A+Aˉ)BC=ABC+AˉBCBC = (A+\bar A)BC = ABC + \bar ABC

Combine and drop duplicate ABCABC:

F=AˉBC+ABˉCˉ+ABˉC+ABCˉ+ABCF = \bar ABC + A\bar B\bar C + A\bar BC + AB\bar C + ABC

In minterm form:

F=m(3,4,5,6,7)F = \sum m(3,4,5,6,7)

(b) Universal gates and EX-OR using NOR only

Universal gates: NAND and NOR are called universal because any Boolean function (AND, OR, NOT) can be implemented using only that single gate type.

EX-OR with NOR gates: AB=ABˉ+AˉBA\oplus B = A\bar B + \bar A B. A standard 5-NOR realization:

G1 = NOR(A,B)            = (A+B)'
G2 = NOR(A,G1)           = (A + (A+B)')'  = A'(A+B) = AB'
G3 = NOR(B,G1)           = (B + (A+B)')'  = B'(A+B) = A'B
G4 = NOR(G2,G3)          = (AB' + A'B)'
G5 = NOR(G4,G4) = inverter -> (AB' + A'B) = A XOR B

So five NOR gates (G5 acting as an inverter) produce ABA\oplus B.

boolean-algebracombinational-logic
10short6 marks

(a) Design a BCD-to-seven-segment decoder, listing the truth table for the segment 'a' and obtaining its simplified expression. (4)

(b) Differentiate between an encoder and a decoder. (2)

(a) BCD-to-seven-segment decoder, segment 'a'

Inputs are BCD digits ABCDA B C D (AA=MSB), driving a common-cathode display (segment ON = 1). Codes 10–15 are invalid → don't-care (X).

Truth table for segment 'a' (a is OFF only for digits 1 and 4):

DecA B C Da
000001
100010
200101
300111
401000
501011
601101
701111
810001
910011
10–15X

K-map simplification (with don't-cares):

a=A+C+BD+BˉDˉa = A + C + BD + \bar B\bar D

(b) Encoder vs decoder

EncoderDecoder
Converts 2n2^n (or many) active input lines into an nn-bit coded outputConverts an nn-bit coded input into one of 2n2^n active output lines
Inputs > outputs (compresses)Inputs < outputs (expands)
Example: octal-to-binary, priority encoderExample: 3-to-8 decoder, BCD-to-7-segment
combinational-logicdecoders
11short5 marks

(a) Add the BCD numbers (0101)BCD(0101)_{BCD} and (0110)BCD(0110)_{BCD} and explain why a correction factor is sometimes required in BCD addition. (3)

(b) Write short notes on parity bit and its use in error detection. (2)

(a) BCD addition (0101)BCD+(0110)BCD(0101)_{BCD} + (0110)_{BCD}

0101=50101 = 5, 0110=60110 = 6.

Binary sum:

0101+0110=1011 (=11)0101 + 0110 = 1011\ (=11)

The result 10111011 is an invalid BCD code (greater than 9). Apply the correction factor +6 (01100110):

1011+0110=100011011 + 0110 = 1\,0001

So the BCD result is 0001 0001=(11)BCD0001\ 0001 = (11)_{BCD} — i.e. digit 1 with a carry of 1 to the next decade.

Why correction is needed: BCD uses only 0000–1001 (0–9); the six combinations 1010–1111 are unused. Whenever a 4-bit sum exceeds 9 or produces a carry out of the group, adding 6 skips over those six illegal codes and restores a valid BCD digit plus the proper decimal carry.

(b) Parity bit and error detection

A parity bit is an extra bit appended to a binary word to make the total number of 1s either even (even parity) or odd (odd parity).

Use: The transmitter computes the parity bit; the receiver recomputes parity on the received word. If the parity no longer matches, a transmission error is flagged. A simple parity bit can detect any single-bit (odd number of) error but cannot detect an even number of errors and cannot correct errors.

number-systemscodes

Frequently asked questions

Where can I find the BE Computer Engineering (Pokhara University) Digital Logic (PU, ELX 110) question paper 2079?
The full BE Computer Engineering (Pokhara University) Digital Logic (PU, ELX 110) 2079 (regular) question paper is available free on Kekkei. You can read every question online and attempt the paper under timed exam conditions.
Does the Digital Logic (PU, ELX 110) 2079 paper come with solutions?
Yes. Every question on this Digital Logic (PU, ELX 110) past paper includes a step-by-step solution, plus instant AI feedback when you attempt it on Kekkei.
How many marks is the BE Computer Engineering (Pokhara University) Digital Logic (PU, ELX 110) 2079 paper?
The BE Computer Engineering (Pokhara University) Digital Logic (PU, ELX 110) 2079 paper carries 100 full marks and is meant to be completed in 180 minutes, across 11 questions.
Is practising this Digital Logic (PU, ELX 110) past paper free?
Yes — reading and attempting this Digital Logic (PU, ELX 110) past paper on Kekkei is completely free.