FPGA课程设计实验报告.doc
《FPGA课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《FPGA课程设计实验报告.doc(30页珍藏版)》请在三一文库上搜索。
1、 F P G A 课 程 设 计 报 告学部:信息科学与技术学部专业:通信工程班级:09级1班学号:姓名: 指导老师: 2011.11.22 实验一 100进制的可逆计数器一、设计一个可控的100进制可逆计数器,要求用实验箱下载。(1) 计数器的时钟输入信号周期为200ns。(2) 以十进制形式显示。(3) 有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。clrplusminus功能0复位为0110递增计数101递减计数111暂停计数二、程序如下:module keni100(CLR,CLK,PLUS,MINUS,OUT); /
2、100进制的可逆计数器input CLR,PLUS,MINUS,CLK;output 7:0OUT;reg 7:0OUT;always(posedge CLK)begin if(!CLR) /如果CLR为零,输出为零;反之,运行else程序 OUT7:0=0; else begin if(PLUS=0 & MINUS=1) /100进制的递减计数 begin if (OUT3:0=0) begin OUT3:0=9; if (OUT7:4=0) OUT7:4=9; else OUT7:4=OUT7:4-1; end else OUT3:0=OUT3:0-1; end if(PLUS=1 & M
3、INUS=0) /100进制的递增计数 begin if (OUT3:0=9) begin OUT3:0=0; if (OUT7:4=9) OUT7:4=0; else OUT7:4=OUT7:4+1; end else OUT3:0=OUT3:0+1; end if(PLUS=1 & MINUS=1) OUT=OUT; /若PLUS和MINUS都为1,暂停计数 if(PLUS=0 & MINUS=0) OUT=0; /若都为零,输出为零 endendendmodule三、运行程序1、在quartersII9.1输入程序打开quartersII界面,点击fileNew,在出现的对话框中选择Te
4、xt File 在出现的输入界面内输入程序,点击filesave as,再出现的对话框中点击Yes,然后在出现的new project Wizard对话框中点击next,在Family&Device Settings 对话框中选择如下图所示的选项,在选择第三方软件的对话框中的选项选为none后点击next,在随后出现的对话框中,点击finish。设置完成。 2、 点击projectSet as Top-Level Entity,指向所输入的文件。3、 点击ProcessingStartStart Analysis & Synthesis。4、点击FileNew出现上面第一步时出现的对话框,选择
5、Vector Waveform File。5、点击ViewUtility WindowsNode Finder,在出现的对话框中点击List选择所需要的节点,将其拉到后面的Name栏中,并设置输入数据6、选择End Time:点击EditEnd Time7、输入参数的数据设置完成后,保存,图形如下:8、点击AssigmentSettings,在出现的对话框中选择Simulator Settings,在Simulation mode中选择Functional,进行功能编译。8、 点击ProcessingGenerate Functional Simulation Netlist9、 点击Proc
6、essingStart Simulation,进行仿真。四、仿真结果:如上图所示,当CLR为0时,OUT清零;当CLR为1时,OUT开始输出,当PLUS=1,MINUS=0时,OUT开始递加;当PLUS=1,MINUS=1时,OUT暂停计数;当PLUS=0,MINUS=1时,OUT开始递减。五、封装在quartusII11.0中点击fileopen project,在弹出的对话框中选择counter100文件,单击右键选择Creat Symbol File for Current File 上图为counter100的封装图,在quartus中打开此图,双击,将会看到counter100的程序
7、六、试验箱下载 将编好的程序应用于硬件上进行验证,所用的电路板子是: EP4CE115F29C7 外观如下: 1、安装硬件 在安装向导中选择如下安装路径,点击确定。2、硬件安装完毕后,在quartus11.0中封装图连接封装模块div和decode4_7是辅助模块,div是分频模块,decode4_7是译码部分。(相关程序在报告后面的附件)3、图形连接完毕后,单击FileSave as,确定,修改设置,如下图:4、单击ProcessingStart Compilation,进行编译,没有错误后进行下一步。5、 单击ToolsProgrammer,在弹出的对话框中,单击Hardware弹出一个对
8、话框,选择USB-BlasterUSB-06、点击Start,开始运行。七、硬件部分照片截图Clk(sw3)与Clr(sw0)置为1时,将Plus(sw1)置为1,Minus(sw2)置为0,开始从0递增,图为到99时,将Plus与Minus都置为1,暂停计数为99;下一时刻,数码管显示为0,重新开始递增计数;将Plus(sw1)置为0,Minus(sw2)置为1,开始从99递减计数。 实验二 交通灯控制系统一、交通灯控制系统,要求用实验箱下载。(1) 设计一个十字路口交通信号灯的定时控制电路。要求红、绿灯按一定的规律亮和灭,绿灯亮时,表示该车道允许通行;红灯亮时,该车道禁止通行。并在亮灯期间
9、进行倒计时,并将运行时间用数码管显示出来。(2)要求主干道每次通行时间为40秒,支干道每次通行时间为30秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由主干道转换为支干道时,主干道在通行时间只剩5秒钟时,绿灯闪烁5秒显示,支干道仍为红灯,以便主干道上已过停车线的车继续通行,未过停车线的车停止通行。同理,当车道由支干道转换为主干道时,支干道绿灯闪烁显示5秒钟,主干道仍为红灯。(3)定时器要求采用递减计时方式进行计时。注:TimeH、TimeL分别表示计数器的高位和低位HG、HR分别表示主干道的绿灯和红灯CG、CR分别表示支干道的绿灯和红灯两个定时时间:绿灯闪烁和绿灯停止闪烁4个状态:S
10、0:主干道绿灯亮,支干道红灯亮。S1:主干道绿灯闪烁,支干道红灯亮。S2:支干道绿灯亮,主干道红灯亮。S3:支干道绿灯闪烁,主干道红灯亮。2、 程序如下:module traffic00 (clk,en,lampar,fag,lampbr,fbg,numa,numb);input clk,en;output 7:0numa,numb;reg 7:0numa,numb;/计时显示output fag,fbg,lampar,lampbr; /fag:flash a greenreg lampar,lampag,lampbr,lampbg;/表示主路?路共四个灯reg tempa,tempb; /装
11、入计数reg 2:0 counta,countb;/灯亮的顺序reg 7:0 ared,agreen,bred,bgreen;always (en) if(!en) begin / 设置各种灯的预置数 ared =8b00110000; agreen =8b01000000; bred =8b01000000; bgreen =8b00110000; endalways (posedge clk) begin if(en) begin if(!tempa) begin tempa=1; case(counta) /控制灯亮的顺序 0: begin numa=agreen;lampag=1;la
12、mpar=0;counta=1; end 1: begin numa=ared; lampag=0;lampar=1;counta=0; end default: lampar8b00000001) begin if(numa3:0=0) begin numa3:0=4b1001; numa7:4=numa7:4-1;end else numa3:0=numa3:0-1; end if(numa=8b0000010) tempa=0; end end else begin lampar=1;lampag=0;counta=0;tempa=0; end End3、 运行程序步骤与实验一的步骤基本
13、相同,可参照实验一的步骤。四、仿真结果截图上图可以看出,在前35秒,主干道绿灯亮,次干道红灯亮;在最后5秒,主干道绿灯闪烁,次干道红灯亮;下一时刻,开始30进制的递减在前25秒,次干道绿灯亮,主干道红灯亮;在最后5秒,次干道绿灯闪烁,主干道红灯亮;下一时刻,开始40进制的递减五、封装在quartusII11.0中点击fileopen project,在弹出的对话框中选择traffic00文件,单击右键选择Creat Symbol File for Current File traffic00的封装图6、 试验箱下载 所用的硬件与实验一是同一个板子,步骤可参考实验一的步骤。 封装图连接如下:7、
14、 硬件部分照片截图将en(sw17)和ncR(sw16)均置为1时,开始40进制的递减计数,主干道绿灯亮,次干道红灯亮,为零后,开始30进制递减计数;此时开始30进制递减计数,主干道红灯亮,次干道绿灯亮;最后五秒绿灯闪烁,为零后,开始40进制递减计数。 实验三 多功能数字钟系统一、多功能数字钟系统(层次化设计),要求用实验箱下载。(1)基本功能:60秒60分24小时。(2)扩展功能:报时;每小时59分51,53,55,57秒低频报时,59秒高频报时。校时校分;时段控制;6点18点 输出灯不亮,其它时间灯亮。独立设计除上述3种功能以外的扩展功能,可加分。2、 程序如下1、24进制的程序modul
15、e m24(H,CPH,RD);output 7:0H;input CPH,RD;reg 7:0H;always(negedge RD or posedge CPH)begin if(!RD) H7:0=0;else begin if(H7:4=2)&(H3:0=3) /当高位为2,低位为3时,将其赋值为零 begin H7:0=0; end else /若高位不为2,低位为9时,高位加1 begin if(H3:0=9) begin H3:0=0; H7:4=H7:4+1; end else H3:0=H3:0+1; /若高位不为2,低位不为9时,低位加1 end endendendmodu
16、le2、60进制的程序(分钟和秒程序基本相同):module m60(M,CP60M,CPM,RD);output 7:0M;output CP60M;input CPM;input RD;wire CP60M;reg 7:0M;always(negedge RD or posedge CPM)begin if(!RD) begin M7:0=0; end else begin if(M7:4=5)&(M3:0=9) /当高位为5,低位为9时,将其赋值为0 begin M7:0=0; end else /若低位为9时,低位赋值为0 begin if(M3:0=9) begin M3:0=0;
17、if(M7:4=5) /若高位为5时,高位赋值为0 begin M7:4=0;end else M7:4=M7:4+1; /若高位不为5低位为9时,高位加1 end else M3:0=M3:0+1; /若高位不为5低位不为9时,低位加1 end endendassign CP60M=(M6&M4&M3&M0);endmodule3、 报时的程序:module baoshi(m6,m4,m3,m0,s6,s4,s3,s0,dy,gy,bshi);input m6,m4,m3,m0,s6,s4,s3,s0,dy,gy;output bshi;wire bm;reg bshi;assign bm=
18、m6&m4&m3&m3&m0&s6&s4&s0;always(bm or s3 or dy or gy) begin if(bm&s3) bshi=gy; else if(bm) bshi=dy; else bshi=0; endendmodule4、 校时的程序: module jiaoshi(CPM,CPH,CPS,CP60M,CP60S,SWM,SWH);output CPM,CPH;input SWM,SWH;input CPS,CP60S,CP60M;reg CPM,CPH;always(SWM or SWH or CPS or CP60S or CP60M) begin case(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 课程设计 实验 报告
链接地址:https://www.31doc.com/p-5014634.html