Section 1.3 Asynchronous Circuits Exercises

  • Upload
    nydia

  • View
    30

  • Download
    1

Embed Size (px)

DESCRIPTION

Section 1.3 Asynchronous Circuits Exercises. Alfredo Benso Politecnico di Torino, Italy [email protected]. #1. Find a minimal race free state coding for the following transition table. Also, find the boolean functions representing the future state. c=0c=1. ab. - PowerPoint PPT Presentation

Citation preview

  • Section 1.3Asynchronous CircuitsExercisesAlfredo BensoPolitecnico di Torino, [email protected]

  • #1Find a minimal race free state coding for the following transition table.Also, find the boolean functions representing the future state.

    0001111000011110AAABCDAABBA-CBADCBCCCCCBBDCDAC-ADDADabc=0c=1

  • #1: stable states0001111000011110AAABCDAABBA-CBADCBCCCCCBBDCDAC-ADDADc=0c=1

  • #1: Vicinity graph0001111000011110AAABCDAABBA-CBADCBCCCCCBBDCDAC-ADDADABc=0c=1

  • #1: Minimize the vicinity graph0001111000011110AAABCDAABBA-CBADCBCCCCCBBDCDAC-ADDADABc=0c=1

  • #1: Minimize the vicinity graph0001111000011110AAABCBAABBA-CBDDABCCCCCDBACDBC-CDDBDABc=0c=1

  • #2Design the reduced transition table of an asynchronous circuit functioning in fundamental mode. The circuit has three inputs a, b, and c, and one output U, which is 1 only if all inputs are equal to 1, and they went to 1 in the order a, b, and c. U returns to 0 when all inputs returned to 0. Also, find the minimum number of state variables required to have a race free state assignment, and find a possible state assignment.

  • #2: Transition tableWe have to recognize the following sequence:000 100 110 1110001111000011110c=0c=1Waiting for 100Wrong sequence.Waiting for 110Waiting for 111OK! Now waiting for all 0ABCDE

    A 0- -- -- -B 0- -- -- -A 0- -- -- -B 0- -- -C 0- -- -- -- -- -- -D -C 0A -D 1D 1D 1D 1D 1D 1D 1A 0E 0E 0E 0E 0E 0E 0E 0

  • #2: Transition tableWe have to recognize the following sequence:000 100 110 1110001111000011110c=0c=1Waiting for 100Wrong sequence.Waiting for 110Waiting for 111OK! Now waiting for all 0ABCDE

    A 0E 0- -E 0B 0- -- -- -A 0- -- -- -B 0E 0- -C 0- -- -- -E 0E 0- -D -C 0A -D 1D 1D 1D 1D 1D 1D 1A 0E 0E 0E 0E 0E 0E 0E 0

  • #2: Minimize the transition table0001111000011110c=0c=1Waiting for 100Wrong sequence.Waiting for 110Waiting for 111OK! Now waiting for all 0ABCDEStates A and B are compatible, so I can collapse them in one state

    A 0E 0- -E 0B 0- -- -- -A 0- -- -- -B 0E 0- -C 0- -- -- -E 0E 0- -D -C 0A -D 1D 1D 1D 1D 1D 1D 1A 0E 0E 0E 0E 0E 0E 0E 0

  • #2: Minimize the transition table0001111000011110c=0c=1Wrong sequence.Waiting for 100 & 110Waiting for 111OK! Now waiting for all 0ACDEStates A and B are compatible, so I can collapse them in one state

    A 0E 0- -E 0A 0E 0- -C 0- -- -- -E 0E 0- -D -C 0A -D 1D 1D 1D 1D 1D 1D 1A 0E 0E 0E 0E 0E 0E 0E 0

  • #2: Vicinity graph0001111000011110c=0c=1ACDEACA-C and C-E are essential, so we can try to eliminate A-E and C-D

    A 0E 0- -E 0A 0E 0- -C 0- -- -- -E 0E 0- -D -C 0A -D 1D 1D 1D 1D 1D 1D 1A 0E 0E 0E 0E 0E 0E 0E 0

  • #2: Vicinity graph0001111000011110c=0c=1ACDEAC

    A 0C 0- -C 0A 0C 0D 0C 0A 0E 0- -E 0E 0E -A -C 0A -D 1D 1D 1D 1D 1D 1D 1C 0E 0E 0E 0E 0E 0E 0E 0

  • #3Find the Future State and Output functions of an asynchronous circuit functioning in fundamental mode. The circuit has three inputs X, Y, and Z and one output U, which goes to 1 only when:There is a rising edge of X ANDWhile the value of X was 0, Y and Z followed the sequence 00 - 10 11 (even if BEFORE or AFTER this sequence Y and Z changed to different values).U returns to 0 as soon as X returns to 0.The circuit must have a race free state assignment.

  • #3: Transition TableWe have to recognize the following sequence on Y and Z with X=0:00 10 110001111000011110X=0X=1Wait for 00Wait for X to return to 0Wait for 10Wait for 11Now wait for rising edge XABCDE

    B 0A 0A 0A 0A 0A 0A 0A 0B 0A 0- -C 0A 0- -- -- -B 0- -D 0C 0- -- -- -A 0D 0D 0D 0D 0E -E -E -E -B -A -A -A -E 1E 1E 1E 1

  • #3: Transition Table MinimizationB and C are compatible so they can be collapsed in one state0001111000011110X=0X=1Wait for 00Wait for X to return to 0Wait for 10 & 11Now wait for rising edge XABDE

    B 0A 0A 0A 0A 0A 0A 0A 0B 0A 0D 0B 0A 0- -- -A 0D 0D 0D 0D 0E -E -E -E -B -A -A -A -E 1E 1E 1E 1

  • #3: Transition Table Minimization0001111000011110X=0X=1ABDEI can remove E-B going trough E - A - BAB

    B 0A 0A 0A 0A 0A 0A 0A 0B 0A 0D 0B 0A 0- -- -A 0D 0D 0D 0D 0E -E -E -E -B -A -A -A -E 1E 1E 1E 1

  • #3: Transition Table Minimization0001111000011110X=0X=1ABDEAB0001

    B 0A 0A 0A 0A 0A 0A 0A 0B 0A 0D 0B 0A 0- -- -A 0D 0D 0D 0D 0E -E -E -E -A -A -A -A -E 1E 1E 1E 1

  • #3: Output function0001111000011110X=0X=100011110

    0000000000000---0000--------1111

  • #3: Output function0001111000011110X=0X=100011110U = X S0

    00000000000000000000111100001111

  • #3: Future state function0001111000011110X=0X=100011110

    0100000000000000010010010000000011111111101010100000000010101010

  • #3: Future state function0001111000011110X=0X=100011110S0 = S0S1 + XS0 + YZS1

    00000000001000101111111100001111

  • #3: Future state function0001111000011110X=0X=100011110S1 = S0S1X + XYZS1 + XYZS0 + XYZS1

    10000000100100001111000000000000

  • #5Design the reduced transition table of an asynchronous circuit functioning in fundamental mode. The circuit has two inputs X and Y, and one output U, which is 1 only if X=1 and, during the last two rising-edges of X, Y maintained the same value.Also, find out the minimum number of state variables required to have a race free state assignment.

  • #5: Primitive Transition tableXY00011110AA,0A,0E,0B,0wait for the first transition of XBC,0C, 0B,0B,01st trans. & Y=0 wait for X to go lowCC,0C,0E,0D,-wait for another transition of XDH,-H,-D,1D,12nd trans. & Y=0 wait for X to go lowEF,0F,0E,0E,01st trans. & Y=1 wait for X to go lowFF,0F,0G,-B,0wait for another transitionGI,-I,-G,1G,12nd trans. & Y=1 wait for X to go lowHH,0H,0E,0D,-last 2 trans Y=0 wait for a new transitionII,0I,0G,-B,0 last 2 trans Y=1 wait for a new transition

  • #5: Reduced Transition tableXW00011110AA,0A,0E,0B,0 Equivalent states: C & H CBC,0C, 0B,0B,0 F & I FCC,0C,0E,0D,- No compatible statesDH,-H,-D,1D,1EF,0F,0E,0E,0FF,0F,0G,-B,0GI,-I,-G,1G,1HH,0H,0E,0D,-II,0I,0G,-B,0

  • #5: Reduced Transition tableXW00011110AA,0A,0E,0B,0 Equivalent states: C & H CBC,0C, 0B,0B,0 F & I FCC,0C,0E,0D,- No compatible statesDH,-H,-D,1D,1EF,0F,0E,0E,0FF,0F,0G,-B,0GI,-I,-G,1G,1HH,0H,0E,0D,-II,0I,0G,-B,0

  • #5: Reduced Transition tableXW00011110AA,0A,0E,0B,0 Equivalent states: C & H CBC,0C, 0B,0B,0 F & I FCC,0C,0E,0D,- No compatible statesDH,-H,-D,1D,1EF,0F,0E,0E,0FF,0F,0G,-B,0GI,-I,-G,1G,1HH,0H,0E,0D,-II,0I,0G,-B,0

  • #5: Reduced Transition tableXW00011110AA,0A,0E,0B,0 Equivalent states: C & H CBC,0C, 0B,0B,0F & I FCC,0C,0E,0D,- No compatible statesDC,-C,-D,1D,1EF,0F,0E,0E,0FF,0F,0G,-B,0GF,-F,-G,1G,1

  • #5: Vicinity GraphMax outdegree is 3. I need at least three state variables

    ABCDEFG

  • #5: Vicinity GraphIt seems that there is no solution with three variables.Either we need 4 state variables

  • #6Design the gate level model of an asynchronous circuit functioning in fundamental mode. The circuit has two inputs P (pulse) and R (reset) and one output Z, which is normally at 0. Z follows the following rules:It goes to 1 when a rising edge is detected on P and R=0.It goes to 0 when R=1.

  • #6: Transition table00011110ABP RA 0B -B 1C -B 1C -Lets start with the correct sequence. R=0 and P=0 and we wait for a transition on P.C- -We can stay in B until R changes back to 1.If R goes to 1, Z goes to 0 but we have to wait for R to go to 0 again before checking for another rising edge on P

  • #6: Transition table00011110ABP RA 0B -B 1C -B 1C -We can exit C only when both R and P are 0.C- -If R goes to 1 while we are waiting for a rising edge on P, we go out-of-sequence.C 0C 0C 0A 0C 0

  • #6: Vicinity graph00011110ABP RA 0B -B 1C -B 1C -C- -C 0C 0C 0A 0C 0BAC2210001

  • #6: Vicinity graph00011110ABP RA 0B -B 1A 0B 1A 0CC 0C 0C 0C 0A 0C 0BAC221

  • #6: Race free state assignment00011110ABP RA 0B -B 1A 0B 1A 0CC 0C 0C 0C 0A 0C 0BAC001001

  • #6: Output function000111100001P RA 0B -B 1A 0B 1A 010C 0C 0C 0C 0A 0C 00001P R1110Z = S0S1RS0 S100011110

    000-1001----0000

  • #6: State function000111100001P RA 0B -B 1A 0B 1A 010C 0C 0C 0C 0A 0C 00001P R1110S0 S100011110

    0010100101000001--------00101010

  • #6: S0 variable000111100001P RA 0B -B 1A 0B 1A 010C 0C 0C 0C 0A 0C 00001P R1110S0 S100011110

    01100000----0111

  • #6: S1 variable000111100001P RA 0B -B 1A 0B 1A 010C 0C 0C 0C 0A 0C 00001P R1110S0 S100011110S1 = S1 R + S0 P R

    00011001----0000

  • #6: Final circuitPRS0ZS1

  • #10Design an asynchronous circuit functioning in fundamental mode. The circuit has two inputs A and B, and one output Z, which is normally at 0. Z changes value when it recognize the sequence 00 01 00 on the inputs. 00 can be considered concurrently the end of a sequence and the beginning of a new one.Show:A Minimized Transition tableA race free state assignmentThe Boolean function for Z

  • #10: Transition Table00011110Wait for 00Wait for 00Wait for 01;Wait for 00Sequence OK; wait for 01ABCDEFSequence OK

    B 0A 0A 0A 0B 0C 0- -D -C 0- -D 1E 1- -B -E 1- -

  • #10: Transition Table00011110Out of sequence; Wait for 00Wait for 00Wait for 01Wait for 00Sequence OK; wait for 01ABCDEFSequence OKOut of sequence; wait for 00U=0U=1

    B 0A 0A 0A 0B 0C 0- -A 0D -C 0A 0- -D 1E 1- -F 1B -E 1F 1- -D 1F 1F 1F 1

  • #10: Vicinity GraphThere are no equivalent or compatible states.00011110ABCDEFBACEFD

    B 0A 0A 0A 0B 0C 0- -A 0D -C 0A 0- -D 1E 1- -F 1B -E 1F 1- -D 1F 1F 1F 1

  • #10: Vicinity GraphWe can eliminate A C and F - E00011110ABCDEFBACEFD

    B 0A 0A 0A 0B 0C 0- -A 0D -C 0A 0- -D 1E 1- -F 1B -E 1F 1- -D 1F 1F 1F 1

  • #10: Vicinity GraphWe can eliminate A C and F - E00011110ABCDEFBACEFD

    B 0A 0A 0A 0B 0C 0A 0A 0D -C 0B 0- -D 1E 1F 1F 1B -E 1D 1- -D 1F 1F 1F 1

  • #10: Vicinity GraphA race free state assignment is:00011110ABCDEF110111010100001000

    B 0A 0A 0A 0B 0C 0A 0A 0D -C 0B 0- -D 1E 1F 1F 1B -E 1D 1- -D 1F 1F 1F 1

  • #10: Output FunctionBe careful! To cover the table, you have to order the rows correctly: it has to be a K-map!00011110111110010000100001

    00000000-00-1111-11-1111

  • #10: Output Function111110010000100001Z = S100011110

    00000000-00-1111-11-1111

    11111111-----00--11-----00000000

  • #16Design an asynchronous circuit with two inputs (A and B) and one output, functioning in fundamental mode. The output U of the circuit is equal to 1 iff:A=0 ANDDuring the last interval in which A=1 there has been a SINGLE transition (1-0-1) on B.U changes back to 0 as soon as A goes back to 1.Show:A Minimized Transition tableA race free state assignmentThe Output and State Boolean functions

  • #16: CommentThe problem asks to design a sequence recognizer for the following sequence:11 10 11 0- ABU

  • #16: transition tableLets start to draw the transition table from a state where we wait for the correct beginning of the sequence. ABCDEFA 000011110A 0B 0A correct sequence starts when A goes to 1 while B is already 1B 0

  • #16: transition tableLets start to draw the transition table from a state where we wait for the correct beginning of the sequence. ABCDEFA 000011110A 0B 0B 0AB

  • #16: transition tableNow we can fill the transition table with the CORRECT sequenceABCDEFA 000011110A 0B 0B 0C 0D 0C 0E -E 1E 1B 0AB

  • #16: transition tableNow we have to complete the table with the out-of-sequence conditionsABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0If A goes to 1 with B=0, I am already out of sequence, because I will have too many transitions of B while A=1.Too many transitions!I can now wait in F until A goes back to 0, and then go to state A to wait for the right condition.

  • #16: transition tableNow we have to complete the table with the out-of-sequence conditionsABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0If A goes to 0 to early, I go back to state A waiting for the beginning of a new sequence.Too many transitions!If B goes to 0 again, I have too many transitions on B, and therefore I will have to go to the F state- -A 0A 0- -- -F 0F 0

  • #16: Minimize the Transition tableThere are no equivalent statesThere are no compatible statesABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0BACEFD

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0BACEFD

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -F 0F 0BACEFD

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -F 0F 0BACEFD

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0- -- -F 0D 0BACEFDA 0B 0

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0- -- -F 0D 0BACEFDA 0B 0

  • #16: Race free state assignmentABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0- -- -F 0D 0000100001010???011A 0B 0

  • #16: Race free state assignmentIt seems there is no solution with three state variables. Before deciding to add a new variable, lets try to modify the graph in another way

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0BACEFD

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0BACEFDA-C

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -F 0F 0BACEFDA-C

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -F 0F 0BACEFDD-F

  • #16: Vicinity GraphABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -E 0F 0BACEFDD-F

  • #16: Vicinity GraphIn this case we can try to move the arcABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0- -- -E 0F 0BACEFDD-E

  • #16: Vicinity GraphIn this case we can try to move the arcABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0F 0BACEFDD-E

  • #16: Vicinity GraphAgain, we can try to remove the arcABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0F 0BACEFDE-F

  • #16: Vicinity GraphAgain, we can try to remove the arcABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0BACEFDE-F

  • #16: Vicinity GraphAgain, we can try to remove the arcABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0BACEFDB-E

  • #16: Vicinity GraphThe last edge we can remove is B-EABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1A 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0BACEFDB-E

  • #16: Vicinity GraphNow a race free assignment is possibleABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0001000011010100111BACEFD

  • #16: Output tableLets start with the output table000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0

    00000000000011000000-----000----

  • #16: Output tableLets start with the output table000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0U=S1 S2 A

    00000000000011000000000000001100

  • #16: State variables000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0

    000000001100000000001011001010111011010010001000000000100100-----011111010----

  • #16: S0 state variable000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0

    00010000001000000011-----010----

  • #16: S1 state variable000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0

    00000001011111000000-----111----

  • #16: S2 state variable000001011111010100A 000011110A 0B 0F 0B 0C 0D 0C 0C 0D 0E 1E 1B 0A 0A 0F 0F 0A 0A 0B 0E 0- -E 0A 0

    00100011101100100000-----110----

  • #16: Another solution for State codingThere is another possible solution for the vicinity graph.ABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0A 0- -- -F 0F 0BACEFD

  • #16: Another solution for State codingBy removing only A-C and F-D, a solution is possible:ABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0B 0- -- -E 0F 0BACEFD

  • #16: Another solution for State codingBy removing only A-C and F-D, a solution is possible:ABCDEFA 000011110A 0B 0F 0B 0C 0D 0C 0E -D 0E 1E 1B 0A 0A 0F 0F 0- -A 0B 0- -- -E 0F 0001000101011010111

  • #9Design an asynchronous circuit with two inputs (A and B) and one output, functioning in fundamental mode. The output U of the circuit is equal to 1 iff it recognize the following input sequence:AB = 00 01 11 10 - 00U changes back to 0 as soon as A or B change to 1.Show:A Minimized Transition tableA race free state assignment

  • #9: Transition TableABCDE00011110F

    B 0A 0A 0A 0B 0C 0- -A 0B 0C 0D 0- -- -A 0D 0E 0F -- -A 0E 0F 1C -- -A -

  • #9: Transition TableABCDE00011110FCompatible States

    B 0A 0A 0A 0B 0C 0- -A 0B 0C 0D 0- -- -A 0D 0E 0F -- -A 0E 0F 1C -- -A -

  • #9: Transition TableABDE00011110FDABEF

    B 0A 0A 0A 0B 0B 0D 0A 0

    - -A 0D 0E 0F -- -A 0E 0F 1B -- -A -

  • #9: Transition TableABDE00011110FDABEF

    B 0A 0A 0A 0B 0B 0D 0A 0

    - -A 0D 0E 0F -- -A 0E 0F 1B -- -A -

  • #9: Transition TableABDE00011110FDABEF

    B 0A 0A 0A 0B 0B 0D 0A 0

    - -E 0D 0E 0F -A 0A 0E 0F 1B -- -B -

  • #9: Transition TableABDE00011110FDABEFHGGH

    B 0A 0A 0A 0B 0B 0G 0A 0

    - -E 0D 0E 0F -A 0A 0E 0F 1B -- -B -- -- -H 0- -- -- -D 0- -

  • #9: Transition TableABDE00011110F110000001010011111101GH

    B 0A 0A 0A 0B 0B 0G 0A 0

    - -E 0D 0E 0F -A 0A 0E 0F 1B -- -B -- -- -H 0- -- -- -D 0- -