FPGA
DeamonYang
这个作者很懒,什么都没留下…
展开
-
FPGA 奇数分频器
分频器是数字电路中常见的对时钟处理的电路,通常各个厂商会提供各种时钟分频的ip,在时钟频率质量要求不高的情况下,需要自己设计分频电路。偶数倍分频器比较容易设计,本文主要讨论奇数分频器的设计,奇数分频器分为输出时钟占空比为50%与非50%两种,非50%占空比也比较容易,因此重点讨论50%占空比的情况。当进行奇数(2N+1)分频时,奇数周期的一半为小数(N+0.5),因此在设计分频时的关键是需要产生0.5倍周期的信号。若采用一个计数器对信号进行计数,那么由于这个计数器只能在固定的边沿触发,因此得到的分频数总原创 2020-08-19 20:27:02 · 1607 阅读 · 0 评论 -
跨时钟域之全握手
跨时钟域之全握手在跨时钟域(Clock Domain Crossing,CDC)处理时,需要根据源时钟频率,目的时钟频率以及数据是多bit还是单bit数据来选择合适的同步方式。本文主要介绍全握手与半握手处理机制。握手的机制是基于反馈信号进行跨时钟域同步。接下来会详细分析半握手与全握手机制,总结两种握手机制的特点以及适用的场景。假设有跨时钟域传输的电路如图 1所示,在图中分为trans_module与recv_module两个模块,其中trans_module为发起传输请求的模块,recv_modul原创 2020-08-06 23:17:24 · 7111 阅读 · 10 评论 -
异步FIFO的verilog设计
1.异步FIFO的概念异步FIFO为读取与写入采用不同的时钟,使用异步FIFO用于在不同的时钟域传输数据,主要用于跨时钟域传输多bit数据。2.异步FIFO的设计难点同步异步信号,避免亚稳态数据的危害设计合适的FIFO指针,判断FIFO满或者空状态3.同步FIFO的指针同步FIFO有一个计数器用于计数存储的数目和读取的数目。当FIFO只有写操作没有读...原创 2019-05-10 09:50:46 · 13728 阅读 · 14 评论 -
同步FIFO的verilog设计
FIFO (First-In-First-Out) 是一种先进先出的数据交互方式,在数字ASIC设计中常常被使用。FIFO按工作时钟域的不同又可以分为:同步FIFO和异步FIFO。同步FIFO的写时钟和读时钟为同一个时钟,FIFO内部所有逻辑都是同步逻辑,常常用于交互数据缓冲。异步FIFO的写时钟和读时钟为异步时钟,FIFO内部的写逻辑和读逻辑的交互需要异步处理,异步FIFO常用于跨时钟...原创 2019-05-10 09:53:35 · 2418 阅读 · 2 评论 -
数字电路时钟无毛刺切换
在设计多时钟系统中,需要切换时钟源,这两个时钟可能是没有关联的(相位、频率),或者他们为倍数关系。这两种情况都有可能在开关时产生毛刺(glitch),而系统上的毛刺对系统来说是危险的,他可能能够被一些寄存器捕获为触发边沿,而其他寄存器忽略此毛刺。 、时钟切换的简单实现在这种情况下就会出现毛刺,产生这种问题的根本原因是切换控制信号相对于时钟信号可以在任何时间里发生改变,本质是切换...原创 2019-05-10 09:56:14 · 7210 阅读 · 2 评论 -
组合逻辑always信号敏感列表对电路的影响
在verilog编写组合逻辑电路的时候会遇到敏感列表的信号应该包含哪些的问题,因此做如下仿真来验证信号敏感列表对电路的影响。在两个仿真例中通过设定不同的信号敏感列表来对比综合出来的仿真结果从而验证 信号敏感列表不影响最终的电路信号敏感列表不完整module mod_test( rd, rst, outdata ); input rd; input...原创 2019-08-16 10:07:04 · 10189 阅读 · 5 评论