Project Full coverage report
Current view: Cores-VeeR-EL2—Cores-VeeR-EL2—design—dmi—dmi_wrapper.v Coverage Hit Total
Test Date: 27-12-2024 Toggle 88.9% 16 18
Test: all Branch 0.0% 0 0

            Line data    Source code
       1              : // SPDX-License-Identifier: Apache-2.0
       2              : // Copyright 2018 Western Digital Corporation or it's affiliates.
       3              : // 
       4              : // Licensed under the Apache License, Version 2.0 (the "License");
       5              : // you may not use this file except in compliance with the License.
       6              : // You may obtain a copy of the License at
       7              : // 
       8              : // http://www.apache.org/licenses/LICENSE-2.0
       9              : // 
      10              : // Unless required by applicable law or agreed to in writing, software
      11              : // distributed under the License is distributed on an "AS IS" BASIS,
      12              : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      13              : // See the License for the specific language governing permissions and
      14              : // limitations under the License.
      15              : //------------------------------------------------------------------------------------
      16              : //
      17              : //  Copyright Western Digital, 2018
      18              : //  Owner : Anusha Narayanamoorthy
      19              : //  Description:  
      20              : //                Wrapper module for JTAG_TAP and DMI synchronizer
      21              : //
      22              : //-------------------------------------------------------------------------------------
      23              : 
      24              : module dmi_wrapper(
      25              : 
      26              :   // JTAG signals
      27           16 :   input              trst_n,              // JTAG reset
      28      1475306 :   input              tck,                 // JTAG clock
      29        88482 :   input              tms,                 // Test mode select   
      30       115472 :   input              tdi,                 // Test Data Input
      31       111513 :   output             tdo,                 // Test Data Output           
      32        44226 :   output             tdoEnable,           // Test Data Output enable             
      33              : 
      34              :   // Processor Signals
      35          309 :   input              core_rst_n,          // Core reset                  
      36    115892092 :   input              core_clk,            // Core clock                  
      37          297 :   input [31:1]       jtag_id,             // JTAG ID
      38         5121 :   input [31:0]       rd_data,             // 32 bit Read data from  Processor                       
      39         3602 :   output [31:0]      reg_wr_data,         // 32 bit Write data to Processor                      
      40         4600 :   output [6:0]       reg_wr_addr,         // 7 bit reg address to Processor                   
      41        16132 :   output             reg_en,              // 1 bit  Read enable to Processor                                    
      42         6348 :   output             reg_wr_en,           // 1 bit  Write enable to Processor 
      43            0 :   output             dmi_hard_reset  
      44              : );
      45              : 
      46              : 
      47              :   
      48              : 
      49              : 
      50              :   //Wire Declaration
      51         9800 :   wire                     rd_en;
      52         6348 :   wire                     wr_en;
      53            0 :   wire                     dmireset;
      54              : 
      55              :  
      56              :   //jtag_tap instantiation
      57              :  rvjtag_tap i_jtag_tap(
      58              :    .trst(trst_n),                      // dedicated JTAG TRST (active low) pad signal or asynchronous active low power on reset
      59              :    .tck(tck),                          // dedicated JTAG TCK pad signal
      60              :    .tms(tms),                          // dedicated JTAG TMS pad signal
      61              :    .tdi(tdi),                          // dedicated JTAG TDI pad signal
      62              :    .tdo(tdo),                          // dedicated JTAG TDO pad signal
      63              :    .tdoEnable(tdoEnable),              // enable for TDO pad
      64              :    .wr_data(reg_wr_data),              // 32 bit Write data
      65              :    .wr_addr(reg_wr_addr),              // 7 bit Write address
      66              :    .rd_en(rd_en),                      // 1 bit  read enable
      67              :    .wr_en(wr_en),                      // 1 bit  Write enable
      68              :    .rd_data(rd_data),                  // 32 bit Read data
      69              :    .rd_status(2'b0),
      70              :    .idle(3'h0),                         // no need to wait to sample data
      71              :    .dmi_stat(2'b0),                     // no need to wait or error possible
      72              :    .version(4'h1),                      // debug spec 0.13 compliant
      73              :    .jtag_id(jtag_id),
      74              :    .dmi_hard_reset(dmi_hard_reset),
      75              :    .dmi_reset(dmireset)
      76              : );
      77              : 
      78              : 
      79              :   // dmi_jtag_to_core_sync instantiation
      80              :   dmi_jtag_to_core_sync i_dmi_jtag_to_core_sync(
      81              :     .wr_en(wr_en),                          // 1 bit  Write enable
      82              :     .rd_en(rd_en),                          // 1 bit  Read enable
      83              : 
      84              :     .rst_n(core_rst_n),
      85              :     .clk(core_clk),
      86              :     .reg_en(reg_en),                          // 1 bit  Write interface bit
      87              :     .reg_wr_en(reg_wr_en)                          // 1 bit  Write enable
      88              :   );
      89              : 
      90              : endmodule