




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工业大学课程设计说明书(论文)Harbin Institute of Technology数字电子技术实验自主设计实验报告姓名 班级 1404105 学号 台号 实验日期 节次 教师签字 成绩 实验名称:基于BASYS2 FPGA板的开发应用1.实验目的(1) 熟悉Verilog语言的使用(2)能通过ISE软件进行FPGA简单的开放应用(3)结合实际应用掌握课上所学关于组合电路和时序电路的理论知识(4) 掌握根据实际需求设计相应较为优化的电路的能力2. 实验环境ISE14.7BASYS2开发板3.实验内容总共设计3个实际应用电路,分别为两个较为简单的组合逻辑电路和一个较为复杂的时序逻辑电路。下面分别介绍各个设计:(1) 实验一:判断是否可以输血设计要求:已知人的血型由A、B、AB、O四种。输血时,输血者的血型与受血者血型必须符合图中用箭头指示的授受关系。要求该电路能够判断输血者与受血者的血型是否符合上述规定。具体要求如图1所示。图 1输血要求(2) 实验二:显示译码电路设计要求:根据不同输入取值,依次显示“HIT+学号后5位(即HIT05108)”,共8个字型。(3) 实验三:数字钟设计要求:在数码管上显示分钟和秒的计时功能。最左边两个显示分钟,最右边两个显示秒钟。4.各实验源代码及仿真结果(1)实验一:判断是否可以输血Verilog程序:module shuxue( input a, input b, input ab, input o, input sa, input sb, input sab, input so, output reg w, output reg p );/a,b,ab,o分别代表输血者的四种血型sa,sb,sab,so分别代表受血者的四种血型;w代表W灯;p代表P灯 reg w1,w2; always(*) begincase(a,b,ab,o)/判断输血者的输入是否符合要求4b0001:w1=0;4b0010:w1=0;4b0100:w1=0;4b1000:w1=0;default:w1=1;/若符合要求w1=0;否则w1=1endcasecase(sa,sb,sab,so)/判断受血者的输入是否符合要求4b0001:w2=0;4b0010:w2=0;4b0100:w2=0;4b1000:w2=0;default:w2=1;/若符合要求w2=0;否则w2=1endcasew=w1|w2;/若输血者和受血者都符合要求w=0;否则w=1if(w=1)p = 0;else if(sa=1)/若受血者是A型血beginif(a=1|ab=1|o=1)/输血者是A,AB,O型血,p=1p=1;elsep=0;endelse if(sb=1)/若受血者是B型血beginif(b=1|ab=1|o=1)/输血者是B,AB,O型血,p=1p=1;elsep=0;endelse if(sab=1)/若受血者是AB型血beginif(b=1|a=1|o=1|ab=1)/输血者是A,B,AB,O型血,p=1p=1;elsep=0;endelse /若受血者是O型血beginif(o=1)/输血者是O型血,p=1p=1;elsep=0;endendendmodule引脚约束文件:NET a LOC=P11;NET b LOC=L3;NET ab LOC=K3;NET o LOC=b4;NET sa LOC=g3;NET sb LOC=f3;NET sab LOC=e2;NET so LOC=n3;NET w LOC=m11;NET p LOC=m5;仿真结果:数字电子技术基础设计作业图 2实验一仿真波形图(2)实验二:显示译码电路(HIT05108)Verilog程序:module da2( input 2:0 s, output reg7:0 dl );/s表示8种输入;dl控制8段数码管always(s) begin case(s)3b000:dl=8b10010001;/s输入为0,数码管显示H3b001:dl=8b11110111;/s输入为1,数码管显示I3b010:dl=8b11100001;/s输入为2,数码管显示T3b011:dl=8b10011111;/s输入为3,数码管显示13b100:dl=8b00000011;/s输入为4,数码管显示03b101:dl=8b01001001;/s输入为5,数码管显示53b110:dl=8b00000011;/s输入为6,数码管显示03b111:dl=8b00000001;/s输入为7,数码管显示8endcaseendendmodule管脚约束文件:NET dl7 LOC = L14;NET dl6 LOC = H12;NET dl5 LOC = N14;NET dl4 LOC = N11;NET dl3 LOC = P12;NET dl2 LOC = L13;NET dl1 LOC = M12;NET dl0 LOC = N13;NET S2 LOC = K3;NET S1 LOC = L3;NET S0 LOC = P11;仿真波形:图 3实验二仿真波形图(3)实验三:数字钟Verilog程序:/顶层模块module clock_top(clk,duan,wei );input clk;output7:0 duan;output3:0 wei;wire clk_1Hz,clk_190Hz;wire15:0 disp;clock_divf U1(.clk_50MHz(clk),.clk_1Hz(clk_1Hz),.clk_190Hz(clk_190Hz);clock_time U2(.clk_1Hz(clk_1Hz),.time_MS(disp);IP_smg_dsp U3(.clk_190Hz(clk_190Hz),.dat(disp),.duan(duan),.wei(wei);endmodule/分频模块,得到1Hz,用于秒计数;得到190Hz,用于控制数码管显示/190Hz:这是4个数码管可以同时稳定显示的最低2n分频频率module clock_divf(clk_50MHz,clk_1Hz,clk_190Hz);input clk_50MHz;output clk_190Hz;output reg clk_1Hz;reg25:0 cnt;assign clk_190Hz=cnt17;always(posedge clk_50MHz)if(cnt=25000000)/实际项目用,1s变化1次/if(cnt=250000)/测试用,加快100倍分钟/秒的变化begincnt=0;clk_1Hz=clk_1Hz;endelse cnt=cnt+1;endmodule/计时模块,得到分和秒module clock_time(clk_1Hz,time_MS);input clk_1Hz;output15:0 time_MS;reg3:0 M_H,M_L,S_H,S_L;reg clk_SH,clk_ML,clk_MH;assign time_MS=M_H,M_L,S_H,S_L;/时间:分、秒always(posedge clk_1Hz)begin/秒:个位if(S_L=9)beginS_L=0;clk_SH=1;endelse beginS_L=S_L+1;clk_SH=0;endendalways(posedge clk_SH)begin/秒:十位if(S_H=5)beginS_H=0;clk_ML=1;endelse beginS_H=S_H+1;clk_ML=0;endendalways(posedge clk_ML)begin/分钟:个位if(M_L=9)beginM_L=0;clk_MH=1;endelse beginM_L=M_L+1;clk_MH=0;endendalways(posedge clk_MH)begin/分钟:十位if(M_H=5)M_H=0;else M_H=M_H+1;endendmodule/4个数字扫描显示模块module IP_smg_dsp(clk_190Hz,dat,duan,wei);input clk_190Hz;input15:0dat;output reg7:0duan;output reg3:0wei;reg3:0disp;reg1:0smg_ctl;always(posedge clk_190Hz)beginsmg_ctl=smg_ctl+1;case(smg_ctl)2b00:beginwei=4b1110;disp=dat3:0;end2b01:beginwei=4b1101;disp=dat7:4;end2b10:beginwei=4b1011;disp=dat11:8;end2b11:beginwei=4b0111;disp=dat15:12;endendcaseendalways(disp)case(disp)0:duan=8b11000000;1:duan=8b11111001;2:duan=8b10100100;3:duan=8b10110000;4:duan=8b10011001;5:duan=8b10010010;6:duan=8b10000010;7:duan=8b11111000;8:duan=8b10000000;9:duan=8b10010000;10:duan=8b10001000;11:duan=8b10000011;12:duan=8b11000110;13:duan=8b10100001;14:duan=8b10000110;15:duan=8b10001110;default:duan=8b11000000;/,默认为0endcaseendmodule管脚约束文件:NET wei0 LOC = F12;NET wei1 LOC = J12;NET wei2 LOC = M13;NET wei3 LOC = K14;NET duan0 LOC = L14;NET duan1 LOC = H12;NET duan2 LOC = N14;NET duan3 LOC = N11;NET duan4 LOC = P12;NET duan5 LOC = L13;NET duan6 LOC = M12;NET duan7 LOC = N13;NET clk LOC=B8;仿真波形:图 4实验三仿真波形图5.实验结论(1)基于Verilog语言对FPGA开发板进行开发,可实现各种丰富的功能(2)进行模块化的编程可提高编写代码的效率,也易于debug6.实验中出现的问题及解决对策(1)问题:map和place&route环节需要过长时间 解决:程序模块化,易于综合和布线(2)问题:bit文件导入FPGA可以正常实现功能,但仿真时一直
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共享出行信用体系建设与行业信用评价体系研究报告
- 中级银行从业资格之中级银行业法律法规与综合能力综合检测题型汇编附答案详解(模拟题)
- 注册公用设备工程师考前冲刺练习【轻巧夺冠】附答案详解
- 旅游行业智慧旅游产品设计开发方案
- 自考专业(工商企业管理)复习提分资料附答案详解【典型题】
- 自考公共课考试彩蛋押题含答案详解【突破训练】
- 综合解析北师大版8年级数学上册期末试卷附答案详解【培优A卷】
- 综合解析广东省恩平市中考数学真题分类(二元一次方程组)汇编专题攻克试题(含解析)
- 建筑工地现场管理实务操作指南
- 自考专业(计算机信息管理)预测复习含答案详解(培优)
- 病历书写基本规范-课件
- 魔兽世界85-90升级路线(BL)
- 纤支镜在麻醉科的应用
- 微生物发酵中药研究进展
- 《矿业权评估指南》
- 机动车维修竣工出厂合格证样式
- 整套教学课件《现代心理与教育统计学》研究生
- 手机拍照技巧大全课件
- 工业建筑钢筋工程监理实施细则
- 2023版北京协和医院重症医学科诊疗常规
- 人工膝关节置换术护理查房
评论
0/150
提交评论