编译流程之仿真

仿真

  1. 1.        功能仿真(前仿真)

从逻辑分析HDL代码所描述电路的正确性,因为不涉及到考虑门延时和线延时,所以仿真速度很快,其主要测试点在逻辑,如使用testbench文件进行仿真,就是功能仿真。

  1. 2.        时序仿真(后仿真)

考虑门延时参数和单元连接线后的仿真,仿真更接近真实应用情况。

注意:

在进行HDL代码编写的时候,我们要有这样的认识,功能仿真才是整个FPGA开发中代码输出量最大的环节,对于所编写的每一个模块。可能需要很多的testbench文件。

用户约束

1.综合约束

指导编译器将HDL代码转化为门级网表结构

2.管脚约束

将设计中的输入、输出、及双向IO和FPGA芯片物理I/O建立一一对应的联系。并且为每一个已分配的物理I/O管脚指定特定的接口电平,从而保证通信,如LVDS等

3.位置约束

针对特殊逻辑版块要求特殊的逻辑块资源

4.时序约束

将网表布局到FPGA芯片并完成连线操作时,如果我们指定了时序约束,编译器会考虑约束关系,进行合理的布局布线,因为布局布线会影响线延时的参数

时序约束是针对布局布线环节

2  书序约束的重要意义在于保证设计的电路具有优良的性能,没有经过时序约束的电路,布局器和布线器的操作过于松散和随意!!!

时序分析

时序分析,也称之为:静态时序分析(简称STA),之所以进行时序分析,因为在实际中存在传输延时,尤其当时钟频率很高的时候,数字电路的模拟电路特性就会显现出来,如感抗,容抗这些因素的产生会导致较为严重的传输延时。

编译流程之综合

编译器一般会采用默认的设置进行逻辑综合。但实际上编译综合设置是可以修改的,可以考虑速度优先,或者面积优先,或者功耗优先的准则。通常的在选择IP核设计的时候,很多IP核会提供给选项是速度优先还是面积优先。

关于FPGA开发,需要形成一种意识:速度和面积的权衡是十分重要的。

原文地址:https://www.cnblogs.com/shaonianpi/p/9991659.html

时间: 2024-10-02 01:48:36

编译流程之仿真的相关文章

cadence upf低功耗流程的仿真验证

本文是记录项目过程中遇到的奇巧淫技,如有遗漏或者不足,请大家改正和补充,谢谢. 随着深亚微米技术的普及与发展,leakage功耗在整个功耗中的比重越来越大,比如45nm下,已经占到了60%以上,所以低功耗解决方案应运而生.目前已经有一套标准的低功耗设计流程,流程有CPF(cadence主导)和UPF(synopsys主导)两种,但技术趋势是UPF会大一统,所以本篇将为那些仍旧使用ncverilog而不是vcs仿真工具的苦逼们提供一些参考.目前常用的降低低功耗的方法有四种:多电压域.时钟门控.电源

React Native Android Gradle 编译流程浅析

[工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 前面已经发车了一篇<React Native Android 从学车到补胎和成功发车经历>,接着就该好好琢磨一下 React Native 周边了,没看第一篇的可以先去看看:这里我们先从 React Native 的 Android 编译来简单揭晓一下 React Native 在集成的过程中到底干了哪些不可告人的坏事:由于我们项目准备以 Gradle 形式接入

gcc编译流程

gcc的编译流程分为四个步骤,分别为: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) 以hello.c为例子,在这四个步骤中可以设置选项分别生成hello.i, hello.s, hello.o以及最终的hello文件:     hello.c : 最初的源代码文件:      hello.i : 经过编译预处理的源代码,将会把#开头的文件进行处理,包括宏以及包含等等,使用gcc -E(大写)命令可以输出此文件查看(注意

Android recovery分析(一)---全量升级包的编译流程

一.前言 recovery的最主要功能就是升级,而升级文件就是升级包了,那么升级包时如何编译出来的呢?文就这个问题做个简要的分析. 注:本文中的叙述纯属个人理解,欢迎批评指正. 二.升级包编译命令 1.source build/envsetup.sh 2.lunch (选择合适的配置) 3.make otapackage 注:有些平台可能没有将"recoveryimage"."bootimage"等目标添加为"otapackage"目标的依赖,而

《暗黑世界》安卓APK 编译流程详细说明教程!(图文)

原地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=223671 关于开发环境的搭建,之前的相关文档已经很详细的说明,对环境的搭建请参考以前的相关文档,如有问题,及时在论坛里提问,会有管理人员快速解答,此文档主要针对eclipse下安卓编译.    首先肯定是把暗黑世界的源码导入eclipse,源码导入进来后,就开始进行编译的准备工作,这里首先需要将Classes里面的.cpp文件和和相关的文件夹路径写进来,打开eclipse下的暗黑世

关于Linux开源项目基础组件make编译流程

?? 关于Linux开源项目基础组件make编译流程 非常多Linux开源项目都会用到编译出可运行文件的make.这个是有一套流程的. 首先,GNU构建系统:https://en.wikipedia.org/wiki/GNU_build_system 使用Autotool来编译和管理整个产品的生产流程. 就是以下这张图: 这里面须要先了解make和makefile make:https://en.wikipedia.org/wiki/Make_(software) makefile:https:

反编译流程

在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看.下面是我参考了一些文章后简单的教程详解. (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平.) 测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取) 下载 dex2ja

《暗黑世界》安卓APK 编译流程详细说明教程

(附件下载地址:http://www.9miao.com/question-15-53727.html) 关于开发环境的搭建,之前的相关文档已经很详细的说明,对环境的搭建请参考以前的相关文档,如有问题,及时在论坛(http://www.9miao.comm)里提问,会有管理人员快速解答,此文档主要针对eclipse下安卓编译. 首先肯定是把暗黑世界的源码导入eclipse,源码导入进来后,就开始进行编译的准备工作,这里首先需要将Classes里面的.cpp文件和和相关的文件夹路径写进来,打开ec

C/C++编译流程

编译的基本流程 graph TD A(预处理) --> B(编译) B --> C(汇编) C --> D(链接) 详细过程 #include <stdio.h> int main(int argc, char *argv[]) { printf("Hello World!\n"); return 0; } 预处理(cpp) gcc -E hello.c -o hello.i 预处理,主要处理以下指令:宏定义指令,条件编译指令,头文件包含指令. 预处理所完