FPGA|CPLD|ASIC论坛
直播中

晓灰灰

7年用户 436经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计 接口/总线/驱动
私信 关注
[经验]

什么是用于综合目的,什么是用于非综合目的?是从仿真波形上面看的吗?

当你写HDL代码的目的,是需要得到FPGA的实际电路功能,也即得到FPGA的网表,用于下载到FPGA器件中,实现这个电路。此时,这段代码是用于综合目的的。

用于综合目的的代码,在Quartus工具中,是会出现在层次化标签页的层次树上(Hierarchy)的。全编译后,Quaruts会得到这段代码的sof网表文件。

当你写代码HDL代码的目的,并不是得到实际电路,而是用于例如仿真目的,第三方分析目的(例如matlab),虽然代码还是那些代码,但此时,这些HDL代码是用于非综合目的。

非综合目的的代码,一般不会出现在Hierarchy层次树上。或者说,不需要出现在层次树上。如果层次树上没有这段代码模块,也就不会出现在sof的网表文件中。

用于综合目的的代码,EDA会将它综合成为一个电路,当然需要动用其综合目的的一系列算法资源和步骤,时间也比较长。而编写用于综合目的的代码,需要按照可综合原则编写HDL,否则就不可综合或综合效率低下。

用于非综合目的的代码,EDA不会直接处理它(仅在仿真或第三方分析时处理它),当然也就省略了很多算法资源和步骤,处理时间短而快。而编写非综合目的的HDL代码时,限制条件很宽松,可以使用类似C语言的方式编写。

综合目的的代码最终是以FPGA电路形式体现的;非综合目的的代码最终是以计算机的运行(执行)体现的。

更多回帖

发帖
×
20
完善资料,
赚取积分