EDA课程设计之交通灯设计报告
更新时间:2023-08-27 04:42:01 阅读量: 教育文库 文档下载
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
EDA综合设计与实践
一、设计目的和要求
1.熟练掌握QuartusII软件的使用方法和系统总体设计。
2.学会设计较复杂的数字系统,用Verilog HDL描述语言编写设计代码,并综合仿真验证设计,用FPGA试验箱验证设计。
3.学习FPGA试验箱的使用,各种电路图的引脚接法及其功能。
4.本实验要求学生以FPGA器件为目标器件,设计典型的数字系统。本设计选题为交通灯控制系统设计。
二、设计方案:
方案一:
(1)明确系统的功能
图1-1所示为位于主干道和支干道的十字路口交通灯系统,支干道两边是安装传感器S,要求优先保证主干道的畅通。平时处于主干道绿灯、支干道红灯的状态。当支干道有车时,传感器发出信号S=1,主干道绿灯先转换成黄灯再转换成红灯,支干道由红灯转换为绿灯,支干道绿灯亮不超过30s,主干道每次通行不少于60s(在此期间,不管S是否有信号,都不改状态)。
(2)画状态转换图
说明:
1)Tl:主干道绿灯亮的最短时间间隔,不少于60s; 2)Ts:支干道绿灯亮的最长时间间隔不多于30s。 3)Ty:主干道或支干道黄灯亮的时间间隔为5s
4)HR、HY、HG分别表示主干道红黄绿灯; 5)FR、FY、FG分别表示支干道红黄绿灯。
注:H表示Header,F表示Follower,R表示Red,Y表示Yellow,G表示Green
交通灯控制单元控制过程分四个阶段:分别用S0,S1,S2,S3表示:
S0:主干道绿灯亮,支干道红灯亮,此时若支干道有车等待,且主干道已亮足时间Tl,则控制器发出状态转换信号,输出从S0转换到S1。
S1:主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮足规定时间间隔Ty时,控制器发出状态转换信
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
号St,输出从此状态S1到S2。
S2:支干道绿灯亮,主干道红灯亮,若此时支干道继续有车,则继续保持此状态,但支干道绿灯亮时间不超过Ts时间间隔,否则控制单元发出状态转换信号St,使输出转换到S3状态。
S3:支干道黄灯亮,主干道红灯亮,此时状态与S1状态持续时间间隔相同,均为Ty,时间到时,控制器发出St信号,输出从状态S3回到S0状态。
对四种状态用格雷码编码分别为00,01,11,10。由此得图1-2交通灯控制单元状态图。
方案二:
本方案相对上一个方案加入了人工监督,且采用模块化设计。
(1)明确系统的功能,进行逻辑抽象
如图2-1本方案可实现在确定时刻,倒计数数字显示能够及时变化,红黄绿灯能准确变化,考虑到实际应用,加入人工监督功能,当固定开关SW=0时,实现交警人为控制交通秩序,当SW=1时,为自动控制模式,默认为SW=1。本设计采用模块化设计,图2-2为本设计十字路口交通等系统的层次结构框图。
(2)模块功能说明
1.主控制模块control:控制系统输入输出之间联系。
2.倒计时模块时间选择模块couterselect:选择不同的倒计时时间。 3.倒计时时间驱动模块scan:驱动倒计时时间长短选择模块电路。 4.数码管分时显示模块datamux,倒计时间分时送入用于显示。 5.倒计55s模块counter55,55s为绿灯点亮时间。 6.倒计5s模块counter5,5s为黄灯点亮时间。
7.顶层模块trafficlight,连接各模块设计,使之成为一个有机体。
前6个模块分别进行仿真测试,成功后把所有.v文件包含在工程trafficlight,实现模块化设计。
三、特殊要求(需要实验室提供的仪器设备、元器件和材料)
PC机,windows系统,Quartus II 4.0软件,基于Cyclone型EP16Q240C8的实验箱。
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
四、设计及仿真
综合两个方案考虑,方案二比较实用,但因为方案一容易实现,所以一开始做了方案一的设计,后来有时间,又完成了方案二。具体如下设计。
方案一:
(1)代码
见附录1。
(2)仿真结果及数据处理:
分析说明:
全局复位R=1无效,进入系统工作,先是主干道绿灯亮足60个时钟周期,因S=1,支干道有车等待,转入主干道黄灯亮5个时钟周期,然后进入支干道绿灯亮,30个时钟周期内支干道没车等待,所以S=0时转入主干道绿灯亮状态。通过仿真,可以看出本设计的逻辑上时序上是正确的。
图1-3 方案一设计Functional仿真
图1-3 方案一设计Timing仿真
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
图1-3 方案一设计RTL
(3)下载测试
编程下载和硬件测试的步骤如下:
1、 打开下载窗口。选择菜单“Tool“项的”programmer“,便可打开下载窗口。
2、 设置下载电缆。将ByteBlaster电缆的一端与微机的并行口相连,另一端10针插头与装有目标器件的PCB板上的插座相连。并在”Hardware Setup”中设置下载电缆。
3、设置JTAG链。Altera器件基本都支持JTAG在系统编程方式,这种方式简单易行,不需要专门的编程器。
4、选用模式NO.6(见附录3)如图1-4分配引脚,并编译后,把生成*.sof文件下载到基于Cyclone型EP16Q240C8的FPGA实验箱开发板上,成功查看结果,CLK时钟频率用1Hz,可通过实验箱上“键3”控制Reset全局复位,用“键5”可模拟传感器S的输入。
图1-4 配置引脚
方案二
(1)代码
见附录2。
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
(2)各模块RTL电路及功能仿真、时序仿真
各模块分别建立工程文件,并进行功能仿真、时序仿真,前六个模块成功编译,得到正确仿真结果后,建立顶层模块。
1) 模块一:控制模块(control.v)
图2-3 控制模块control.v的
RTL
图2-4 控制模块control的Functional仿真
图2-5 控制模块control的Timing仿真
2)模块二:5s倒计时模块(counter5.v)
图2-6 5s倒计时模块counter5.v的RTL
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
图2-7 5s倒计时模块counter5.v的Functional仿真
图2-8 5s倒计时模块counter5.v的Timing仿真
分析说明:
通过功能仿真,可以看出5s倒计时模块不存在逻辑上错误,可以通过;通过时序仿真,可以看到结果存在毛刺,但是结合实际应用,可以接受,所以通过这一模块的设计。
3)模块三:55s倒计时模块(counter55.v)
图2-9 55s倒计时模块counter55.v的
RTL
图2-10 55s倒计时模块counter55.v的Functional仿真
图2-11 55s倒计时模块counter55.v的Timing仿真
分析说明:
通过功能仿真和时序仿真,可以看出55s倒计时模块不存在逻辑、时序上错误,所以通过这一模块的设计。
4)模块四:倒计时选择(couterselect.v)
图2-12 倒计时选择模块couterselect.v的RTL
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
图2-13 倒计时选择模块couterselect.v的Functional仿真
图2-14 倒计时选择模块couterselect.v的Timing仿真
分析说明:
D_OUT1选择高位输出,用于选择驱动55秒倒计时计时器,分别在状态输入为“00”“10”这两种状态,即对应的绿灯时间,输出高电平,实现55秒倒计时计数器
D_OUT0:时间低位输出,用于选择驱动5秒倒计时计时器,分别在输入为“01”“11”时,即对应黄灯点亮时间,输出高电平,实现5秒倒计时。
通过功能仿真和时序仿真,可以看出倒计时选择模块不存在逻辑、时序上错误(虽然时序仿真有毛刺显现,但是结合实际应用,可以接受),所以通过这一模块的设计。
5)模块五:数据选择显示(datamux.v)
图2-15 数据选择显示datamux.v的
RTL
图2-16 数据选择显示datamux.v的Functional仿真
图2-17 数据选择显示datamux.v的Timing仿真
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
分析说明:
倒计时模块主要完成的工作是:倒计时长短时间选择的功能,输入信号来自两个倒计时模块counter55和counter5,当倒计数完成时产生一个脉冲用于驱动此模块产生00,01,10,11序列来驱动倒计时时间模块选择。
D_in1:高位驱动信号,来源于55秒计时到信号,当计数器计时完成后,产生这个信号驱动状态变化。 D_in0:低位驱动信号,来源于5秒计时到信号,当计数器计时完成后,产生这个脉冲来驱动状态的变化。 通过功能仿真和时序仿真,可以看出数据选择显示模块不存在逻辑、时序上错误(虽然时序仿真有毛刺显现,但是结合实际应用,可以接受),所以通过这一模块的设计。
6)模块六:时间选择驱动(scan.v)
图2-18 时间选择驱动scan.v的
RTL
图2-19 时间选择驱动scan.v的Functional仿真
图2-20 时间选择驱动scan.v的Timing仿真 分析说明:此模块用于驱动倒计时时间长短选择。
模块七:顶层模块(trafficlight.v)
图2-21 方案二设计RTL
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
图2-22 方案二设计的Functional仿真(SW=1,自动控制模式)
图2-23 方案二设计的Functional仿真(SW=0,人工监督模式)
图2-24 方案二设计的Timing仿真(SW=1,自动控制模式)
图2-25 方案二设计的Timing仿真(SW=0,人工控制模式)
分析说明:
建立trafficlight项目,并设计顶层模块trafficlight.v,成功编译。通过功能仿真和时序仿真,可以看出本设计已经成功完成。达到目标:实现在确定时刻,倒计数数字显示能够及时变化,红黄绿灯能准确变化,当固定开关SW=0时,实现交警人为控制交通秩序,当SW=1时,为自动控制模式,默认为SW=1。
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
(3)下载测试
编程下载和硬件测试的步骤如下:
1、 打开下载窗口。选择菜单“Tool“项的”programmer“,便可打开下载窗口。
2、 设置下载电缆。将ByteBlaster电缆的一端与微机的并行口相连,另一端10针插头与装有目标器件的PCB板上的插座相连。并在”Hardware Setup”中设置下载电缆。
3、设置JTAG链。Altera器件基本都支持JTAG在系统编程方式,这种方式简单易行,不需要专门的编程器。
4、选用模式NO.1(见附录3),如图2-26分配引脚,并编译后,把生成*.sof文件下载到基于Cyclone型EP16Q240C8的FPGA实验箱开发板上,成功查看结果,CLK时钟频率用1Hz,可通过实验箱上“键7”控制Reset全局复位,用“键8”可控制SW选择自动模式或人工监督模式。
图2-26
五、设计总结
经过此次课程设计,可以说收获良多,现总结为以下几点:
1、熟悉掌握了Quartus这个软件。虽然上课时候已经看老师展示过这个软件的用法,但是没有亲力亲为始终对这个软件的掌握是很不够的。此次通过设计以上两个方案,我对Quartus II这个软件已经掌握的比较好了。
2、通过以上两个方案的设计,我对正规的设计流程已经有了深刻的体会,相信以后遇到这种设计可以自如地应对了。
3、通过设计代码过程中遇到编译错误的问题,经过一次次的排错,我对Verilog HDL描述语言的掌握得到一定的锻炼。
4、设计工程中,让我感慨最多的是功能仿真和时序仿真,通过看仿真图,理解系统运行,优化系统,这是一个艰巨的任务,也是一个最有意义的任务。因为这一步的工作,我们不仅要把原理理解透彻,而且要联系FPGA试验箱开发板,所以对开发板的各种工作模式也要理解。
5、由于试验箱有限,所以我是提前一天在实验室试验过程序的了。很多同学在答辩当天才下载程序试验,结果很多完成不了。下载到板上,也出现了一些问题,如引脚接错,选用模式不对,还有就是实验箱坏了。通过认真的思考,最终完成测试。
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
附录1
/********************************************************************************************* 本系统采用用硬件描述语言Verilog HDL描述。分为四部分,第一部分定义系统输入输出及所用寄存器。第二部分,控制单元状态转换的描述。第三部分,定时器工作的描述。第四部分,输出译码电路的描述。
**********************************************************************************************/ module Traffic(CLK,S,RESET,HG,HY,HR,FG,FY,FR);
//第一部分,定义输入输出端口,以及系统内部信号变量及其类型 input CLK,S,RESET;
output HG,HY,HR,FG,FY,FR; reg HG,HY,HR,FG,FY,FR; reg [3:0]TimerH,TimerL; wire T1,Ts,Ty; reg St;
reg [1:0]CurrentState,NextState; //对状态进行编码
parameter S0=2'b00, S1=2'b01,S2=2'b11, S3=2'b10; //第二部分,控制单元状态转换的描述 always@(posedge CLK or negedge RESET) begin
if(~RESET)
CurrentState <= S0; else
CurrentState <= NextState; end
always@(S or CurrentState or T1 or Ts or Ty) begin
case(CurrentState) S0:begin
NextState = (T1 && S)?S1:S0; St = (T1 && S)?1:0; end S1:begin
NextState = (Ty)?S2:S1; St = (Ty)?1:0; end S2:begin
NextState = (Ts || ~S)?S3:S2; St = (Ts || ~S)?1:0; end S3:begin
NextState = (Ty)?S0:S3; St = (Ty)?1:0; end //
endcase
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
end
//第三部分,定时器工作的描述
always@(posedge CLK or negedge RESET) begin
if(~RESET)
{TimerH,TimerL} <= 8'b0; else if(St)
{TimerH,TimerL} <= 8'b0;
else if((TimerH==5)&(TimerL==9)) begin
{TimerH,TimerL} <= {TimerH,TimerL}; end
else if(TimerL==9) begin
TimerH <= TimerH + 1; TimerL <= 8'b0; end else
begin
TimerH <= TimerH; TimerL <= TimerL+1; end end
assign Ty = (TimerH==0)&(TimerL==4); assign Ts = (TimerH==2)&(TimerL==9); assign T1 = (TimerH==5)&(TimerL==9); //第四部分,输出译码电路的描述 always@(CurrentState) begin
case(CurrentState) S0:begin
{HG,HY,HR} <= 3'b100; //主干道绿灯亮 {FG,FY,FR} <= 3'b001; //支干道红灯亮 end S1:begin
{HG,HY,HR} <= 3'b010; //主干道黄灯亮 {FG,FY,FR} <= 3'b001; //支干道绿灯亮 end S2:begin
{HG,HY,HR} <= 3'b001; //主干道红灯亮 {FG,FY,FR} <= 3'b100; //支干道绿灯亮 end S3:begin
{HG,HY,HR} <= 3'b001; //主干道红灯亮 {FG,FY,FR} <= 3'b010; //支干道黄灯亮 end endcase
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
end endmodule
/**************************************程序结束***********************************************/
附录2
模块一:
/******************************** 主控制模块control.v ******************************************/ module control(EN_in,RST,SW1,Red1,Red2,Yellow1,Yellow2,Green1,Green2); //定义输入输出口 output Red1; output Red2; output Yellow1; output Yellow2; output Green1; output Green2; input [1:0] EN_in; input SW1; input RST;
//定义数据类型
reg Red1,Red2,Yellow1,Yellow2,Green1,Green2,D_out;
always @(EN_in,RST,SW1) //always语句实现交通灯的总体工作控制 begin //系统复位 if(SW1==0||RST==0)
{Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b0;
else //系统自动运行 begin
case(EN_in)
2'b00:{Red1,Red2,Yellow1,Yellow2,Green1,Green2} <= 6'b010010; //方向1绿灯亮,方向2红灯亮 2'b01:{Red1,Red2,Yellow1,Yellow2,Green1,Green2} <= 6'b011000; //方向1黄灯亮,方向2红灯亮 2'b10:{Red1,Red2,Yellow1,Yellow2,Green1,Green2} <= 6'b100001; //方向1红灯亮,方向2绿灯亮 2'b11:{Red1,Red2,Yellow1,Yellow2,Green1,Green2} <= 6'b100100; //方向1红灯亮,方向2黄灯亮 default:{Red1,Red2,Yellow1,Yellow2,Green1,Green2} <= 6'b0; //方向1方向2等全灭 endcase end end
endmodule
/*********************************** 主控制模块control.v ***************************************/
模块二:
/*********************************5秒的倒计时模块counter5.v***********************************/ module counter05(C_CLK,RST,C_EN,D_OUT1,D_OUT0,C_OUT);
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
//输出输入的定义 output C_OUT;
output [3:0] D_OUT1,D_OUT0; input C_CLK; input RST; input C_EN; //数据类型定义
reg [3:0] D_OUT1,D_OUT0; reg C_OUT;
reg [3:0] CData1,CData0; reg [7:0] DATA;
always @(posedge C_CLK) //always 语句块实现5秒自动循环倒计数,用加计数器 begin //系统复位或者未工作 if(RST==0||C_EN==0) begin
C_OUT <= 1'b0; CData1 <= 4'b0000; CData0 <= 4'b0000; end else begin
if(CData0 != 4'b0101) begin
CData0 <= CData0 + 4'b0001; C_OUT <= 1'b0; end
else //防止生成锁相环 begin
CData1 <= 4'b0000; CData0 <= 4'b0000;
C_OUT <= 1'b1; end end end
always //加计数器的计数值到倒计时的数值转换 begin
DATA <= 8'b00000101 - ((CData1<<4) + CData0); D_OUT1 <= 4'b0000;
if((DATA & 4'b1111) > 4'b0101)
D_OUT0 <= DATA & 4'b1111 - 4'b1011; else
D_OUT0 <= DATA & 4'b1111; end
endmodule
/*********************************5秒的倒计时模块counter5.v***********************************/
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
模块三:
/********************************55秒的倒计时模块counter55.v**********************************/ module counter55(C_CLK,RST,C_EN,D_OUT1,D_OUT0,C_OUT); //输出输入的定义 output C_OUT;
output [3:0] D_OUT1, D_OUT0; input C_CLK,RST,C_EN; //数据类型定义
reg [3:0] D_OUT1,D_OUT0; reg C_OUT;
reg [3:0] CData1,CData0; reg [7:0] DATA;
always @(posedge C_CLK) //always 语句块实现55秒自动循环倒计数,用加计数器 begin
//系统复位或者未工作 if(RST==0||C_EN==0) begin
C_OUT <= 1'b0; CData1 <= 4'b0000; CData0 <= 4'b0000; end
//加计数器 else begin
if(CData0 == 4'b0101 && CData1 == 4'b0101) begin
CData1 <= 4'b0000; CData0 <= 4'b0000; C_OUT <= 1'b1; end
else if(CData0 != 4'b1001) begin
CData0 <= CData0 + 4'b0001; C_OUT <= 1'b0; end
else if(CData0 == 4'b1001 && CData1 != 4'b0101) begin
CData1 <= CData1 + 4'b0001; CData0 <= 4'b0000; C_OUT <= 1'b0; end
else //防止生成锁相环 begin
CData1 <= 4'b0000; CData0 <= 4'b0000;
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
C_OUT <= 1'b1; end end end
always //加计数器的计数值到倒计时的数值转换 begin
DATA <= 8'b01010101-((CData1<<4)+CData0); if(((DATA>>4) & 4'b1111) > 4'b0101)
D_OUT1 <= (DATA >> 4) & 4'b1111 - 4'b1111; else
D_OUT1 <= (DATA >> 4) & 4'b1111; if((DATA&4'b1111)>4'b1001)
D_OUT0 <= DATA & 4'b1111 - 4'b0110; else
D_OUT0 <= DATA & 4'b1111; end
endmodule
/********************************55秒的倒计时模块counter55.v***********************************/
模块四:
/******************************倒计时时间选择模块模块couterselect.v******************************/ module couterselect(D_IN,D_OUT1,D_OUT0); //输入输出端口定义 output D_OUT1; output D_OUT0; input [1:0] D_IN; //数据类型定义 reg D_OUT1; reg D_OUT0; always begin
case(D_IN)
2'b00:{D_OUT1,D_OUT0} <= 2'b10; 2'b01:{D_OUT1,D_OUT0} <= 2'b01; 2'b10:{D_OUT1,D_OUT0} <= 2'b10; 2'b11:{D_OUT1,D_OUT0} <= 2'b00; default:{D_OUT1,D_OUT0} <= 2'b00; endcase end endmodule
/******************************倒计时时间选择模块模块couterselect.v******************************/
模块五:
/*****************************倒计时时间选择输出显示模块datamux.v*****************************/
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
module datamux(D_IN3,D_IN2,D_IN1,D_IN0,SEL,D_OUT1,D_OUT0); //输入输出端口定义 output [3:0] D_OUT1; output [3:0] D_OUT0; input [3:0] D_IN3; input [3:0] D_IN2; input [3:0] D_IN1; input [3:0] D_IN0; input [1:0] SEL; //数据类型定义 reg [3:0] D_OUT1; reg [3:0] D_OUT0; always begin
case(SEL)
2'b00: begin D_OUT0 <= D_IN0;D_OUT1 <= D_IN1; end 2'b01: begin D_OUT0 <= D_IN2; D_OUT1 <= D_IN3; end 2'b10: begin D_OUT0 <= D_IN0; D_OUT1 <= D_IN1; end 2'b11: begin D_OUT0 <= D_IN2; D_OUT1 <= D_IN3; end default:begin D_OUT0 <= 4'b0000;D_OUT1 <= 4'b0000; end endcase end
endmodule
/*****************************倒计时时间选择输出显示模块datamux.v*****************************/
模块六:
/*******************************倒计时时间选择驱动模块scan.v*******************************/ module scan(EN_in1,EN_in0,sdata); //输入输出端口定义 output [1:0] sdata; input EN_in1; input EN_in0; //数据类型定义 reg [1:0] sdata; wire EN_in;
assign EN_in = EN_in1 | EN_in0; always @(posedge EN_in)
begin sdata <= sdata + 1'b1; end endmodule
/*******************************倒计时时间选择驱动模块scan.v*******************************/
模块七:
/************************************顶层模块trafficlight.v***********************************/ module trafficlight(Reset,SW,CLK,Red1,Red2,Yellow1,Yellow2,Green1,
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
Green2,D_OUT1,D_OUT0); //输入输出端口定义 input Reset; input SW; input CLK; output Red1; output Red2; output Yellow1; output Yellow2; output Green1; output Green2;
output [3:0] D_OUT1; output [3:0] D_OUT0; //数据类型定义 reg [3:0] D_OUT1; reg [3:0] D_OUT0;
wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_1; wire SYNTHESIZED_WIRE_2; wire SYNTHESIZED_WIRE_3;
wire [3:0] SYNTHESIZED_WIRE_4; wire [3:0] SYNTHESIZED_WIRE_5; wire [3:0] SYNTHESIZED_WIRE_6; wire [3:0] SYNTHESIZED_WIRE_7; wire [1:0] SYNTHESIZED_WIRE_8; //倒计时选择驱动 scan
U0(.EN_in1(SYNTHESIZED_WIRE_0),.EN_in0(SYNTHESIZED_WIRE_1),.sdata(SYNTHESIZED_WIRE_8)); //5秒倒计时
counter5 U1(.C_CLK(CLK),.RST(Reset),.C_EN(SYNTHESIZED_WIRE_3),.D_OUT1(SYNTHESIZED_WIRE_7), .D_OUT0(SYNTHESIZED_WIRE_6),.C_OUT(SYNTHESIZED_WIRE_1)); //55秒倒计时
counter55 U2(.C_CLK(CLK),.RST(Reset),.C_EN(SYNTHESIZED_WIRE_2),.C_OUT(SYNTHESIZED_WIRE_0), .D_OUT0(SYNTHESIZED_WIRE_4),.D_OUT1(SYNTHESIZED_WIRE_5)); //5秒倒计时与55秒倒计时选择,实现交通灯不同状态切换
couterselect U3(.D_IN(SYNTHESIZED_WIRE_8),.D_OUT1(SYNTHESIZED_WIRE_2), .D_OUT0(SYNTHESIZED_WIRE_3)); //交通灯信号控制
control U4(.SW1(SW),.RST(Reset),.EN_in(SYNTHESIZED_WIRE_8),.Red1(Red1),
.Red2(Red2),.Yellow1(Yellow1),.Yellow2(Yellow2),.Green1(Green1),.Green2(Green2)); //多路选择
datamux U5(.D_IN0(SYNTHESIZED_WIRE_4),.D_IN1(SYNTHESIZED_WIRE_5),
.D_IN2(SYNTHESIZED_WIRE_6),.D_IN3(SYNTHESIZED_WIRE_7),
.SEL(SYNTHESIZED_WIRE_8),.D_OUT0(D_OUT0),.D_OUT1(D_OUT1)); endmodule
/************************************顶层模块trafficlight.v***********************************/
广东工业大学信息工程的EDA课程设计报告,题目为:交通灯实现,内含两种Verilog HDL实现代码!时序分析、功能分析,十分到位……
附录
3
实验电路结构图NO.6
结构图NO.6对应管脚图
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
实验电路结构图NO.1
结构图NO.1对应管脚图
正在阅读:
EDA课程设计之交通灯设计报告08-27
2015河南检察院考试指导:全面把握申论答题的四个套路10-03
快递赔偿程序是什么- 副本12-20
An Approximation Algorithm for the Covering Steiner Problem04-22
关于进一步明确职责分工的通知01-18
浅谈构建小学语文高效课堂的有效策略09-16
请假英文02-16
2018年全国名区县小升初语文毕业试卷10套含答案03-08
常见的电脑病毒以及电脑病毒种类02-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 交通灯
- 设计
- 课程
- 报告
- EDA
- ASP动态网页设计技术教程(完整版)
- 《史上最牛的游戏2》图文攻略第15关【蹦蹦跳】
- 超级短线指标!10次9次赚钱!
- 第六章 领导沟通
- 县委组织部长在全县村级后备干部培训班开班动员会上的讲话
- 第三章 铸造方法及其发展(材料成型工艺基础)
- 网线制作1-墙壁网线插座接法(图解)
- 广州牛津版九年级上册英语BookB短语(单元排序)
- 2006年初二下学期期末模拟考试语文试卷
- 报价表格式范本
- 生物医药行业研究报告
- 中国银行保险行业市场发展预测及投资规划研究报告2016-2021年
- 2018-2024年中国漂白紫胶片市场评估研究报告(目录)
- $2.2.1. 世界区域地理复习教案东亚与日本
- 2017-2023年中国建筑陶瓷行业分析及投资可行性报告(目录)
- 医师定期考核试题
- 轮胎知识
- 2010年中国卫生事业发展情况统计公报
- 益气聪明汤治疗耳鸣50例_许君
- iData_广西县级公立医院改革的财政政策研究_广西财政厅课题组