vivado中symthsis(综合)和implementation(执行)具体是为了完成什么操作?

1.synthesis

首先,同学你综合的单次拼错了,综合是synthesis,不是symthsis。

综合(synthesis)的概念是:将高级抽象层次的电路描述转化成较低层次的描述。

也就是说将语言描述的电路逻辑转化成与门、或门、非门、触发器等基本逻辑单元的互连关系。也就是我们常说的门级网表。

以四选一电路为例,综合过程将Verilog代码翻译成了门级互连网表。

四选一电路的综合过程

综合的概念很重要,利用Verilog 做电路设计时我们总是强调可综合的概念,可综合就是我们的这段代码可以被翻译成门级电路,不可综合就是代码不能被翻译成与之对应的门级电路。

综合是创造性的转化过程,它不但能翻译我们的电路,还能够优化我们的电路,比如去除电路描述中冗余的电路结构,或者复用功能相同的电路结构。

2.implementation

implementation正确的翻译应该是“实现”,implementation是一个place和route的过程,也就是布局布线

综合后生成的门级网表只是表示了门与门之间虚拟的连接关系,并没有规定每个门的位置以及连线的长度等。布局布线就是一个将门级网表中的门的位置以及连线信息确定下来的过程。

布局布线过程

在解释布局布线之前,我们先回顾一下FPGA的结构,我们知道FPGA可重复编程的基础是拥有巨量的可配置逻辑块(CLB)丰富的布线资源以及其他资源

①布局

布局的过程就是将门级网表中的每一个门“安置”到CLB中的过程,这个过程是一个映射的过程。

②布线

布线是利用FPGA中丰富的布线资源将CLB根据逻辑关系连接在一起的过程。

逻辑门的映射位置不是随意的,是FPGA设计软件经过算法计算后精心排列的一般的布局布线策略是占用最少的CLB并且连线尽量短,也就是面积和速度最优

布局布线策略有两种:速度优先和面积优先,往往不能同时达到两者皆最优,所以布局布线时需要在速度最优和面积最优之间做出选择。

以上节选自我的专栏文章

罗成:快速理解FPGA设计流程及工具软件 zhuanlan.zhihu.com图标

至于门级和版图的对应关系,可以参见我的另一篇专栏文章

罗成:如何通俗理解FPGA与Verilog HDL?
### `ifdef synthesis` 在 C/C++ 预处理指令中的用法及作用 在C/C++编程中,预处理器指令如 `#ifdef`, `#ifndef`, `#else`, `#elif` (即 `elseif`) `#endif` 用来控制源代码的部分是否会被编译。这些条件编译指令通常用于实现平台无关性、版本管理以及优化构建过程。 #### 使用场景 当涉及到硬件描述语言(HDL),比如Verilog 或 VHDL 中的综合工具时,“synthesis” 是一个常见的术语,表示将高级设计转化为低级网表的过程。而在C/C++环境中提到 `ifdef synthesis`,这可能是指针对不同环境下的特殊标记来区分仿真实际合成阶段的行为[^1]。 具体来说,在某些情况下开发者可能会希望部分代码仅在模拟期间有效而不在最终产品生成过程中被考虑进去;反之亦然。此时就可以利用类似于下面这样的结构: ```cpp #ifdef SYNTHESIS // 这里的代码只会在开启SYNTHESIS宏的情况下编译 #else // 此处则是默认行为或是为了调试目的准备的内容 #endif ``` 需要注意的是,上述例子假设有一个名为 `SYNTHESIS` 的宏已经被定义过。如果该宏存在,则会编译第一个区块内的语句;如果没有定义此宏,则会选择第二个区块(`else`分支)进行编译。 此外,也可以使用 `#ifndef` 来达到相反的效果——只有当某个特定名称尚未作为宏定义时才执行相应的代码片段: ```cpp #ifndef NO_SYNTHESIS #define SOME_MACRO_VALUE 42 #endif ``` 这段代码意味着除非已经定义了 `NO_SYNTHESIS` 宏,否则将会创建一个新的宏 `SOME_MACRO_VALUE` 并赋给它数值42。 综上所述,通过合理运用这类预处理命令可以帮助程序员更好地管理定制化其开发流程,特别是在面对复杂项目或多目标编译需求的时候显得尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值