1cc358710SLinJiawei/*************************************************************************************** 2cc358710SLinJiawei* Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences 3cc358710SLinJiawei* Copyright (c) 2020-2021 Peng Cheng Laboratory 4cc358710SLinJiawei* 5cc358710SLinJiawei* XiangShan is licensed under Mulan PSL v2. 6cc358710SLinJiawei* You can use this software according to the terms and conditions of the Mulan PSL v2. 7cc358710SLinJiawei* You may obtain a copy of Mulan PSL v2 at: 8cc358710SLinJiawei* http://license.coscl.org.cn/MulanPSL2 9cc358710SLinJiawei* 10cc358710SLinJiawei* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 11cc358710SLinJiawei* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 12cc358710SLinJiawei* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 13cc358710SLinJiawei* 14cc358710SLinJiawei* See the Mulan PSL v2 for more details. 15cc358710SLinJiawei***************************************************************************************/ 16cc358710SLinJiawei 17cc358710SLinJiaweipackage top 18cc358710SLinJiawei 1951e45dbbSTang Haojinimport circt.stage._ 2051e45dbbSTang Haojinimport chisel3.stage.ChiselGeneratorAnnotation 21da50abf9STang Haojinimport xiangshan.types.RunFirrtlTransformAnnotation 22*5931ace3STang Haojinimport xiangshan.transforms._ 23cc358710SLinJiawei 24cc358710SLinJiaweiobject Generator { 2551e45dbbSTang Haojin def execute(args: Array[String], mod: => chisel3.RawModule, firtoolOpts: Array[String]) = { 26084afb77STang Haojin val annotations = chisel3.BuildInfo.version match { 2751e45dbbSTang Haojin case "3.6.0" => Seq( 28cc358710SLinJiawei RunFirrtlTransformAnnotation(new PrintControl), 297f37d55fSTang Haojin RunFirrtlTransformAnnotation(new PrintModuleName) 3051e45dbbSTang Haojin ) 31084afb77STang Haojin case _ => Seq(CIRCTTargetAnnotation(CIRCTTarget.Verilog)) ++ firtoolOpts.map(FirtoolOption.apply) 32cc358710SLinJiawei } 33cc358710SLinJiawei 3451e45dbbSTang Haojin (new XiangShanStage).execute(args, ChiselGeneratorAnnotation(mod _) +: annotations) 3551e45dbbSTang Haojin } 36cc358710SLinJiawei} 37