Verilog实验报告交通灯

Verilog实验报告交通灯
Verilog实验报告交通灯

V e r i l o g实验报告交通

集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

V e r i l o g实验报告---第四次交通灯

班级:集电0802班

姓名:张鹏

学号: 04086057

序号: 16

一、规范

(1)具有开关功能:当reset=0时红绿灯关闭,使主支干道六个灯全灭;

(2)具有四个功能:当reset=1且func=2’b00时,主干道和支路正常计数;

且func=2’b01时,支干道一直绿灯,主干道一直红灯;

且func=2’b10时,主干道一直绿灯,支干道一直红灯;

且func=2’b11时,主干道和支干道一直黄灯闪;

(3)计数器频率:运行频率2Hz计数器;

(4)信号灯种类:红、黄、绿;

(5)信号灯计执行时间关系:主干道:绿灯常亮+绿灯闪+黄灯=支干道:红灯常亮;

此设计中:

主干道:绿灯常亮=57s,T绿灯闪=3s,T黄灯亮=3s

支干道:绿灯常亮=15s,T绿灯闪=3s,T黄灯亮=3s

(6)信号灯到计时功能:信号灯预置后,开始执行2Hz计数器;

(7)信号灯跳转功能:当各信号灯计时至T时在下一个时钟信号上升沿到来时自动转为下一状态;

(8)信号灯各状态跳转关系:绿-黄-红-绿;

二、输入输出定义

状态转移图:

四、测试代码

module frequency_divider_small(reset,clk,out);

eset(reset),.clk(clk),.func(func),.green(green),.red(red),.yellow(yellow)); always #10 clk=~clk;

initial

begin

reset=0;

clk=1;

func=2'b00;

#20 reset=1;

#21000 func=2'b01;

#10000 func=2'b10;

#10000 func=2'b11;

end

endmodule

波形:

五、源代码

module frequency_divider(reset,clk,out);eset(reset),.clk(clk),.out(in));//调用分频模块

always @ (posedge clk or negedge reset)

if(!reset)

begin

cnt<=7'd0;

state<=3'd1;

green<=2'b00;

red<=2'b00;

yellow<=2'b00;

end

else

if(in)//分频器结果当主模块始能

if(func==2'b00)//选择不同功能控制开关

if(cnt==7'd0)

case(state)//选择不同状态

3'd1:begin

cnt<=greentime1<<1;

state<=3'd2;

green<=2'b10;

red<=2'b01;

yellow<=2'b00;

end

3'd2:begin

cnt<=yellowtime<<1;

state<=3'd3;

end

3'd3:begin

cnt<=yellowtime<<1;

state<=3'd4;

green<=2'b00;

red<=2'b01;

yellow<=2'b10;

end

3'd4:begin

cnt<=greentime1<<1;

state<=3'd5;

green<=2'b01;

red<=2'b10;

yellow<=2'b00;

end

3'd5:begin

cnt<=yellowtime<<1;

state<=3'd6;

end

3'd6:begin

cnt<=yellowtime<<1;

state<=3'd1;

green<=2'b00;

red<=2'b10;

yellow<=2'b01;

end

endcase

else

begin

cnt<=cnt-7'd1;//倒计数,计数结束进入下一状态 case(state)

3'd3:green[1]<=cnt[0];//主干道绿灯闪

3'd6:green[0]<=cnt[0];//支干道绿灯闪

endcase

end

else if(func==2'b10)//主干道常绿,支干道常红

begin

cnt<=0;

state<=3'd1;

green<=2'b10;

red<=2'b01;

yellow<=2'b00;

end

else if(func==2'b01)//主干道常红,支干道常绿 begin

cnt<=0;

state<=3'd1;

green<=2'b01;

red<=2'b10;

yellow<=2'b00;

end

else if(func==2'b11)//主干道,支干道黄灯一直闪 begin

cnt<=0;

state<=3'd1;

green<=2'b00;

red<=2'b00;

yellow[1]<=~yellow[1];

yellow[0]<=~yellow[1];

end

endmodule

数电实验报告2.1—基于Verilog HDL显示译码器设计

<基于Verilog HDL显示译码器设计>实验报告 学生姓名: 班级学号: 指导老师:

<实验报告内容> 一、实验名称:基于Verilog HDL 显示译码器设计 二、实验学时:4学时 三、实验目的:进一步掌握QuartusII 软件逻辑电路设计环境及Verilog HDL 的基本语法,熟悉设计流程及思路。掌握显示译码器的工作原理及应用。(提示:本实验将涉及到verilog 的条件语句(如if …else, case ….end case, for ….等)、赋值语句(如assign 等)和二进制变量位宽的定义等内容,请大家实验前做好本部分预习和自学,可参考本课本第九章内容,也可自行查找有关Verilog 设计基础的相关内容,推荐参考书:北京航空航天出版社,夏宇闻编著 )。通过对所设计逻辑电路功能仿真,分析所设计电路逻辑功能是否正确,掌握逻辑功能仿真的方法。 四、实验内容:基于verilog 的显示译码器逻辑设计及功能仿真 五、实验原理:(1)半导体发光二极管(LED )数码显示器:半导体发光二极管数码显示器由7(或8)个LED 排成“日”字形,称为七段(或八段),封装成数码管,如错误!未找到引用源。所示。LED 数码管内部有共阴极和共阳极两种接法。如错误!未找到引用源。。 (2 )常用显示译码器管脚功能(74LS148):LCD —七段显示译码器:介绍常用的74LS148七段显示译码器, 图 3为74LS48 74LS48 (a ) 图 1 图 2 CC f g a b c d e BI 7123456

图 3 (3)74LS48的逻辑功能:如表1: 表1 其译码器输出(Ya~Yg)是高电平有效,适用于驱动共阴极LED数码管,显示的字形表中所示。因其译码器输出端的内部有上拉电阻(是2K的限流电阻),因此在与LED管连接时无需再外接限流电阻。 具体功能介绍及内部设计图,请自行上网查阅74LS48的DATASHEET。 六、实验步骤: 1.复习QuartusII软件逻辑电路设计环境及Verilog HDL的基本语法,熟悉设计流程及思路。 2.做好预习和自习,查找相关资料。 3.设计出文本输入并进行功能仿真。

plc交通灯实验报告

plc交通灯实验报告 篇一:PLC交通灯课程设计报告 信息与电子工程学院 课程设计报告 目录 一、课程设计概述 ................................................ .................. 3 1.1课程设计内容 ................................................ ........................... 3 1.2课程设计技术指标 ................................................ ................... 3 二、方案的选择及确定 ................................................ ........... 4 三、系统硬件设计 ................................................ .................. 5 四、系统软件设计 ................................................ .................. 6 五、触摸屏设计 ................................................ ...................... 8 六、系统调试 ................................................ ......................... 9 七、总结以体

Verilog HDL实验报告

HDL实验报告 专业电子科学与技术 姓名 学号 指导老师

1 实验一Modelsim仿真软件的使用 1.1 实验目的 (1)熟悉Modelsim 软件; (2)掌握Modelsim 软件的编译、仿真方法; (3)熟练运用Modelsim 软件进行HDL 程序设计开发。 1.2 实验步骤 (1)学习使用Modelsim软件; (2)分析原理及功能; (3)用Verilog HDL编写程序; (4)编写测试程序进行仿真; (4)观察波形,分析仿真结果是否正确。 1.3 实验内容 用Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果。 1.4.1 程序 module my_xor(ina,inb,out); input ina,inb; output out; assign out=ina^inb; endmodule module t_xor; reg ina,inb; wire out; initial begin ina=1'b0; forever #20 ina=~ina; end initial begin inb=1'b0; forever #10 inb=~inb; end my_xor tt(.ina(ina),.inb(inb),.out(out)); endmodule

2 实验二简单组合电路设计 2.1 实验目的 (1)掌握基于Modelsim 的数字电路设计方法; (2)熟练掌握HDL 程序的不同实现方法 2.2 实验步骤 (1)分析原理及功能; (2)根据原理用Verilog HDL编写程序; (3)编写测试程序进行仿真; (4)观察波形,分析仿真结果是否正确。 2.3 实验内容 设计一个三人表决器(高电平表示通过) ,实验内容如下: (1)三个人,一个主裁判,两个副裁判; (2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。使用Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。 2.4.1 程序 方法1: module voter(v0,v1,v2,y); input v0,v1,v2; output y; assign y=v0|(v1&v2); endmodule 方法2: module voter(v0,v1,v2,y); input v0,v1,v2; output reg y; always @(v0,v1,v2) begin if(v0) y=1;

交通灯实验报告

微机原理课程设计报告 新疆农业大学 计算机与信息工程学院 课程题目:微机原理与几口技术 班级:电科112 指导老师:张婧婧 姓名:刘建国 学号:114633222

基于8086的交通信号控制器的设计报告摘要: 这次课程设计,我们的任务是:基于8086的交通信号控制器的设计。8086系统是我们这个学期学习的主线方向,我们将在8086系统的基础上完成交通信号控制器的设计,其具体功能是:1.显示十字路口东西、南北2个方向的红、黄、绿的指示状态。2.实现正常的倒计时功能。用2组数码管作为东西和南北方向的倒计时显示,显示时间为红灯30s,绿灯50s,黄灯5s。3.按S1键能实现特殊的功能,显示倒计时的2组数码管闪烁,计数器停止计数并保持在原来的状态;东西、南北路口均显示红灯状态;特殊状态解除后能继续计数。4.按S2键实现总体清零功能。计数器由初始状态计数,对应的指示灯亮。 关键词:8086系统 74154 74HC373 8255A LED交通灯

(一) 1) 设计目的 交通信号控制灯是日常交通不可缺少的工具,涉及到人们的人生和财产安全,在道路行驶上起了相当关键的作用,因而设计交通信号控制灯是非常有意义的。同时我们这次设计的课题就是“基于8086交通信号控制器的设计”,基于以上目的,我利用一周时间精心设计出课题要求的交通灯。 2) 设计思想 在此次设计过程中,我们选择了数码管、发光二极管、74LS138、74LS373、8255A和8086来控制实现交通灯按设计要求工作。 3)硬件部分 1、LED设计说明: 用LED作为倒计时时间的显示器,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。LED与LCD的功耗比大约为10:1,利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,LED是发光二极管属于二极管的一种,LCD是液晶显示器,两者相差太多.但是用LED的点阵也能组成显示器,适用于户外大屏幕显示,分辨率较低,LED与LCD具体比较如下图 表1-1:LCD与LED的比较 2、8255设计说明: 用8255A可编程并行接口芯片的A、B、C三口作为红、绿、黄交通灯的控制输入口。8255有三个并行输入输出口,可以方便的对三种颜色的交通灯进行很好的控制。解决方案是:PB0~PB7接模拟灯二极管,PA0~PA7接7段二极管的段选,PC0~PC3接7段二极管的位选,PC4~PC7与开关相连,处理器芯片集成芯片卡PCI卡连接,用于完成硬件方面的实验正常通信。其芯片比较说明:如下表: 表1-2:8255A与8251芯片的比较

北航verilog实验报告(全)

目录 实验一 (2) 实验二 (9) 实验三 (21) 实验四 (44)

实验一 实验目的:熟悉硬件开发流程,掌握Modelsim设计与仿真环境,学会简单组合逻辑电路、简单时序逻辑电路设计,不要求掌握综合和综合后仿真。 实验内容:必做实验:练习一、简单的组合逻辑设计 练习二、简单分频时序逻辑电路的设计 选做实验:选做一、练习一的练习题 选做二、7段数码管译码电路 练习一、简单的组合逻辑设计 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验代码: 模块源代码: module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule 测试模块源代码: `timescale 1ns/1ns `include "./compare.v" module t; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1;

#100 a=1;b=0; #100 a=0;b=0; #100 $stop; end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验波形 练习二、简单分频时序逻辑电路的设计 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验代码: 模块源代码: module halfclk(reset,clkin,clkout); input clkin,reset; output clkout; reg clkout; always@(posedge clkin) begin if(!reset) clkout=0; else clkout=~clkout; end endmodule 测试模块源代码: `timescale 1ns/100ps `define clkcycle 50 module tt; reg clkin,reset; wire clkout;

北航电子电路设计数字部分实验报告

电子电路设计数字部分实验报告 学院: 姓名:

实验一简单组合逻辑设计 实验内容 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验仿真结果 实验代码 主程序 module compare(equal,a,b); input[7:0] a,b; output equal; assign equal=(a>b)1:0; endmodule 测试程序

module t; reg[7:0] a,b; reg clock,k; wire equal; initial begin a=0; b=0; clock=0; k=0; end always #50 clock = ~clock; always @ (posedge clock) begin a[0]={$random}%2; a[1]={$random}%2; a[2]={$random}%2; a[3]={$random}%2; a[4]={$random}%2; a[5]={$random}%2; a[6]={$random}%2; a[7]={$random}%2; b[0]={$random}%2; b[1]={$random}%2; b[2]={$random}%2; b[3]={$random}%2; b[4]={$random}%2;

b[5]={$random}%2; b[6]={$random}%2; b[7]={$random}%2; end initial begin #100000 $stop;end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验二简单分频时序逻辑电路的设计 实验内容 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验仿真结果

交通灯控制器课程设计实验报告

2011级课程设计实验报告 交 通 灯 控 制 器 院(系):计算机与信息工程学院 专业年级: 2011级通信工程一班 姓名: 谢仙 学号: 指导教师: 杨菊秋 2013年06月25日

目录 1 引言 (3) 2 任务与要求 (3) 3 课程设计摘要及整体方框图 (3) 4 课程设计原理 (4) 555定时器 (5) 七位二进制计数器4024 (6) 二进制可逆计数器74LS193 (8) 数码显示电路 (9) 结论 (10) 体会与收获 (10) 附录: 1、整体电路原理图 (11) 2、元件表 (12) 3、焊接与调试 (12) 1引言

交通信号灯常用于交叉路口,用来控制车辆的流量,提高交叉路口车辆的通行能力,减少交通事故。本交通灯设计主要由秒脉冲发生器、计数器、译码显示电路组成。秒脉冲发生器由NE555产生脉冲,计数器由74LS193和4024实现,译码电路采用74LS48和七段数码管来显示。 2设计任务与要求 交通灯控制信号的应用非常广泛。本电路设计一个交通灯控制器,需要达到的目的如下; 一个周期64秒,平均分配,前32秒红灯亮,后32秒绿灯亮。 在红灯亮的期间的后8秒与红灯在一起的黄灯闪烁(注意:红灯同时亮)。为了显示效果明显,设计闪烁频率为1。 在绿灯亮的期间的后8秒与绿灯在一起的黄灯闪烁(注意:绿灯同时亮),为了显示效果明显,设计闪烁频率为1。 在黄灯闪烁期间,数码管同时倒计时显示,在此期间以外,数码管不亮。 3课程设计摘要及整体方框图 为了完成交通灯控制电路的设计,方案考虑如下: 一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮是由二进制加法计数器的输出端状态来决定的,因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二极管的控制信号,因此,需要一个组合逻辑电路,六个发光二极管(二个红色发光二极管,二个绿色发光二极管,二个黄色发光二极管)电路,一个数码管显示电路。结构图如下: 4 课程设计原理分析及相关知识概述

verilog hdl 实验报告

Verilog HDL数字系统设计 实验报告汇总 任课教师 实验者姓名 学号 实验指导教师

姓名学号 时间地点 实验题目阻塞赋值与非阻塞赋值的区别 一.实验目的与要求 (1)通过实验,掌握阻塞赋值与非阻塞赋值的概念与区别; (2)了解非阻塞赋值和阻塞赋值的不同使用场合; (3)学习测试模块的编写,综合和不同层次的仿真。 二.实验环境 仿真软件: modlsim6.2SE 三.实验内容 阻塞赋值与非阻塞赋值,在教材中已经了解了他们之间在语法上的区别以及综合后所得到的

电路结构上的区别。在always块中,阻塞赋值可以理解为赋值语句是并发执行的。时序逻辑设计中,通常都使用非阻塞赋值语句,而在实现组合逻辑的assign结构中,或者always快结构中都必须采用阻塞赋值语句。 四.系统框图 五.实验波形图 六.实验体会 (1)一开始使用modelsimSE6.2时候不知道建立工作区的方法。后面请教了毕老师才知道如何来建立工作区。 (2)编译时候错误看不懂,细心找才发现‘ ` 两个符号有区别 (3)波形找不到,后来发现时没有放大。 七.代码附录: 源代码:

// ---------- 模块源代码:---------------------- // ------------- blocking.v --------------- module blocking(clk,a,b,c); output [3:0] b,c; input [3:0] a; input clk; reg [3:0] b,c; always @(posedge clk) begin b = a; c = b; $display("Blocking: a = %d, b = %d, c = %d ",a,b,c); end endmodule //------------- non_blocking.v ------------------- module non_blocking(clk,a,b,c); output [3:0] b,c; input [3:0] a; input clk; reg [3:0] b,c; always @(posedge clk) begin b <= a; c <= b; $display("Non_Blocking: a = %d, b = %d, c = %d ",a,b,c); end endmodule 测试模块: // ---------- 测试模块源代码:-------------------------- //------------- compareTop.v -----------------------------

交通灯实验报告——数字电路

一、用中规模器件设计交通灯控制器 一、任务要求 1)通过数字电路的设计,在面包板上模拟交通红绿灯。要求分主干道和支干道,每条道上安装红(主R,支r)绿(主G,支g)黄(主Y,支y)三种颜色的灯,由四种状态自动循环构成(G、r→Y、r→R、g→R、y); 2)在交通灯处在不同的状态时,设计一计时器以倒计时方式显示计时,并要求不同状态历时分别为:G、r:30秒;R、g:20秒;Y、r,R、y:5秒。 二、总体方案 三、单元电路设计 1)主控电路 在设计要求中要实现四种状态的自动转换,首先要把这四种状态以数字的形态表示出来。因2*2=4,所以可以两位二进制数表示所需状态(00—G、r, 01—Y、r, 10—R、g, 11—R、y),循环状态:(00—10—11—01—00) 数字电路课程中介绍的计数器就是通过有限几个不同状态之间的循环实现不同模值计数,由此可以尝试设计一模值为4的计数器,其输出(代表不同状态)既可以循环转换,而且能够控制其他部分电路。在课程设计中本人利用74LS74(双上升沿D触发器)设计模4计数器作为主控部分电路。 主控电路图如下:

红绿灯显示电路接线如下: 4)计时部分电路 a)计时器状态产生模块: 设计要求对不同的状态维持的时间不同,而且要以十进制倒计时显示出来。限于实验 室器材本人采用两个74LS161完成计时器状态产生模块设计。 设计思路: 要以十进制输出,而又有一些状态维持时间超过10秒,则必须用两个74LS161分别 产生个位和十位的数字信号。显然,计数器能够完成计时功能,我们可以用74LS161设计, 并把它的时钟cp接秒脉冲。74LS161计数器是采用加法计数,要想倒计时,则在74LS161 输出的信号必须经过非门处理后才能接入数码管的驱动74LS48,而在显示是最好以人们 习惯的数字0---9显示计时,故在设计不同模值计数器确定有效状态时,本人以0000,0001,0010-----1111这些状态中靠后的状态为有效状态。 例如:有效状态1011—1100—1101—1110—1111 取反0100—0011—0010—0001—0000即4------3------2-------1------0实现模5的倒计时。 在将74LS161改装成其他模值时既可以采用同步清零法,也可采用异步置数法,但 0000不可能为有效状态,所以采用异步置数法完成不同模值转化的实现。 首先对控制个位输出的74LS161设计: 按要求对系统的状态不同,即红绿灯的状态不同,个位的进制也就要求不同。本人利 用系统的状态量Q 2、Q 1 控制74LS161的置数端D 3 D 2 D 1 D 。当系统处在G、r或R、g状态时, 个位的进制是十(模10),即逢十进一,当系统处在Y、r或R、y状态时,个位的进制是 五(模5),即逢五进一,模10时,有效状态为0110-----1111,置D 3D 2 D 1 D 为0110,模5

Verilog实验报告交通灯

V e r i l o g实验报告交通 灯 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

V e r i l o g实验报告---第四次交通灯 班级:集电0802班 姓名:张鹏 学号: 04086057 序号: 16 一、规范 (1)具有开关功能:当reset=0时红绿灯关闭,使主支干道六个灯全灭; (2)具有四个功能:当reset=1且func=2’b00时,主干道和支路正常计数; 且func=2’b01时,支干道一直绿灯,主干道一直红灯; 且func=2’b10时,主干道一直绿灯,支干道一直红灯; 且func=2’b11时,主干道和支干道一直黄灯闪; (3)计数器频率:运行频率2Hz计数器; (4)信号灯种类:红、黄、绿; (5)信号灯计执行时间关系:主干道:绿灯常亮+绿灯闪+黄灯=支干道:红灯常亮; 此设计中: 主干道:绿灯常亮=57s,T绿灯闪=3s,T黄灯亮=3s 支干道:绿灯常亮=15s,T绿灯闪=3s,T黄灯亮=3s (6)信号灯到计时功能:信号灯预置后,开始执行2Hz计数器; (7)信号灯跳转功能:当各信号灯计时至T时在下一个时钟信号上升沿到来时自动转为下一状态; (8)信号灯各状态跳转关系:绿-黄-红-绿; 二、输入输出定义

状态转移图: 四、测试代码 module frequency_divider_small(reset,clk,out); eset(reset),.clk(clk),.func(func),.green(green),.red(red),.yellow(yellow)); always #10 clk=~clk; initial begin reset=0; clk=1; func=2'b00; #20 reset=1; #21000 func=2'b01; #10000 func=2'b10; #10000 func=2'b11; end endmodule 波形: 五、源代码 module frequency_divider(reset,clk,out);eset(reset),.clk(clk),.out(in));//调用分频模块 always @ (posedge clk or negedge reset) if(!reset) begin cnt<=7'd0; state<=3'd1; green<=2'b00; red<=2'b00; yellow<=2'b00; end else if(in)//分频器结果当主模块始能 if(func==2'b00)//选择不同功能控制开关 if(cnt==7'd0) case(state)//选择不同状态 3'd1:begin cnt<=greentime1<<1;

通过Verilog实现交通灯设计实验报告

电子科技大学 实 验 报 告 一、实验室名称:虚拟仪器实验室 二、实验项目名称:交通灯设计实验 三、实验学时:4学时 四、实验原理

假设交通灯处于南北和东西两条大街的“十”字路口,如图1所示。用FPGA 开发板的LED 灯来模拟红、黄、绿3种颜色信号,并按一定顺序、时延来点亮LED ,如图2所示。图3给出了交通灯的状态转移图。设计使用频率为1Hz 的时钟来驱动电路(注1:仿真时采用1MHz 的时钟来驱动电路),则停留1个时钟可得到1S 的延时,类似停留3个时钟可得到3S 的延时,停留15个时钟可得到15S 的延时(注2:开发板工作时钟为50MHz )。 北 南 西东 图1. 六个彩色LED 可以表示一组交通信号灯 图2. 交通灯状态 南北 东西 红 黄 绿 红 黄 绿 S0 1 0 0 0 0 1 S1 1 0 0 0 1 0 S2 1 0 0 1 0 0 S3 0 0 1 1 0 0 S4 0 1 0 1 0 0 S5 1 0 0 1 0 0

图3. 交通灯的状态转移图 顶层模块 时钟分频模块状态机跳转模块 图4. 交通灯的原理框图 五、实验目的 本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义Mealy状态机和Moore状态机,熟悉利用HDL代码输入方式进行电路的设计和仿真的流程,掌握Verilog语言的基本语法。并通过一个交通灯的设计掌握利用EDA软件(Xilinx ISE 13.2)进行HDL代码输入方式的电子线路设计与仿真的详细流程。。 六、实验内容 在Xilinx ISE 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件下载到FPGA开发板上进行验证。 七、实验器材(设备、元器件)

EDA交通灯实验报告

实验:交通灯设计 一、设计任务及要求: 设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间。 主干道 图1 路口交通管理示意图 设计要求: (1)采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。 (2)编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明

(1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。 因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号; 系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。 模块说明: 系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号; 系统输出信号:tm:产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; tm: 接收计数秒数选择电路状态转换信号; 系统输出信号:comb_out: 负责红绿灯的状态显示。 (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示。 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号:led7s1: 负责红绿灯的显示秒数个位。 led7s2:负责红绿灯的显示秒数十位。 三、设计方案

数字逻辑实验报告-Verilog时序逻辑设计

电子科技大学 实验报告 学生姓名:任彦璟学号:2015040101018 指导教师:吉家成米源王华 一、实验项目名称:Verilog时序逻辑设计 二、实验目的: 掌握边沿D触发器74x74、同步计数器74x163、4位通用移位寄存器74x194,的工作原理。 设计移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)计数器。 设计同步计数器74x163 。 三、实验内容: 1.设计边沿D触发器74x74。 2.设计通用移位寄存器74x194。 3.采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。 4.设计4位同步计数器74x163。 四、实验原理: 74x74逻辑电路图

CLK_D CLR_L_D S1_L S1_H S0_L S0_H w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 74x194逻辑电路图 3位LFSR逻辑电路图

74x163逻辑电路图 上图的设计可以采用门级描述,也可以采用教材《数字设计—原理与实践》(第4版)第525页的表8-20中的行为描述 五、实验器材(设备、元器件): PC 机、Windows XP 、Anvyl 或Nexys3开发板、Xilinx ISE 14.7开发工具、Digilent Adept 下载工具。 六、实验步骤: 实验步骤包括:建立新工程,设计代码与输入,设计测试文件,设置仿真,查看波形,约束与实现、生成流代码与下载调试。 七、关键源代 码及波形图: 1.D 触发器的Verilog 代码 源码如下 module vr74x74(CLK, D, PR_L, CLR_L, Q, QN); input CLK, D, PR_L, CLR_L ; output Q, QN ; wire w1, w2, w3, w4 ; nand (w1, PR_L, w2, w4); nand (w2, CLR_L, w1, CLK) ; nand (w3, w2, CLK, w4) ; nand (w4, CLR_L, w3, D) ; nand (Q, PR_L, w2, QN); nand (QN, Q, w3, CLR_L); endmodule

实验六-数字频率计的Verilog-HDL语言实现

五邑大学实验报告 实验课程名称 ) 数字频率计的Verilog HDL语言实现 院系名称:信息工程学院 专业名称:通信工程(物联网工程) 实验项目名称:EDA实验 班级: 110711 学号: 。 报告人:冯剑波

实验六 数字频率计的Verilog HDL 语言实现 一、实验目的: 1、掌握较复杂数字电路或系统的纯Verilog HDL 实现方法; 2、体会纯Verilog HDL 语言输入设计与原理图输入设计的差别。 二、实验原理: 【 数字频率计是用来测量输入信号的频率并显示测量结果的系统。一般基准时钟的高电平的持续时间为s T 10 ,若在这0T 内被测信号的周期数为N 则被测信号的频率就是N ,选择不同的0T ,可以得到不同的测量精度。一般0T 越大,测量精度越高,但一次的测量时间及频率计所需的硬件资源也增加。 三、设计任务与要求: 1、设计一个6位频率计,测量范围从1Hz 到99 99 99Hz ,测量结果用6个数码管显示,基准时钟频率为1Hz ; 2、只显示测量结果,中间计数过程不显示;结果更新时间2秒一次; 3、频率计只设一个复位键,按下该键(reset=0)系统复位,释放该键(reset=1)系统工作,测量并显示结果。 4、显示用静态方式; 5、用Verilog HDL 实现上述要求的频率计。 四、设计源程序及注释与仿真结果 设计源程序: module pinlvji(oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5,clk_50M,clk_1Hz,reset,signal_out); @ input clk_50M,reset; //50MHz 时钟输入、复位 output[6:0] oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5; //数码管0-5,分别显示个、十、百、千、万、十万位的数字 output reg clk_1Hz; output reg signal_out; reg signal_in; reg[29:0] cnt; reg[29:0] cnt1; reg count_en; //计数允许,count_en=1时计数,下降沿到来时锁存 reg load; reg[3:0] ge,shi,bai,qian,wan,shiwan; reg cout1,cout2,cout3,cout4,cout5; reg[3:0] q0,q1,q2,q3,q4,q5; wire clr; always @(posedge clk_50M) //改变Hz 的范围,自己设定的频率1Hz-999999Hz begin

数字系统课程设计-交通灯-实验报告

交通灯控制电路 摘要 在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。当然我们每个人都不希望这样。我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。我设计的这个交通控制系统可以通过交通灯控制东西方向车道和南北方向车道两条主次交叉道路上的车辆交替运行,用以减少交通事故的发生概率。并且经过这次实验使得我对电子技术课程内容的理解和掌握有了更深一层的认识,也学会使用半导体元件和集成电路,掌握电子电路的基本分析方法和设计方法,进一步提高分析解决实际问题的综合能力,也为将来的就业或继续深造做好准备。 一、任务 在城市道路上的交叉路口一般设置有交通灯,用于管理两条道路通行车辆。现有一条主干道和一条支干道的汇合点形成十字交叉口,为确保车辆安全、迅速的通行,在交叉路口的每条道上设置一组交通灯,交通灯由红、黄、绿3色组成。红灯亮表示此通道禁止车辆通过路口;黄灯亮表示此通道未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该通道车辆可以通行。要求设计一交通灯控制电路以控制十字路口两组交通灯的状态转换,指挥车辆安全通行。指挥车辆安全通行。 设计要求 1、基本要求 (1)设计一个十字路口交通灯控制电路,要求主干道与支干道交替通行。 主干道通行时,主干道绿灯亮,支干道红灯亮,时间为60秒。支干道 通行时,支干道绿灯亮,主干道红灯亮,时间为30秒。 (2)每次绿灯变红灯时,要求黄灯先亮5秒钟。此时另一路口红灯也不变。 (3)黄灯亮时,要求黄灯闪烁,频率为1Hz。 2、发挥部分 要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示。 二、设计方案选取与论证 1、所选方案的理由:本设计的交通灯控制电路是综合运用了74LS192芯片、7474芯片和NE555芯片等的集成电路。根据任务要求,用单片机或分立组件来实现是比较容易的,但是由于要求不能使用单片机设计,因此使用数字电路课程里学过的知识,运用它们来设计分析电路。即使用分立组件来实现。 2、方案的可行性、优缺点

Verilog实验报告

实验报告格式要求 一、实验报告内容包括: (1)实验名称。 (2)实验目的。 (3)实验仪器及编号。写明仪器名称、型号、编号。 (4)实验原理。简单叙述有关实验原理(包括电路图或光路图或实验装置示意图)及测量中依据的的公式,式中各量的物理含义及单位,公式成立所应满足的实验条件等。 (5)实验内容及步骤。根据实验内容及实际的实验过程写明关键步骤和安全注意要点。 (6)实验观测记录。记录原始测量数据、图形等有关原始量,形式上要求整齐规范。 (7)数据处理结果。根据实验要求,采用合适的方法进行数据处理,误差分析,最后写出实际结果。 (8)小结或讨论。内容不限。可以是实验中的现象分析,对实验关键问题的体会,实验的收获和建议,也可解答思考题。 二、书写次序 (1)到(5)是进行实验预习时就应该完成的。(6)在实验中完成。做完实验后再在预习报告基础上完成(7)(8)两项。 完成一个实验,就是一次最基本的科研训练,从预习到写出一个实验报告,每一步都有极其丰富的学习内容,要积极思考,认真对待。

实验(一)简单的组合逻辑设计 实验日期2014-10-31 同组者姓名 一、实验目的 [1] 掌握基本组合逻辑电路的实现方法 [2] 初步了解两种基本组合逻辑电路的生成方法 [3] 学习测试模块的编写 [4] 通过综合和布局布线了解不同层次仿真的物理意义 二、实验仪器 计算机、FPGA开发板 三、实验内容 [1] 在ISE软件环境中进行一次完整的设计流程,并在FPGA开发板上实现与门的功能。 [2] 完成一个可综合的数据比较器的程序。 [3] 完成数据比较器的测试模块。 [4] 发挥部分:设计一个多位(2位)的数据比较器并在FPGA开发板上实现该比较器。 四、实验步骤、分析及结果(在下面写出你的代码) 代码: module compare( input a, input b, output c ); assign c=a&b; endmodule 结果如图所示:

fpga交通灯实验报告

交通灯实验报告

一,实验目的 实现两路信号灯交替亮起,并利用两组数码管分别对两路信号进行倒计时。 两路信号时间分别为: V:绿灯(30S)H:红灯(35S) 黄灯(5s)绿灯(30S) 红灯(35S)黄灯(5S) 二,实验步骤 建立工程 可在欢迎界面点击“Creat a New Project”进入工程建立界面,亦可关闭欢迎界面,点击菜单栏的“File”,点击“New Project Wizard”进入建立工程界面。 右侧为建立工程界面,点击next。

在此界面选定工程路径,取好工程名,点击“Next”。注意:路径中不能有中文,工程名也不能有中文。 一直点击“Next”进入器件设置界面,DE2-70开发工具采用

的Cyclone II系列的EP2C70F896C6N。点击“Finish”,完成工程建立 1、点击“File”,点击“New” 选择“Verilog HDL” 2,点击主界面工具栏中的选择“Verilog HDL” 3、写入verilog代码。

代码如下: module traffic(Clk_50M,Rst,LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V,Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL,led15); parameter S1=2'b00; parameter S2=2'b01; parameter S3=2'b10; parameter S4=2'b11; input Clk_50M,Rst; output LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V; output[6:0] Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL; output led15; //-------------div for 1Hz-------start---- reg Clk_1Hz; reg [31:0] Cnt_1Hz; always(posedge Clk_50M or negedge Rst) begin if(!Rst) begin Cnt_1Hz<=1; Clk_1Hz<=1; end else begin if(Cnt_1Hz>=25000000) begin Cnt_1Hz<=1; Clk_1Hz<=~Clk_1Hz; end else Cnt_1Hz<=Cnt_1Hz + 1; end end //-----------div for 1Hz------end----- reg[7:0] Cnt30,CntH,CntV,CntHH,CntVV; reg[7:0] CntDis,CntDiss; //-----------30 counter and seg7---start--- reg LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V; always(posedge Clk_1Hz) begin

华中科技大学Verilog语言实验报告

计算机科学与技术学院

目录 1数据通路实验 (1) 1.1实验目的 (1) 1.2实验内容及要求 (1) 1.3实验方案 (2) 1.4实验步骤 (2) 1.5故障及分析 (2) 1.6仿真与结果 (3) 1.7心得与体会 (4) 2FSM实验 (6) 2.1实验目的 (6) 2.2实验内容及要求 (6) 2.3实验方案 (7) 2.4实验步骤 (7) 2.5故障及分析 (8) 2.6仿真与结果 (8) 2.7心得与体会 (9) 3意见和建议 (11) 4附录 (13)

1 数据通路实验 1.1 实验目的 综合应用掌握的简单组合电路和时序电路的设计方法,完成一个简单的数据通路的设计。 1.2 实验内容及要求 1. 根据下图给出的数据通路(图中R0、R1和ACC是寄存器,+是加法器,其它则是多路选择器),完成相应的Verilog程序设计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位; 2. 根据下图给出的数据通路(图中SUM和NEXT是寄存器,Memory是存储器,+是加法器,==0是比较器,其它则是多路选择器),完成相应的Verilog程序设

计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位。 实验要求:程序必须自己编写,满足数据通路设计要求,综合结果正确。 1.3 实验方案 根据要求,先把选择器、加法器、寄存器、比较器和存储器分模块编写,在主模块中根据数据通路调用即可。题目中要求数据线宽度为8位,并且可以扩充至16位或32位,所以在前面定义WIDTH,利用parameter的参数传递功能来实现。 1.4 实验步骤 1.分模块编写代码(见附录) 2.运行综合Run Synthesis 3.综合成功后检查RTL Analysis中的电路图Schematic 1.5 故障及分析 刚开始跑出来很多线是断的,后来发现是引脚对应部分的代码没有写完整。后来加法器和ACC的参数顺序写错,导致接线与题给的不一致,发现问题后及时改

Verilog实验报告

2014-2015-2-G02A3050-1 电子电路设计训练(数字EDA部分) 实验报告 (2015 年5 月20 日) 教学班学号姓名组长签名成绩 自动化科学与电气工程学院

目录 目录 (1) 实验一、简单组合逻辑和简单时序逻辑 (1) 1.1 实验任务1——简单组合逻辑 (1) 1.1.1 实验要求 (1) 1.1.2 模块的核心逻辑设计 (1) 1.1.3 测试程序的核心逻辑设计 (1) 1.1.4 仿真实验关键结果及其解释 (2) 1.2 实验任务2——简单时序逻辑 (3) 1.2.1 实验要求 (3) 1.2.2 模块的核心逻辑设计 (3) 1.2.3 测试程序的核心逻辑设计 (3) 1.2.4 仿真实验关键结果及其解释 (4) 1.3 实验小结 (4) 实验二、条件语句和always过程块 (5) 2.1 实验任务1——利用条件语句实现计数分频时序电路 (5) 2.1.1 实验要求 (5) 2.1.2 模块的核心逻辑设计 (5) 2.1.3 测试程序的核心逻辑设计 (6) 2.1.4 仿真实验关键结果及其解释 (7) 2.2 实验任务2——用always块实现较复杂的组合逻辑电路 (8) 2.2.1 实验要求 (8) 2.2.2 模块的核心逻辑设计 (8) 2.2.3 测试程序的核心逻辑设计 (9) 2.2.4 仿真实验关键结果及其解释 (10) 2.3 实验小结 (11) 实验三、赋值、函数和任务 (12) 3.1 实验任务1——阻塞赋值与非阻塞赋值的区别 (12) 3.1.1 实验要求 (12) 3.1.2 模块的核心逻辑设计 (12) 3.1.3 测试程序的核心逻辑设计 (13) 3.1.4 仿真实验关键结果及其解释 (14) 3.2 实验任务2——在Verilog HDL中使用函数 (16) 3.2.1 实验要求 (16) 3.2.2 模块的核心逻辑设计 (16) 3.2.3 测试程序的核心逻辑设计 (18) 3.2.4 仿真实验关键结果及其解释 (19) 3.3 实验任务3——在Verilog HDL中使用任务 (20) 3.3.1 实验要求 (20) 3.3.2 模块的核心逻辑设计 (20) 3.2.3 测试程序的核心逻辑设计 (21)

相关文档
最新文档