xref: /XiangShan/src/main/scala/utils/Trigger.scala (revision bb2f3f51dd67f6e16e0cc1ffe43368c9fc7e4aef)
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}