什么是用于综合目的,什么是用于非综合目的?是从仿真波形上面看的吗?
[复制链接]
当你写HDL代码的目的,是需要得到FPGA的实际电路功能,也即得到FPGA的网表,用于下载到FPGA器件中,实现这个电路。此时,这段代码是用于综合目的的。
用于综合目的的代码,在Quartus工具中,是会出现在层次化标签页的层次树上(Hierarchy)的。全编译后,Quaruts会得到这段代码的sof网表文件。
当你写代码HDL代码的目的,并不是得到实际电路,而是用于例如仿真目的,第三方分析目的(例如Matlab),虽然代码还是那些代码,但此时,这些HDL代码是用于非综合目的。
非综合目的的代码,一般不会出现在Hierarchy层次树上。或者说,不需要出现在层次树上。如果层次树上没有这段代码模块,也就不会出现在sof的网表文件中。
用于综合目的的代码,EDA会将它综合成为一个电路,当然需要动用其综合目的的一系列算法资源和步骤,时间也比较长。而编写用于综合目的的代码,需要按照可综合原则编写HDL,否则就不可综合或综合效率低下。
用于非综合目的的代码,EDA不会直接处理它(仅在仿真或第三方分析时处理它),当然也就省略了很多算法资源和步骤,处理时间短而快。而编写非综合目的的HDL代码时,限制条件很宽松,可以使用类似C语言的方式编写。
综合目的的代码最终是以FPGA电路形式体现的;非综合目的的代码最终是以计算机的运行(执行)体现的。
此内容由EEWORLD论坛网友大辉哥0614原创,如需转载或用于商业用途需征得作者同意并注明出处
|