172951335SLi Qianruo/*************************************************************************************** 272951335SLi Qianruo * Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences 372951335SLi Qianruo * Copyright (c) 2020-2021 Peng Cheng Laboratory 472951335SLi Qianruo * 572951335SLi Qianruo * XiangShan is licensed under Mulan PSL v2. 672951335SLi Qianruo * You can use this software according to the terms and conditions of the Mu lan PSL v2. 772951335SLi Qianruo * You may obtain a copy of Mulan PSL v2 at: 872951335SLi Qianruo * http://license.coscl.org.cn/MulanPSL2 972951335SLi Qianruo * 1072951335SLi Qianruo * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 1172951335SLi Qianruo * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 1272951335SLi Qianruo * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 1372951335SLi Qianruo * 1472951335SLi Qianruo * See the Mulan PSL v2 for more details. 1572951335SLi Qianruo ***************************************************************************************/ 1672951335SLi Qianruo 1772951335SLi Qianruopackage utils 1872951335SLi Qianruo 1972951335SLi Qianruoimport chisel3._ 2072951335SLi Qianruoimport chisel3.util._ 2184e47f35SLi Qianruoimport xiangshan.MatchTriggerIO 228891a219SYinan Xuimport org.chipsalliance.cde.config.Parameters 23*bb2f3f51STang Haojinimport utility.XSDebug 2484e47f35SLi Qianruo 2572951335SLi Qianruoobject ChainCheck { 2672951335SLi Qianruo def TimingCheck(prevTiming: Bool, thisTiming: Bool, chain: Bool) = !((prevTiming ^ thisTiming) && chain) 2772951335SLi Qianruo def HitCheck(prevHit: Bool, chain: Bool) = prevHit || !chain 2872951335SLi Qianruo} 2984e47f35SLi Qianruo 3084e47f35SLi Qianruoobject PrintTriggerInfo { 3184e47f35SLi Qianruo def apply(enable: Bool, trigger: MatchTriggerIO)(implicit p: Parameters) = { 3284e47f35SLi Qianruo XSDebug(enable, p"Debug Mode: Match Type is ${trigger.matchType}; select is ${trigger.select};" + 3384e47f35SLi Qianruo p"timing is ${trigger.timing}; action is ${trigger.action}; chain is ${trigger.chain};" + 3484e47f35SLi Qianruo p"tdata2 is ${Hexadecimal(trigger.tdata2)}") 3584e47f35SLi Qianruo } 3684e47f35SLi Qianruo}