对Systemc的一点个人看法

来源:互联网 发布:物流企业利润率的算法 编辑:程序博客网 时间:2024/06/05 05:11
    Systemc对位操作的支持low到令人发指,当然这只是相比于verilog的个人感觉,现在已经把《A Systemc Primer》(second edition)粗略过了一遍,给我印象最深的就两点:    1).不允许对信号和端口进行直接的范围和位的选择。    2).对信号和端口的赋值不是立即发生的,而总是发生在一个Δ延迟之后。    对于第一点。我是相当不适应的!因为在verilog中想要取谁的几个bit就取谁的几个bit,在systemc就不行了,你得先把端口或信号的值.read()到一个变量里面,然后对这个变量进行取位操作,没办法这是人家的规则,必须得遵守,再说了,如果systemc对位操作支持得像verilog那么好,可能就verilog没什么事儿了。systemc的C++特性才是其最大优势。    对于第二点,相当于verilog中的非阻塞赋值,虽然这本书没有说这个词,但整本书的例子都是非阻塞赋值,并且操作符只有“ = ”没有“ <= ”,容易误认为是立即生效,毕竟,在c语言,C#,verilog中“ = ”都是值生效以后才执行下一句。其实,作者在许多章节强调了第二点,甚至到了啰嗦的地步,我认为这就是老外人性化的一点,知道你要在这个地方犯错误,我就不断地重复,不断地提醒你,不像天朝一些教程,给个非阻塞赋值的定义就完了,犯了错误自己再回去看非阻塞赋值的定义。
原创粉丝点击