Skip to content

Instantly share code, notes, and snippets.

@rfdonnelly
Last active September 17, 2021 05:29
Show Gist options
  • Save rfdonnelly/b90c838770744d42e6e9f93d38b3d19b to your computer and use it in GitHub Desktop.
Save rfdonnelly/b90c838770744d42e6e9f93d38b3d19b to your computer and use it in GitHub Desktop.
JTAG TAP Register Access

JTAG TAP Register Access

Instructions

Instruction Opcode

WRITE_SINGLE

0b0000

WRITE_MULTIPLE

0b0001

READ_SINGLE

0b0010

READ_MULTIPLE

0b0011

Data Registers

  • WRITE_REGISTER

  • READ_REGISTER

Operations

Write Single

  1. Send WRITE_SINGLE instruction.

    1. WRITE_REGISTER is selected.

    2. Access FSM goto SHIFT_ADDRESS.

  2. Send 32-bit address to the WRITE_REGISTER.

    1. Address is latched.

    2. Access FSM goto SHIFT_DATA.

  3. Send 32-bit data to the WRITE_REGISTER.

    1. Data is latched.

    2. Write is performed with latched address and data.

    3. Access FSM goto WRITE.

    4. Access FSM goto SHIFT_ADDRESS.

    5. User can go to step 2 or send another instruction.

Write Multiple

  1. Send WRITE_MULTIPLE instruction.

    1. WRITE_REGISTER is selected.

    2. Access FSM goto SHIFT_ADDRESS.

  2. Send 32-bit address to the WRITE_REGISTER.

    1. Address is latched.

    2. Access FSM goto SHIFT_DATA.

  3. Send 32-bit data to the WRITE_REGISTER.

    1. Data is latched.

    2. Write is performed with latched address and data.

    3. Access FSM goto WRITE.

    4. Access FSM goto SHIFT_DATA.

    5. User can go to step 3 or send another instruction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment