摘要: 阅读全文
posted @ 2014-03-25 22:33 woaichengdian 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 即使用HDL编码,进行RTL级的实现。 RTL设计中的一大问题就是异步时钟设计。最简单的,对于电平信号,如一些flag信号或者慢速的控制信号,处理方法是在新时钟域中对该信号进行2级寄存器寄存,减少亚稳态的发生。对于脉冲处理,可以采用握手协议(req-ack)。 如果前级时钟快,后级时钟慢,则需要采用FIFO设计。同步FIFO比较简单,读写时钟相同。异步FIFO比较困难,难点之一就是读写地址的判断。由于读写地址的产生在不同时钟域中,而它们的判断需要在同一时钟域中进行,这本身就涉及到异步信号的处理问题。对于读写地址的判断,一般采用格雷码解决。 RTL设计中时钟本身的设计问题也需要注意。尽... 阅读全文
posted @ 2014-03-25 22:28 woaichengdian 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 主要设计到功能定义及架构设计,总线架构的配置,模块设计,数据流的分配,时钟设计等问题。总线包括模块之间、模块和MCU之间、外部主机和芯片之间通信等等。时钟涉及到数据流的规划,通信接口或内部MCU的时钟约定,工艺条件、功耗等因素。模块设计需要明确接口和定义。无论时钟还是电压,都可以通过控制开关来实现功耗要求。时钟实现比较简单,电压控制一般是实现在集成有电源管理芯片的较大规模芯片上。但未来的设计趋势是,即使没有电源管理芯片,电压gating也需要纳入考虑范围。在soc系统设计上,一个重要环节是MCU内核的选型(如cortexA, R, M等系列),对于硬件设计人员,不需要对它的指令集了解太多,但需 阅读全文
posted @ 2014-03-25 22:27 woaichengdian 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1、一个模块(module)里面最好存在一个clk;因此在fifo_mem模块内只使用w_clk时钟,不使用r_clk时钟。2、为判断FIFO的空(empty)、满(full)状态,需将写操作指针(w_ptr)、读操作指针(r_ptr)进行比较,因此需要将w_ptr同步到r_ptr时钟域,以及将r_ptr同步到w_ptr时钟域;使用常用的两级寄存器进行寄存。3、读写地址(w_addr、r_addr)使用二进制,读写指针(w_ptr、r_ptr)因为需要同步到异步时钟域上,因此使用格雷码。4、由二进制转换为格雷码的逻辑:gray_code = (bin_code << 1) ^ bi 阅读全文
posted @ 2014-03-25 22:26 woaichengdian 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 如果一个设计中包含同步组件,无论如何它都会出现亚稳态。亚稳态无法彻底消除,因此我们所做的就是计算错误概率以及在时间上描述它。假设有一个物理系统亚稳态错误发生的概率为1/1000。换句话说,每一千次,输出就会在下一个时钟到来时,无法变化。如果时钟频率为1kHz,那么每秒会有一次错误出现,MTBF值就为1秒。 当然,MTBF是一种故障概率的统计量,依赖于电路自身的物理常数和时钟频率。亚稳态本身与时钟没有任何关系,但是它和MTBF相关 阅读全文
posted @ 2014-03-24 22:16 woaichengdian 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 1、避免异步反馈;2、移除竞争冒险;3、分割大计数器;4、利用空闲的引脚来增加内部电路节点的可控制性和可观测性(controllability and observability);5、使电路可以初始化到一个已知状态;6、Use scan testing where appropriate on register elements that are clocked off the same clock;7、Run fault simulation on areas of the circuit not covered using scan techniques. Examples includ 阅读全文
posted @ 2014-03-24 22:13 woaichengdian 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 当导线必须被看作一系列的电容和电感时,它被看作传输线。 当电路的尺寸接近信号中关心的最高频率对应的波长是,导线应按传输线对待。 任何超过相当于1/10上升时间长度的导线都应该被看作传输线。当信号的上升时间或下降时间比信号在传输线上的传播延时小时,信号波形将受到传输线效应的极大影响。定义传输线基本电气特性的是特性阻抗和传播速度。 阅读全文
posted @ 2014-03-24 22:12 woaichengdian 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 每根导线都存在电容、电感和与频率相关的电阻。当频率足够高时,这些参数是不能忽略的。 当信号从发送芯片传输到接收芯片时,导线上的寄生参数将使信号产生延时,导线上的瞬间阻抗变化会引起信号波形失真、干扰等。 信号现在并不完全被包含在导线内,而是所有包含在导体周围所有局部电磁场的组合体中。 阅读全文
posted @ 2014-03-24 22:11 woaichengdian 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一般分为静态功耗和动态功耗。 动态功耗发生在门开关(或状态翻转)的瞬间。是由于对电容充电和电源和地之间短暂电流通路造成的。它正比于开关频率。 静态功耗总是存在。是有电源和地之间的静态导通电流(或漏电流)引起的。 降低动态功耗: 1、降低内核供电电压。降低供电电压会影响到时序性能。为了弥补这个影响,一般采用流水线(pipelining)和并行(parallelism)设计方法来提高设计性能。当然,这样同时也会增加设计面积。 2、降低电容负载和逻辑开关频率。 阅读全文
posted @ 2014-03-24 22:09 woaichengdian 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 一个合格的FPGA工程师需要掌握哪些知识?这里根据自己的一些心得总结一下,其他朋友可以补充啊。1.Verilog语言及其于硬件电路之间的关系。2.器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系。)。3.开发工具(熟练掌握Synplify,Quartus,ISE,Modelsim)。4.数字电路(组合电路,触发器,特别是D触发器构成分频器,奇数倍分频占空比为50%,时序电路,并且能用Verilog语言描叙。)。5.熟悉FPGA设计流程(仿真,综合,布局布线,时序分析)。6.熟练掌握资源估算(特别是slice,lut,ram等资源的 阅读全文
posted @ 2013-10-18 09:14 woaichengdian 阅读(697) 评论(0) 推荐(0) 编辑