数字芯片:若干问题记录

数字芯片:若干问题记录

问题

好久没有更新博客了,最近有些忙。上次的FPGA系列先暂停。记录一下最近的问题。
从前在我身边的人大多是按照C 语言风格编写verilog,忽略基本电路的重要性。在这里,我着重强调一下电路设计基本功扎实的重要性。按照C的风格去写电路的时候很爽,他们的“开发”流程是“预实现功能–>划分模块–>c语言编写–>行为级仿真–>烧录实现”。这种方法设计出来的电路往往会存在很多缺陷,特别在工作的时钟频率比较高的时候,会出现“前仿真正确但板子情况不对。”

这时候,上述的这种人儿可能会手足无措。其实EDA帮他们综合出来的电路在较高的时钟频率时,不满足时序约束。对应这种情况,后仿真是很重要的。

为了避免这个问题,我们要从根本上减轻这种状况的发生。设计流程:“预实现功能–>划分模块–>RTL级原理图–>HDL 描述–>行为级仿真–>烧录实现”。在这个过程中,设计一些简单的组合&时序电路,掌握一些电路设计的技巧(这个过程很重要)。在这过程中,用HDL来描述出自己设计的电路,养成代码对应电路的好习惯,要知道verilog,VHDL等语言只是硬件描述语言。

当要设计的模块很庞大时,在写代码的过程中,要想到
(1)代码所对应的电路;
(2)代码在综合器综合后的大概电路(如Vivado环境下的综合工具);
(3)电路在FPGA上的资源占用估计;

在综合之后还不能实现功能的情况下,暂时分析一种情况:哪一个时序电路之前的组合逻辑电路不满足时序约束(setup time && hold time)。

记录

  1. verilog 语法
  2. 时序逻辑和组合逻辑
  3. 亚稳态以及处理方法
  4. 代码是否可以综合
  5. DFF 和 LATCH的组成
  6. setup time 和 hold time
  7. 毛刺消除
  8. 竞争冒险以及消除
  9. FSM (MOORE MEALY)
  10. 串并转化
  11. 分频电路
  12. FPGA 内部结构
  13. 检测边沿电路
  14. 提高电路工作频率的方法
  15. 兵乓buffer
  16. FIFO 异步同步
  17. 最小深度计算
  18. 跨时钟域信号处理

这次纯属笔记记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值