FPGA中分数分频器的实现代码】的更多相关文章

module clkFracDiv( output reg clkout, input rstn, input refclk, :] fenzi, :] fenmu ); :] rstn_syn; :] cnt; always @(posedge refclk) begin rstn_syn[] <= rstn; rstn_syn[] <= rstn_syn[]; rstn_syn[] <= rstn_syn[]; end //1. main algorithm ]) begin ])…
delay和latency都有延迟的意义,在FPGA中二者又有具体的区别. latency出现在时序逻辑电路中,表示数据从输入到输出有效经过的时间,通常以时钟周期为单位. delay出现在组合逻辑电路.布线中,表示数据从一端到另一端经过的时间,通常以绝对时间衡量. 引起delay的有线延迟.门延迟等,通常是不希望出现的. latency和电路的逻辑设计有关,如果latency很大,通过提升工作的时钟频率,那么绝对的响应时间不会太长. 而delay很大,那么电路的工作频率会受限,从而影响电路的整体…
本文内容摘自<advanced FPGA design>对应中文版是 <高级FPGA设计,结构,实现,和优化>第一章中的内容 FPGA中改善时序,我相信也是大家最关心的话题之一,在这本书中列举了一些方法供给大家参考. 1,插入寄存器(Add Register Layers),在中文版中被翻译成:添加寄存器层次.即,在关键路径中插入寄存器. 这种方式会增加设计的时滞(clock latency).插入了几个寄存器,结果输出就会延长几个周期,在不违反设计规格(对clock latenc…
以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuyuxue/blog/13-11/300280_d7008.html 一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除.为什么说他不好? 一,是什么 锁存器是一种在异步时序电路系统中,对输入信号电平敏感的单元,用来存储…
渐渐地,发现自己已经习惯于发现细节,喜欢打破常规,真的非常喜欢这种feel. 相信很多人在书上或者博文上都有提出“在FPGA中使用for语句是很占用资源的”的观点,特权同学也不例外.那么,这种观点正确吗?我的答案是:对一半,错一半.在某些情况下,使用for循环也许真的挺占用资源的.但我并不想去探讨这种情况.而是谈谈在另外一些情况下使用for语句的好处. 第一个好处:有时使用for循环不但不会浪费多余的资源,而且可以减少代码量,从而提高编码效率:第二个好处是:方便模块的移植.下面举个移位寄存器的简…
对于non-restoring方法,主要是用rem和den移位数据比较,rem_d长度为den+nom的总长,den_d长度为den+nom的总长度,rem_d的初始值为{{d_width{1'b0}},nom};den_d的初始值为{1'b0,den,{(n_width-1){1'b0}}}.每次比较,移位同时进行. 除法运算也是数字信号处理中经常需要使用的.在FPGA设计中,通常为了简化算法,通常将除法近似为对数据进行移位操作即除数是2的整数次幂,因为在FPGA中进行移位很容易,比如右移2位…
copy from http://www.cnblogs.com/linjie-swust/archive/2012/03/27/FPGA_verilog.html 在FPGA设计中经常使用到逻辑复制,逻辑复制也用在很多场合. 1.    信号驱动级数非常大,扇出很大,需要增加驱动力 逻辑复制最常使用的场合时调整信号的扇出.如果某个信号需要驱动后级很多单元,此时该信号的扇出非常大,那么为了增加这个信号的驱动能力,一种办法就是插入多级Buffer,但是这样虽然能增加驱动能力,但是也增加了这个信号的…
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM).伪双端口RAM(Pseudo DPRAM).CAM(Content Addressable Memory).FIFO等常用存储结构.FPGA中其实并没有专用的ROM硬件资源,实现ROM的思路是对RAM赋予初值,并保持该初值.所谓CAM,即内容地址存储器.CAM这种存储器在其每个存储单元都包含了一个…
随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利用和时序都有益.下面主要讲解一下如何巧用FPGA中资源: 1. 移位寄存器 FPGA中的移位寄存器使用在前面的博文中有所论述,Xilinx FPGA中的LUT可以作为SRL使用,主要可参考此博文<Xilinx 7系列FPGA使用之CLB探索>,在此想补充论述一下SRL的延时,首先看一下如下代码,实…
http://bbs.ednchina.com/BLOG_ARTICLE_2111172.HTM 任何的时序逻辑都可以转换为组合逻辑+D触发器来完成. FPGA内部主要三块:可编程的逻辑单元.可编程的连线和可编程的IO模块.(1)可编程的逻辑单元是什么?其基本结构某种存储器(SRAM.FLASH等)制成的4输入或6输入1输出地“真值表”加上一个D触发器构成.(2)通常逻辑电路的规模是相当大的.那怎么办呢?这个时候就需要用到可编程连线,在这些连线上有很多用存储器控制的链接点,通过改写对应存储器的值…