FPGA设计的几点思考

1.电路在屏中,代码在心中
HDL,硬件描述语言,描述,描述,现有设计,再有描述,永远记得你设计的是硬件。
先想好完成怎样的具体的功能,应该用怎样的物理电路实现,再描述出来

Clive在1980年设计SOC时,都是手绘逻辑电路图,验证就是让其他人目视后说一句:我觉得OK
HDL相对于电路图设计是在以更高的抽象层次进行设计

好的代码风格
提高效率,避免不必要错误,阅读舒服
HDL是在扎实的数字电路功底下用硬件的编程思维编写代码
学习好的代码风格,阅读大量代码,参考设计思想,模仿吸收,化为己用。

2.术以载道
相对于FPGA设计来说,EDA工具只是辅助你来设计,不要追求去学习高级的软件工具,而忘记了设计本身。
相对于业务场景来说,FPGA是死的,以FPGA目前应用的领域来说:
通信 : 高速接口协议与高速数据收发转换
算法实现 : 算法与FPGA协同优化
嵌入式 :SOPC 搭建嵌入式底层开发环境

3.时序分析/约束 重要性
熟悉PLD发展历程的人就会明白,FPGA中任意两点间连线延迟无法预测,所以时序分析/设计必不可少。

4.抽象级别
同一个物理电路,可以在不同层次描述
行为级
系统级
算法级
主要载体为串行语句,辅以并行语句描述各个算法之间的连接关系
数据流
RTL级 寄存器传输级
结构化
门级
开关级

5.模块化设计
使大型设计分工协作到仿真更容易
方便维护,升级
层次清晰,逻辑明确

6.给端口选择正确的数据类型
input wire
组合逻辑中
output wire
时序逻辑中
output reg

7.latch的产生
组合逻辑中,条件语句不完整导致

8.组合逻辑反馈环
设计的大忌
引起震荡,毛刺,时序违规
引起整个系统不稳定,不可靠

改用时序电路同步反馈实现

9.阻塞与非阻塞

阻塞 顺序执行 一般用于组合逻辑
非阻塞 并行执行 一般用于时序逻辑

10.状态机-FPGA的灵魂
可减低抽象难度,易于可读维护 三段式最好
组合逻辑
次态逻辑 确定下一个状态
现态逻辑 确定输出
时序逻辑
由一组触发器组成,用于记忆当前的状态

11.状态机设计步骤
1.根据实际需求选择结构
摩尔 仅与当前状态有关
米粒 与当前状态和外部输入有关
2.分析设计要求
列出所有状态
对每个状态进行状态编码
递增二进制 ,格雷码,独热码
3.根据状态转移关系,输出函数
画出状态图
4.根据状态图
用HDL进行描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值