原创 FPGA设计10条经典问答,快看看有没有你需要的!

2019-8-2 13:39 966 11 2 分类: FPGA/CPLD
1
  问:可否解释下 FPGA 时序约束设置方法,目前在做一个项目,功能仿真正确,但想进一步优化设计,采用怎样的时序约束才能达到目标呢?
  答: 优化代码,可以从代码风格的角度出发,这就涉及到对整个系统的理解,例如如何对系统进行划分,是否进行有必要的流水或者重定时。时序约束包括时钟约束、关键路径的约束等等。这还是要求你对整个 设计有深入的理解。时钟约束是全局约束,在 Synplify Pro 下很好实现,在 SDC 中定义时钟频率即可。 在代码上的小打小闹对系统的时序影响不大,主要是对系统的分析工作做透了,像上面说的,对系统模块的划分,比如说相同功能的模块放到一个模块中去,若是可能时钟只用一个,上全局等等。
  02
  问:ISE 软件中给出的综合报告与静态时序分析报告中都含有工作频率,请问哪一个是 FPGA 能够实际工作的频率?
  答:经过映射和布线后的频率值才是 FPGA 可以真正跑到的频率值看静态时序分析报告,基本是这个数值。 通过查看ISE9.1.03的Implement Design>Place&Route>Generate Post-Place&Route Static Timing 的数据,可以查看到比较接近实际情况的报告数据。
  03
  问:在后端布局布线之前怎么确定系统的最高工作频率?是一点一点的往上升频还是有什么计算公式?在综合之后呢?综合用的 std 基本上也没有什么延迟信息吧?
  答:看时序报告,里面有 fmax,推算的方法是根据关键路径来计算的,也就是逻辑中延时最长的那条路径,这条路径的能满足的建立保持时间就是电路中时序部分能达到的最小周期。
  4
  问:什么综合器能看到每个子模块的面积?好像 synplify 不行。有哪个综合器可以呢?
  答:ISE 10.1 在 PAR 之后有报告,可以分模块报告 ;Synplify 老版本没看到有分模块的。
  5
  问:
  1)synplify 的综合出的网表是否是其它 EDA 可以通用的?
  2)synplify 的综合出的网表与绘制 pcb 板所调用的网表有什么不同,格式是否相同?
  3)我在 synplify 中找不到其综合出的网表文件,只看到可视元件。不知最终给出的网表文件是什么?
  4)目前的 FPGA/ASIC 综合工具其综合的网表是否有统一规范?
  答:
  1)syplify 作为第三方工具,综合处的网表是其他的 EDA 工具可以通用的,这里指的 EDA 工具是指设计 FPGA 的 EDA 工具,而不是 protel 什么的。
  2)PCB 的网表和 synplify 的网表不是一个概念,pcb 的网表是分立元件的连线和约束网表,而 synplify 综合出的网表是用于 FPGA 内部布局布线用的。
  3)synplify 貌似可以综合处不同后缀名的网表,你看下你的工程名和指定的后缀,然后就可以找到了。
  4)目前的 FPGA/ASIC 的综合工具的网表不是很统一的,但是大同小异,你懂的一种就很容易懂另外的。
  6
  问:如何察看特定信号的 fanout ?我的设计中信号很多,成千上万个。请问我在用 synplify 综合后能不能查看特定信号的 fanout? 如果能按从大到小排列就更好了。请指点!
  答:在 RTL 视图下,选中待查看信号对应网线,然后在左边的窗口中就会高亮显示 ( 在以 Nets 命名的文件夹里,会显示该网线的 Fanout)
  7
  问:ISE 中的 PAD TO PAD CONSTRAINT 是否是包括输入输出的 pad 时延之和再加上输入输出之间的 组合逻辑的时延?还是只是输入输出之间的组合逻辑的时延?
  答:Xilinx PAD-to-PAD contraint 的确涉及到输入输出 PAD 时延 . 这从布局后时序报告中可以看出。
  8
  问:写了一个 vhdl 的小程序 , 可是在 processes ofsoure 里的 implement design 里只有 translate,fit, 却没有 map ,place&route. 这是为什么呢 ? 请大侠们帮忙答疑解惑 ! 原来用的上 xc9500xl 系列 的 xc9572xl, 结果怎么都没有 place&route. 后来换成 virtex2 系列的 xc2v80 就出现了 , 这是什么原因?
  答:cpld 是没有 place&route,是 fit
  9
  问:现在的 vhdl 语言编程很多是行为模式,请问如何估算程序会消耗的最大资源问题?考虑编程的资源消耗有些什么具体的方程式和经验?逻辑行为描述是否资源消耗很大,如何优化?
  答:大部分是先选择同一系列较大的芯片来设计,综合后看报告,然后再根据实际情况移植。对于一个设计, 消耗的资源不要超过 80%。还有就是一些 IP Core 生产向导的最后一步也会提示你消耗多少资源。
  10
  问:FPGA 每次上电时,要从 PROM 中读取配置信息,那么一定需要时钟,该时钟是从哪里来的呢?FPGA 是否存在一个时钟振荡器来提供这一时钟?
  答:master 的 FPGA 的 cclk 脚在上电的时候会自动产生配置时钟,这个时钟应该是内部 rc 电路产生的,如果是由外部晶振产生的话,那没有晶体的系统 ( 比如差分接受数据 ) 不就用不了 FPGA 了? 数据手册中有写 : Master Slave 主串 方式下 FPGA 自己产生时钟。不需要外接 RC。

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条