数字系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学自动化学院

《数字系统课程设计》

专业综合设计报告

姓名:学号:

专业:实验室:

组别:同组人员:

设计时间:年月日——年月日评定成绩:审阅教师:

目录一.课程设计的目的与要求

二.原理设计

三.架构设计

四.方案实现与测试

五.分析与总结

一. 专业综合设计的目的与要求(含设计指标)

主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。

设计任务与要求

(1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。

(2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s 。

(3)当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。(4)不论主干道情况如何,乡村公路通车最长时间为16s。

(5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时间的黄灯作为过渡。

(6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。

要求显示时间,倒计时。

二. 原理设计(或基本原理)

本设计采用Verilog HDL语言,用ONE HOT状态机编码表示交通灯控制器的四个状态(状态一:0001,状态二:0010,状态三:0100,状态四:1000):

主干道红灯,显示5秒;乡村干道黄灯,显示5秒——(0001)

主干道红灯,显示21秒;乡村干道绿灯,显示16秒——(0010)

主干道黄灯,显示5秒;乡村干道红灯,显示5秒——(0100)

主干道绿灯,显示25秒;乡村干道红灯,显示30秒——(1000)

设置两个外部控制条件:重置(set);乡村干道是否有车(c——c=1表示无车;c=0表示有车)

设置一个内部控制条件:时间是否计满(state——state=0表示计数完成;state=1表示计数没有完成)

系统流程图如下:

註:mlight 代表主干道红绿黄灯的亮灭,clight 代表乡村干道红绿黄灯的亮灭

整个描述如下:当set 由0变为1时,主干道为黄灯,乡村干道为红灯,各显示5秒,此时为第一阶段,当五秒倒计时完成时,state 由1变为0,进入第二阶段。此时主干道为红灯,乡村干道为绿灯,分别显示时间为21秒和16秒,当倒计时完成,state 由1变为0,进入第三阶段,或者如果此时乡村干道没有车,即c=0时,不需要倒计时完成,即state 可以为1,直接进入第三阶段,此时主干道为红灯,乡村干道为黄灯,分别显示时间为五秒,倒计时完成后,进入第四阶段,此时主干道为绿灯,乡村干道为红灯,分别显示时间为25秒和30秒,如果此时乡村干道没有车,即c=0时间将会一直卡在25秒和30秒不变,直到乡村干道开始有车时才开始倒计时,并在倒计时完成后,又进入第一阶段,进入下一次的循环。

Set=1

交通灯控制器框图

三. 方案论证(架构设计)

顶层的block 图

Set

C

Clk 100——绿灯

010——黄灯

001——红灯

100——绿灯 010——黄灯 001——红灯

仿真波形为:

分频器:获取适合的时钟信号

主模块:控制各个状态的转换

数码管显示模块:显示主干道和乡村干道的时间

具体设计如下:

1、分频器(clk_in为输入时钟频率,clk_out为输出时钟频率)

分频器源代码:

module fenpin(clk_in, clk_out);

input clk_in;

output clk_out;

reg clk_out;

reg[24:0] cnter;

always @(posedge clk_in)

begin

if (cnter<2000000)

begin cnter = cnter + 1; end

else cnter = 0;

if (cnter == 2000000)

begin clk_out = 'b1;end

else clk_out = 'b0;

end

endmodule

输入输出说明:

Set——重置,set=1,交通灯开始工作

C ——乡村干道是否有车,c=1表示无车;c=0表示有车

Clk——输入时钟信号

Mlight[2..0]——主干道交通灯的亮灭,100代表绿灯亮,010代表黄灯亮,001代表红灯亮Clight[2..0]——乡村干道交通灯的亮灭,100代表绿灯亮,010代表黄灯亮,001代表红灯亮Mch[3..0]——主干道交通灯的高位数字

Mcl[3..0]——主干道交通灯的低位数字

Cch[3..0]——乡村干道交通灯的高位数字

Ccl[3..0]——乡村干道交通灯的低位数字

源代码:

module jiaotongdeng(set,c,clk,mlight,clight,mch,cch,mcl,ccl);

input set,c,clk;

output[2:0] mlight,clight;

output[3:0] mch,mcl,cch,ccl;

reg[2:0] mlight,clight;

reg[3:0] mch,mcl,cch,ccl;

reg[7:0] mc,cc;

reg state;

reg[3:0] tab;

always @(posedge clk)

相关文档
最新文档