Code Monkey home page Code Monkey logo

atcf_hardware_jtag's Introduction

atcf_hardware_jtag

This repository contains the CDL source code and C models for the ATCF JTAG modules

Status

The repository is in use in the ATCF RISC-V systems grip repository

Modules

Jtag_tap

This is a JTAG test access port; this is a module that appears on a JTAG chain, and provides an interface to a device to be controlled by the JTAG chain.

The module should be configured with an instruction register length ir_length set to the bit width of the device's instruction, and the data register length dr_length set to the largest of the bit width of the device's data registers (which of the device's registers is accessed depends on the IR value).

The device interfaces to the jtag_tap with a data port (in and out), and instruction (driven in to the device), and an action; the important actions are shift, capture and update.

A single bit of dr_tdi_mask must be driven high indicating the topmost bit that is valid of the data register indicated by the current value of ir

On shift the device must (combinationally) drive dr_out to be dr_in shifted right by one.

On capture the device must (combinationally) drive dr_out to be the value of the data register specified by ir

On update the device must (on the next clock edge) start the update that the value of ir and dr_in require.

ir of 1 is IDCODE, and requires a 32-bit register value of (20 bits manufacturer unique, 11 bits of manufacturer ID, 1b1)

Jtag_tap_apb

This is a client module for jtag_tap that is an APB master. It is derived from the RISC-V debug specification v0.13. It has a 5-bit IR register, and

It provides the following JTAG registers:

  • IR=1: IDCODE of the value 'jtag_idcode' (a constant that may be changed at CDL compilation)

  • IR=0x10: APB control, a 32 bit register (bits 2;10 indicate status)

  • IR=0x11: APB access, a 16+32+2 bit register (16 bit address, 32 bit data, 2 bit access/status)

  • IR=x: all other values are BYPASS (1 bit register, dr_out=dr_in)

On updates of APB control bits 2;16 are nonzero to reset the APB status.

On updates of APB access bits 2;0 are 1 for start an APB read, 2 for start and APB write.

The APB status is two bits that are 2b00 for no errors, 2b11 if an APB access is attempted before a previous access completes.

atcf_hardware_jtag's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.