2013年10月8日

异步FIFO及verilog原码

摘要: 这几天看了Clifford E. Cummings的两篇大作《Simulation and Synthesis Techniques for Asynchronous FIFO Design》and 《Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons》颇有感想,真可谓经典之作,不可错过。1.什么是FIFO?FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样. 阅读全文

posted @ 2013-10-08 17:29 略过天涯 阅读(610) 评论(0) 推荐(1) 编辑

FIFO的设计与仿真

摘要: 本设计参照齐威王大哥的设计,采用模块化的设计方法,每个模块简单易懂,并进行了每个模块的仿真。最后进行顶层设计,编写了测试激励在modisim上仿真正确,下面给出代码和测试激励,附上一篇比较好的英文文献。 1 module yibu_fifo(wclk,wreset,wdata,wena,rclk,rena,rdata,rreset,full,empty); 2 parameter DSIZE = 8, 3 ASIZE = 4; 4 input wclk,wreset,rclk,rreset; 5 input wena,rena; //写控制信号 读控制信号 6 i... 阅读全文

posted @ 2013-10-08 17:26 略过天涯 阅读(780) 评论(0) 推荐(1) 编辑

自然二进制与格雷码的转换

摘要: 自然二进制:Bn-1Bn-2….B2B1B0格雷码:Gn-1Gn-2…G2G1G0自然二进制转格雷码公式: Gi= Bi,i = n-1 Gi= Bixor Bi+1,i = 0:n-2格雷码转自然二进制:Bi= Gi,i = n-1 Bi-1= Gi-1xor Bi,i = 1:n-1 一般的,普通二进制码与格雷码可以按以下方法互相转换: 二进制码->格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR)(http://bk.7tmusic.com/lemma-php/dispose/view.php/379209.htm),作为对应格雷码该位的值,最左边一位不变(相当于 阅读全文

posted @ 2013-10-08 14:26 略过天涯 阅读(892) 评论(0) 推荐(1) 编辑

状态机小结

摘要: 需从功能,性能,稳定,资源等方面权衡状态机。1代码结构 三段式将组合逻辑和时序逻辑分开,利于综合器分析优化和程序维护,但需注意三段式思维陷阱;2状态编码one-hot编码始终只有一位变化,组合反馈资源少,具有最高的速度和较强的抗干扰性能,可以提高设计的工作速度,且索引式one-hot比非索引式one-hot节省资源。3安全one-hot状态机异步复位时,由于有些状态位跳出复位状态,而其它状态位没有,那么就会有多于一个状态位被置高(即有效),这样这个状态机就会进入非法状态。如果使用二进制编码状态机,它可以创建未使用的状态来过渡到复位状态,这使得其成为一个确定性的状态机。这样就允许一个非法的或者闲 阅读全文

posted @ 2013-10-08 09:52 略过天涯 阅读(297) 评论(0) 推荐(1) 编辑

2013年9月30日

FSM的几种策略

摘要: FSM是什么?FSM就是Finite(有限) State(状态) 机(Machine)的缩写。(之所以中英文混写,是为了强调学懂FSM的原理是根本,刻意去采用“几段式”的写法并不重要)riple FSM的“口味”,说的是FSM的种类和编辑方式,以及由此带来的不同的代码风格。下面就列举几种不同的“口味”,并且给出进一步学习的参考。riple 1. “经典分类”——基于状态的Moore型和基于迁移的Mealy型。对于同一个模型,Moore型描述可能会比Mealy型描述需要更多的状态。而且,即使通过添加状态的方法得到了与Mealy型等价的描述,Moore型在对输入的响应速度上也要滞后一个周期。尽管如 阅读全文

posted @ 2013-09-30 16:46 略过天涯 阅读(1052) 评论(0) 推荐(1) 编辑

跨越鸿沟:同步世界中的异步信号

摘要: 只有最初级的逻辑电路才使用单一的时钟。大多数与数据传输相关的应用都有与生俱来的挑战,即跨越多个时钟域的数据移动,例如磁盘控制器、CDROM/DVD 控制器、调制解调器、网卡以及网络处理器等。当信号从一个时钟域传送到另一个时钟域时,出现在新时钟域的信号是异步信号。 在现代 IC、ASIC 以及FPGA设计中,许多软件程序可以帮助工程师建立几百万门的电路,但这些程序都无法解决信号同步问题。设计者需要了解可靠的设计技巧,以减少电路在跨时钟域通信时的故障风险。 基础 从事多时钟设计的第一步是要理解信号稳定性问题。当一个信号跨越某个时钟域时,对新时钟域的电路来说它就是一个异步信号。接收该信号的电路... 阅读全文

posted @ 2013-09-30 15:08 略过天涯 阅读(545) 评论(0) 推荐(0) 编辑

边沿检测技术

摘要: 一、为什么要讲边沿检测也许,没有那么一本教科书,会说到这个重要的思想;也许,学了很久的你,有可能不知道这个重要的思想吧。很惭愧,我也是在当年学了1年后才领悟到这个思想的。说实话,我的成长很艰辛,没有人能给我系统的指导,而我得撑起这一片蓝天,于是乎无数个漏洞,我一直在修补我的不足。我没能对自己满足过,不是说我“贪得无厌”,而是,我不够“完美”。人可以不完美,但不可以不追求完美;或许终点永远达不到,但努力的过程,你一直在靠近完美;有方向感地奋斗,让你永远立于不败之地。也许我看的书不够多,但学校暑假那边关于的FPGA的书,我都翻过一遍了;特权的《深入浅出玩转FPGA》是我所看过的书中,唯一一本涉及到 阅读全文

posted @ 2013-09-30 14:06 略过天涯 阅读(485) 评论(0) 推荐(1) 编辑

门控时钟和时钟使能

摘要: 门控时钟时钟使能电路是同步设计的重要基本电路,在很多设计中,虽然内部不同模块的处理速度不同,但是由于这些时钟是同源的,可以将它们转化为单一的时钟电路处理。在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此推荐采用使用时钟使能的方法,通过使用时钟使能可以避免时钟“满天飞”的情况,进而避免了不必要的亚稳态发生,在降低设计复杂度的同时也提高了设计的可靠性。门控时钟Verilog示例代码:input wr_n;//写使能信号,低有效input cs_n;//片选信号,低有效input[7:0] db;//输入数据总线output db_r;//锁存输出reg 阅读全文

posted @ 2013-09-30 13:36 略过天涯 阅读(1523) 评论(0) 推荐(0) 编辑

ALTERA器件中复位电路实现之-异步复位同步化

摘要: 所谓异步复位同步化,就是我们通常说的异步复位同步撤除。 为了避免纯粹的同步复位和纯粹异步复位的问题,可以使用一种叫做同步化的异步复位,我们称其为第三类复位。这种复位完全结合了异步复位和同步复位的优势,我们知道异步复位的优势是不参与数据路径,所以不影响数据路径速度,而复位几乎是瞬间起作用;而同步复位的优势是百分百地同步时序分析且具有抗噪声性能。这种复位其实就是通常我们所说的异步复位同步释放。就如同我之前讨论的那样,异步地进入复位是最好的,只是异步地退出复位会导致一些类似亚稳态和由同步电路参与反馈而引起不想要的状态之类的危害等问题。后面我们会讨论如何来实现这样的同步化的异步复位。我先来如图1所示的 阅读全文

posted @ 2013-09-30 11:28 略过天涯 阅读(1243) 评论(0) 推荐(1) 编辑

同步复位

摘要: 所谓同步复位是基于这样的一个前提,即服务信号只是在寄存器时钟的有效沿时影响该寄存器的状态。同步的典型优点是它们能确保电路为百分百的同步电路。同步复位的另一个优点是它们的时序可以很容易被静态时序分析器比如Altera的TimeQuest分析器分析。由于同步复位信号是被时钟启动(Launch)和锁存(Latch),而启动和锁存的时钟彼此同步,所以复位信号的到达时间(Arrival time)和所需时间(Required time)就能很轻易的确定并进行正确的slack分析。同步复位还有一个优点是它们更易于仿真当它们作用于一些基于周期机制的功能模块时。同步复位也有自己的缺点。例如,它们可能要求脉冲宽 阅读全文

posted @ 2013-09-30 11:21 略过天涯 阅读(1439) 评论(0) 推荐(1) 编辑

导航