夏宇闻那本书绪论的第6页又这样一段话:“C程序是一行接一行一次依次执行的,属于顺序结构,而verilog描述的硬件是可以在同一时间同时运行的,属于并行结构。。。。。。而verilog的仿真软件也是顺序执行的的,在时间关系上同实际的硬件是有差异的,可能会出现一些无法发现的问题。” 他说C程序是顺序执行的应该是指在编译器里,C程序是逐条被编译成相应的低层或机器代码的, 但verilog里我们知道部分语句是可以并行执行的,通常就是我们描述电路结构的那些并且是那些可综合的语句或者语句结构。但他又说“verilog的仿真软件是顺序执行的”是说在仿真软件里比如modelsim里 verilog代码是逐条有上到下被一条条编译的吗,但我们知道一般编的verilog代码里的语句比如诸多always都是并行的啊,这两者怎么统一理解啊,我理解是verilog是描述硬件电路结构的语言,所以它代码里描述的每一个小的电路结构是同时生成的(可能说生成不太合适应该是生效?),同时按照所描述的功能工作的,同时传递信号数值的,即部分代码语句的先后位置,在触发条件(时钟沿或电平)下,同步地执行动作的。这是我理解的他说的并行,而他说的“仿真软件是顺序执行的”应该是对于一整段代码,即一个***.v文件中的所有语句在被仿真软件翻译(类似C代码在编译器中编译)时,是有上到下逐条被识别,然后仿真软件按预先做好的功能,将整个代码被识别后的内容在宏观上重新构建成我们要的电路结构。,这些好像是软件编译原理方面的内容,我没学过,不懂。 至于他说的“会出现一些无法发现的问题” 可能是说,verilog描述的硬件电路的具有并行性和同时加电运行的特性 和VERILOG描述被转换成电路时语句是顺序地被翻译这一特点 两者综合考虑可能会出现一些问题, 至于是什么问题啊,他咋不说清楚叻,还是可能会出现,还是无法发现的 问题,啥问题啊,无法发现的问题不就是没问题吗,,,,,,郁闷 高人们谁了解,或者有独到理解的给俺解释下吧,谢了先
谢谢,呵呵 后来看了看他书后面说的,可能就是说这方面的东西的吧