汽车尾灯设计
erictb 发表于 2005-11-25 17:41:00
0
推 荐
一、要求
假设某汽车尾灯左、右各有 3 个,从中间开始编号,分别用 L1、L2、L3,R1、R2、R3 表示。当汽车转向时,按
L1→L1L2→L1L2L3→全灭→L1(或 R1→R1R2→R1R2R3→全灭→R1)次序循环亮,亮持续为 1 秒(全灭时间持继
0.5 秒);当汽车刹车时,所有尾灯同时以 2Hz 的频率闪烁;正常行驶时,所有尾灯灭。输入信号有左、右转向和
刹车。
二、分析
L1→L1L2→L1L2L3→全灭,整个过程需要 7 个 0.5 秒;由于汽车刹车时,所有尾灯同时以 2Hz 的频率闪烁;
2Hz 的周期也是 0.5 秒,以 2Hz 作为全局时钟,并产生一个模 7 的计数器。
当模 7 的计数器为 0,1,2,3,4,5 的时候,L1 亮;当模 7 的计数器为 2,3,4,5 的时候,L2 亮;当模 7 的
计数器为 4,5 的时候,L3 亮;当模 7 的计数器为 6 的时候,L1,L2,L3 全灭;同理:对于 R1,R2,R3。当汽车
刹车时,所有尾灯同时以 2Hz 的频率闪烁;只需要满足此时 L1,L2,L3, R1,R2,R3 的频率为 2Hz 即可。
该设计有四个输入:CLK(全局 2hz 的时钟),SLT(左转信号),SRT(右转信号),SSTOP(刹车信号);有
六个输出:L1,L2,L3, R1,R2,R3。
首先设计一个模 7 的计数器,该计数器在 SLT,SRT,SSTOP 有效时才开始计数;当 SLT(左转信号到来时)使
用三个进程分别操作 L1,L2,L3,L1,L2,L3 灯的亮灭由计数器的值决定(当模 7 的计数器为 0,1,2,3,4,5
的时候,L1 亮;当模 7 的计数器为 2,3,4,5 的时候,L2 亮;当模 7 的计数器为 4,5 的时候,L3 亮;当模 7 的
计数器为 6 的时候,L1,L2,L3 全灭;)。同理 SRT(右转信号到来时)。
由于 SLT,SRT,SSTOP 信号,使用了 7 个进程来对 L1,L2,L3,R1,R2,R3 进行赋值,这样输出会产生
冲突,所以采用数据选择的方法。在 7 个进程中使用临时信号,然后构造数据选通进程来根据 SLT,SRT,SSTOP
信号进行选择处理。
三、仿真结果:
(1)当 SLT,SRT,SSTOP 信号上升沿是 CLK 的下降沿的情况:
(2)对于 SLT 的仿真结果如下:
评论1