简单总结的FPGA设计要点

​​​​

  • verilog代码规范:

一个模块内的变量统一使用小写,参数统一采用大写

低电平使能采用_n后缀,时钟最好加上时钟频率_50m后缀

模块函数的一些参数使用‘parameter’,顶层模块使用参数传递方式来改变参数定义

  • FPGA基础知识:

寄存器类型的变量,缺省值为X,线网类型的变量,缺省值为Z

组合逻辑-阻塞赋值 , 时序逻辑-非阻塞赋值 , 一个always模块内不推荐同时使用两种赋值方式

latch锁存器:一种对脉冲电平敏感的存储单元电路,锁存器是电平触发的存储器,由组合逻辑产生。主要危害是产生毛刺glitch,毛刺对下一级电路是有风险的,且隐蔽性强,不容易查出。设计时应尽量避免使用锁存器。

Flip-flop寄存器:寄存器是边沿触发的存储器,寄存器在时序电路中使用,由时钟触发产生。

  • 静态时序分析与时序约束:

系统时钟超过50MHz,或PLL时钟频率较高,需要考虑时序约束;

时钟抖动、时钟偏差、延时等会影响Launch Clock(触发时钟)和Capture Clock(采样时钟)。最终导致Setup Time和Hold Time不满足要求,出现亚稳态和错误;

时序约束的重点 :Setup Slack(建立时间裕量)、Hold Slack(保持时间裕量)、 Fmax(最高系统频率);

简单系统时钟约束步骤: 1、配置所有时钟; 2、运行时序分析; 3、配置外部I/O约束; 4、根据不同设计,设置‘false_path’,‘multicycle_path’等; 5、检查timing report,针对性解决问题;

Altera Timing Analyzer 理论和实践官方介绍:https://www.intel.com/content/www/us/en/programmable/documentation/psq1513989797346.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值