基于FSM实现的汽车尾灯控制电路设计

汽车电子

2301人已加入

描述

Abstract

在DE2上用FSM实现汽车尾灯控制电路。

Introduction

使用环境:Quartus II 9.1 web edition + DE2

假设汽车尾部左右两侧各有3个指示灯,要求设计一个电路实现如下功能:

1. 汽车正常行驶时,尾部两侧的6个灯全灭;

2. 刹车时,尾部两侧的灯全亮,即紧急状态;

3. 右转弯时,右侧3个灯按向右的顺序循环点亮,每次只有一个灯亮,左侧灯全灭;

4. 左转弯时,左侧3个灯按向左的顺序循环点亮,每次只有一个灯亮,右侧灯全灭;

5. 右转弯刹车时,右侧的3个灯顺序循环点亮,左侧的灯全亮;左转弯刹车时,左侧的3个灯顺序循环点亮,右侧的灯全亮;

6. 倒车时,尾部两侧的6个灯不停的按一定频率闪烁。

假设电路的输入钟信号为cp,cp的频率等于汽车尾灯所要求的闪烁频率。Specification

State diagram

1. 输出状态表

汽车尾灯

2. 状态图如图 1 汽车尾灯状态图

汽车尾灯

图 1 汽车尾灯状态图

完成状态图后,这个系统的设计就完成一大部分,剩下的工作就是用HDL描述电路,仿真、下载、验证功能。

完整代码

/*

(C) yf.x 2010 http://halflife.cnblogs.com/

Filename : part1.v

Compiler : Quartus II 9.1 Web Edition

Description : Demo how to use Switch and led

Release : 03/23/2010 1.0

*/

汽车尾灯taillight.v

指定

汽车尾灯

Conclusion

整个设计最具创意也是最难的部分就是设计状态图,在状态转移描述的部分,我采用了独热码(one-hot code)同时在状态编码的后6位包含输出状态,这样做的优点是简化了译码电路,同时避免毛刺。因为针对DE2上的fpga设计,所以相对占用触发器的资源比其他编码方式要多。但fpga的优点就是触发器资源多。J

目前验证已知存在的问题,汽车尾灯作为一个经典的课设,在John.F wakerly的《数字设计—原理与实践》的第7章有详细的描述,但不包括第5条(转弯时刹车),所以设计状态图,还是不确定足够完美。在DE2上验证时,转弯时刹车必须先转弯(激活转弯的信号)再刹车才会正常显示上述输出状态表的状态。当然这也是刹车的优先级最高决定的,还没发现大问题,但总觉得不够完美,希望有兴趣的同好,能测试一下,看如何改进。

Reference

1. John,F, Wakerly 《数字设计原理与实践(4th)》 机工

2. 罗杰 《Verilog HDL与数字ASIC设计基础》 华科

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分