OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [valentfx.com/] [logipi/] [ip/] [jtag/] [rtl/] [verilog/] [syn/] [jtag_tap.v] - Rev 135

Compare with Previous | Blame | View Log

/**********************************************************************/
/*                                                                    */
/*             -------                                                */
/*            /   SOC  \                                              */
/*           /    GEN   \                                             */
/*          /    TARGET  \                                            */
/*          ==============                                            */
/*          |            |                                            */
/*          |____________|                                            */
/*                                                                    */
/*  Jtag tap controller for xilinx spartan 3e fpga                    */
/*                                                                    */
/*                                                                    */
/*  Author(s):                                                        */
/*      - John Eaton, jt_eaton@opencores.org                          */
/*                                                                    */
/**********************************************************************/
/*                                                                    */
/*    Copyright (C) <2010>  <Ouabache Design Works>                   */
/*                                                                    */
/*  This source file may be used and distributed without              */
/*  restriction provided that this copyright statement is not         */
/*  removed from the file and that any derivative work contains       */
/*  the original copyright notice and the associated disclaimer.      */
/*                                                                    */
/*  This source file is free software; you can redistribute it        */
/*  and/or modify it under the terms of the GNU Lesser General        */
/*  Public License as published by the Free Software Foundation;      */
/*  either version 2.1 of the License, or (at your option) any        */
/*  later version.                                                    */
/*                                                                    */
/*  This source is distributed in the hope that it will be            */
/*  useful, but WITHOUT ANY WARRANTY; without even the implied        */
/*  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR           */
/*  PURPOSE.  See the GNU Lesser General Public License for more      */
/*  details.                                                          */
/*                                                                    */
/*  You should have received a copy of the GNU Lesser General         */
/*  Public License along with this source; if not, download it        */
/*  from http://www.opencores.org/lgpl.shtml                          */
/*                                                                    */
/**********************************************************************/
 
//////////////////////////////////////////////////////////////////////
//                                                                  //
// This file is a wrapper for the various Xilinx internal BSCAN     //
// TAP devices.  It is designed to take the place of a separate TAP //
// controller in Xilinx systems, to allow a user to access a CPU    //
// debug module (such as that of the OR1200) through the FPGA's     //
// dedicated JTAG / configuration port.                             //
//                                                                  //
//////////////////////////////////////////////////////////////////////
//
 
// Note that the SPARTAN BSCAN controllers have more than one channel.
// This implementation always uses channel 1, this is not configurable.
// If you want to use another channel, then it is probably because you
// want to attach multiple devices to the BSCAN device, which means
// you'll be making changes to this file anyway.
 
 
module cde_jtag_tap 
#(parameter  CHIP_ID_VAL=32'h00000000 ) 
(
 
input   wire           tdo_i,
output  wire           shiftcapture_dr_clk_o,
output  wire           tdi_o,
output  wire           test_logic_reset_o,
output  wire           shift_dr_o,
output  wire           capture_dr_o,
output  wire           update_dr_clk_o,
output  wire           select_o,
 
input   wire           aux_tdo_i,
output  wire           aux_shiftcapture_dr_clk_o,
output  wire           aux_tdi_o,
output  wire           aux_test_logic_reset_o,
output  wire           aux_shift_dr_o,
output  wire           aux_capture_dr_o,
output  wire           aux_update_dr_clk_o,
output  wire           aux_select_o
 
);
 
wire       update_dr_i;
wire       aux_update_dr_i;
 
BSCAN_SPARTAN6 
#(1)
BSCAN_SPARTAN6_inst1  (
     .CAPTURE (capture_dr_o),         // CAPTURE output from TAP controller
     .DRCK    (user1_clk_i),          // shiftcapture clk for USER1 functions
     .RESET   (test_logic_reset_o),   // Reset output from TAP controller
     .RUNTEST (                  ),
     .SEL     (select_o),             // USER1 active output
     .SHIFT   (shift_dr_o),           // SHIFT output from TAP controller
     .TCK     (),
     .TDI     (tdi_o),                // TDI output from TAP controller
     .TMS     (),
     .UPDATE  (update_dr_i),          // UPDATE output from TAP controller
     .TDO     (tdo_i)                // Data input for USER1 function
);
 
 
BSCAN_SPARTAN6 
#(2)
BSCAN_SPARTAN6_inst2 (
     .CAPTURE (aux_capture_dr_o),         // CAPTURE output from TAP controller
     .DRCK    (user2_clk_i),              // shiftcapture clk for USER1 functions
     .RESET   (aux_test_logic_reset_o),   // Reset output from TAP controller
     .RUNTEST (                  ),
     .SEL     (aux_select_o),             // USER1 active output
     .SHIFT   (aux_shift_dr_o),           // SHIFT output from TAP controller
     .TCK     (),
     .TDI     (aux_tdi_o),                // TDI output from TAP controller
     .TMS     (),
     .UPDATE  (aux_update_dr_i),          // UPDATE output from TAP controller
     .TDO     (aux_tdo_i)                 // Data input for USER2 function
);
 
 
 
BUFG 
update_buf (
   .O       (update_dr_clk_o),        // Clock buffer output
   .I       (update_dr_i)             // Clock buffer input
            );
 
 
BUFG 
aux_update_buf (
   .O       (aux_update_dr_clk_o),        // Clock buffer output
   .I       (aux_update_dr_i)             // Clock buffer input
            );
 
 
 
 
 
BUFG 
user1_clk_buf (
   .O       (shiftcapture_dr_clk_o),              // Clock buffer output
   .I       (user1_clk_i   )             // Clock buffer input
            );
 
 
BUFG 
user2_clk_buf (
   .O       (aux_shiftcapture_dr_clk_o),              // Clock buffer output
   .I       (user2_clk_i )             // Clock buffer input
            );  
 
 
 
 
 
 
endmodule
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.