FPGA
qustJHJ
嵌入式学习,硬件电路学习
展开
-
任何n分频逻辑功能都可以由n分频使能来代替
任何n分频逻辑功能都可以由n分频使能来代替,这样n分频时钟域的寄存器还是由原始时钟来驱动。这里的时钟使能,就是在原始时钟的每n个时钟周期使能采集这些寄存器一次,也即这些寄存器的时钟端口每隔n隔原始时钟周期开放一个原始时钟上升沿。翻译 2017-02-28 21:46:22 · 708 阅读 · 0 评论 -
复位电路
同步复位启动时同步于寄存器的时钟域;而异步复位则是自然地到达寄存器,其与寄存器所在的时钟域之间并无明确的时序关系;异步复位同步释放就是一个异步复位被同步到系统时钟域。原创 2017-03-03 17:02:05 · 874 阅读 · 0 评论 -
如何写好状态机1
标准的状态机分为摩尔状态机和米勒状态机两种。摩尔状态机的输出只与当前状态值有关,且只在时钟边沿来时才会有状态变化。米勒状态机的输出不但与当前状态有关,而且与当前输入值有关,这一特点是其控制和输出更加灵活,但同时也增加了设计的复杂度。 时钟到达各个触发器的延时往往有差异(时钟歪斜),这种差异将直接导致状态机在状态转换时产生过度状态,当这种延时进一步加大时,将有可能导致状态机进入非法状态,这就是摩尔状原创 2017-03-05 15:44:38 · 1582 阅读 · 0 评论 -
代码编写过程中应该考虑的时序优化(笔记)
1.通过减少关键路径上的组合逻辑单元数来优化时序FPGA逻辑设计中时序路径上的组合逻辑都会给路径增加延时,从而影响设计性能的往往只有几条关键的路径而已,所以可以通过减少关键路径上的组合逻辑单元数来减小该路径上的延时,从而达到优化的目的。关键路径重组是常用技术,多用于关键路径由多个路径组合而成的场合,而且这些被组合的路径之间又可以重组互相之间的相互顺序。2.适当进行逻辑复制以优化设计速度转载 2017-03-08 22:44:52 · 3199 阅读 · 0 评论 -
设计综合工具能够识别的状态机
在设计状态机时应该尽量遵循以下原则:给状态机的输出分配默认值,防止综合器产生不必要的寄存器;将状态机逻辑和所有的算术逻辑功能以及数据路径分离,包括与状态机输出值的分离,这也是建议尽量使用多段式描述状态机的原因;如果设计中包含一个在多个状态都要使用的运算,那么在状态机外面定义这个运算,然后让状态机的输出逻辑来使用该运算结果;使用简单的同步或异步复位来确保状态机定义了一个上电初始化状态原创 2017-03-05 20:48:51 · 814 阅读 · 0 评论 -
采用verilog编写状态机
如果使用的是system verilog,一定要使用枚举型来描述状态机。使用参数(parameters)来对状态机进行分配,因为参数会使得状态机易读以及减少编码过程中的错误。尽管Quartus II能够识别出整数,尽量不要直接使用整数来定义状态值。在状态转换逻辑中,不要使用状态寄存器进行算术运算,例如:next_state 如果将状态变量作为输出,那么Quartus II将无法识别原创 2017-03-06 14:18:18 · 2022 阅读 · 0 评论 -
两个双口ram之间数据的传递
1.如果两个双口ram数据位宽相同,则采用时钟快的ram等待时钟慢的ram来完成从一个ram中读取数据并存储到另一个ram中;例如从ram A中读取数据到ramB中,ram A的时钟为20M,而ram B的时钟为40M,可以重复读ram A来覆盖写ram B的方法,如果把ramB中的数据读取出写到ram A中,ram B需要等待ram A一个时钟后再改变地址。2.如果两个双口ram数据位宽不同原创 2017-03-20 20:42:04 · 3586 阅读 · 0 评论 -
物理综合
逻辑综合是将HDL描述语言转换成不含布局布线信息且能够映射(map)到物理器件的门电路过程。物理综合是通过改变网表的布局(placement)从而获得不错的综合结果。设计在布局完成之前,其节点间的延时预估都是毫无意义的!!原创 2017-03-16 10:29:26 · 2131 阅读 · 0 评论