SystemC与HDL
我目前正在参与一个大学项目,以实现现有指令集的处理器。这个想法是,到项目结束时,我应该能够综合该设计并在FPGA中运行它。到目前为止,一切进展顺利,几天前,我开始在Verilog HDL中实施该设计,并且有了一个非常简单的版本。现在的问题是:我与一些从事硬件设计工作的人取得了联系,他们建议在继续之前,我应该转向使用SystemC进行实施。现在,让我非常困惑,因为这是我的想法: Verilog->作为一种HDL语言,专门针对硬件设计。具有结构和行为Verilog之类的某些抽象级别,但是它是指定设计的RTL的非常简洁的形式。绝对可以根据您选择的FPGA使用一堆工具对其进行综合(在我的情况下,我使用的是Xilinx Vivado 2014和Zynq板)。不利的一面是普通的Verilog没有提供足够的抽象来进行验证,这就是为什么您拥有诸如System Verilog之类的东西的原因。 SystemC->这是一个C ++类库,可以有效地引入C ++中的时间概念,并允许您进行事件驱动的仿真。显然,它比任何HDL都高级得多,并且这里的事情可以更快地实现。这使其成为用于诸如验证甚至实现模拟器之类的东西的非常好的工具,以便人们可以在实际制造东西之前就开始为芯片设计驱动程序和东西。显然,还有一个可综合的SystemC子集(我认为甚至Xilinx Vivado都可以做到这一点),并且在某些情况下,它使SystemC可以用于设计非常方便抽象的大型系统。 因此,我的问题是: 这些有关systemC和Verilog(或HDL语言,如果您喜欢的话)的概念正确吗? 什么时候应该使用SystemC?什么时候需要Verilog? 有人告诉我,即使在Verilog中,在实现的关键部分使用很多行为代码也可能会有些问题,因为从本质上讲,您对如何综合它的综合工具的约束要少得多。在较高的抽象水平下会不会有问题?即如果我使用systemC,我可能会得到非常慢,耗电,大型设计的结果。 建议SystemC的人提到,好像我在进行“体系结构探索”,这就是为什么他更喜欢Verilog。这到底是什么意思呢?我给人的印象是,体系结构通常是指指令集,而微体系结构是指指令集的实现(因此,微体系结构是执行指令的实际rtl)。那么架构探索是否意味着他认为我正在实现处理器以查看指令集的可行性? 他说,使用SystemC的一个论据是它使用起来容易得多,因为它比HDL具有更高的抽象级别。他还声称,更容易确定正确的设计时间。这在多大程度上是正确的? 非常感谢您的帮助,我有点困惑,发现很难在线获得有关此信息的明确信息。谢谢!