《fpga设计实战:复位电路仿真设计.docx》由会员分享,可在线阅读,更多相关《fpga设计实战:复位电路仿真设计.docx(5页珍藏版)》请在第一文库网上搜索。
1、fpga设计实战:复位电路仿真设计最近看MVanCedfpga以及fpga设计实战演练中有讲到复位电路的设计,才知道复位电路有这么多的门道,而不是简单的外界信号输入系统复位。流程:1.异步复位:优点:大多数DFF都有异步复位地旦,因此采用异步复位可以节约资源。设计相对简单。异步复位信号识别方便,而且可以很方便地使用fpga的全局复位端口。缺点:在复位信号释放时容易出现问题,亚稳态。复位信号容易受到毛刺的影响。这是由于时钟抖动或按键触发时的硬件原因造成的。代码:一个4bit的计数器。1 a1ways(posedgee1kornegedgesysrstn)begin2 if(sys_rstn)be
2、gin3 count=0;4 end/if5 e1sebegin6 count=count+1b1;7 end/e1se8 end/a1ways仿真解析(下图):复位信号低电平时候,系统立刻进入复位态;Msgs2.同步复位:优点:降低亚稳态出现的概率。使所设计的系统成为100%的同步时序电路,有利于时序分析,综合出来的Fmax一般较高。只有在时钟有效沿才有效,可以滤除高于时钟频率的毛刺。缺点:复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。大多数的Dff只有异步复位端口,会浪费较多的逻辑资源。代码:1 a1ways(posedgee1k)begin2 if(sys_rst
3、_n)begin3 count=0;4 end/if5 e1sebegin6 count=count+1,b1;7 end/e1se8 end/a1ways仿真解析(下图):时钟上升沿如果复位信号为低电平,复位开始,时钟上升沿若复位信号为高电平,复位结束。Wave-Defau1tCursor4NowCursor1Cursor2Cursor3/count_tb/dk/count_tb/sys_rst_nC-/8Untjb/count40ns50ns60ns70ns3.异步复位同步释放:(推荐使用)优点:结合了同步复位与异步复位的优点。缺点:容易受到噪声与宰脉冲的干扰。如果可能,最好对输入到fpg
4、a的异步复位信号先进行滤波与去抖动。代码:1modu1erstn_as(2/input;3inputwiree1k,4inputwiresys_rst_n,5/output;6outputregrst_n7);8regrst_n_reg;9a1ways(posedgee1kornegedgesys_rst_n)begin1011121314151617181920endif(sysjstn)beginrst_n=1,b;rstn_reg=b;end/ife1sebeginrst_n_reg=b1;rst_n=end/e1se/a1waysendmodu1erst_n_reg;wirerst_n
5、;rstn_asu1(e1k),(sys_rst_n),(rst_n).e1k.sys_rst_n.rst_n);ornegedgerst_n)begina1ways(posedgee1kif(rst_n)begincount=0;end/ife1sebegincount=count1,b1;end/e1seend/a1ways仿真解析(下图):当复位信号低电平时,系统立即复位;当时钟上升沿检测到复位信号失效后,在下一个时钟上升沿拉高rst_n。新的rst_n是已经同步化了的复位信号。Wave-Defau1t600ns/count-tbdk/count_tb/sys_rst_nO-cout-tbunt/count-tbu1/rst_nWCTaC5M口I1NowTOnS80ns90nsz*“Cursor1Cursor2Cursor3以上。97ns118ns113ns