2013年9月30日

异步复位

摘要: 长时间以来,异步复位在电路设计中经常被采用,特别是ASIC设计中。这样的设计非常受欢迎,比如一个异步输入到器件,然后给该异步信号分配全局布线资源,并连接这个异步信号到器件中每一个(几乎所有)寄存器的异步复位引脚。在某些情况下,这种方法有它的优点,但是它并不是没有缺陷。比如并不是每一个设计,器件中的每一个寄存器都需要复位的。所以说这个方法也不是完全不需要消耗布线资源以及LAB范围控制信号,最好的做法是只将复位连接到那些需要复位的寄存器。 异步复位的一个最大优点是,它们没有象同步复位那样插入到数据路径中。因此,异步复位对寄存器之间的数据到达时间不产生任何负面影响。另一个优点是,它们一般都是即刻生效 阅读全文

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

2013年9月29日

分享:FIFO 同步、异步以及Verilog代码实现

摘要: FIFO 很重要,之前参加的各类电子公司的逻辑设计的笔试几乎都会考到。FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线 阅读全文

posted @ 2013-09-29 16:01 略过天涯 阅读(739) 评论(0) 推荐(1) 编辑

FSM之三--代码风格

摘要: FSM设计之一http://www.cnblogs.com/qiweiwang/archive/2010/11/28/1890244.html Moore型状态机与mealy型状态机相比,由于其状态输出仅与当前状态有关,而与输入无关,所以它可以避免由输入信号引起的毛刺,因此建议采用Moore型状态机。但是在实际的应用中,我们只需要对状态输出进行寄存,即在outputs后面加上一级输出寄存,就可以有效地避免毛刺的传播。 Binary、gray-code编码使用最少的触发器,较多的组合逻辑。而one-hot 编码反之。由于CPLD更多的提供组合逻辑资源,而FPGA更多的提供触发器资源,所以CP.. 阅读全文

posted @ 2013-09-29 09:49 略过天涯 阅读(665) 评论(0) 推荐(1) 编辑

2013年9月11日

Cordic 算法入门

摘要: 三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值。这种表格在人们刚刚产生三角函数的概念的时候就已经有了,它们通常是通过从已知值(比如sin(π/2)=1)开始并重复应用半角和和差公式而生成。现在有了计算机,三角函数表便推出了历史的舞台。但是像我这样的喜欢刨根问底的人,不禁要问计算机又是如何计算三角函数值的呢。最容易想到的办法就是利用级数展开,比如泰勒级数来逼近三角函数,只要项数取得足够多就能以任意的精度来逼近函数值。除了泰勒级数逼近之外,还有其他许多的逼近方法,比如切比雪夫逼近、最佳一致逼近和Padé逼近等。所有这些逼近方法本质上都是 阅读全文

posted @ 2013-09-11 15:44 略过天涯 阅读(2816) 评论(0) 推荐(0) 编辑

2013年9月5日

DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)

摘要: 首先,我们先了解一下内存的大体结构工作流程,这样会比较容量理解这些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(LogicalBank,下面简称Bank)。DDR3内部Bank示意图,这是一个NXN的阵列,B代表Bank地址编号,C代表列地址编号,R代表行地址编号。如果寻址命令是B1、R2 阅读全文

posted @ 2013-09-05 09:48 略过天涯 阅读(791) 评论(0) 推荐(1) 编辑

DDR3内存技术原理

摘要: 随着AMD AM2平台CPU的上市,目前两大处理器巨头均提供了对DDR2内存的支持。不过,DDR2远不是内存技术发展的终点,CPU和内存厂商已经在着手进行DDR3内存的相应准备。DDR2内存的好日子还没过上几天,它的下一代产品DDR3又成为了人们关注的对象。DDR3内存已经面世 在本届Computex 2006台北展会上,威刚科技向人们展示了新一代的DDR3内存。威刚此次展示的vitesta DDR3无缓冲DIMM内存包括DDR3-1066和DDR3-1333两种规格,单条容量均为1GB,针脚数240,核心电压1.5+/-0.1V,延迟设定为CL7。虽然DDR3与DDR2一样存在高延迟的缺点. 阅读全文

posted @ 2013-09-05 09:47 略过天涯 阅读(1516) 评论(0) 推荐(1) 编辑

ddr sdram self-refresh & auto-refresh

摘要: 以下是EDD5116AFTA数据手册的摘录。不过看过了还是不太明白二者的区别。self-refresh:Self-refresh entry [SELF]This command starts self-refresh. The self-refresh operation continues as long as CKE is held low. 只要CKE为低就开始自刷新/During the selfrefresh operation, all ROW addresses are repeated refreshing by the internal refresh controller 阅读全文

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

2013年9月4日

异步FIFO的FPGA实现

摘要: 转自:http://www.cnblogs.com/BitArt/archive/2013/04/10/3010073.html本文大部分内容来自Clifford E. Cummings的《Simulation and Synthesis Techniques for AsynchronousFIFO Design》,同时加上一些自己的一些理解,有兴趣的朋友可以阅读原文。一、FIFO简介 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址. 阅读全文

posted @ 2013-09-04 15:58 略过天涯 阅读(524) 评论(0) 推荐(0) 编辑

数字电路中关键路径的选取

摘要: 所谓关键路径就是,在电路中频繁调用,而且延迟过长,或者产生意外的几率比较大的线路。怎样提取关键路径:1:组合电路中的关键路径提取: q=a&b&c|d&e&b; 因为b的传输要两级, 可以简单的提取b作为一级的: q=(a&c|d&e)&b;2: always——block中的关键路径提取: always中关键路径的提取一般用分步法提取,请看下面一个always——block, always@(in) begin if(!a) if(c&&(!b&&e)) out=out1; else out=out2; 阅读全文

posted @ 2013-09-04 15:55 略过天涯 阅读(1081) 评论(0) 推荐(1) 编辑

Altera的几个常用的Synthesis attributes

摘要: 各厂商综合工具,对HDL综合时都定义了一些综合属性这些属性可指定a declaration,a module item,a statement, or a port connection 不同的综合方式。语法为:/* synthesis, <any_company_specific_attribute = value_or_optional_value */下面就是Altera的几个常用的Synthesis attributesNopruneA Verilog HDL synthesis attribute that prevents the Quartus II software fr 阅读全文

posted @ 2013-09-04 15:45 略过天涯 阅读(256) 评论(0) 推荐(1) 编辑

导航