CDL Modules
Data Structures | Namespaces | Enumerations | Variables
jtag_tap.cdl File Reference

JTAG tap controller module. More...

Detailed Description

JTAG tap controller module.

Copyright (C) 2018, Gavin J Stark. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CDL implementation of a module that (with a client) permits an application specific TAP controller to be built.

It implements the JTAG state machine, with an IR length provided by a constant (so a build option), and a maximum data register (DR) length also by constant.

The client must use the IR to determine how the DR must be CAPTUREd and SHIFTed, and also to use the DR when UPDATE occurs.

The JTAG implementation uses a single shift register between TDI and TDO whose length is effectively adjusted to be ir_length in shifting IR and to be client-defined (based on IR) in shifting DR.

Data Structures

struct  jtag_tap::t_jtag_state
 
struct  jtag_tap::t_jtag_combs
 

Namespaces

 jtag_tap
 

Enumerations

enum  jtag_tap::t_jtag_fsm {
  jtag_tap::jtag_state_test_logic_reset,
  jtag_tap::jtag_state_idle,
  jtag_tap::jtag_state_select_dr_scan,
  jtag_tap::jtag_state_select_ir_scan,
  jtag_tap::jtag_state_capture_dr,
  jtag_tap::jtag_state_shift_dr,
  jtag_tap::jtag_state_exit1_dr,
  jtag_tap::jtag_state_pause_dr,
  jtag_tap::jtag_state_exit2_dr,
  jtag_tap::jtag_state_update_dr,
  jtag_tap::jtag_state_capture_ir,
  jtag_tap::jtag_state_shift_ir,
  jtag_tap::jtag_state_exit1_ir,
  jtag_tap::jtag_state_pause_ir,
  jtag_tap::jtag_state_exit2_ir,
  jtag_tap::jtag_state_update_ir
}
 

Variables

constant integer jtag_tap::ir_length =5
 
constant integer jtag_tap::dr_length =50
 
constant integer jtag_tap::max_length =50