1、代码审查记录代码审查记录密 级:内部公开文档编号:*-*-*(文控补充)代码审查 文件状态: 草稿 正式发布 正在修改文件标识:当前版本:作 者:董扬辉完成日期:2015-11-5-怡化金融设备工程中心对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。版本变更记录表 版本作者修改日期修改内容备注(审查范围)1.0董扬辉2015/11/19编写内容2015.7.1-2015.11.201.概述1.1.测试对象由董扬辉所编写的所有代码。时间节点为2015年7月1日至2015年11月20日。 1.2.测试目的规范代码风格,不
2、断提高代码质量。包括:(1) 代码的风险评估和警告审计; (2) 代码的鲁棒性和可复用性评估;(3) 代码的易读性和可维护性;(4) 代码风格的统一;1.3.测试流程1.4.代码的工具测试和人工检查(1) ISE 编译环境或Codifferous (2) 资深专家 2.代码审查结果统计2.1.风险等级一般2.2.代码审查结果功能实现;可读性还需加强;代码风格还需修改。2.3.代码审查详解2.3.1 寄存器定义不当FPGA在上电时全局复位时钟将会实现寄存器定义时的值。但是这种做法并不值得推荐,我们需要每个寄存器进行局部复位。即在每个块语句复位逻辑中赋初值。详见WP272 (v1.0.1) Mar
3、ch 7, 2008 - .2.3.2 不在if语句中进行过多运算在模块中只要一个always块或例化元件中没有在前一模块中用到。则可以将变量定义到每个块或元件的前面,便于修改。若是在变量存在交叉现象则必须在模块的顶端定义。2.3.9 半主时钟周期信号无法作为触发信号,但能记边沿解决2.4.1 闪退同一assign 有多个分号会导致闪退。2.4.2 多个XDC约束规则多个XDC约束规则第一个约束文件优先读取,然后依次读取。2.4.3 XDC语法问题语法错误会导致 后面的管脚约束全部无效,在synthetic 期间导致所在的模块全部被优化。2.4.4 编译问题set_property SEVERITY Warning get_drc_checks NSTD-1 set_property SEVERITY Warning get_drc_checks RTSTAT-1set_property SEVERITY Warning get_drc_checks UCIO-1 在使用强制drc报警告情况下,一些意想不到被优化的模块相关的错误报告会转化为警告,导致有时无法查到具体哪个模块在什么期间被优化。建议在约束文件没有任何问题的情况下使用 错误强制转换为警告。2.4.5 编译问题对同一信号进行约束,最后一条的有效性高于前一条。