Dec 24
1. XST主要参考资料:XST User Guide (ISE安装目录doc中的xst.pdf)

2. 辅助参考资料:WP231 - HDL Coding Practices to Accelerate Design Performance

3. 特别注意之一:请给XST加时序约束。
通常我们会为工程添加UCF约束指定时序要求和管脚约束。但是UCF约束是给MAP,PAR等实现使用的,综合工具XST并不能感知系统的时序要求。而为XST添加XCF约束却是使实现结果拥有最高频率的关键。其原因是显而易见的:实现工具只能在综合网表的基础上布局布线,而综合工具却可以根据要求调整综合网表,使实现工具更容易满足时序要求。如果不将时序目标告知综合器,将导致我们对性能的要求得不到体现。
XCF约束语法与UCF类似并且在XST User Guide中有详细描述。其实常用的Period、Offest等约束和UCF的语法是一模一样的,可以直接使用在XCF中。
给设计添加XCF约束的方法是Synthesize - XST --> 右键 --> Synthesis Constraint File = 指定路径

4. 特别注意之二:仔细察看综合报告中的Warning。
切记要仔细查看综合报告中的所有Warning并确认是否是可以安全忽略的。综合器产生Error会使工具停止工作,但是Warning经常会被用户忽略。其实Waning可以提示很多潜在的逻辑问题,比如某些信号声明了,被使用了,却没有被赋值,或者综合器发现了Latch但却不是期望的结果等等。

5. 常用选项之一:keep_hierarchy - 保持层次。在初始设计/debug的时候很有用。XST根据层次来综合,不打破层次优化,所有的寄存器名字都以名字排列,UCF约束可以很方便得找到需要约束的对象。如果选择soft,则在综合时保持层次,而在map时工具会打破层次来优化,但是instance的名字还是保留的。
Tags: ,
Dec 14
问:一个FPGA设计项目需要用哪些评判标准来检验?
一曰功能正确;
二曰时序收敛;
三曰资源消耗少。
Tags: ,
Dec 11
[Background]
- 几乎所有的嵌入式系统都需要用外部存储器
- 最终的设计不可能用Demo Board,肯定都要重新画PCB
- DDR Memory Controller是一个挺复杂的系统,移植起来比较麻烦

[Question]

怎样移植现有设计的Memroy Controller到定制PCB板上?
Tags: , ,
Nov 24

FPU 不指定

RickySu , 14:29 , 技术经验 , 评论(0) , 引用(0) , 阅读(501) , Via 本站原创
[FPU种类]
MicroBlaze FPU - MB内置,单精度,加减乘除开方比较转换
V4 PPC APU_FPU - PPC APU接口,单精度,加减乘除开方比较转换
V5 PPC APU_FPU_VIRTEX5 - PPC APU接口,单/双精度,加减乘除开方移位绝对值比较转换

[问题]
1. 怎样使用FPU
2. C语言的标准函数库都是为双精度小数写的,用了sqrt()函数还是没有用到FPU
3. 怎么检查编译出来的结果有没有使用FPU?
4. 为什么我看到dump中使用了fsqrt但是也包含了的软件函数,整个函数大概有7K长?
5. 如果是加减乘除,需要用特别的函数吗?
Tags: ,
Nov 11
[问题] 当一个大程序中,有一些函数从来没有被调用过,用GCC编译仍然会把他们保留在最终的输出elf中。怎样去除这些没有被调用过的函数呢?
[Question] Sometimes some functions are never used in one program, but gcc will retain them in the produced elf file even with -O2 option. How to remove these dead code?

[GCC Doc]
引用
In order to do this, it has to work with objects compiled with the following options: -ffunction-sections -fdata-sections. These options are usable with C and Ada files. They will place respectively each function or data in a separate section in the resulting object file.

Once the objects and static libraries are created with these options, the linker can perform the dead code elimination. You can do this by setting the -Wl,--gc-sections option to gcc command or in the -largs section of gnatmake. This will perform a garbage collection of code and data never referenced.

Tags:
分页: 7/28 第一页 上页 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]