摘要:
FPGA工具篇——编辑器Notepad++Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用。打开速度快,支持多达27种语法(支持Verilog和VHDL)高亮度显示,自动补全功能,而且支持列操作。安装完软件后,字体样式设为Consolas,大小14,色彩样式主题为Obsidian。设置后的效果如下:Quartus II软件可以调用Notepad+编辑器,并且可以在报错的时候... 阅读全文
摘要:
简介实现FIFO存储器读写指针比较好的方法就是使用格雷码计数器。格雷码计数器的优势在于其相邻两个数值之间只有一位发生变化,提高了系统的抗干扰能力,而且在计数时,各个输出的门电路翻转次数要远远小于二进制计数器,从而可以大幅度降低系统的功耗。实现格雷码计数器的步骤如下:将格雷值转换为二进制值。根据条件递增二进制值。将二进制值转换为格雷码将计数器的最终格雷值保存到寄存器中。格雷码转二进制格雷码转二进制的... 阅读全文
摘要:
简介在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个触发器都需要进行复位。复位的基... 阅读全文
摘要:
时钟多路器用于使同一个逻辑功能具有不同的时钟,比如在通信系统中,为了适应不同的数据速率要求,经常要进行时钟切换。有时为了节约功耗,也会把高速时钟切换到低速时钟,或者进行时钟休眠操作。下图是某一类型的时钟多路器:虽然在时钟信号上引入多路逻辑会产生毛刺等问题,但是在不同的应用中,对多路时钟的要求区别很大。时钟切换的最佳途径是使用FPGA内部的专用Clock MUX,这些MUX的反应速度快,锁定时间短,... 阅读全文
摘要:
双沿时钟双沿时钟是指在时钟的上升沿和下降沿都传输数据,这样使得数据传输在给定的时钟速率下能达到双倍的吞吐率,下图是一个由双沿时钟触发电路:使用双沿时钟可能存在一些问题,时钟的非对称占空比可能导致违背建立和保持时钟,而且很难确定关键信号的路径。下图是时钟驱动的单沿数据传输和多沿数传输波形图:在对性能和速度要求很高的情况下,并且无法承受使用等效同步电路在DFT和验证方面所带来的额外开销外,可使用双... 阅读全文
摘要:
行波计数器行波计数器是指每个寄存器的输出引脚连接到下一级寄存器的时钟引脚上,如下图所示:用触发器来驱动其他触发器的时钟输入端,一般都会存在问题。由于每个寄存器都存在传播延迟,且每一级触发器时钟的延迟会使下一级触发器的输入时钟产生偏移,会造成累积延迟,如下图所示。行波计数器对于静态时序分析是一个巨大的挑战,因为行波计数器中的每个阶段都产生了一个新的时钟,这就需要静态时序工具处理更多的时钟域,从而... 阅读全文
摘要:
简介快速傅里叶变换(Fast Fourier Transform)最为一种高效的算法,被广泛的用于信号处理与数据分析等领域。对于设计工程师来讲,自己动手采样可编程语言来实现一个FFT/IFFT模块,不知要花费多少心血。所幸的是Altera和Xilinx两大巨头都提供了自己FFT核,本文将详细讲解如何使用Altera的FFT核。Altera FFT核FFT IP core的总体架构分析:FFT分为f... 阅读全文
摘要:
如何避免亚稳态1、简介每当违背建立和保持时间时,亚稳态就会出现。在以下的情况下,可能违背时序要求: 输入信号是异步信号时钟偏移超过容限值信号在两个不同频率或者同频不同相的时钟域下工作组合延时使触发器的输入信号在亚稳态窗口内发生变化亚稳态会引起过多的传输延时和系统故障。虽然亚稳态不能根除,但是可以减小亚稳态发生的概率。避免亚稳态发生常见方法就是使用同步器。2、使用多级同步器最常见的方法就是在跨时... 阅读全文
摘要:
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。常见生成方法:Quartus自带的mif编辑器生成mif软件生成高级编程语言生成前两种方法都有一定的缺陷,主要介绍第三种方法,按照mif文件格式,使用高级编程语言(Matlab、C... 阅读全文
摘要:
1.1 简介在同步系统中,数据相对于时钟总有固定的关系。当这种关系满足器件的建立和保持时间的要求时,输出端会在特定的传输延时时间内输出一个有效状态。在异步系统中,由于时钟和数据的关系不是固定的,因此有时会出现违反建立和保持时间的现象。当违反建立和保持时间时,就会输出介于两个有效状态之间的中间级电平且无法确定停留在中间状态的时间,或者在经历一定的延时后才能进行正常的转换。1.2 亚稳态理论亚稳态是由... 阅读全文