一种基于Verilog HDL的可重触发单稳态电路的实现.docVIP

一种基于Verilog HDL的可重触发单稳态电路的实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于VerilogHDL的可重触发单稳态电路的实现一种基于VerilogHDL的可重触发单稳态电路的实现

一种基于Verilog HDL的可重触发单稳态电路的实现 摘 要:具体介绍了单稳态电路的特点及实现原理,详细阐述了用verilog hdl进行编写设计的过程,同时在quartus ii 9.0中新建工程进行编译仿真,给出功能仿真的波形,并将该工程下载到fpga硬件板上,得到的运行结果与功能仿真的结果相同,验证了该设计的正确性。 关键词:单稳态 verilog hdl 仿真 1 引言 讲到单稳态电路,很容易想到54hc123,54hc6538和74ls123等单稳态集成电路。这些集成电路的特点是简单、方便,但也存在缺点:(1)专用单稳态集成电路中的宽度定时元件r、c 是随温度、湿度等因素变化而变化的,在对其进行温度补偿时,调试过程相当繁琐,而且电路工作的可靠性也不高;(2)由于它不能在高密度的可编程逻辑器件中实现,如cpld,fpga等,因此在以大规模可编程逻辑器件为主的设计中会造成元器件数量增加,可靠性降低。为克服上述缺点,可以用逻辑电路来搭建纯数字化的单稳态电路。 verilog hdl语言是目前应用最为广泛的硬件描述语言,用该语言进行设计最大的优点是其与工艺性无关。这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路。 2 可重触发单稳态电路的特点 单稳态电路只有一个稳定状态,触发翻转后经过一段时间会回到原来的稳定状态,一般作固定脉冲宽度整形。单稳态电路的特点如下: (1)稳态和暂稳态两个不同的工作状态; (2)在外接触发脉冲作用下,从稳态翻转到暂稳态,在暂稳态维持一段时间后再自动返回稳态; (3)暂稳态维持时间的长短取决于电路本身的参数,与触发脉冲的宽度和幅度无关。 可重触发是单稳态电路中较常用的一项功能,在工业控制中,如常用的看门狗电路,民用系统中,如住宅楼道公共照明系统等,都有很广泛的应用。可重触发功能是指在单稳态电路被触发后,在回到稳态之前仍可以继续进行触发,同时在此期间输出端始终保持为暂稳态不变,直到最后一次触发t时间后,才回到稳态。 3 单稳态电路设计的基本原理 这里我们分两种情况讨论:一种是两个触发脉冲之间的间隔td大于计数器计数的时间tc;另一种是tdtc时,如图1所示,对触发脉冲进行检测,当检测到上升沿时,输出进入暂稳态,同时启动计数器,由于tdtc,所以计数器能够伴随系统时钟自增到设定好的值n,此时立即反馈回一个信号将输出置回稳态,同时计数器清零,等待下一个触发脉冲。 tdtc时:这就是重触发的情况,如图2所示,同样对触发脉冲进行检测,当检测到上升沿时,输出进入暂稳态,同时启动计数器,由于tdtc,所以计数器在计数到达设定好的值n之前会再次遇到一个触发脉冲,此时立即将计数器清零,同时保持暂稳态不变。 由以上两种情况的讨论,可以看出在具体实现时其实我们只要遵守这样一个原则,即:检测到触发脉冲后,就将输出置为暂稳态,同时对计数器清零并重新开始计数,若计数器溢出则输出置回稳态,并将计数器清零。 4 用verilog hdl实现的具体方法 本设计中,采用的是自上而下(top-down)的设计方法。verilog hdl设计的程序是并发程序,所以在设计中要把顺序执行的思想转变为并发设计的思想,另外fpga的内部逻辑采用的也是并发机制。 接下来我们直接来看重触发是如何实现的。本设计方法采用了两个计数器使能标志flag1和flag2,这两个标志用来对计数器和输出进行控制,我们让flag1=~flag2,这样就相当于每次重触发时重新启动了一个不同的计数器使能标志,从而实现可重触发的功能。本次设计的思路用一个流程图表示,如图3所示。 为了对图3中使用到三路并行信号的必要性进行说明,我们把触发脉冲tr分成了奇数个和偶数个两种情况来讨论。首先,初始化q1=0,q2=1,q3=1。之前提到过fpga内部逻辑的并发机制,因此在图3中以下进程是并发的:产生计数器使能标志flag1=~flag2的进程,产生q1波形的进程,产生q2波形的进程,产生q3波形的进程。 当tr脉冲个数为奇数个时,如图4所示,在系统时钟的上升沿去判断flag1是否为‘1’。若flag1为‘1’,则q1置‘1’,并启动计数器计数。当计数器满时,q1变为‘0’,下一个系统时钟上升沿到来后,q1又会被置‘1’,所以会出现如图4中q1的波形,这时候我们再设置一个q3信号,这个信号只在以flag1为使能信号的计数器满时回到稳态,如图4中的q3波形所示;若flag1为‘0’,则对计数器清零,这时的flag2为‘1’,因此以flag2为使能信号的计数器会启动计数,q2已初始化为‘1’,所以此时并没有置q2为‘1’的操作。同样该计数器满时,q2重新回到‘0’。最后再把q1,q2

文档评论(0)

cxiongxchunj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档