中国石油大学数字电子技术课程设计交通灯控制电路设计报告

更新时间:2023-12-25 03:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2011—2012学年第二学期 《数字电子技术课程设计》任务书

(适用专业:电气10级)

题 目 交通灯控制电路设计 姓 名 郑长明

学 号 10053228

专业班级 电气10-2班

开课系室 电工电子学教学中心 设计日期 2012年7月5 日~9日

电气10级数电课程设计

目 录

1、设计任务与要求 ........................................................................................................ 2

2、系统设计总体方案 .......................................................................................................

3、各子模块设计 ..............................................................................................................

3.1时钟分频模块 ................................................................................................................

3.2十进制减法计数器模块 ....................................................................................................

3.3七段数码管显示译码器模块 ............................................................................................

3.4交通灯控制模块 ................................................................................................................

3.5点阵显示模块 ....................................................................................................................

4、仿真测试结果 ..............................................................................................................

5、实习总结与讨论 ..........................................................................................................

1

电气10级数电课程设计

一、设计任务与要求:

交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。

要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各四个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。

在实验中使用4个七段码管中的任意一个或两个数码管显示时间。东西路和南北路的通车时间均设定为9s。数码管的时间总是显示为9、8、7??2、1、0、9、8??。在显示时间小于等于3秒的时候,通车方向的黄灯闪烁。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。

扩展要求:将0-9s扩展为0-30s。

二、具体要求:

本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意一个或两个来显示。系统时钟选择时钟模块的50MHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次,在显示时间小于等于3秒的时候,通车方向的黄灯以2Hz的频率闪烁。在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。显示方式:1秒显示一个汉字或者一个数字(汉字和数字均静止不动,即不循环),然后全暗1秒,然后再显示一个汉字或者一个数字,以此类推。

实验箱中用到的数字时钟模块、按键开关、数码管、点阵与FPGA的接口电路,以及数字时钟源、按键开关、数码管、点阵与FPGA的管脚连接在以前的实验中都做了详细说明,这里不再赘述。交通灯模块原理与LED灯模块的电路原理一致,当有高电平输入时LED灯就会被点亮,反之不亮。只是LED发出的光有颜色之分。

2

电气10级数电课程设计

三、输入输出资源说明:

1、输入信号:按键K1(按下时K1=0,松开时K1=1)。

2、外部输入脉冲信号时钟源CP(50MHz),经适当分频后供计数器使用。

3、输出1组显示译码信号(每组7个输出端),接到外部的两个七段数码管上,显示倒计时;(扩展要求)或输出2组显示译码信号(每组7个输出端),分别接到外部的两个七段数码管M1、M2上,M1和M2分别显示30秒倒计时的十位和个位。

4、输出6个高低电平信号,分别接到外部的6个指示纵向、横向的LED灯。(输出高电平时,对应的LED灯亮)

其具体框图如下:

纵向指示灯LED1 纵向指示灯LED2 纵向指示灯LED3 S1 50MHz CLK 控 制 器 1Hz 计数器(10s倒计时;通车时间倒计时) 输出显示译 码 七段LED数码管显示(1个) 3-10s内显示姓名或者学号 横向指示灯LED4 横向指示灯LED5 横停指示灯LED6

图1 交通灯控制电路结构框图

根据如上说明,本设计的主要任务和设计要求是:

1、按照现代数字系统的Top-Down模块化设计方法,提出交通灯控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码、点阵显示等模块化子系统的设计方案。

2、在QuartusⅡ的EDA设计环境中,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于Verilog语言实现的子模块(包括控制器电路、计数器电路、输出译码电路、点阵显示电路)的逻辑功能仿真。最后对顶层设计进行功能仿真。

3、在2步的基础上,用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。

3

电气10级数电课程设计

二、系统设计总体方案

根据设计要求及原理,我设计的交通灯控制电路包括时钟分频、十进制减法计数器、七段数码管显示、交通灯控制和点阵显示模块组成。 顶层设计方案:

(1)、外部输入脉冲信号时钟源CP(50MHz),经适当分频后供计数器和译码器及控制器使用。

(2)、输出显示译码信号(7个输出端),显示10秒倒计时9-0s。

(3)、输出6个高低电平信号,分别接到外部的6个指示纵向、横向的LED灯。(输出高电平时,对应的LED灯亮)

分频模块 点阵显示模块 倒计时器计数模块 交通灯控制及数码管显示模块

总体设计图:

三、各子模块设计

3.1时钟分频模块

4

电气10级数电课程设计

通过编程设计分频器产生1khz、2hz、1hz时钟频率,为各模块提供脉冲; verilog 程序如下:

module fp(clk,cp1,cp2,cp3); input clk;

output cp1,cp2,cp3; reg [31:0]cout1; reg [31:0]cout2; reg [31:0]cout3; reg cp1,cp2,cp3;

always @(posedge clk) begin

cout1<=(cout1==32'd49999)?1'd0:(cout1+1'd1); cp1<=(cout1>=32'd25000)?1'd1:1'd0;

cout2<=(cout2==32'd24999999)?1'd0:(cout2+1'd1); cp2<=(cout2>=32'd12500000)?1'd1:1'd0;

cout3<=(cout3==32'd49999999)?1'd0:(cout3+1'd1); cp3<=(cout3>=32'd25000000)?1'd1:1'd0; end endmodule 生成模块:

3.2十进制减法计数器模块

为了实现红绿灯时倒计时显示时间: 源程序

module cn10(clk,q); input clk;

output [3:0]q; reg [3:0]q; initial begin

q=4'b1001; end

always@(posedge clk) begin

if(q==4'b0000)q=4'b1001; else q=q-4'b0001;

5

电气10级数电课程设计

end

endmodule

生成模块:

3.3七段数码管显示译码器模块

为了用数码管显示倒计时9-0,程序:

module yimaqi(a,q); input [3:0]a; output [6:0]q; reg [6:0]q; always @(a) begin

case(a)

4'h0:q='b0000001; 4'h1:q='b1001111; 4'h2:q='b0010010; 4'h3:q='b0000110; 4'h4:q='b1001100; 4'h5:q='b0100100; 4'h6:q='b1100000; 4'h7:q='b0001111; 4'h8:q='b0000000; 4'h9:q='b0000100; endcase end

endmodule

生成模块:

6

电气10级数电课程设计

3.4交通灯控制模块

module control(clk,r1,y1,g1,r2,y2,g2); input clk;

output r1,y1,g1,r2,y2,g2; reg r1,y1,g1,r2,y2,g2; reg [5:0]cout;

always @(posedge clk) begin

cout<=(cout==6'd39)?1'd0:(cout+1'd1); if(cout>=0&&cout<12) begin

g1=1;g2=0;r1=0;r2=1;y1=0;y2=0; end

else if(cout>19&&cout<32)

begin

g1=0;g2=1;r1=1;r2=0;y1=0;y2=0; end

else if(cout>31&&cout<=39) begin

g1=0;g2=0;r1=1;r2=0;y1=0; if(cout%2==0)y2=1; else y2=0; end else begin

g1=0;g2=0;r1=0;r2=1;y2=0; if(cout%2==0)y1=1; else y1=0; end end

endmodule

生成模块:

7

电气10级数电课程设计

3.5点阵显示模块

为了在2方向绿灯期间实现显示姓名和学号,用点阵扫描显示,1000hz,我用的是逆向扫描,verilog程序如下: module dianzhen(clk,clk3,row,con); input clk,clk3; output[15:0] row; output[15:0] con; reg[15:0] row; reg[15:0] con; integer cnt,b; reg[15:0] r[319:0]; initial begin //全暗

r[0] <=16'b 1111111111111111; r[1] <=16'b 1111111111111111; r[2] <=16'b 1111111111111111; r[3] <=16'b 1111111111111111; r[4] <=16'b 1111111111111111; r[5] <=16'b 1111111111111111; r[6] <=16'b 1111111111111111;

8

电气10级数电课程设计

r[7] <=16'b 1111111111111111; r[8] <=16'b 1111111111111111; r[9] <=16'b 1111111111111111; r[10] <=16'b 1111111111111111; r[11] <=16'b 1111111111111111; r[12] <=16'b 1111111111111111; r[13] <=16'b 1111111111111111; r[14] <=16'b 1111111111111111; r[15] <=16'b 1111111111111111; //全暗

r[16] <=16'b 1111111111111111; r[17] <=16'b 1111111111111111; r[18] <=16'b 1111111111111111; r[19] <=16'b 1111111111111111; r[20] <=16'b 1111111111111111; r[21] <=16'b 1111111111111111; r[22] <=16'b 1111111111111111; r[23] <=16'b 1111111111111111; r[24] <=16'b 1111111111111111; r[25] <=16'b 1111111111111111; r[26] <=16'b 1111111111111111; r[27] <=16'b 1111111111111111; r[28] <=16'b 1111111111111111; r[29] <=16'b 1111111111111111; r[30] <=16'b 1111111111111111; r[31] <=16'b 1111111111111111; //全暗

r[32] <=16'b 1111111111111111; r[33] <=16'b 1111111111111111; r[34] <=16'b 1111111111111111;

9

电气10级数电课程设计

r[35] <=16'b 1111111111111111; r[36] <=16'b 1111111111111111; r[37] <=16'b 1111111111111111; r[38] <=16'b 1111111111111111; r[39] <=16'b 1111111111111111; r[40] <=16'b 1111111111111111; r[41] <=16'b 1111111111111111; r[42] <=16'b 1111111111111111; r[43] <=16'b 1111111111111111; r[44] <=16'b 1111111111111111; r[45] <=16'b 1111111111111111; r[46] <=16'b 1111111111111111; r[47] <=16'b 1111111111111111;

//全暗

r[48] <=16'b 1111111111111111; r[49] <=16'b 1111111111111111; r[50] <=16'b 1111111111111111; r[51] <=16'b 1111111111111111; r[52] <=16'b 1111111111111111; r[53] <=16'b 1111111111111111; r[54] <=16'b 1111111111111111; r[55] <=16'b 1111111111111111; r[56] <=16'b 1111111111111111; r[57] <=16'b 1111111111111111; r[58] <=16'b 1111111111111111; r[59] <=16'b 1111111111111111; r[60] <=16'b 1111111111111111; r[61] <=16'b 1111111111111111;

10

电气10级数电课程设计

r[62] <=16'b 1111111111111111; r[63] <=16'b 1111111111111111; //全暗

r[64] <=16'b 1111111111111111; r[65] <=16'b 1111111111111111; r[66] <=16'b 1111111111111111; r[67] <=16'b 1111111111111111; r[68] <=16'b 1111111111111111; r[69] <=16'b 1111111111111111; r[70] <=16'b 1111111111111111; r[71] <=16'b 1111111111111111; r[72] <=16'b 1111111111111111; r[73] <=16'b 1111111111111111; r[74] <=16'b 1111111111111111; r[75] <=16'b 1111111111111111; r[76] <=16'b 1111111111111111; r[77] <=16'b 1111111111111111; r[78] <=16'b 1111111111111111; r[79] <=16'b 1111111111111111; //8

r[80] <=16'b 1111111111111111; r[81] <=16'b 1111000111000111; r[82] <=16'b 1110111010111011; r[83] <=16'b 1110111101111011; r[84] <=16'b 1110111101111011; r[85] <=16'b 1110111010111011; r[86] <=16'b 1111000111000111; r[87] <=16'b 1111111111111111;

11

电气10级数电课程设计

r[88] <=16'b 1111111111111111; r[89] <=16'b 1111111111111111; r[90] <=16'b 1111111111111111; r[91] <=16'b 1111111111111111; r[92] <=16'b 1111111111111111; r[93] <=16'b 1111111111111111; r[94] <=16'b 1111111111111111; r[95] <=16'b 1111111111111111; //全暗

r[96] <=16'b 1111111111111111; r[97] <=16'b 1111111111111111; r[98] <=16'b 1111111111111111; r[99] <=16'b 1111111111111111; r[100] <=16'b 1111111111111111; r[101] <=16'b 1111111111111111; r[102] <=16'b 1111111111111111; r[103] <=16'b 1111111111111111; r[104] <=16'b 1111111111111111; r[105] <=16'b 1111111111111111; r[106] <=16'b 1111111111111111; r[107] <=16'b 1111111111111111; r[108] <=16'b 1111111111111111; r[109] <=16'b 1111111111111111; r[110] <=16'b 1111111111111111; r[111] <=16'b 1111111111111111; //2

r[112] <=16'b 1111111111111111; r[113] <=16'b 1111000111110011; r[114] <=16'b 1110000111100011; r[115] <=16'b 1110111111001011; r[116] <=16'b 1110111110011011;

12

电气10级数电课程设计

r[117] <=16'b 1110111000111011; r[118] <=16'b 1110000001110011; r[119] <=16'b 1111000111110011; r[120] <=16'b 1111111111111111; r[121] <=16'b 1111111111111111; r[122] <=16'b 1111111111111111; r[123] <=16'b 1111111111111111; r[124] <=16'b 1111111111111111; r[125] <=16'b 1111111111111111; r[126] <=16'b 1111111111111111; r[127] <=16'b 1111111111111111; //全暗

r[128] <=16'b 1111111111111111; r[129] <=16'b 1111111111111111; r[130] <=16'b 1111111111111111; r[131] <=16'b 1111111111111111; r[132] <=16'b 1111111111111111; r[133] <=16'b 1111111111111111; r[134] <=16'b 1111111111111111; r[135] <=16'b 1111111111111111; r[136] <=16'b 1111111111111111; r[137] <=16'b 1111111111111111; r[138] <=16'b 1111111111111111; r[139] <=16'b 1111111111111111; r[140] <=16'b 1111111111111111; r[141] <=16'b 1111111111111111; r[142] <=16'b 1111111111111111; r[143] <=16'b 1111111111111111; //2

r[144] <=16'b 1111111111111111; r[145] <=16'b 1111000111110011;

13

电气10级数电课程设计

r[146] <=16'b 1110000111100011; r[147] <=16'b 1110111111001011; r[148] <=16'b 1110111110011011; r[149] <=16'b 1110111000111011; r[150] <=16'b 1110000001110011; r[151] <=16'b 1111000111110011; r[152] <=16'b 1111111111111111; r[153] <=16'b 1111111111111111; r[154] <=16'b 1111111111111111; r[155] <=16'b 1111111111111111; r[156] <=16'b 1111111111111111; r[157] <=16'b 1111111111111111; r[158] <=16'b 1111111111111111; r[159] <=16'b 1111111111111111; //全暗

r[160] <=16'b 1111111111111111; r[161] <=16'b 1111111111111111; r[162] <=16'b 1111111111111111; r[163] <=16'b 1111111111111111; r[164] <=16'b 1111111111111111; r[165] <=16'b 1111111111111111; r[166] <=16'b 1111111111111111; r[167] <=16'b 1111111111111111; r[168] <=16'b 1111111111111111; r[169] <=16'b 1111111111111111; r[170] <=16'b 1111111111111111; r[171] <=16'b 1111111111111111; r[172] <=16'b 1111111111111111; r[173] <=16'b 1111111111111111; r[174] <=16'b 1111111111111111;

14

电气10级数电课程设计

r[175] <=16'b 1111111111111111; //全暗

r[176] <=16'b 1111111111111111; r[177] <=16'b 1111111111111111; r[178] <=16'b 1111111111111111; r[179] <=16'b 1111111111111111; r[180] <=16'b 1111111111111111; r[181] <=16'b 1111111111111111; r[182] <=16'b 1111111111111111; r[183] <=16'b 1111111111111111; r[184] <=16'b 1111111111111111; r[185] <=16'b 1111111111111111; r[186] <=16'b 1111111111111111; r[187] <=16'b 1111111111111111; r[188] <=16'b 1111111111111111; r[189] <=16'b 1111111111111111; r[190] <=16'b 1111111111111111; r[191] <=16'b 1111111111111111; // 全暗

r[192] <=16'b 1111111111111111; r[193] <=16'b 1111111111111111; r[194] <=16'b 1111111111111111; r[195] <=16'b 1111111111111111; r[196] <=16'b 1111111111111111; r[197] <=16'b 1111111111111111; r[198] <=16'b 1111111111111111; r[199] <=16'b 1111111111111111; r[200] <=16'b 1111111111111111; r[201] <=16'b 1111111111111111; r[202] <=16'b 1111111111111111; r[203] <=16'b 1111111111111111;

15

电气10级数电课程设计

r[204] <=16'b 1111111111111111; r[205] <=16'b 1111111111111111; r[206] <=16'b 1111111111111111; r[207] <=16'b 1111111111111111; //全暗

r[208] <=16'b 1111111111111111; r[209] <=16'b 1111111111111111; r[210] <=16'b 1111111111111111; r[211] <=16'b 1111111111111111; r[212] <=16'b 1111111111111111; r[213] <=16'b 1111111111111111; r[214] <=16'b 1111111111111111; r[215] <=16'b 1111111111111111; r[216] <=16'b 1111111111111111; r[217] <=16'b 1111111111111111; r[218] <=16'b 1111111111111111; r[219] <=16'b 1111111111111111; r[220] <=16'b 1111111111111111; r[221] <=16'b 1111111111111111; r[222] <=16'b 1111111111111111; r[223] <=16'b 1111111111111111; //全暗

r[224] <=16'b 1111111111111111; r[225] <=16'b 1111111111111111; r[226] <=16'b 1111111111111111; r[227] <=16'b 1111111111111111; r[228] <=16'b 1111111111111111; r[229] <=16'b 1111111111111111;

16

电气10级数电课程设计

r[230] <=16'b 1111111111111111; r[231] <=16'b 1111111111111111; r[232] <=16'b 1111111111111111; r[233] <=16'b 1111111111111111; r[234] <=16'b 1111111111111111; r[235] <=16'b 1111111111111111; r[236] <=16'b 1111111111111111; r[237] <=16'b 1111111111111111; r[238] <=16'b 1111111111111111; r[239] <=16'b 1111111111111111; //明

r[240] <=16'b 1111111111111111; r[241] <=16'b 1000000000111111; r[242] <=16'b 1011101110111111; r[243] <=16'b 1011101110111111; r[244] <=16'b 1011101110111111; r[245] <=16'b 1000000000111101; r[246] <=16'b 1111111111111011; r[247] <=16'b 1111111111100111; r[248] <=16'b 0000000000011111; r[249] <=16'b 0111011101111111; r[250] <=16'b 0111011101111111; r[251] <=16'b 0111011101111101; r[252] <=16'b 0111011101111110; r[253] <=16'b 0000000000000001; r[254] <=16'b 1111111111111111; r[255] <=16'b 1111111111111111; //暗

r[256] <=16'b 1111111111111111; r[257] <=16'b 1111111111111111;

17

电气10级数电课程设计

r[258] <=16'b 1111111111111111; r[259] <=16'b 1111111111111111; r[260] <=16'b 1111111111111111; r[261] <=16'b 1111111111111111; r[262] <=16'b 1111111111111111; r[263] <=16'b 1111111111111111; r[264] <=16'b 1111111111111111; r[265] <=16'b 1111111111111111; r[266] <=16'b 1111111111111111; r[267] <=16'b 1111111111111111; r[268] <=16'b 1111111111111111; r[269] <=16'b 1111111111111111; r[270] <=16'b 1111111111111111; r[271] <=16'b 1111111111111111; //长

r[272] <=16'b 1111111011111111; r[273] <=16'b 1111111011111111; r[274] <=16'b 1111111011111111; r[275] <=16'b 1111111011111111; r[276] <=16'b 0000000000000000; r[277] <=16'b 1111101011111101; r[278] <=16'b 1111101001111011; r[279] <=16'b 1111011010110111; r[280] <=16'b 1111011011011111; r[281] <=16'b 1110111011101111; r[282] <=16'b 1101111011110111; r[283] <=16'b 1011111011110011; r[284] <=16'b 1111111011111001; r[285] <=16'b 1111111011111011;

18

电气10级数电课程设计

r[286] <=16'b 1111111011111111; r[287] <=16'b 1111111111111111; //暗

r[288] <=16'b 1111111111111111; r[289] <=16'b 1111111111111111; r[290] <=16'b 1111111111111111; r[291] <=16'b 1111111111111111; r[292] <=16'b 1111111111111111; r[293] <=16'b 1111111111111111; r[294] <=16'b 1111111111111111; r[295] <=16'b 1111111111111111; r[296] <=16'b 1111111111111111; r[297] <=16'b 1111111111111111; r[298] <=16'b 1111111111111111; r[299] <=16'b 1111111111111111; r[300] <=16'b 1111111111111111; r[301] <=16'b 1111111111111111; r[302] <=16'b 1111111111111111; r[303] <=16'b 1111111111111111; //郑

r[304] <=16'b 1111111011111011; r[305] <=16'b 0111011011111011; r[306] <=16'b 1001011011110111; r[307] <=16'b 1111011011001111; r[308] <=16'b 1110000000111111; r[309] <=16'b 1101011010111111; r[310] <=16'b 0011011011011111; r[311] <=16'b 1111011011100111; r[312] <=16'b 1111011011111111; r[313] <=16'b 1111111111111111;

19

电气10级数电课程设计

r[314] <=16'b 1000000000000000; r[315] <=16'b 1011111111101111; r[316] <=16'b 1011100111101111; r[317] <=16'b 1010011011110111; r[318] <=16'b 1001111100001111; r[319] <=16'b 1111111111111111; end

always@(posedge clk) begin if (b==0) b<=19; else b<=b-1; end

always@(posedge clk3) begin

if(cnt==15) begin cnt<=0; end else

cnt<=cnt+1; case(cnt)

0: con<=16'b0000_0000_0000_0001; 1: con<=16'b0000_0000_0000_0010; 2: con<=16'b0000_0000_0000_0100; 3: con<=16'b0000_0000_0000_1000; 4: con<=16'b0000_0000_0001_0000; 5: con<=16'b0000_0000_0010_0000; 6: con<=16'b0000_0000_0100_0000;

20

电气10级数电课程设计

7: con<=16'b0000_0000_1000_0000; 8: con<=16'b0000_0001_0000_0000; 9: con<=16'b0000_0010_0000_0000; 10: con<=16'b0000_0100_0000_0000; 11: con<=16'b0000_1000_0000_0000; 12: con<=16'b0001_0000_0000_0000; 13: con<=16'b0010_0000_0000_0000; 14: con<=16'b0100_0000_0000_0000; 15: con<=16'b1000_0000_0000_0000; endcase

//行使能 begin case(cnt)

0: row<=r[b*16+0]; 1: row<=r[b*16+1]; 2: row<=r[b*16+2]; 3: row<=r[b*16+3]; 4: row<=r[b*16+4]; 5: row<=r[b*16+5]; 6: row<=r[b*16+6]; 7: row<=r[b*16+7]; 8: row<=r[b*16+8]; 9: row<=r[b*16+9]; 10: row<=r[b*16+10]; 11: row<=r[b*16+11]; 12: row<=r[b*16+12]; 13: row<=r[b*16+13]; 14: row<=r[b*16+14]; 15: row<=r[b*16+15];

21

电气10级数电课程设计

endcase end end endmodule 生成模块:

四、仿真测试结果

1、分频器仿真源文件及波形:

2、十进制倒计时器仿真波形:

22

电气10级数电课程设计

3、译码器显示仿真:

4、交通灯控制器仿真结果:

5、点阵显示姓名和学号

23

电气10级数电课程设计

24

电气10级数电课程设计

6、顶层仿真波形:

五:实习总结与讨论

我这次实习最深的是,要有耐心,不要着急,认真编程。遇到不会的及时上网查阅资料或者问老师,前提是一定要弄懂,不要盲目抄袭;我感觉对于一个大型程序的设计,要进行分模块实现,所以每完成一个模块,我都会认真测试下正确与否;这次数电实习我一共上去测试了2次,第一次是在编写好红绿灯控制模块和倒计时显示数字模块后,我去测试了下红黄绿灯是否显示正常,结果基本正确,只是由于时序原因延迟了0.5s。第二次是加上了点阵显示模块后,由于是自己想的程序,不知道是否正确,而且与我一起测试的2个同学都出现了点阵显示反字的状况,所以这次我很是紧张,可是幸运的是,当我下载好程序以后,我测试发现我的竟然是正确的,我当时好高兴!又仔细看下现象,确实是正确的,于是便让老师检查了,成功了。看着自己编出来的程序运行成功,很有自豪感。通过这次课程设计,我学会了基本的的quartusⅡ7.0操作,会自己编写简单的verilog程序,感觉锻炼了自己的动手能力和实践能力,最受益的是学会了如何将自己所学过的知识和查找的资料有机的融合在一起。同时感谢老师在炎夏辛勤的指导我们实习,谢谢!

25

电气10级数电课程设计

6、顶层仿真波形:

五:实习总结与讨论

我这次实习最深的是,要有耐心,不要着急,认真编程。遇到不会的及时上网查阅资料或者问老师,前提是一定要弄懂,不要盲目抄袭;我感觉对于一个大型程序的设计,要进行分模块实现,所以每完成一个模块,我都会认真测试下正确与否;这次数电实习我一共上去测试了2次,第一次是在编写好红绿灯控制模块和倒计时显示数字模块后,我去测试了下红黄绿灯是否显示正常,结果基本正确,只是由于时序原因延迟了0.5s。第二次是加上了点阵显示模块后,由于是自己想的程序,不知道是否正确,而且与我一起测试的2个同学都出现了点阵显示反字的状况,所以这次我很是紧张,可是幸运的是,当我下载好程序以后,我测试发现我的竟然是正确的,我当时好高兴!又仔细看下现象,确实是正确的,于是便让老师检查了,成功了。看着自己编出来的程序运行成功,很有自豪感。通过这次课程设计,我学会了基本的的quartusⅡ7.0操作,会自己编写简单的verilog程序,感觉锻炼了自己的动手能力和实践能力,最受益的是学会了如何将自己所学过的知识和查找的资料有机的融合在一起。同时感谢老师在炎夏辛勤的指导我们实习,谢谢!

25

本文来源:https://www.bwwdw.com/article/1zyx.html

Top