一种基于VerilogHDL的可重触发单稳态电路的实现_第1页
一种基于VerilogHDL的可重触发单稳态电路的实现_第2页
一种基于VerilogHDL的可重触发单稳态电路的实现_第3页
一种基于VerilogHDL的可重触发单稳态电路的实现_第4页
一种基于VerilogHDL的可重触发单稳态电路的实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种基于VerilogHDL的可重触发单稳态电路的实现摘要:具体介绍了单稳态电路的特点及实现原理,详细阐述了用veriloghdl进行编写设计的过程,同时在quartusii9.0中新建工程进行编译仿真,给出功能仿真的波形,并将该工程下载到fpga硬件板上,得到的运行结果与功能仿真的结果相同,验证了该设计的正确性。关键词:单稳态veriloghdl仿真1引言讲到单稳态电路,很容易想到54hc123,54hc6538和741s123等单稳态集成电路。这些集成电路的特点是简单、方便,但也存在缺点:(1)专用单稳态集成电路中的宽度定时元件r、c是随温度、湿度等因素变化而变化的,在对其进行温度补偿时,

2、调试过程相当繁琐,而且电路工作的可靠性也不高;(2)由于它不能在高密度的可编程逻辑器件中实现,如cp1d,fpga等,因此在以大规模可编程逻辑器件为主的设计中会造成元器件数量增加,可靠性降低。为克服上述缺点,可以用逻辑电路来搭建纯数字化的单稳态电路。veri1oghd1语言是目前应用最为广泛的硬件描述语言,用该语言进行设计最大的优点是其与工艺性无关。这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路。2可重触发单稳态电路的特点单稳态电路只有一个稳定状态,触发翻转后经过一段时间会回到原来的稳定状态,一般作固定

3、脉冲宽度整形。单稳态电路的特点如下:1 1)稳态和暂稳态两个不同的工作状态;2 2)在外接触发脉冲作用下,从稳态翻转到暂稳态,在暂稳态维持一段时间后再自动返回稳态;3 3)暂稳态维持时间的长短取决于电路本身的参数,与触发脉冲的宽度和幅度无关。可重触发是单稳态电路中较常用的一项功能,在工业控制中,如常用的看门狗电路,民用系统中,如住宅楼道公共照明系统等,都有很广泛的应用。可重触发功能是指在单稳态电路被触发后,在回到稳态之前仍可以继续进行触发,同时在此期间输出端始终保持为暂稳态不变,直到最后一次触发t时间后,才回到稳态。4 单稳态电路设计的基本原理这里我们分两种情况讨论:一种是两个触发脉冲之间的间

4、隔td大于计数器计数的时间tc;另一种是tdtc时,如图1所示,对触发脉冲进行检测,当检测到上升沿时,输出进入暂稳态,同时启动计数器,由于td>tc,所以计数器能够伴随系统时钟自增到设定好的值n,此时立即反馈回一个信号将输出置回稳态,同时计数器清零,等待下一个触发脉冲。td<tc时:这就是重触发的情况,如图2所示,同样对触发脉冲进行检测,当检测到上升沿时,输出进入暂稳态,同时启动计数器,由于td<tc,所以计数器在计数到达设定好的值n之前会再次遇到一个触发脉冲,此时立即将计数器清零,同时保持暂稳态不变。由以上两种情况的讨论,可以看出在具体实现时其实我们只要遵守这样一个原则,即

5、:检测到触发脉冲后,就将输出置为暂稳态,同时对计数器清零并重新开始计数,若计数器溢出则输出置回稳态,并将计数器清零。5 用veriloghdl实现的具体方法本设计中,采用的是自上而下(top-down)的设计方法。veriloghdl设计的程序是并发程序,所以在设计中要把顺序执行的思想转变为并发设计的思想,另外fpga的内部逻辑采用的也是并发机制。接下来我们直接来看重触发是如何实现的。本设计方法采用了两个计数器使能标志flag1和flag2,这两个标志用来对计数器和输出进行控制,我们让flag1=flag2,这样就相当于每次重触发时重新启动了一个不同的计数器使能标志,从而实现可重触发的功能。本

6、次设计的思路用一个流程图表示,如图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的波形,这时候我

7、们再设置一个q3信号,这个信号只在以flag1为使能信号的计数器满时回到稳态,如图4中的q3波形所示;若flag1为0,则对计数器清零,这时的flag2为1,因此以flag2为使能信号的计数器会启动计数,q2已初始化为1,所以此时并没有置q2为1的操作。同样该计数器满时,q2重新回到0'。最后再把q1,q2和q3做与运算得到最终的输出q=q1&q2&q3当tr脉冲个数为偶数个时,实现的方法与tr脉冲为奇数个的情况完全相同。只是在两个使能标志flag1,flag2以及q1和q2的时序上有些差别,从图5中可以看出。最终的输出也是q=q1&q2&q3。因此,我

8、们在实际编写代码进行设计时并不需要将两种情况分开写,只要按照其中的一种情况进行编写,那么它自然而然地也适用于另一种情况。6 功能仿真结果图6中所示的情况是两个触发脉冲之间的间隔td大于计数器计数的时间tc,我们可以看到:输出q在触发脉冲到来时进行触发,进入暂稳态,在下一个触发脉冲到达前,计数器已满,因此q又会回到稳态,等待下一个触发脉冲。图7中所示的情况是两个触发脉冲之间的间隔td小于计数器计数的时间tc,我们可以看到它与图5所不同的是q被触发以后,在下一个脉冲到达前,计数器未满,因此q在遇到下一个脉冲时会进行重触发。最后一个脉冲触发以后,计数器可以一直计数到满,因此q又会回到稳态。7 在fp

9、ga芯片上运行结果这里我们选择altera公司的fpga芯片ep2c8q208c8n,用quartusii9.0进行编译和综合,将最终生成的.sof文件下载到硬件板上运行的结果如图8所示,该结果与功能仿真的结果相同,验证了该设计的可行性。7总结本设计中输出的脉宽可以根据实际需要进行任意调整,可实现重触发,另外本设计充分利用了veriloghdl高级语言的特点,采用行为描述的方式,使人较容易理解,在一些较复杂的设计中,可以将本设计作为一个模块嵌入到自己的设计中。参考文献:1 任孟阳,李景华.用vhdl语言实现的单稳态电路j.2002中国控制与丧策学术年会论文集.2 liuguisheng,linjiming,fanxiaoming.thedesigningandimplementationofmonostablepulse-e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论